Гібрыднае ядро
Гібрыднае ядро (англ.: Hybrid kernel) — мадыфікаванае мікраядро, здольнае запускаць «неістотныя» часткі ў прасторы ядра, для паскарэння работы.
Маюць «гібрыдныя» перавагі і недахопы.
Усе разгледжаныя падыходы да стварэння аперацыйных сістэм маюць свае перавагі і недахопы. У большасці выпадкаў сучасныя аперацыйныя сістэмы ужываюць розныя камбінацыі гэтых падыходаў. Напрыклад, зараз ядро «Linux» уяўляе сабой маналітную сістэму з асобнымі элементамі модульнага ядра. Пры кампіляцыі ядра можна дазволіць дынамічную загрузку і выгрузку вельмі многіх кампанентаў ядра — так званых модуляў. У момант загрузкі модуля яго код загружаецца на ўзроўні сістэмы і звязваецца з астатняй часткай ядра. Унутры модуля могуць ужывацца любыя экспартаваныя ядром функцыі.
Існуюць варыянты АС GNU (Debian GNU/Hurd), у якіх замест маналітнага ядра ўжываецца ядро Mach (такое ж, як у Hurd), а паверх яго, у карыстальніцкай прасторы, працуюць тыя ж самыя працэсы, якія пры ўжыванні Linux былі б часткай ядра. Іншым прыкладам змешанага падыходу можа быць магчымасць запуску аперацыйнай сістэмы з маналітным ядром пад кіраваннем мікраядра. Так збудаваны 4.4BSD і MkLinux, аснаваныя на мікраядры Mach. Мікраядро забяспечвае кіраванне віртуальнай памяццю і працу нізкаўзроўневых драйвераў. Усе астатнія функцыі, у тым ліку ўзаемадзеянне з прыкладнымі праграмамі, ажыццяўляюцца маналітным ядром. Гэты падыход сфармаваўся ў выніку спробаў ужываць перавагі мікраядравай архітэктуры, захоўваючы па магчымасці добра адладжаны код маналітнага ядра.
Найбольш шчыльна элементы мікраядравай архітэктуры і элементы маналітнага ядра пераплецены ў ядры Windows NT. Хоць Windows NT часта завуць мікраядравай аперацыйнай сістэмай[1], гэта не зусім так. Мікраядро NT занадта вялікае (болей за 1 Мбайт, акрамя таго, у ядры сістэмы знаходзіцца, напрыклад, яшчэ і модуль графічнага інтэрфейсу), каб мець прыстаўку «мікра». Кампаненты ядра Windows NT змяшчаюцца ў выцясняльнай памяці і ўзаемадзейнічаюць адзін з адным праз перадачу паведамленняў[1][2], як і мае быць у мікраядравых аперацыйных сістэмах. У той жа час усе кампаненты ядра працуюць у адной адраснай прасторы і актыўна выкарыстоўваюць агульныя структуры даных, што ўласціва аперацыйным сістэмам з маналітным ядром. Прычына простая: выключна мікраядравы дызайн камерцыйна менш выгадны, бо менш эфектыўны (за кошт накладных выдаткаў на перадачу паведамленняў там, дзе можна было б абысціся выклікамі функцый).
Такім чынам, Windows NT можна з поўным правам назваць гібрыднай аперацыйнай сістэмай.
Змяшанае ядро, у прынцыпе, павінна аб'ядноўваць перавагі маналітнага ядра і мікраядра: падавалася б, мікраядро і маналітнае ядро — крайнасці, а змяшанае — залатая сярэдзіна. У іх магчыма дадаваць драйверы прылад двума спосабамі: і ўнутр ядра, і ў карыстальніцкую прастору. Але на практыцы канцэпцыя змяшанага ядра часта падкрэслівае не толькі перавагі, але і недахопы абодвух тыпаў ядраў.
Прыклады
[правіць | правіць зыходнік]- Syllable
- BeOS
- Haiku
- XNU (на аснове Darwin, выкарыстоўваецца ў Mac OS X)
- BSD-заснаваныя
- DragonFly BSD (першае з сямейства BSD мікраядро, аснаванае не на Mach)
- NetWare[3]
- Plan 9
- Inferno
- NT kernel (выкарыстоўваецца ў Windows NT, 2000, 2003; XP, Vista, 7, 8)
- ReactOS
Крыніцы
[правіць | правіць зыходнік]- ↑ а б MS Windows NT Kernel-mode User and GDI White Paper . Microsoft Corporation (2 снежня 2007). Архівавана з першакрыніцы 12 лютага 2012. Праверана 1 сакавіка 2007.
- ↑ Silberschatz, Abraham; Galvin, Peter Baer; Gagne, Greg (2005). Operating System Concepts; 7th Edition (PDF). Hoboken, New Jersey: John Wiley & Sons Inc. ISBN 978-0-471-69466-3.
- ↑ An Overview of the NetWare Operating System(2007-02-07)