Сравнительная таблица
Основа для сравнения | Microkernel | Монолитное ядро |
---|---|---|
основной | В пользовательских службах и ядре микроядра службы хранятся в отдельном адресном пространстве. | В монолитном ядре и пользовательские службы, и службы ядра хранятся в одном и том же адресном пространстве. |
Размер | Микроядро меньше по размеру. | Монолитное ядро крупнее микроядра. |
выполнение | Медленное исполнение. | Быстрое исполнение. |
растяжимый | Микроядро легко расширяется. | Монолитное ядро сложно расширить. |
Безопасность | В случае сбоя службы это влияет на работу микроядра. | В случае сбоя службы вся система падает в монолитном ядре. |
Код | Чтобы написать микроядро, требуется больше кода. | Чтобы написать монолитное ядро, требуется меньше кода. |
пример | QNX, Symbian, L4Linux, Singularity, K42, Mac OS X, Integrity, PikeOS, HURD, Minix и Coyotos. | Linux, BSD (FreeBSD, OpenBSD, NetBSD), Microsoft Windows (95, 98, Me), Solaris, OS-9, AIX, HP-UX, DOS, OpenVMS, XTS-400 и т. Д. |
Определение микроядра
Микроядро как ядро управляет всеми системными ресурсами. Но в микроядре пользовательские сервисы и сервисы ядра реализованы в разных адресных пространствах. Пользовательские сервисы хранятся в пользовательском адресном пространстве, а сервисы ядра - в адресном пространстве ядра . Это уменьшает размер ядра и еще больше уменьшает размер операционной системы.
Помимо взаимодействия между приложением и оборудованием системы, микроядро предоставляет минимальные услуги управления процессами и памятью. Связь между клиентской программой / приложением и службами, работающими в адресном пространстве пользователя, устанавливается посредством передачи сообщений. Они никогда не взаимодействуют напрямую. Это снижает скорость выполнения микроядра.
В микроядре пользовательские сервисы изолированы от сервисов ядра, поэтому, если какой-либо пользовательский сервис выходит из строя, это не влияет на сервис ядра и, следовательно, операционная система остается неизменной . Это одно из преимуществ в микроядре. Микроядро легко расширяется . Если новые службы должны быть добавлены, они добавляются в адресное пространство пользователя и, следовательно, пространство ядра не требует каких-либо изменений. Микроядро также легко переносимо, безопасно и надежно.
Определение монолитного ядра
Монолитное ядро управляет системными ресурсами между приложением и оборудованием системы. Но в отличие от микроядра, пользовательские сервисы и сервисы ядра реализованы в одном и том же адресном пространстве. Это увеличивает размер ядра, еще больше увеличивает размер операционной системы.
Монолитное ядро обеспечивает планирование ЦП, управление памятью, управление файлами и другие функции операционной системы через системные вызовы. Поскольку пользовательские службы и службы ядра находятся в одном и том же адресном пространстве, это приводит к быстродействующей операционной системе.
Один из недостатков монолитного ядра заключается в том, что в случае сбоя одного из сервисов происходит сбой всей системы. Если новый сервис должен быть добавлен в монолитное ядро, вся операционная система должна быть изменена.
Ключевые различия между микроядром и монолитным ядром
- Основным моментом, по которому различается микроядро и монолитное ядро, является то, что микроядро реализует пользовательские службы и службы ядра в разных адресных пространствах, а монолитное ядро реализует как пользовательские службы, так и службы ядра в одном и том же адресном пространстве .
- Размер микроядра невелик, поскольку в адресном пространстве ядра находятся только службы ядра. Однако размер монолитного ядра сравнительно больше, чем у микроядра, поскольку и сервисы ядра, и пользовательские сервисы находятся в одном и том же адресном пространстве.
- Выполнение монолитного ядра происходит быстрее, поскольку связь между приложением и оборудованием устанавливается с помощью системного вызова . С другой стороны, выполнение микроядра происходит медленно, поскольку связь между приложением и оборудованием системы устанавливается посредством передачи сообщений .
- Микроядро легко расширить, поскольку новый сервис должен быть добавлен в адресное пространство пользователя, изолированное от пространства ядра, поэтому ядро не требует модификации. Противоположным является случай с монолитным ядром, если новый сервис должен быть добавлен в монолитное ядро, то необходимо изменить все ядро.
- Микроядро является более безопасным, чем монолитное ядро, так как в случае сбоя службы в микроядре операционная система остается неизменной. С другой стороны, в случае сбоя службы в монолитном ядре происходит сбой всей системы.
- Монолитное проектирование ядра требует меньше кода, что приводит к меньшему количеству ошибок. С другой стороны, для проектирования микроядра требуется больше кода, что приводит к большему количеству ошибок.
Заключение:
Микроядро медленнее, но более безопасно и надежно, чем монолитное ядро. Монолитное ядро быстрое, но менее безопасное, так как любой сбой службы может привести к сбою системы.