Перайсці да зместу

Гібрыднае ядро

З Вікіпедыі, свабоднай энцыклапедыі

Гібрыднае ядро (англ.: Hybrid kernel) — мадыфікаванае мікраядро, здольнае запускаць «неістотныя» часткі ў прасторы ядра, для паскарэння работы.

Маюць «гібрыдныя» перавагі і недахопы.

Structure of monolithic kernel, microkernel and hybrid kernel-based operating systems

Усе разгледжаныя падыходы да стварэння аперацыйных сістэм маюць свае перавагі і недахопы. У большасці выпадкаў сучасныя аперацыйныя сістэмы ужываюць розныя камбінацыі гэтых падыходаў. Напрыклад, зараз ядро «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 можна з поўным правам назваць гібрыднай аперацыйнай сістэмай.

Змяшанае ядро, у прынцыпе, павінна аб'ядноўваць перавагі маналітнага ядра і мікраядра: падавалася б, мікраядро і маналітнае ядро — крайнасці, а змяшанае — залатая сярэдзіна. У іх магчыма дадаваць драйверы прылад двума спосабамі: і ўнутр ядра, і ў карыстальніцкую прастору. Але на практыцы канцэпцыя змяшанага ядра часта падкрэслівае не толькі перавагі, але і недахопы абодвух тыпаў ядраў.

  1. а б MS Windows NT Kernel-mode User and GDI White Paper. Microsoft Corporation (2 снежня 2007). Архівавана з першакрыніцы 12 лютага 2012. Праверана 1 сакавіка 2007.
  2. 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.
  3. An Overview of the NetWare Operating System(2007-02-07)