Маналітнае ядро

З пляцоўкі Вікіпедыя
Перайсці да: рух, знайсці
Схема маналітнага ядра, якое выконвае код ядра цалкам у рэжыме супервізара

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

Маналітныя ядры маюць доўгую гісторыю развіцця і ўдасканалення і з'яўляюцца найбольш зрэлымі архітэктурна і прыдатнымі да эксплуатацыі. Разам з тым, маналітнасць ядра ўскладняе яго адладку, разуменне кода ядра, даданне новых функцый і магчымасцяў, выдаленне «мёртвага», непатрэбнага, успадкаванага ад папярэдніх версій кода. «Разбуханне» кода маналітнага ядра таксама павялічвае патрабаванні да аб'ёму аператыўнай памяці, патрабаванай для функцыянавання ядра АС. Гэта робіць маналітныя ядравыя архітэктуры малапрыдатнымі да эксплуатацыі ў сістэмах, надта абмежаваных па аб'ёму АЗП, напрыклад убудаваных сістэмах, прамысловых мікракантролерах і г. д.

Альтэрнатывай маналітнаму ядру лічацца архітэктуры, заснаваныя на мікраядрах.

Падгружальныя модулі[правіць | правіць зыходнік]

Старыя маналітныя ядры патрабавалі перакампіляцыі пры любой змене склада абсталявання. Большасць сучасных ядраў, такія як OpenVMS, Linux, FreeBSD, NetBSD і Solaris, дазваляюць падчас працы дынамічна (па неабходнасці) падгружаць і выгружаць модулі, якія выконваюць частку функцый ядра. Модульнасць ядра ажыццяўляецца на ўзроўні бінарнага вобраза, а не на архітэктурным узроўні ядра, так як дынамічна падгружальныя модулі загружаюцца ў адрасную прастору ядра і ў далейшым працуюць як інтэгральная частка ядра. Модульнае маналітнае ядро не варта блытаць з архітэктурным узроўнем модульнасці, уласцівым мікраядру і гібрыднаму ядру. На практыцы дынамічная загрузка модуляў - гэта больш гнуткі спосаб змянення вобраза ядра падчас выканання — у адрозненні ад перазагрузкі на іншае ядро. Модулі дазваляюць лёгка пашырыць магчымасці ядра па меры неабходнасці. Дынамічная падгрузка модуляў дапамагае скараціць памер кода, які працуе ў прасторы ядра, да мінімуму, напрыклад, звесці да мінімуму адбітак ядра для убудаваных прылад з абмежаванымі апаратнымі рэсурсамі.