Ядро аперацыйнай сістэмы: Розніца паміж версіямі

[дагледжаная версія][дагледжаная версія]
Змесціва выдалена Змесціва дададзена
ZéroBot (размовы | уклад)
др r2.7.1) (робат дадаў: pa:ਕਰਨਲ
Paganetz (размовы | уклад)
Няма тлумачэння праўкі
Радок 4:
 
Розныя ядры па-рознаму выконваюць задачы аперацыйнай сістэмы, у залежнасці ад іх распрацоўкі і рэалізацыі. У той час як маналітныя ядры выконваюць увесь код аперацыйнай сістэмы ў адной і той жа адраснай прасторы, каб павялічыць прадукцыйнасць сістэмы, мікраядры запускаць большасць сэрвісаў аперацыйнай сістэмы ў карыстацкай адраснай прасторы, як серверы, у якасці меры па павышэнню эксплуатацыйнай надзейнасці і модульнасці аперацыйнай сістэмы.<ref>{{cite web |url=http://www.vmars.tuwien.ac.at/courses/akti12/journal/04ss/article_04ss_Roch.pdf |title=Monolithic kernel vs. Microkernel |last=Roch |first=Benjamin |year=2004 |format=PDF}}</ref> Паміж гэтымі дзвюма крайнасцямі ёсць шырокі дыяпазон варыянтаў.
 
== Тыпы архітэктур ядраў аперацыйных сістэм ==
 
=== Маналітнае ядро ===
{{main|Маналітнае ядро}}
 
Маналітнае ядро ўяўляе сабой багаты набор абстракцый абсталявання. Усе часткі маналітнага ядра працуюць у адной [[Адрасацыя памяці|адраснай прасторы]]. Гэта такая схема аперацыйнай сістэмы, пры якой усе кампаненты яе ядра з'яўляюцца складовымі часткамі адной праграммы і ўжываюць агульныя структуры даных і ўзаемадзейнічаюць адзін з адным шляхам непасрэднага выкліка працэдур. Маналітнае ядро — старэйшы спосаб арганізацыі аперацыйных сістэм. Прыкладам сістэм з маналітным ядром з'яўляецца большасць UNIX-сістэм.
 
* ''Перавагі'': Хуткасць работы, спрошчаная распрацоўка модуляў.
* ''Недахопы:'' Так як усё ядро працуе ў адной адраснай прасторы, збой у адным з кампанентаў можа парушыць працаздольнасць усёй сістэмы.
 
Прыклады: Традыцыйныя ядры [[UNIX]] (такія як [[BSD]]), [[Linux, ядро|Linux]]; ядро [[MS-DOS]], ядро [[KolibriOS]].
 
Некаторыя старыя маналітныя ядры, у асаблівасці сістэм класа [[UNIX]]/[[Linux]], патрабавалі [[Кампіляцыя, праграмаванне|перакампіляцыі]] пры любой змене склада абсталявання. Большасць сучасных ядраў дазваляюць падчас работы падгружаць ''модулі'', якія выконваюць частку функцый ядра. У гэтым выпадку кампанеты аперацыйнай сістэмы з'яўляюцца не самастойнымі модулямі, а састаўнымі часткамі адной вялікай праграмы, якая завецца маналітным ядром (monolithic kernel), якое ўяўляе сабой набор працэдур, кожная з якіх можа выклікаць адвольную. Усе працэдуры працуюць у прывілеяваным рэжыме.
 
=== Модульнае ядро ===
{{main|Модульнае ядро}}
 
'''Модульнае ядро''' — сучасная, удасканаленая мадыфікацыя архітэктуры [[Маналітнае ядро|маналітных ядраў]] [[аперацыйная сістэма|аперацыйных сістэм]].
 
У адрозненні ад «класічных» маналітных адраў, модульныя ядры, як правіла, не патрабуюць поўнай [[Кампіляцыя, праграмаванне|перакампіляцыі]] ядра пры змяненні складу [[Апаратнае забеспячэнне|апаратнага забеспячэння]] камп'ютара. Замест гэтага модульныя ядры прапануюць тоц ці іншы механізм падгрузкі модуляў ядра, які падтрымлівае пэўнае апаратная забеспячэнне (напрыклад, [[драйвер]]аў). Пры гэтым падгрузка модуляў можа быць як дынамічнай (выконвацца «на лёце», без перазагрузкі АС, у працуючай сістэме), так і статычнай (выконваецца пры перазагрузцы АС пасля пераканфігуравання сістэмы на загрузку пэўных модуляў).
 
=== Мікраядро ===
{{main|Мікраядро}}
 
'''Мікраядро''' прапануе толькі элементарныя функцыі кіравання працэсамі і мінімальны набор абстракцый для работы з абсталяваннем . Большая частка работы ажыццяўляецца з дапамогай спецыяльных карыстальніцкіх [[Працэс, інфарматыка|працэсаў]], якія завуцца ''сервісамі''. Рашучым крытэрыям «мікраядравасці» з'яўляецца размяшчэнне ўсіх ці амаль усіх драйвераў і модуляў у сервісных працэсах, часам з яўнай немагчымасцю загрузкі любых модуляў пашырэнняў у мікраядро, а таксама распрацлўкі такіх пашырэнняў.
 
* ''Перавагі:'' Устойлівасць да збояў абсталявання, памылкам у кампанентах сістэмы. Асноўная перавага мікраядравай архітэктуры — высокая ступень модульнасці ядра аперацыйнай сістэмы. Гэта істотна спрошчвае даданне ў яго новых кампанентаў. У мікраядравай аперацыйнай сістэме можна, не прыпыняючы яе работы, загружаць і выгружаць новыя драйверы, файлавыя сістэмы і г. д. Істотна спрошчваецца працэс адладкі кампанентаў ядра, так як новая версія драйвера можа загружацца без перазапуску ўсёй аперацыйнай сістэмы. Кампаненты ядра аперацыйнай сістэмы нічым прынцыпова не адрозніваюцца ад карыстальніцкіх праграм, таму для іх адладкі можна выкарыстоўваць звычайныя сродкі. Мікраядравая архітэктура павышае надзейнасць сістэмы, бо памылка на ўзроўні непрывілеяванай праграмы меней небяспечна, чым адмова на ўзроўні рэжыма ядра.
* ''Недахопы'': Перадача даных паміж працэсамі патрабуе дадатковых выдаткаў.
 
Класічнае мікраядро прапануе толькі вельмі невялікі шэраг нізкаўзроўневых прымітываў, ці [[Сістэмны вызовыклік|сістэмных выклікаў]], якія рэалізуюць базавыя сервісы аперацыйнай сістэмы.
 
* Сервісныя працэсы (у прынятай у сямействе [[UNIX]] тэрміналогіі — «[[Дэман, праграма|дэманы]]») актыўна ўжываюцца ў самох разнастайных АС для задач тыпа запуску праграм па раскладу (UNIX і Windows NT), вядзення журналаў падзей (UNIX і Windows NT), цэнтралізаванай праверкі пароляў і захоўвання пароля бягучага інтэрактыўнага карыстача ў адмыслова абмежаванай вобласці памяці (Windows NT). Тым не меньш, не варта лічыць АС мікраядравай толькі з-за ўжывання такой архітэктуры.
 
Прыклады: [[Symbian OS]]; [[Windows CE]]; [[OpenVMS]]; [[Mach]], [[GNU/Hurd]]; [[Mac OS X]]; [[QNX]]; [[AIX]]; [[Minix]]; [[ChorusOS]]; [[AmigaOS]]; [[MorphOS]].
 
=== Экзаядро ===
{{main|Экзаядро}}
 
Экзаядро — ядро аперацыйнай сістэмы, якое ажыццяўляе толькі функцыі ўзаемадзеяння паміж працэсамі, бяспечнага выдаткавання і вяртання рэсурсаў. Мяркуецца, што [[API]] для прыкладных праграм будуць даступнымі знешнім адносна ядра бібліятэкам (адкуль і назва архітэктуры).
 
Магчымасць доступу да прылад на ўзроўні кантролераў дазваоліць больш эфектыўна рашаць некаторыя задачы, якія дрэнна ўпісваюцца ў межы ўніверсальнай АС, напрыклад, рэалізацыя [[СКБД]] будзе мець доступ да дыска на ўзроўні [[Сектар дыска|сектароў дыска]], а не [[файл]]аў і [[Кластар, адзінка захоўвання даных)|кластараў]], што станоўча адаб'ецца на хуткадзеянні.
 
=== Нанаядро ===
{{main|Нанаядро}}
 
Нанаядро — архітэктура ядра аперацыйнай сістэмы, у межах якой надзвычай спрошчанае і мінімалістычнае ядро выконвае толькі адну задачу — апрацоўку апаратных перапыненныў, якія генеруюцца прыладамі камп'ютара. Пасля апрацоўкі перапыненняў ад апаратуры нанаядро дасылае інфармацыю аб выніках апрацоўкі (напрыклад, атрыманыя з клавіятуры сімвалы) вышэйлегламу праграмнаму забяспечанню з дапамогай того ж механізма перапыньванняў. Прыкладам з'яўляецца [http://www.cis.upenn.edu/~KeyKOS/NanoKernel/NanoKernel.html KeyKOS] — самая першая АС на нанаядры. Першая версія выйшла яшчэ ў 1983-м годзе.
 
=== Гібрыднае ядро ===
{{main|Гібрыднае ядро}}
Гібрыдныя ядры — гэта мадыфікаваныя мікраядры, якія дазваляюць для паскарэння работы запускаць «неістотныя» часткі ў прастары ядра. Прыклад: ядры АС Windows сямейства [[Windows NT|NT]].
 
== Камбінацыя розных падыходаў ==
Усе разгледжаныя падыходы да будавання аперацыйных сістэм маюць свае перавагі і недахопы. У большасці выпадкаў сучасныя аперацыйныя сістэмы ўжываюць разнастайныя камбінацыі гэтых падыходаў. Так, напрыклад, зараз ядро «Linux» уяўляе сабой [[маналітная ядро|маналітную сістэму]] з асобнымі элементамі [[модульнае ядро|модульнага ядра]]. Пры кампіояцыі ядра можна дазволіць дынамічную загрузку і выгрузку вельмі многіх кампанентаў ядра — так званых модуляў. У момант загрузкі модуля яго код загружаецца на ўзроўні сістэмы і звязваецца з астатняй часткай ядра. Унутры модуля могуць выкарыстоўвацца любыя функцыі, якія экспартуюцца ядром.
 
Існуюць варыянты АС [[GNU]], у якіх замест маналітнага ядра выкарыстоўваецца ядро Mach (такое ж, як у Hurd), а паверх яго круцяцца ў карыстальніцкай прасторы тея ж самыя працэсы, якія пры ўжыванні [[Linux, ядро|Linux]] былі б часткамі ядра.
Іншым прыкладам змешанага падыхода можа з'яўляцца магчымасць запуску аперацыйнай сістэмы з маналітным ядром пад кіраваннем мікраядра. Так уладкавана [[4.4BSD, аперацыйная сістэма|4.4BSD]] і MkLinux, заснаваныя на мікраядры [[Mach]]. Мікраядро забяспечвае кіраванне віртуальнай памяццю і работу нізкаўзроўневых драйвероў. Усе астатнія функцыі, у тым ліку узаемадзеянне з прыкладнымі праграмамі, ажыццяўляюцца маналітным ядром. Дадзены падыход сфармаваўся ў выніку спроб выкарыстаць перавагі сікраядравай архітэктуры, захоўваюцы па магчымасці добра адладжаны код маналітнага ядра.
 
Змешанае ядро, у прынцыпе, павінна аб'ядноўваць перавагі маналітнага ядра і мікраядра: здавалася б, мікраядро і маналітнае ядро — крайнасць, а змешанае — залатая сярэдзіна. У іх магчыма дадаваць драйверы прыладаў дзвума спосабамі: і унутр ядра, і ў карыстальніцкую прастору. Але на практыцы канцэпцыя змяшанага ядра часта падкрэслівае не толькі перавагі, але і недахопы абодвух тыпов адраў.
 
Прыклады: [[Windows NT]], [[DragonFly BSD]].
 
 
{{зноскі}}