Λειτουργίες μικροπυρήνα. Microkernel vs. μονόλιθος και «θρίαμβος» του MINIX. Δείτε τι είναι το "Microkernel" σε άλλα λεξικά

  • Προγραμματισμός Συστήματος,
  • Ανάπτυξη Linux
  • Πρόσφατα, ο Andrew Tatenbaum, καθηγητής στο Vrije Universiteit Amsterdam και συγγραφέας του εκπαιδευτικού και μικροσκοπικού συστήματος Unix Minix, βρέθηκε ξανά στο επίκεντρο της δράσης χάρη στο είδος της επιστολής. Στην επιστολή του προς την Intel, ευχαρίστησε την εταιρεία για τη χρήση του Minix, παραπονέθηκε ότι δεν το σάλπισε σε κάθε βήμα και δήλωσε ότι εξαιτίας αυτού, λίγοι άνθρωποι γνωρίζουν ότι το Minix είναι σήμερα το πιο δημοφιλές λειτουργικό σύστημα στον κόσμο.



    Προς τιμήν του, ο καθηγητής ξέρει πώς να επιλέξει τον παραλήπτη, τον χρόνο και τον τόπο για να δημιουργήσει ένα δυνατό και διαρκές αποτέλεσμα με ένα απλό μήνυμα που αποστέλλεται με email. Ο προηγούμενος ανταποκριτής του ήταν ο Linus Torvalds και η αλληλογραφία τους για το μονολιθικό και τους μικροπυρήνες μπήκε στα χρονικά της ιστορίας της πληροφορικής. Χωρίς αυτό, είναι δύσκολο να καταλάβουμε γιατί ο Andrew Tanenbaum είναι τόσο ενθουσιασμένος με την υποτιθέμενη επιτυχία του Minix, το οποίο μόνο για δέκα χρόνια εξασφάλιζε τη λειτουργία του backdoor IME της Intel.

    Η γέννηση του Linux και η κριτική του μονολιθικού πυρήνα

    Πριν από 26 χρόνια, ο προγραμματισμός για το Unix δεν ήταν μια ασήμαντη δουλειά για τον μέσο μαθητή, αφού όλες οι γεύσεις του Unix πληρώθηκαν. Για να κυριαρχήσει αυτό το λειτουργικό σύστημα, ο Linus αποφασίζει να εγκαταστήσει το Minix. Το Διαδίκτυο εκείνη την εποχή ήταν ακόμα στα σπάργανα, η παραγγελία του ΛΣ γινόταν με κανονικό ταχυδρομείο, καθώς και παράδοση. Για το Minix έπρεπε να κερδίσω 169 $.


    Έχω πολλά παράπονα για το Minix. Το χειρότερο ήταν η εξομοίωση τερματικού, ένα πολύ σημαντικό πρόγραμμα για μένα γιατί ήταν αυτό που συνήθιζα να συνδεθώ στον υπολογιστή του πανεπιστημίου. Βασιζόμουν σε αυτήν την εξομοίωση κάθε φορά που συνδεόμουν στον υπολογιστή του πανεπιστημίου για να δουλέψω με το ισχυρό σύστημα Unix ή απλώς να συνδεθώ στο διαδίκτυο.

    Σύντομα ο μελλοντικός δημιουργός του Linux ανακάλυψε τις σοβαρές αδυναμίες του Minix. Δεδομένου ότι ήταν απλώς μια εκπαιδευτική έκδοση του Unix, ο καθηγητής το παραμόρφωσε εσκεμμένα. Πολλές από αυτές τις ελλείψεις θα μπορούσαν να εξαλειφθούν με ένα patch από τον πιο διάσημο χάκερ του Minix, τον Bruce Evans, αλλά για να το εγκαταστήσετε έπρεπε να κάνετε αρκετή προσπάθεια. Το πιο σημαντικό μειονέκτημα για τον Linus ήταν το πρόγραμμα εξομοίωσης τερματικού, το οποίο έπρεπε να αντικατασταθεί με το δικό του. Τότε χρειάστηκε ένα πρόγραμμα οδήγησης συστήματος αρχείων και φύγαμε, ο πυρήνας του νέου λειτουργικού συστήματος γεννήθηκε σαν χυλός από τσεκούρι.


    25 Αυγούστου 1991 Ο Linus στέλνει το διάσημο μήνυμά του ότι εργάζεται σε ένα δωρεάν λειτουργικό σύστημα, αλλά δεν θα είναι ένα τόσο μεγάλο και επαγγελματικό έργο όσο ΑΝΤΙΛΟΠΗΣ ΤΗΣ ΑΦΡΙΚΗΣ. Μεταξύ άλλων, αξιοσημείωτο είναι το γεγονός ότι ο Linus στέλνει αυτή και άλλες πρώιμες ανακοινώσεις του λειτουργικού του συστήματος στο συνέδριο Minix, προσελκύοντας χρήστες του τελευταίου.


    Ο Andrew Tanenbaum δεν αντέδρασε με κανέναν τρόπο σε αυτό για την ώρα, αλλά το Linux μεγάλωσε σαν χιονόμπαλα. Ήδη τον Ιανουάριο του 1992 κυκλοφόρησε η έκδοση 0.12, στην οποία εφαρμόστηκε η σελιδοποίηση σε δίσκο - κάτι που δεν ήταν διαθέσιμο στο Minix. Αμέσως μετά από αυτό, ο καθηγητής συναίνεσε στην αρχή για να του απαντήσει προσωπικά, και στις 29 Ιανουαρίου, ο Linus έλαβε ένα μήνυμα στο συνέδριο comp.os.minix με ηθικολογικό περιεχόμενο. Η αρχή ήταν ενθαρρυντική.


    Από: [email προστατευμένο](Andy Tanenbaum)
    Αυτό: Ομάδες Ειδήσεων: comp.os.minix
    Θέμα: Το LINUX είναι ξεπερασμένο
    Ημερομηνία: 29 Ιανουαρίου 92 12:12:50 GMT

    Έλειπα στις ΗΠΑ για μερικές εβδομάδες, οπότε δεν έγραψα πολλά για το LINUX (όχι ότι θα έγραφα αν ήμουν εδώ). Ωστόσο, τώρα θέλω να κάνω μερικά σχόλια.
    Όπως γνωρίζετε οι περισσότεροι, για μένα το MINIX είναι ένα χόμπι που το κάνω τα βράδια όταν βαριέμαι να γράφω βιβλία και δεν υπάρχουν πόλεμοι, επαναστάσεις ή κοινοβουλευτικές ακροάσεις στο CNN. Η κύρια δουλειά μου είναι η διδασκαλία και η έρευνα στον τομέα των λειτουργικών συστημάτων.

    Ακολούθησαν βασικές πληροφορίες σχετικά με τον μονολιθικό πυρήνα, τον μικροπυρήνα και τα λειτουργικά συστήματα που τηρούν τη μία ή την άλλη αρχή. Στη συνέχεια ήρθε το λογικά αβάσιμο επιχείρημα ότι μεταξύ των ειδικών στην ανάπτυξη λειτουργικών συστημάτων, η συζήτηση για αυτό το θέμα είχε ήδη σταματήσει λόγω των σαφών πλεονεκτημάτων του μικροπυρήνα. Περαιτέρω δηλώσεις ότι το Minix είναι προοδευτικό και το Linux είναι μια επιστροφή στη δεκαετία του 1970. Επιπλέον, το Linux είναι κλειδωμένο σε μια ενιαία αρχιτεκτονική, ενώ το Minix έχει μεταφερθεί από επεξεργαστές Intel σε άλλες πλατφόρμες: Atari, Amiga, Macintosh, SPARC και NS32016.


    Θα μπορούσα να πω πολλά για τα σχετικά πλεονεκτήματα αυτών των δύο προσεγγίσεων, αλλά αρκεί να πω ότι η συζήτηση μεταξύ των προγραμματιστών λειτουργικών συστημάτων έχει τελειώσει. Ο μικροπυρήνας κέρδισε. Το Minix είναι ένα σύστημα με μικροπυρήνα. Το σύστημα αρχείων και η διαχείριση μνήμης είναι ξεχωριστές διεργασίες που εκτελούνται εκτός του πυρήνα. Το I/O εκτελείται επίσης ξεχωριστά. Το LINUX είναι ένα μονολιθικό σύστημα. Αυτό είναι ένα μεγάλο βήμα πίσω στη δεκαετία του '70. χρόνια.


    Στις αρχές της δεκαετίας του '90, ο μικροπυρήνας ήταν πραγματικά αγαπημένος μεταξύ των σχεδιαστών λειτουργικών συστημάτων. Κατά τη γνώμη τους, ο πυρήνας του λειτουργικού συστήματος θα πρέπει να είναι ελάχιστος και να περιέχει μόνο τα βασικά: διαχείριση μνήμης, χρονοπρογραμματιστή και IPC, και όλα τα άλλα θα πρέπει να υλοποιούνται ως υπηρεσίες. Με το σπάσιμο του συνόλου σε πολλά απλά μέρη, η πολυπλοκότητα εξαφανίζεται και οι ελαφριές υπηρεσίες επικοινωνούν εύκολα με τον μικροπυρήνα. Έτσι, μια αποτυχία σε ένα πρόγραμμα οδήγησης συστήματος αρχείων ή κάρτας δικτύου αποκαταστάθηκε απλώς με επανεκκίνηση της αντίστοιχης υπηρεσίας.

    Ο Λίνους δέχεται την πρόκληση

    Ο Λίνους είχε διαφορετική άποψη για αυτό το θέμα. Αν και εκτίμησε την κομψότητα και τη χάρη της αρχιτεκτονικής του μικροπυρήνα από θεωρητική άποψη, εντούτοις θεωρούσε τον μικροπυρήνα ακατάλληλο για πρακτικούς σκοπούς. Η φανταστική απλότητα του μικροπυρήνα έχει ως αποτέλεσμα το γεγονός ότι η αλληλεπίδραση και η διεπαφή μεταξύ απλών τμημάτων του μικροπυρήνα δημιουργεί επιπλοκές που εξουδετερώνουν όλα τα «χάρτινα» πλεονεκτήματά του. Στην απάντησή του, περιέγραψε το όραμά του για αυτό το θέμα. Μετά από μερικές τολμηρές επιθέσεις στον αντίπαλό του, ο Linus φτάνει στο σημείο.


    Από: [email προστατευμένο](Λίνους Μπένεντικτ Τόρβαλντς)
    Θέμα: Απάντηση: Το LINUX είναι ξεπερασμένο
    Ημερομηνία: 29 Ιανουαρίου 92 23:14:26 GMT
    Διοργάνωση: Πανεπιστήμιο του Ελσίνκι

    ...
    Ναι, το linux είναι ένα μονολιθικό σύστημα και συμφωνώ ότι ο μικροπυρήνας είναι καλύτερος. Αν η ανάρτησή σου δεν είχε έναν τόσο αμφιλεγόμενο τίτλο, μάλλον θα συμφωνούσα με τα περισσότερα από αυτά που λες. Από θεωρητικής (και αισθητικής) άποψης το Linux χάνει. Αν ο πυρήνας GNU ήταν έτοιμος την περασμένη άνοιξη, δεν θα είχα ξεκινήσει την ανάπτυξή μου: το πρόβλημα είναι ότι δεν ήταν έτοιμος τότε και δεν είναι ακόμα έτοιμος. Το Linux κερδίζει κυρίως επειδή είναι ήδη έτοιμο.

    Στη συνέχεια, παραθέτει τα προβλήματα του Minix με την πολλαπλή εκτέλεση του συστήματος αρχείων.


    Εάν αυτό ήταν το μόνο κριτήριο για την ποιότητα του πυρήνα, θα είχατε δίκιο. Ωστόσο, δεν γράφετε για το γεγονός ότι ο μικροπυρήνας στο minix είναι κακώς κατασκευασμένος και προκύπτουν προβλήματα με το multitasking (στον πυρήνα). Αν έφτιαχνα ένα λειτουργικό σύστημα του οποίου το σύστημα αρχείων είχε προβλήματα με το multitasking, δεν θα βιαζόμουν τόσο γρήγορα να κρίνω τους άλλους: αντίθετα, θα έσκυβα προς τα πίσω για να κάνω τους πάντες να ξεχάσουν την αποτυχία μου. Ναι, ξέρω ότι υπάρχουν πολλά patches για το minix για υποστήριξη πολλαπλών νημάτων, αλλά είναι απλώς patches και ο Bruce Evans λέει ότι υπάρχουν ακόμα πολλά προβλήματα συγχρονισμού.

    Η αψιμαχία στο συνέδριο συνεχίζεται, νέοι συμμετέχοντες μπαίνουν στη διαμάχη. Ο Andrew Tanenbaum και ο Linus Torvalds συνεχίζουν τη συζήτησή τους, αλλά με πιο συγκρατημένο τρόπο. Παρακάτω είναι μια δωρεάν μετάφραση επιλεγμένων αποσπασμάτων.


    Andrew Tanebaum: Έγραψα σκόπιμα το Minix τόσο αδέξια, ώστε οι μαθητές να μπορούν να το τρέξουν σε μια ποικιλία φθηνού υλικού υπολογιστή, αλλά η σχεδίαση του λειτουργικού μου λειτουργικού συστήματος είναι κανονική και όχι σαν το παλιό σας Linux. Επιπλέον, δεν μπορεί να μεταφερθεί σε άλλες πλατφόρμες. Θα σου έδινα βαθμό στις εξετάσεις.

    David Feustel: Δεν είναι σπουδαίο, και ο Αϊνστάιν είχε κακούς βαθμούς στα μαθηματικά και τη φυσική.

    Κεν Τόμσον: Οι χρήστες δεν ενδιαφέρονται για το αν το λογισμικό στον υπολογιστή τους είναι ενημερωμένο είναι πολύ πιο σημαντικό. Ναι, το μέλλον ανήκει στον μικροπυρήνα, αλλά ένας μονολιθικός πυρήνας μαγειρεύεται πιο εύκολα. Ωστόσο, είναι πιο εύκολο να το χαλάσεις αν γράψεις τον κώδικα βιαστικά.

    Ράντι Μπερνς: Οι κλήσεις συστήματος Linux είναι συμβατές με φορητά λειτουργικά συστήματα, επομένως τα παράπονα σχετικά με το κλείδωμα σε μία πλατφόρμα είναι άσχετα. Αντίθετα, το Linux κλείνει το χάσμα, που μας επιτρέπει να χρησιμοποιούμε προγράμματα GNU. Ίσως σε μερικά χρόνια όταν τα συστήματα Hurd και χαμηλού κόστους BSD θα διαδοθούν και το Linux καταστεί απαρχαιωμένο, αλλά προς το παρόν μπορούμε να απολαμβάνουμε gcc, bash, bison χωρίς σχεδόν τίποτα και να γράφουμε κώδικα για ένα καλύτερο λειτουργικό σύστημα.

    Pete French: Οι μικροπυρήνες και οι μονολιθικοί πυρήνες δεν είναι τεχνουργήματα της γλώσσας προγραμματισμού στην οποία είναι γραμμένοι; Ποια είναι η διαφορά μεταξύ ενός μικροπυρήνα γραμμένου σε C και ενός μονολιθικού πυρήνα γραμμένου σε OCCAM;

    Linus Torvalds: Προσπαθήσατε τόσο σκληρά για χάρη των μαθητών, τότε είναι κατανοητό. Αλλά το multitasking στο λειτουργικό σας σύστημα εξακολουθεί να είναι ένα πρόβλημα, ανεξάρτητα από το πώς το βλέπετε, αλλά στο "προς τα πίσω" μονολιθικό μου Linux όλα πετούν. Δεν θα υπάρξουν μεγάλα προβλήματα με τη φορητότητα, καθώς το Linux API είναι φορητό - αν υπήρχαν άνθρωποι πρόθυμοι να το κάνουν. Και έτσι κι αλλιώς δεν παίρνω καλούς βαθμούς.

    Lawrence C. Foard: Οι θεωρητικοί είναι θεωρητικοί. Έχουν υπέροχες ιδέες, αλλά κανείς δεν μπήκε στον κόπο να τις δοκιμάσει στην πράξη. Οι επεξεργαστές Intel 32-bit είναι διαθέσιμοι στην αγορά εδώ και σχεδόν 10 χρόνια, αλλά Κανείς εκτός από τον Linus δεν τους έγραψε λειτουργικό σύστημα, το οποίο μπορείτε να αγγίξετε χωρίς να χρειάζεται να αγοράσετε 100.000 $ AT&T Unix. Το ολοκληρωμένο λειτουργικό σύστημα κοστίζει δεκάδες χαρτί. Εγώ Σήμερα μπορώ να γράψω κώδικα για Linuxκαι πειραματίζομαι όπως θέλω.

    Πίτερ ντα Σίλβα: Είναι υπέροχο που υπάρχει το Linux και ο μονολιθικός πυρήνας είναι ένας από τους λόγους που δημιουργήθηκε τόσο γρήγορα. Αυτό είναι ένα ισχυρό επιχείρημα υπέρ ενός μονολιθικού πυρήνα, αλλά δεν σημαίνει ότι ένας μικροπυρήνας πρέπει να είναι αργός ή ότι είναι χάρτινος.

    Τα επιχειρήματα υπέρ του μικροπυρήνα τα ξεπέρασαν πραγματικά εκείνη την εποχή, αλλά σήμερα η εμπειρία χρήσης και των δύο αρχών κατασκευής λειτουργικού συστήματος

    Μικροπυρήνα- Αυτό είναι ένα ελάχιστο μέρος του λειτουργικού συστήματος, το οποίο αποτελεί τη βάση για αρθρωτές και φορητές επεκτάσεις. Η κύρια ιδέα ενός μικροπυρήνα είναι να δημιουργήσει το απαραίτητο περιβάλλον ανώτατου επιπέδου από το οποίο θα είναι δυνατή η πρόσβαση σε όλες τις λειτουργίες σε επίπεδο υλικού.

    Ο μικροπυρήνας περιέχει την ελάχιστη ποσότητα κώδικα που απαιτείται για την υλοποίηση βασικών κλήσεων συστήματος. Αυτές οι κλήσεις περιλαμβάνουν τη μετάδοση μηνυμάτων και άλλες επικοινωνίες μεταξύ διεργασιών εκτός του πυρήνα, τη διαχείριση διακοπής και ορισμένες άλλες λειτουργίες. Οι υπόλοιπες λειτουργίες υλοποιούνται ως αρθρωτά πρόσθετα που αλληλεπιδρούν μεταξύ τους χρησιμοποιώντας μηνύματα.

    Ο μικροπυρήνας εκτελείται με την υψηλότερη προτεραιότητα και τροφοδοτεί το υπόλοιπο λειτουργικό σύστημα ως ένα σύνολο εφαρμογών διακομιστή. Η τεχνολογία μικροπυρήνα Mach δημιουργήθηκε στο Πανεπιστήμιο Carnegie Mellon και χρησιμεύει ως βάση για πολλά λειτουργικά συστήματα.

    Η λειτουργικότητα του μικροπυρήνα είναι περιορισμένη προκειμένου να μειωθεί το μέγεθός του και να μεταφερθεί το μεγαλύτερο μέρος του λειτουργικού συστήματος στην κατάταξη ενός προγράμματος εφαρμογής. Συνήθως ένας μικροπυρήνας υποστηρίζει πέντε διαφορετικούς τύπους υπηρεσιών:

    Διαχείριση εικονικής μνήμης,

    Διαχείριση εργασιών και νημάτων

    Επικοινωνίες μεταξύ διεργασιών (IPC – επικοινωνία μεταξύ διεργασιών),

    Διαχείριση εισόδου/εξόδου και διακοπής

    Παροχή υπηρεσίας πελάτη-διακομιστή.

    Άλλες λειτουργίες λειτουργικού συστήματος βρίσκονται σε άλλες υπηρεσίες ΛΣ που εκτελούνται ως εφαρμογές μικροπυρήνα.

    Η ουσία της αρχιτεκτονικής μικροπυρήνα είναι η εξής. Μόνο ένα πολύ μικρό μέρος του λειτουργικού συστήματος, που ονομάζεται microkernel, εκτελείται σε προνομιακή λειτουργία. Ο μικροπυρήνας προστατεύεται από το υπόλοιπο λειτουργικό σύστημα και από εφαρμογές. Το σύνολο των συναρτήσεων ενός μικροπυρήνα αντιστοιχεί στις λειτουργίες του στρώματος των βασικών μηχανισμών ενός κανονικού πυρήνα. Αυτές είναι λειτουργίες που δεν μπορούν να εκτελεστούν σε λειτουργία χρήστη. Το σχήμα 1.2 δείχνει τον μηχανισμό για τη μετακίνηση του μεγαλύτερου μέρους των συναρτήσεων του πυρήνα στο χώρο του χρήστη.

    Λόγω του μεγέθους και της ικανότητάς του να υποστηρίζει τυπικές υπηρεσίες προγραμματισμού, ένας μικροπυρήνας είναι απλούστερος από τους πυρήνες των μονολιθικών ή αρθρωτών λειτουργικών συστημάτων.

    Εικόνα 4.1 – Μεταφορά του μεγαλύτερου μέρους των συναρτήσεων του πυρήνα στο χώρο χρήστη

    Όλες οι άλλες λειτουργίες του πυρήνα συσκευάζονται ως εφαρμογές που εκτελούνται σε λειτουργία χρήστη. Δεν υπάρχουν σαφείς συστάσεις σχετικά με το ποιες λειτουργίες του συστήματος πρέπει να εκτελούνται σε προνομιακή λειτουργία και ποιες σε λειτουργία χρήστη.

    Οι διαχειριστές πόρων που τοποθετούνται σε λειτουργία χρήστη ονομάζονται διακομιστές λειτουργικού συστήματος, καθώς ο κύριος σκοπός τους είναι να εξυπηρετούν αιτήματα από εφαρμογές και άλλες λειτουργικές μονάδες. Για την εφαρμογή αυτού του μηχανισμού, το ΛΣ πρέπει να έχει έναν αποτελεσματικό τρόπο να καλεί διαδικασίες μιας διεργασίας από μια άλλη. Η υποστήριξη αυτού του μηχανισμού είναι η κύρια λειτουργία του μικροπυρήνα.

    Το σχήμα 4.2 δείχνει τον μηχανισμό πρόσβασης στις λειτουργίες του λειτουργικού συστήματος που έχουν σχεδιαστεί ως διακομιστές. Ο πελάτης, ο οποίος μπορεί να είναι είτε πρόγραμμα εφαρμογής είτε άλλο στοιχείο του λειτουργικού συστήματος, ζητά την εκτέλεση κάποιας λειτουργίας από τον αντίστοιχο διακομιστή στέλνοντάς του ένα μήνυμα. Η απευθείας μεταφορά μηνυμάτων μεταξύ των εφαρμογών δεν είναι δυνατή, καθώς οι χώροι διευθύνσεών τους είναι απομονωμένοι μεταξύ τους. Ο μικροπυρήνας, που εκτελείται σε προνομιακή λειτουργία, έχει πρόσβαση σε όλους τους χώρους διευθύνσεων και επομένως μπορεί να λειτουργήσει ως ενδιάμεσος. Έτσι, η λειτουργία ενός λειτουργικού συστήματος μικροπυρήνα αντιστοιχεί στο μοντέλο πελάτη-διακομιστή, στο οποίο ο ρόλος της μεταφοράς εκτελείται από τον μικροπυρήνα.

    Ο πιο σημαντικός εκπρόσωπος των λειτουργικών συστημάτων μικροπυρήνα είναι το λειτουργικό σύστημα QNX σε πραγματικό χρόνο. Ο μικροπυρήνας QNX σχεδιάζει μόνο προγραμματισμό και αποστολή διεργασιών, επικοινωνία διεργασιών, χειρισμό διακοπών και υπηρεσίες δικτύου χαμηλότερου επιπέδου. Ένας τέτοιος μικροπυρήνας παρέχει μόνο δύο δωδεκάδες κλήσεις συστήματος και έχει μέγεθος από 8 έως 46 kilobyte.

    Εικόνα 4.2 – Υλοποίηση κλήσης συστήματος σε αρχιτεκτονική μικροπυρήνα

    Για τη δημιουργία ενός ελάχιστου συστήματος QNX, πρέπει να προστεθεί ένας διαχειριστής διεργασιών στον μικροπυρήνα, ο οποίος δημιουργεί διεργασίες και διαχειρίζεται αυτές και τη μνήμη τους. Για να χρησιμοποιήσετε το QNX σε έναν επιτραπέζιο υπολογιστή, ένα σύστημα αρχείων και μια διαχείριση συσκευών πρέπει επίσης να προστεθούν στον μικροπυρήνα.

    Όλοι αυτοί οι διαχειριστές εκτελούνται εκτός του χώρου του πυρήνα, επομένως ο πυρήνας παραμένει μικρός.

    Ας εξετάσουμε εν συντομία τα πλεονεκτήματα και τα μειονεκτήματα των λειτουργικών συστημάτων μικροπυρήνα. Τα πλεονεκτήματά τους περιλαμβάνουν:

    Φορητότητα λόγω του γεγονότος ότι όλος ο κώδικας που εξαρτάται από τη μηχανή είναι απομονωμένος στον μικροπυρήνα,

    Επεκτασιμότητα λόγω περιορισμένου συνόλου καλά καθορισμένων διεπαφών μικροπυρήνων. Η προσθήκη ενός νέου υποσυστήματος απαιτεί την ανάπτυξη μιας νέας εφαρμογής, η οποία δεν επηρεάζει την ακεραιότητα του μικροπυρήνα,

    Αξιοπιστία λόγω του γεγονότος ότι κάθε διακομιστής εκτελείται ως ξεχωριστή διαδικασία στη δική του περιοχή μνήμης, η οποία τον προστατεύει από άλλους διακομιστές λειτουργικού συστήματος (σε ένα παραδοσιακό λειτουργικό σύστημα, όλες οι μονάδες μπορούν να επηρεάσουν η μία την άλλη). Ο μειωμένος όγκος του κώδικα μικροπυρήνα συμβάλλει επίσης στην αυξημένη αξιοπιστία,

    Κατάλληλο για κατανεμημένους υπολογιστές, καθώς χρησιμοποιεί μηχανισμούς αλληλεπίδρασης πελάτη-διακομιστή και οι διακομιστές λειτουργικού συστήματος μικροπυρήνα μπορούν να βρίσκονται είτε στον ίδιο είτε σε διαφορετικούς υπολογιστές.

    Το κύριο μειονέκτημα ενός λειτουργικού συστήματος μικροπυρήνα είναι η μειωμένη απόδοση του σε σύγκριση με ένα κλασικό λειτουργικό σύστημα. Το γεγονός είναι ότι με την κλασική οργάνωση του λειτουργικού συστήματος, η εκτέλεση μιας κλήσης συστήματος συνοδεύεται από δύο διακόπτες λειτουργίας και με μια αρχιτεκτονική μικροπυρήνα - τέσσερις. Η κατάσταση απεικονίζεται στο Σχήμα 4.3.

    Εικόνα 4.3 – Αλλαγή λειτουργιών κατά την εκτέλεση κλήσης συστήματος

    Η σοβαρότητα αυτής της ανεπάρκειας φαίνεται καλά από την ιστορία της ανάπτυξης των Windows NT. Στις εκδόσεις 3.1 και 3.5, ο διαχειριστής παραθύρων, το κέλυφος γραφικών και τα προγράμματα οδήγησης συσκευών γραφικών υψηλού επιπέδου συμπεριλήφθηκαν στον διακομιστή λειτουργίας χρήστη και αυτές οι λειτουργίες κλήθηκαν σύμφωνα με τη σχεδίαση του μικροπυρήνα. Ωστόσο, έγινε σαφές στους προγραμματιστές ότι ένας τέτοιος μηχανισμός μειώνει σημαντικά την απόδοση του συστήματος, έτσι στην έκδοση 4.0 οι μονάδες που αναφέρονται παραπάνω συμπεριλήφθηκαν στον πυρήνα. Αυτό το γεγονός απομάκρυνε το λειτουργικό σύστημα από την ιδανική αρχιτεκτονική μικροπυρήνων, αλλά έκανε το σύστημα πιο παραγωγικό.

  • διαχείριση χώρου διευθύνσεων εικονικής μνήμης.
  • διαχείριση διεργασιών και νημάτων (threads).
  • μέσα επικοινωνίας μεταξύ των διεργασιών.
  • Όλες οι άλλες υπηρεσίες λειτουργικού συστήματος, που παρέχονται απευθείας από τον πυρήνα σε κλασικούς μονολιθικούς πυρήνες, υλοποιούνται στο χώρο διευθύνσεων χρήστη (Ring3) σε αρχιτεκτονικές μικροπυρήνων και ονομάζονται υπηρεσίες. Παραδείγματα τέτοιων υπηρεσιών που εισάγονται στο χώρο των χρηστών σε αρχιτεκτονικές μικροπυρήνων είναι οι υπηρεσίες δικτύου, το σύστημα αρχείων και τα προγράμματα οδήγησης.

    Το κύριο πλεονέκτημα της αρχιτεκτονικής μικροπυρήνα είναι ο υψηλός βαθμός αρθρωτής δομής του πυρήνα του λειτουργικού συστήματος. Αυτό καθιστά πολύ πιο εύκολη την προσθήκη νέων στοιχείων σε αυτό. Σε ένα λειτουργικό σύστημα μικροπυρήνα, μπορείτε να φορτώσετε και να ξεφορτώσετε νέα προγράμματα οδήγησης, συστήματα αρχείων κ.λπ. χωρίς να διακόψετε τη λειτουργία του Η διαδικασία εντοπισμού σφαλμάτων των στοιχείων του πυρήνα είναι πολύ απλοποιημένη, καθώς μια νέα έκδοση του προγράμματος οδήγησης μπορεί να φορτωθεί χωρίς επανεκκίνηση ολόκληρου του λειτουργικού συστήματος. . Τα στοιχεία του πυρήνα του λειτουργικού συστήματος δεν διαφέρουν ουσιαστικά από τα προγράμματα χρηστών, επομένως μπορείτε να χρησιμοποιήσετε συνηθισμένα εργαλεία για να τα διορθώσετε. Η αρχιτεκτονική του μικροπυρήνα βελτιώνει την αξιοπιστία του συστήματος επειδή μια αποτυχία σε επίπεδο προγράμματος χωρίς προνόμια είναι λιγότερο επικίνδυνη από μια αποτυχία σε επίπεδο λειτουργίας πυρήνα.

    Και για να προσθέσετε ένα πρόγραμμα οδήγησης για μια συγκεκριμένη συσκευή σε ένα λειτουργικό σύστημα με μικροπυρήνα, δεν χρειάζεται να μεταγλωττίσετε ξανά ολόκληρο τον πυρήνα, αλλά μόνο να μεταγλωττίσετε ξεχωριστά αυτό το πρόγραμμα οδήγησης και να το εκτελέσετε στο χώρο χρήστη.

    Ταυτόχρονα, η αρχιτεκτονική του λειτουργικού συστήματος μικροπυρήνα εισάγει πρόσθετο κόστος ανταλλαγής μηνυμάτων, το οποίο επηρεάζει αρνητικά την απόδοση. Προκειμένου ένα λειτουργικό σύστημα μικροπυρήνα να είναι τόσο γρήγορο όσο τα λειτουργικά συστήματα που βασίζονται σε έναν μονολιθικό πυρήνα, είναι απαραίτητο να σχεδιάσουμε πολύ προσεκτικά τη διαίρεση του συστήματος σε στοιχεία, προσπαθώντας να ελαχιστοποιήσουμε την αλληλεπίδραση μεταξύ τους. Έτσι, η κύρια δυσκολία στη δημιουργία λειτουργικών συστημάτων μικροπυρήνα είναι η ανάγκη για πολύ προσεκτικό σχεδιασμό.

    Ένα κλασικό παράδειγμα συστήματος μικροπυρήνων είναι το Symbian OS. Αυτό είναι ένα παράδειγμα ενός κοινού και αποδεδειγμένου λειτουργικού συστήματος μικροπυρήνα (και ξεκινώντας από το Symbian OS v8.1 και νανοπυρήνα).

    Οι δημιουργοί του Symbian OS κατάφεραν να συνδυάσουν αποτελεσματικότητα και εννοιολογική αρμονία, παρά το γεγονός ότι οι σύγχρονες εκδόσεις αυτού του συστήματος παρέχουν εκτεταμένες δυνατότητες, συμπεριλαμβανομένων εργαλείων για εργασία με δεδομένα ροής, στοίβες πρωτοκόλλων που είναι κρίσιμες για την καθυστέρηση του πυρήνα, γραφικά και βίντεο υψηλής ανάλυσης) . Οι προγραμματιστές Symbian έχουν μετακινήσει σχεδόν όλες τις εργασίες εφαρμογών (δηλαδή, πέρα ​​από την αρμοδιότητα του πυρήνα) σε λειτουργικές μονάδες διακομιστή που λειτουργούν στο χώρο διευθύνσεων χρήστη.

    Στην έκδοση 3.x των Windows NT, χρησιμοποιήθηκε μια αρχιτεκτονική μικροπυρήνα με μια διαδικασία υπηρεσίας για το υποσύστημα γραφικών και τη διεπαφή χρήστη. Συγκεκριμένα, το πρόγραμμα οδήγησης γραφικών φορτώθηκε στο πλαίσιο της διαδικασίας εξυπηρέτησης και όχι στον πυρήνα. Ξεκινώντας από την έκδοση 4, αυτό εγκαταλείφθηκε, η διαδικασία υπηρεσίας διατηρήθηκε μόνο για τη διαχείριση των παραθύρων της κονσόλας γραμμής εντολών και το ίδιο το υποσύστημα γραφικών, μαζί με το πρόγραμμα οδήγησης υλικού (συμπεριλαμβανομένων των τρισδιάστατων γραφικών) μετακινήθηκαν σε μια ειδικά ξεχωριστή περιοχή του πυρήνα του λειτουργικού συστήματος.

    Το λειτουργικό σύστημα Windows CE (και συγκροτήματα που δημιουργήθηκαν στη βάση του, όπως τα Windows Mobile), όντας σχεδόν πλήρως συμβατά (ως υποσύνολο) με τα Windows NT όσον αφορά τις κλήσεις και τις μεθόδους προγραμματισμού εφαρμογών, είναι ωστόσο εντελώς διαφορετικό από τα Windows NT στην εσωτερική αρχιτεκτονική και είναι microkernel OS με την αφαίρεση όλων των προγραμμάτων οδήγησης συσκευών, των στοίβων δικτύου και του υποσυστήματος γραφικών σε διαδικασίες εξυπηρέτησης.

    Μειονέκτημα - το τέλος για την αναγκαστική "εναλλαγή" διεργασιών στον πυρήνα (εναλλαγή περιβάλλοντος). Αυτό το γεγονός ουσιαστικά εξηγεί τις δυσκολίες στο σχεδιασμό και τη σύνταξη πυρήνων ενός τέτοιου σχεδίου. Αυτές οι ελλείψεις μπορούν να ξεπεραστούν από τα ΛΣ χρησιμοποιώντας αρχιτεκτονική εξωπυρήνων, η οποία αποτελεί περαιτέρω ανάπτυξη της αρχιτεκτονικής μικροπυρήνων.

    δείτε επίσης

    Μικροπυρήνες
    ΛΣ που βασίζεται σε μικροπυρήνα

    Ίδρυμα Wikimedia. 2010.

    Συνώνυμα:

    Δείτε τι είναι ο "Microkernel" σε άλλα λεξικά:

      Μικροπυρήνα... Ορθογραφικό λεξικό-βιβλίο αναφοράς

      Το κεντρικό τμήμα του λειτουργικού συστήματος, το οποίο εκτελεί τις κύριες λειτουργίες διαχείρισης συστήματος: διαχείριση εικονικής μνήμης. Υποστήριξη εκτέλεσης διαδικασίας. οργάνωση της αλληλεπίδρασης διαδικασίας· σέρβις δεδομένων εισόδου/εξόδου και διακοπών. Με… … Οικονομικό Λεξικό- Αυτός ο όρος έχει άλλες έννοιες, βλέπε L4. Αυτό το άρθρο πρέπει να έχει Wikified. Παρακαλώ μορφοποιήστε το σύμφωνα με τους κανόνες μορφοποίησης άρθρων... Wikipedia

      Αυτός ο όρος έχει άλλες έννοιες, βλέπε Amoeba (έννοιες). Amoeba Developer Andrew Tanenbaum και άλλοι Πηγαίος κώδικας Άνοιγμα Πρώτη έκδοση 1983 Τελευταία έκδοση 5.3 1996 Τύπος πυρήνα Mick ... Wikipedia

      Το Spring είναι ένα πειραματικό αντικειμενοστραφή λειτουργικό σύστημα μικροπυρήνα που αναπτύχθηκε από τη Sun Microsystems στις αρχές της δεκαετίας του 1990. Χρησιμοποιούσε αρχές παρόμοιες με αυτές που χρησιμοποιούνται στον πυρήνα Mach. Η ανάπτυξη σταμάτησε στη μέση... Wikipedia

      Αυτή είναι μια λίστα με γνωστά λειτουργικά συστήματα. Τα λειτουργικά συστήματα μπορούν να ταξινομηθούν με βάση την υποκείμενη τεχνολογία (όμοια με το UNIX, απόγονοι μετά το UNIX/UNΙΧ), τον τύπο άδειας (ιδιόκτητο ή ανοιχτού κώδικα), είτε βρίσκονται σε εξέλιξη (παλαιού τύπου ή... Wikipedia

      Αυτός ο όρος έχει άλλες έννοιες, βλέπε Core. Ο πυρήνας είναι το κεντρικό τμήμα του λειτουργικού συστήματος (OS), παρέχοντας εφαρμογές με συντονισμένη πρόσβαση στους πόρους του υπολογιστή, όπως ο χρόνος επεξεργαστή, η μνήμη και το εξωτερικό υλικό... ... Wikipedia

      Μια λίστα υπηρεσιών με άρθρα που δημιουργήθηκαν για να συντονίσουν τις εργασίες για την ανάπτυξη του θέματος. Αυτή η προειδοποίηση δεν έχει οριστεί... Wikipedia

      Μια λίστα υπηρεσιών με άρθρα που δημιουργήθηκαν για να συντονίσουν τις εργασίες για την ανάπτυξη του θέματος. Αυτή η προειδοποίηση δεν ισχύει για ενημερωτικά άρθρα, λίστες και γλωσσάρια... Wikipedia

      3.1.3a Προγραμματιστής Andrew Tanenbaum ... Wikipedia

      QNX 6 desktop (Neutrino) από την ... Wikipedia

    Στα λειτουργικά συστήματα μικροπυρήνα, μπορεί κανείς να διακρίνει μια κεντρική συμπαγή μονάδα που ανήκει στο εποπτικό τμήμα του συστήματος. Αυτή η μονάδα είναι πολύ μικρή σε μέγεθος και εκτελεί έναν σχετικά μικρό αριθμό λειτουργιών ελέγχου, αλλά επιτρέπει τη μεταφορά του ελέγχου σε άλλες μονάδες ελέγχου, οι οποίες θα εκτελέσουν την απαιτούμενη λειτουργία. Μικροπυρήνα- αυτό είναι το ελάχιστο κύριο (πυρήνας) μέρος του λειτουργικού συστήματος, που χρησιμεύει ως βάση για αρθρωτές και φορητές επεκτάσεις. Ο ίδιος ο μικροπυρήνας είναι μια λειτουργική μονάδα λογισμικού συστήματος που εκτελείται στην κατάσταση υψηλότερης προτεραιότητας του υπολογιστή και επικοινωνεί με το υπόλοιπο λειτουργικό σύστημα, το οποίο θεωρείται ένα σύνολο εφαρμογών (υπηρεσιών) διακομιστή.

    Στη δεκαετία του '90 του 20ου αιώνα, ήταν μια πολύ κοινή πεποίθηση ότι τα περισσότερα λειτουργικά συστήματα των επόμενων γενεών θα κατασκευάζονταν ως μικροπυρήνα. Ωστόσο, η πρακτική δείχνει ότι αυτό δεν είναι απολύτως αλήθεια. Οι προγραμματιστές θέλουν να έχουν έναν συμπαγή μικροπυρήνα, αλλά ταυτόχρονα να περιλαμβάνουν όσο το δυνατόν περισσότερες λειτουργίες που εκτελούνται απευθείας από αυτήν την ενότητα λογισμικού. Επειδή η εκτέλεση της ζητούμενης συνάρτησης από μια άλλη μονάδα που καλείται από τον μικροπυρήνα οδηγεί σε πρόσθετες καθυστερήσεις και πρόσθετες επιπλοκές. Επιπλέον, υπάρχουν πολλές διαφορετικές απόψεις σχετικά με τον τρόπο οργάνωσης των υπηρεσιών λειτουργικού συστήματος σε σχέση με τον μικροπυρήνα. πώς να σχεδιάσετε προγράμματα οδήγησης συσκευών για να επιτύχετε τη μεγαλύτερη απόδοση, αλλά να διατηρήσετε τις λειτουργίες του προγράμματος οδήγησης όσο το δυνατόν πιο ανεξάρτητες από το υλικό. εάν οι λειτουργίες εκτός πυρήνα πρέπει να εκτελούνται στο χώρο του πυρήνα ή στο χώρο χρήστη. Αξίζει να κρατήσετε τα προγράμματα των υπαρχόντων υποσυστημάτων (για παράδειγμα, UNIX) ή είναι καλύτερα να τα απορρίψετε όλα και να ξεκινήσετε από την αρχή.

    Η κύρια ιδέα πίσω από την τεχνολογία μικροπυρήνα είναι να δημιουργηθεί το απαραίτητο περιβάλλον στο ανώτατο επίπεδο της ιεραρχίας από το οποίο να είναι εύκολα προσβάσιμη όλες οι λειτουργίες σε επίπεδο υλικού. Σε αυτή την περίπτωση, ο μικροπυρήνας είναι το σημείο εκκίνησης για τη δημιουργία όλων των άλλων λειτουργικών μονάδων συστήματος. Όλες αυτές οι άλλες ενότητες, που υλοποιούν τις απαραίτητες λειτουργίες για το σύστημα, καλούνται από τον μικροπυρήνα και εκτελούν έναν ρόλο υπηρεσίας. Ταυτόχρονα, λαμβάνουν την κατάσταση μιας κανονικής διαδικασίας ή εργασίας. Μπορούμε να πούμε ότι η αρχιτεκτονική του μικροπυρήνα αντιστοιχεί στην τεχνολογία πελάτη-διακομιστή. Αυτή η τεχνολογία είναι που καθιστά δυνατή την εφαρμογή των παραπάνω αρχών σχεδιασμού λειτουργικών συστημάτων σε μεγαλύτερο βαθμό και με λιγότερη εργασία.

    Το πιο σημαντικό καθήκον της ανάπτυξης ενός μικροπυρήνα είναι η επιλογή των βασικών αρχικών στοιχείων που πρέπει να υπάρχουν στον μικροπυρήνα για να παρέχουν την απαραίτητη και επαρκή υπηρεσία. Ο μικροπυρήνας περιέχει και εκτελεί την ελάχιστη ποσότητα κώδικα που απαιτείται για την υλοποίηση βασικών κλήσεων συστήματος. Αυτές οι κλήσεις περιλαμβάνουν τη μετάδοση μηνυμάτων και άλλη επικοινωνία μεταξύ διεργασιών εξωτερικών του μικροπυρήνα, υποστήριξη για διαχείριση διακοπών και μια σειρά από άλλες πολύ λίγες λειτουργίες. Οι υπόλοιπες λειτουργίες συστήματος χαρακτηριστικές των «κανονικών» λειτουργικών συστημάτων (χωρίς μικροπυρήνα) παρέχονται ως αρθρωτές πρόσθετες διεργασίες που αλληλεπιδρούν κυρίως μεταξύ τους και αλληλεπιδρούν μέσω της μετάδοσης μηνυμάτων.

    Για τα περισσότερα λειτουργικά συστήματα μικροπυρήνα, η βάση για αυτήν την αρχιτεκτονική είναι η τεχνολογία μικροπυρήνα Mach. Αυτό το λειτουργικό σύστημα δημιουργήθηκε στο Πανεπιστήμιο Carnegie Mellon και πολλοί προγραμματιστές ακολούθησαν το παράδειγμά του.

    Οι λειτουργίες που εκτελούνται από τον μικροπυρήνα είναι περιορισμένες προκειμένου να μειωθεί το μέγεθός του και να μεγιστοποιηθεί η ποσότητα του κώδικα που εκτελείται ως πρόγραμμα εφαρμογής. Ο μικροπυρήνας περιλαμβάνει μόνο εκείνες τις λειτουργίες που απαιτούνται για τον καθορισμό ενός συνόλου περιβαλλόντων αφηρημένης επεξεργασίας για προγράμματα εφαρμογών και για να επιτρέψουν στις εφαρμογές να συνεργαστούν. Ως αποτέλεσμα, ο μικροπυρήνας παρέχει μόνο πέντε διαφορετικούς τύπους υπηρεσιών:

    • εικονική διαχείριση μνήμης?
    • υποστήριξη για θέσεις εργασίας και νήματα.
    • αλληλεπίδραση μεταξύ διαδικασιών (Inter-Process Communication, IPC).
    • Υποστήριξη εισόδου/εξόδου και διαχείριση διακοπής.
    • υπηρεσίες κεντρικού υπολογιστή και επεξεργαστή.

    Άλλα υποσυστήματα και λειτουργίες του λειτουργικού συστήματος, όπως συστήματα αρχείων, υποστήριξη εξωτερικών συσκευών και παραδοσιακές διεπαφές λογισμικού, συσκευάζονται ως υπηρεσίες συστήματος ή έχουν την κατάσταση συνηθισμένων εργασιών επεξεργασίας. Αυτά τα προγράμματα εκτελούνται ως εφαρμογές μικροπυρήνα.

    Χρησιμοποιώντας την έννοια των πολλαπλών νημάτων εκτέλεσης ανά εργασία, ο μικροπυρήνας δημιουργεί ένα περιβάλλον εφαρμογής που επιτρέπει τη χρήση πολυεπεξεργαστών. δεν είναι καθόλου απαραίτητο το μηχάνημα να είναι πολυεπεξεργαστή: σε ένα μηχάνημα ενός επεξεργαστή, διαφορετικά νήματα απλώς εκτελούνται σε διαφορετικούς χρόνους. Όλη η υποστήριξη που απαιτείται για πολυεπεξεργαστικές μηχανές συγκεντρώνεται σε έναν σχετικά μικρό και απλό μικροπυρήνα.

    Λόγω του μικρού τους μεγέθους και της ικανότητάς τους να υποστηρίζουν άλλες υπηρεσίες ως κανονικές διεργασίες που εκτελούνται παράλληλα με προγράμματα εφαρμογών, οι ίδιοι οι μικροπυρήνες είναι απλούστεροι από τους πυρήνες των μονολιθικών ή αρθρωτών λειτουργικών συστημάτων. Με έναν μικροπυρήνα, το εποπτικό τμήμα του λειτουργικού συστήματος αναλύεται σε αρθρωτά μέρη που μπορούν να διαμορφωθούν με διάφορους τρόπους, επιτρέποντας τη δημιουργία μεγαλύτερων συστημάτων προσθέτοντας εξαρτήματα σε μικρότερα. Για παράδειγμα, κάθε ουδέτερη υπηρεσία ανεξάρτητη από το υλικό είναι λογικά ξεχωριστή και μπορεί να ρυθμιστεί με διαφορετικούς τρόπους. Οι μικροπυρήνες διευκολύνουν επίσης την υποστήριξη πολυεπεξεργαστών δημιουργώντας ένα τυπικό περιβάλλον λογισμικού που μπορεί να χρησιμοποιήσει πολλούς επεξεργαστές εάν υπάρχουν, αλλά να εκτελείται σε έναν εάν δεν υπάρχουν. Ο εξειδικευμένος κώδικας για πολυεπεξεργαστές περιορίζεται στον ίδιο τον μικροπυρήνα. Επιπλέον, δίκτυα μικροπυρήνων που επικοινωνούν μεταξύ τους μπορούν να χρησιμοποιηθούν για την παροχή υποστήριξης λειτουργικού συστήματος για την αναδυόμενη τάξη των μαζικά παράλληλων μηχανών.

    Σε ορισμένες περιπτώσεις, η χρήση της προσέγγισης του μικροπυρήνα στην πράξη συναντά ορισμένες δυσκολίες, οι οποίες εκδηλώνονται με μια μικρή επιβράδυνση στην ταχύτητα εκτέλεσης των κλήσεων του συστήματος κατά τη διέλευση μηνυμάτων μέσω του μικροπυρήνα σε σύγκριση με την κλασική προσέγγιση. Από την άλλη, μπορεί να ειπωθεί το αντίθετο. Επειδή οι μικροπυρήνες είναι μικροί και εξαιρετικά βελτιστοποιημένοι, υπό ορισμένες συνθήκες μπορούν να παρέχουν την απόδοση σε πραγματικό χρόνο που απαιτείται για τον έλεγχο της συσκευής και τις επικοινωνίες υψηλής ταχύτητας. Τέλος, οι καλά δομημένοι μικροπυρήνες παρέχουν ένα στρώμα μόνωσης ενάντια στις διαφορές υλικού που δεν καλύπτονται από τη χρήση γλωσσών προγραμματισμού υψηλού επιπέδου. Με αυτόν τον τρόπο, διευκολύνουν τη μεταφορά κώδικα και αυξάνουν το επίπεδο επαναχρησιμοποίησης του κώδικα.

    Ο πιο σημαντικός εκπρόσωπος των λειτουργικών συστημάτων μικροπυρήνα είναι το λειτουργικό σύστημα QNX σε πραγματικό χρόνο. Ο μικροπυρήνας QNX υποστηρίζει μόνο προγραμματισμό και αποστολή διεργασιών, επικοινωνία διεργασιών, χειρισμό διακοπών και υπηρεσίες δικτύου χαμηλότερου επιπέδου. Αυτός ο μικροπυρήνας παρέχει μόνο μερικές δεκάδες κλήσεις συστήματος, αλλά χάρη σε αυτό μπορεί να βρίσκεται εξ ολοκλήρου στην εσωτερική κρυφή μνήμη ακόμη και επεξεργαστών όπως ο Intel 486. Όπως είναι γνωστό, διαφορετικές εκδόσεις αυτού του λειτουργικού συστήματος είχαν διαφορετικά μεγέθη πυρήνα - από 8 έως 46 KB.