Ευχαριστώ Κωνσταντίνε. Ναι το έχω το
βιβλίο αυτό και το
LINUX Programming Manual, και κάποια
άλλα, και έχω δεί
την περιγραφή του monolithic nature
of Linux kernel,
αλλά λάβε υπ' όψη ότι η χρήση του
flat address space με
pointers γίνεται μέσω queues που
ταυτοποιούν τα
communicating members και τα address
pointers sequences.
Mutexing & semaphoring έχω
καταλάβει ότι χρησιμοποιούνται
κυρίως για prioritization access
μεταξύ πολλών communicating
members.
Εκείνο που προσπαθώ να καταλάβω και
δεν βρίσκω ούτε στο debian
documentation, είναι το πως
τροποποιούνται αυτές οι λειτουργίες
του kernel σε multi-core/multi-processors πλατφόρμες. Κάνει
την
δουλειά ο compiler με συγκεκριμένα
switch? Κάνει την δουλειά το
version του kernel? Γίνεται με
kernel extensions? Αλλά και το
πώς υλοποιείται σε επίπεδο υλικού το
σπάσιμο των function του
kernel.
Αν έχεις κάποια συγκεκριμένα link θα
με υποχρέωνες.
Να 'σαι καλά και πάλι σ'
ευχαριστώ,
Γιάννης
----- Original Message -----
Sent: Tuesday, October 17, 2017 12:32
PM
Subject: Re: kernel_ική ερώτηση
Στις 17-10-2017, ημέρα Τρι, και ώρα 12:15 +0300, ο/η IOANNIS PILIOUNIS -
ATLASCOM έγραψε:
Παίδες καλημέρα.
Γνωρίζουμε ότι σε επεγεργαστική
απόδοση ο linux kernel, λόγω
χρήσης pipe για την επικοινωνία
όλων των embedded functional
τμημάτων του, είναι σαφώς
ταχύτερος από την windows micro-kernel
based architecture, όπου όλα τα
functional layer είναι από
πάνω του και επικοινωνούν με
αυτόν μέσω IPC, έναν σαφώς πιο
slow μηχανισμό.
Δεν ισχύει αυτό. Τα pipes δε χρησιμοποιούνται για ενδοεπικοινωνία στον
πυρήνα.
Ο πυρήνας είναι στο ίδιο process/memory space, οπότε αρκεί η ανταλλαγή
pointers -με τα κατάλληλα mutex/semaphores/κλπ.
Για τα windows δεν ξέρω αλλά το ότι είναι micro-kernel αλλά δεν σημαίνει
ότι σέρνονται.
Γνωρίζει κανείς τι γίνεται όταν
ο linux kernel έχει απλωθεί
σε περιβάλλον με 2 ή 4 και
παραπάνω επεξεργαστές multicore;
Ο piping μηχανισμός του διαμοιρασμένου kernel
συνεχίζει να
λειτουργεί αδιαφανώς ως
πρός το υποκείμενο hardware, ή
σε
αυτή την περίπτωση
έχουμε κατατμημένη λειτουργία του kernel
και για την intra-shared
λειτουργία του χρησιμοποιείται το
IPC schema.
Αν υπάρχουν διαθέσιμα και
κανά-δυό σχετικά link θα βοηθούσε.
Σας ευχαριστώ,
Γιάννης
Πηλιούνης
Θα σου πρότεινα το βιβλίο Linux Kernel Development (Love),
Addison-Wesley. Δεν ξέρω αν έχει βγει καινούρια έκδοση από την 3η που έχω,
πάντως θα σου λύσει αρκετές απορίες για το πως λειτουργεί ο πυρήνας.
Κωνσταντίνος