Συγκριτικό διάγραμμα
Βάση σύγκρισης | Microkernel | Μονόλιθος πυρήνα |
---|---|---|
Βασικός | Στις υπηρεσίες χρηστών microkernel και στον πυρήνα, οι υπηρεσίες διατηρούνται σε χωριστό χώρο διευθύνσεων. | Στον μονολιθικό πυρήνα, οι υπηρεσίες χρηστών και οι υπηρεσίες πυρήνα διατηρούνται στον ίδιο χώρο διευθύνσεων. |
Μέγεθος | Τα μικροκέρια είναι μικρότερου μεγέθους. | Ο μονολιθικός πυρήνας είναι μεγαλύτερος από τον μικροκλένιο. |
Εκτέλεση | Αργή εκτέλεση. | Γρήγορη εκτέλεση. |
Εκτατος | Ο μικροκείδος είναι εύκολα επεκτάσιμος. | Ο μονολιθικός πυρήνας είναι δύσκολο να επεκταθεί. |
Ασφάλεια | Εάν μια υπηρεσία διακοπεί, επηρεάζει την λειτουργία του microkernel. | Εάν διακοπεί μια υπηρεσία, ολόκληρο το σύστημα καταρρέει σε μονολιθικό πυρήνα. |
Κώδικας | Για να γράψετε ένα microkernel, απαιτείται περισσότερος κώδικας. | Για να γράψετε έναν μονολιθικό πυρήνα, απαιτείται λιγότερος κωδικός. |
Παράδειγμα | QNX, Symbian, L4Linux, Singularity, K42, Mac OS X, Ακεραιότητα, PikeOS, HURD, Minix και Coyotos. | Linux, BSD (FreeBSD, OpenBSD, NetBSD), Microsoft Windows (95, 98, Me), Solaris, OS-9, AIX, HP-UX, DOS, OpenVMS, XTS-400 κλπ. |
Ορισμός Microkernel
Το Microkernel είναι ένας πυρήνας που διαχειρίζεται όλους τους πόρους του συστήματος. Αλλά σε ένα microkernel, οι υπηρεσίες χρηστών και οι υπηρεσίες του πυρήνα υλοποιούνται σε διαφορετικό χώρο διευθύνσεων. Οι υπηρεσίες χρήστη διατηρούνται στο χώρο διεύθυνσης χρήστη και οι υπηρεσίες του πυρήνα διατηρούνται στο χώρο διευθύνσεων του πυρήνα . Αυτό μειώνει το μέγεθος του πυρήνα και μειώνει περαιτέρω το μέγεθος του λειτουργικού συστήματος.
Εκτός από την επικοινωνία μεταξύ εφαρμογής και υλικού του συστήματος, το microkernel παρέχει ελάχιστες υπηρεσίες διαχείρισης διαδικασιών και μνήμης. Η επικοινωνία μεταξύ του προγράμματος-πελάτη / εφαρμογής και των υπηρεσιών που εκτελούνται στον χώρο διεύθυνσης χρηστών καθιερώνεται μέσω της μετάδοσης μηνυμάτων. Ποτέ δεν αλληλεπιδρούν άμεσα. Αυτό μειώνει την ταχύτητα εκτέλεσης του microkernel.
Σε ένα microkernel, οι υπηρεσίες χρηστών απομονώνονται από τις υπηρεσίες του πυρήνα, οπότε αν αποτύχει κάποια υπηρεσία χρηστών, δεν επηρεάζει την υπηρεσία του πυρήνα και κατά συνέπεια το λειτουργικό σύστημα παραμένει ανεπηρέαστο . Αυτό είναι ένα από τα πλεονεκτήματα του microkernel. Ο μικροκείδος είναι εύκολα επεκτάσιμος . Εάν οι νέες υπηρεσίες πρόκειται να προστεθούν, προστίθενται στο χώρο διεύθυνσης χρήστη και επομένως, ο χώρος του πυρήνα δεν απαιτεί καμία τροποποίηση. Το microkernel είναι επίσης εύκολα φορητό, ασφαλές και αξιόπιστο.
Ορισμός του μονολιθικού πυρήνα
Ο μονολιθικός πυρήνας διαχειρίζεται τους πόρους του συστήματος μεταξύ εφαρμογής και υλικού του συστήματος. Ωστόσο, σε αντίθεση με το microkernel, οι υπηρεσίες χρηστών και οι υπηρεσίες πυρήνα υλοποιούνται υπό τον ίδιο χώρο διευθύνσεων. Αυτό αυξάνει το μέγεθος του πυρήνα αυξάνει περαιτέρω το μέγεθος του λειτουργικού συστήματος.
Ο μονολιθικός πυρήνας παρέχει προγραμματισμό CPU, διαχείριση μνήμης, διαχείριση αρχείων και άλλες λειτουργίες του λειτουργικού συστήματος μέσω κλήσεων συστήματος. Καθώς οι υπηρεσίες χρηστών και οι υπηρεσίες του πυρήνα βρίσκονται και στον ίδιο χώρο διευθύνσεων, αυτό οδηγεί στο γρήγορο λειτουργικό σύστημα εκτέλεσης.
Ένα από τα μειονεκτήματα του μονολιθικού πυρήνα είναι εάν κάποια υπηρεσία αποτύχει σε ολόκληρο το σύστημα έχει καταρρεύσει. Εάν μια νέα υπηρεσία πρόκειται να προστεθεί στον μονολιθικό πυρήνα, ολόκληρο το λειτουργικό σύστημα πρόκειται να τροποποιηθεί.
Βασικές διαφορές μεταξύ του πυρήνα Microkernel και του μονολιθικού πυρήνα
- Το βασικό σημείο στο οποίο διακρίνεται ο πυρήνας microkernel και ο μονολιθικός πυρήνας είναι ότι το microkernel υλοποιεί υπηρεσίες χρηστών και υπηρεσίες πυρήνα σε διαφορετικούς χώρους διευθύνσεων και μονολιθικό πυρήνα υλοποιούν τόσο υπηρεσίες χρηστών όσο και υπηρεσίες πυρήνα κάτω από τον ίδιο χώρο διευθύνσεων .
- Το μέγεθος του microkernel είναι μικρό, καθώς μόνο οι υπηρεσίες του πυρήνα βρίσκονται στον χώρο διευθύνσεων του πυρήνα. Ωστόσο, το μέγεθος του μονολιθικού πυρήνα είναι συγκριτικά μεγαλύτερο από το microkernel επειδή και οι δύο υπηρεσίες πυρήνα και οι υπηρεσίες χρηστών βρίσκονται στον ίδιο χώρο διευθύνσεων.
- Η εκτέλεση του μονολιθικού πυρήνα είναι ταχύτερη καθώς η επικοινωνία μεταξύ της εφαρμογής και του υλικού δημιουργείται χρησιμοποιώντας την κλήση συστήματος . Από την άλλη πλευρά, η εκτέλεση του microkernel είναι αργή καθώς η επικοινωνία μεταξύ της εφαρμογής και του υλικού του συστήματος καθιερώνεται μέσω της μετάδοσης μηνυμάτων .
- Είναι εύκολο να επεκταθεί το microkernel επειδή πρέπει να προστεθεί νέα υπηρεσία στο χώρο διεύθυνσης χρήστη που είναι απομονωμένη από το χώρο του πυρήνα, οπότε ο πυρήνας δεν χρειάζεται να τροποποιηθεί. Το αντίθετο συμβαίνει με τον μονολιθικό πυρήνα εάν πρόκειται να προστεθεί μια νέα υπηρεσία στον μονολιθικό πυρήνα, τότε ο ολόκληρος πυρήνας πρέπει να τροποποιηθεί.
- Το Microkernel είναι πιο ασφαλές από τον μονολιθικό πυρήνα, σαν να αποτυγχάνει μια υπηρεσία στο microkernel το λειτουργικό σύστημα παραμένει ανεπηρέαστο. Από τα άλλα χέρια, εάν αποτύχει μια υπηρεσία στον μονολιθικό πυρήνα, ολόκληρο το σύστημα αποτυγχάνει.
- Ο σχεδιασμός του μονολιθικού πυρήνα απαιτεί μικρότερο κώδικα, ο οποίος οδηγεί περαιτέρω σε λιγότερα σφάλματα. Από τα άλλα χέρια, ο σχεδιασμός μικροπυρήνων χρειάζεται περισσότερο κώδικα ο οποίος οδηγεί σε περισσότερα σφάλματα.
Συμπέρασμα:
Το Microkernel είναι πιο αργό αλλά πιο ασφαλές και αξιόπιστο από τον μονολιθικό πυρήνα. Ο μονολιθικός πυρήνας είναι γρήγορος αλλά λιγότερο ασφαλής καθώς κάθε αποτυχία σέρβις μπορεί να οδηγήσει σε συντριβή του συστήματος.