Мікраядро

[thumb|Архітэктура мікраядра будуецца на праграмах-серверах [Рэжым карыстальніка|карыстальніцкага рэжыма]]
**Мікраядро** — гэта мінімальная рэалізацыя функцый ядра аперацыйнай сістэмы.

Класічныя мікраядры падаюць вельмі невялікі набор нізкаўзроўневых прымітываў, ці сістэмных выклікаў, якія рэалізуюць базавыя сэрвісы аперацыйнай сістэмы.

Да іх належаць:
* кіраванне адраснай прасторай аператыўнай памяці.
* кіраванне адраснай прасторай віртуальнай памяці.
* кіраванне працэсамі і патокамі (выканання).
* сродкі міжпрацэснай камунікацыі.

Усе астатнія сэрвісы АС, у класічных маналітных ядрах, якія падае непасрэдна ядро, у мікраядравых архітэктурах рэалізуюцца у адраснай прасторы карыстальніка (Ring3) і завуцца сэрвісамі. Пракладамі такіх сэрвісаў, што выносяцца ў прастору карыстальніка ў мікраядравых архітэктурах, з’яўляюцца сеткавыя сэрвісы, файлавая сістэма, драйверы.

Асноўная перавага мікраядравай архітэктуры — высокая ступень модульнасці ядра аперацыйнай сістэмы. Гэта істотна спрашчае дадаванне ў яго новых кампанентаў. У мікраядравай аперацыйнай сістэме можна не перапыняючы яе работы загружаць і выгружаць новыя драйверы, файлавыя сістэмы і г. д. Істотна спрашчаецца працэс адладкі кампанентаў ядра, бо новая версія драйвера можа загружацца без перазапуску ўсёй аперацыйнай сістэмы. Кампаненты ядра аперацыйнай сістэмы нічым прынцыпова не адрозніваюцца ад карыстальніцкіх праграм, таму для іх адладкі можна ўжываць звычайныя сродкі. Мікраядравая архітэктура паляпшае надзейнасць сістэмы, бо памылка на ўзроўні непрывілеяванай праграмы менш небяспечная, чым памылка на ўзроўні ядра.

Каб дадаць у АС з мікраядром драйвер якой-небудзь прылады, не трэба перакампіляваць усё ядро, а трэба толькі асобна адкампіляваць гэты драйвер і запусціць яго ў карыстальніцкай прасторы.

У той жа час мікраядравая архітэктура аперацыйнай сістэмы стварае дадатковыя накладныя выдаткі, звязаныя з абменам паведамленнямі, што адмоўна ўплывае на прадукцыйнасць. Для таго каб мікраядравая аперацыйная сістэма па хуткасці не саступала аперацыйным сістэмам на базе маналітнага ядра, неабходна вельмі акуратна праектаваць разбіццё сістэмы на кампаненты, імкнучыся мінімізаваць узаемадзеянні паміж імі. Такім чынам, асноўная складанасць пры стварэнні мікраядравых аперацыйных сістэм — неабходнасць вельмі акуратнага праектавання.

Мікраядры тыпу ядра АС Minix і GNU Hurd развіваюцца марудна, значна павольней, чым Linux і ядро сістэм сямейства BSD. Паводле стваральніка Minix3, Эндру Таненбаўма, ён імкнецца «пабудаваць звышнадзейную (very highly reliable) сістэму. Яна можа ўжывацца ў тым ліку на серверах, якім патрэбны годы бесперабойнай работы».

Класічным прыкладам мікраядравай сістэмы з’яўляецца Symbian OS. Гэта прыклад распаўсюджанай і адпрацаванай мікраядравай (a пачынаючы з версіі Symbian OS v8.1, і нанаядравай) аперацыйнай сістэмы.

Стваральнікам Symbian OS удалося сумясціць эфектыўнасць і канцэптуальную стройнасць, нягледзячы на тое, што сучасныя версіі гэтай сістэмы даюць вялікія магчымасці, у тым ліку сродкі для работы з патокавымі данымі, стэкамі пратаколаў, крытычнымі да латэнтнасці ядра, графікай і відэа высокага разрознення). Распрацоўшчыкі Symbian вынеслі практычна ўсе прыкладныя (г.з. выходзячыя за межы кампетэнцыі ядра) задачы ў модулі-серверы, якія функцыянуюць у карыстальніцкай адраснай прасторы.

У АС Windows NT версій 3.х мікраядравая архітэктура з сэрвісным працэсам ужывалася для падсістэмы графікі і інтэрфейсу карыстальніка. У прыватнасці, драйвер графічнай апаратуры загружаўся ў кантэкст сэрвіснага працэса, а не ядра. Пачынаючы з версіі 4, ад гэтага адмовіліся, сэрвісны працэс захаваўся толькі для кіравання кансольнымі вокнамі каманднага радка, а ўласна графічная падсістэма разам з драйверам апаратуры (у тым ліку трохмернай графікі) перамясцілася ў спецыяльна адасоблены рэгіён ядра АС.

АС Windows CE (і створаныя на яе аснове зборкі, такія, як Windows Mobile), будучы практычна цалкам сумяшчальнай (як падмноства) з Windows NT па сістэмных выкліках і метадах праграмавання праграм, тым не менш цалкам адрозніваецца ад Windows NT па ўнутранай архітэктуры і з’яўляецца мікраядравай АС з вынасам усіх драйвераў прылад, сеткавых стэкаў і графічнай падсістэмы ў сэрвісныя працэсы.

Недахоп — плата за прымусовае «пераключэнне» працэсаў у ядры (пераключэнне кантэксту); гэты факт тлумачыць цяжкасці ў праектаванні і напісанні ядраў подобнай канструкцыі. Гэтыя недахопы здольны пераадолець АС, якія выкарыстоўваюць архітэктуру экзаядра, і з’яўляюцца далейшым развіццём мікраядравай архітэктуры.

## Гл. таксама 
; Мікраядры

* Mach

* L4

* QNX

; АС на аснове мікраядраў

* AIX
* AmigaOS
* BeOS

* Mac OS X
* osFree

* OpenVMS
* INTEGRITY

* Amoeba
* Minix

## Спасылкі 
* Інтерв’ю з Эндру Таненбаўмам

Катэгорыя:Архітэктура ядраў аперацыйных сістэм
Катэгорыя:Абарона памяці