Гибридное ядро: различия между версиями

[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
орфография
м Откат правок 213.79.105.98 (обс) к версии TXiKiBoT
Строка 8:
Все рассмотренные подходы к построению операционных систем имеют свои достоинства и недостатки. В большинстве случаев современные операционные системы используют различные комбинации этих подходов. Так, например сейчас, ядро «Linux» представляет собой [[монолитное ядро|монолитную систему]] с отдельными элементами [[модульное ядро|модульного ядра]]. При компиляции ядра можно разрешить динамическую загрузку и выгрузку очень многих компонентов ядра — так называемых модулей. В момент загрузки модуля его код загружается на уровне системы и связывается с остальной частью ядра. Внутри модуля могут использоваться любые экспортируемые ядром функции.
 
Существуют варианты ОС [[GNU]], в которых вместо монолитного ядра применяется ядро Mach (такое же, как в Hurd), а поверх него в пользовательском пространстве работают те же самые процессы, которые при использовании [[Linux (ядро)|Linux]] были бы частью ядра.
пойду почищу зубы
Другим примером смешанного подхода может служить возможность запуска операционной системы с монолитным ядром под управлением микроядра. Так устроены [[4.4BSD (операционной системы)|4.4BSD]] и MkLinux, основанные на микроядре [[Mach]]. Микроядро обеспечивает управление виртуальной памятью и работу низкоуровневых драйверов. Все остальные функции, в том числе взаимодействие с прикладными программами, осуществляется монолитным ядром. Данный подход сформировался в результате попыток использовать преимущества микроядерной архитектуры, сохраняя по возможности хорошо отлаженный код монолитного ядра.
 
Наиболее тесно элементы микроядерной архитектуры и элементы монолитного ядра переплетены в ядре Windows NT. Хотя Windows NT часто называют микроядерной операционной системой<ref name=Microsoft_2007>{{cite web | title = MS Windows NT Kernel-mode User and GDI White Paper | publisher = Microsoft Corporation | date = 2007 | url = http://www.microsoft.com/technet/archive/ntwrkstn/evaluate/featfunc/kernelwp.mspx?mfr=true | accessdate = 2007-03-01}}</ref>, это не совсем так. Микроядро NT слишком велико (более 1 Мбайт, кроме того, в ядре системы находится, например, ещё и модуль графического интерфейса), чтобы носить приставку «микро». Компоненты ядра Windows NT располагаются в вытесняемой памяти и взаимодействуют друг с другом путем передачи сообщений<ref name="Microsoft_2007"/><ref name=Silberschatz_2005>{{cite book | last = Silberschatz | first = Abraham | coauthors = Peter Baer Galvin and Greg Gagne | title = Operating System Concepts; 7th Edition | publisher = John Wiley & Sons Inc | date = 2005 | location = Hoboken, New Jersey | url = http://higheredbcs.wiley.com/legacy/college/silberschatz/0471694665/appendices/appb.pdf | isbn = 978-0-471-69466-3}}</ref>, как и положено в микроядерных операционных системах. В то же время все компоненты ядра работают в одном адресном пространстве и активно используют общие структуры данных, что свойственно операционным системам с монолитным ядром. По мнению специалистов Microsoft{{Нет АИ|18|05|2009}}, причина проста: чисто микроядерный дизайн коммерчески невыгоден, поскольку неэффективен.