Operatsion tizim yadrosi

Yadro - operatsion tizimning markaziy qismi, bu kompyuterning resurslariga, masalan, protsessor vaqti, xotira, tashqi apparat, tashqi kirish moslamasi va chiqish kabi dasturlarga muvofiqlashtirilgan kirishni taʼminlaydi. Shuningdek, yadro odatda fayl tizimi va tarmoq protokoli xizmatlarini taqdim etadi.

Operatsion tizimning asosiy elementi sifatida yadro ilovalar uchun zarur boʻlgan tizim resurslariga kirish uchun abstraktsiyaning eng past darajasi hisoblanadi. Odatda, yadro protsesslararo aloqa mexanizmlari va operatsion tizim tizimidagi qoʻngʻiroqlarga dastur qoʻngʻiroqlari yordamida tegishli dasturlarning bajariladigan jarayonlariga bunday kirishni taʼminlaydi.

Taʼriflangan vazifa yadro arxitekturasi turiga va qanday amalga oshirilishiga qarab farq qilishi mumkin.

Operatsion tizim yadrosi arxitekturasining turlari

Monolitik yadro 
Monolitik yadro apparat abstraktsiyalarining boy toʻplamini beradi. Monolitik yadroning barcha qismlari bir xil manzil maydonida ishlaydi . Bu uning yadrosining barcha tarkibiy qismlari bitta dasturning tarkibiy qismlari boʻlgan, umumiy maʼlumotlar tuzilmalaridan foydalanadigan va protseduralarni toʻgʻridan-toʻgʻri chaqirish orqali oʻzaro taʼsir qiladigan operatsion tizimning sxemasi. Monolit yadro — operatsion tizimlarni tashkil qilishning eng qadimgi usuli. UNIX tizimlarining aksariyati monolit yadroli tizimlarga misoldir.

Afzalliklari : Ish tezligi, soddalashtirilgan modullarni ishlab chiqish. 
Kamchiliklari: Butun yadro bir xil manzil maydonida ishlaganligi sababli, tarkibiy qismlardan birining ishdan chiqishi butun tizimni buzishi mumkin.

Misollar: anʼanaviy UNIX yadrolari (masalan, BSD), Linux; asosiy MS-DOS, asosiy KolibriOS.

Baʼzi eski monolitik yadrolar, ayniqsa UNIX / Linux tizimlari, apparat oʻzgarganda har doim kompilyatsiya qilishni talab qiladi . Koʻpgina zamonaviy yadrolar ish paytida yadro funktsiyalarining bir qismini bajaradigan modullarni yuklashga imkon beradi . Bunday holda, operatsion tizimning tarkibiy qismlari mustaqil modullar emas, balki protseduralar toʻplami boʻlgan monolit yadro deb nomlangan bitta katta dasturning tarkibiy qismlari boʻlib, ularning har biri har birini chaqirishi mumkin. Barcha protseduralar imtiyozli rejimda ishlaydi.

Modulli yadro 

Modulli yadro  — bu monolit operatsion tizim yadrolari arxitekturasining zamonaviy, takomillashtirilgan modifikatsiyasi .

„Klassik“ monolitik yadrolardan farqli oʻlaroq, modulli yadrolar, qoida tariqasida, kompyuter apparati tarkibi oʻzgarganda yadroni toʻliq qayta kompilyatsiya qilishni talab qilmaydi . Buning oʻrniga, modulli yadrolar maʼlum bir apparatni qoʻllab-quvvatlaydigan yadro modullarini yuklash uchun baʼzi mexanizmlarni taqdim etadi (masalan, drayverlar ). Bunday holda, modullarni yuklash ham dinamik boʻlishi mumkin („zudlik bilan“, operatsion tizimni qayta ishga tushirmasdan, ishlaydigan tizimda) va statik (maʼlum bir modullarni yuklash uchun tizimni qayta tuzgandan soʻng, OS qayta yuklanganda amalga oshiriladi).

Mikrokernel 

Mikrokernel faqat asosiy jarayonlarni boshqarish funktsiyalarini va apparat bilan ishlash uchun minimal abstraktlar toʻplamini beradi. Ishlarning katta qismi xizmatlar deb nomlangan maxsus foydalanuvchi jarayonlari orqali amalga oshiriladi . „Mikrokernel“ uchun hal qiluvchi mezon — bu barcha yoki deyarli barcha haydovchilar va modullarning xizmat koʻrsatish jarayonlariga joylashtirilishi, baʼzida har qanday kengaytma modullarini mikrokernelning oʻziga yuklash, shuningdek, bunday kengaytmalarni ishlab chiqishning aniq imkonsizligi.

Afzalliklari:Uskuna buzilishlariga, tizim tarkibiy qismlaridagi xatolarga chidamli. Mikrokernel arxitekturasining asosiy afzalligi — bu operatsion tizim yadrosining yuqori darajadagi modulligi. Bu unga yangi tarkibiy qismlarni qoʻshishni ancha osonlashtiradi. Mikrokernel operatsion tizimida, uning ishlashini toʻxtatmasdan, yangi drayverlarni, fayl tizimlarini va boshqalarni yuklash va tushirish mumkin. Yadro komponentlarini disk raskadrovka jarayoni juda soddalashtirilgan, chunki butun operatsion tizimni qayta ishga tushirmasdan yangi drayver versiyasini yuklash mumkin. Operatsion tizim yadrosi komponentlari foydalanuvchi dasturlaridan tubdan farq qilmaydi, shuning uchun ularni disk raskadrovka qilish uchun anʼanaviy vositalardan foydalanishingiz mumkin. Mikrokernel arxitekturasi tizimning ishonchliligini yaxshilaydi, chunki imtiyozsiz dastur darajasidagi xato yadro rejimi darajasidagi halokatga qaraganda kamroq xavfli.

Kamchiliklari: Jarayonlar oʻrtasida maʼlumotlarni uzatish qoʻshimcha xarajatlarni talab qiladi.

Klassik mikrokernellar operatsion tizimning asosiy xizmatlarini amalga oshiradigan juda kichik darajadagi primitivlar toʻplami yoki tizim qoʻngʻiroqlarini taqdim etadi.

Xizmat jarayonlari ( UNIX oilasida qabul qilingan terminologiyada — turli xil operatsion tizimlarda jadvallarni dasturlarni ishga tushirish (UNIX va Windows NT), roʻyxatga olish voqealari (UNIX va Windows NT), markazlashtirilgan parolni tekshirish va parollarni saqlash kabi vazifalar uchun faol foydalaniladi. maxsus cheklangan xotira maydonidagi (Windows NT) joriy interaktiv foydalanuvchi. Ammo, bunday arxitekturadan foydalanganligi sababli, operatsion tizimlarni mikrokernel deb hisoblash mumkin emas.

Misollar: Symbian OS ; Windows CE ; OpenVMS ; Mach , GNU / Hurd va Mac OS X tomonidan ishlatiladi ; QNX ; AIX ; Minix ; ChorusOS ; AmigaOS ; Morfos .

Exokernel 

Exokernel — bu jarayonlar orasidagi aloqa, resurslarni xavfsiz ajratish va chiqarish uchun faqat funktsiyalarni taʼminlaydigan operatsion tizim yadrosi. Bu taxmin qilinadi APIs ilova dasturlari uchun yadro (meʼmoriy shuning nomi) uchun tashqi kutubxonalar tomonidan taqdim etiladi.

Nazoratchi darajasidagi qurilmalarga kirish qobiliyati sizga universal OS tizimiga mos kelmaydigan baʼzi vazifalarni yanada samarali hal qilishga imkon beradi, masalan, DBMS dasturining ishlashga ijobiy taʼsir koʻrsatadigan fayllar va klasterlar emas, balki disk sektorlari darajasida diskka kirish huquqi boʻladi .

Nanokernel 

Nanokernel — bu operatsion tizim yadrosining arxitekturasi boʻlib, uning ichida oʻta soddalashtirilgan va minimalist yadro faqat bitta vazifani bajaradi — kompyuter qurilmalari tomonidan ishlab chiqarilgan apparat uzilishlarini qayta ishlash. Uskunadan uzilishlarni qayta ishlagandan soʻng, nanokore, oʻz navbatida, ishlov berish natijalari toʻgʻrisida maʼlumotni (masalan, klaviaturadan olingan belgilar) xuddi shu uzilish mexanizmidan foydalangan holda yuqori darajadagi dasturiy taʼminotga yuboradi. Masalan, KeyKOS  — nano-yadrodagi birinchi OS. Birinchi versiyasi 1983 yilda chiqarilgan.

Gibrid yadro 

Gibrid yadrolar — bu ishlarni tezlashtirish uchun yadro makonida „keraksiz“ qismlarni ishlashiga imkon beradigan oʻzgartirilgan mikrokernellar. Misol: Windows NT operatsion tizimining yadrolari .

Turli xil yondashuvlarning kombinatsiyasi 

Operatsion tizimlarni qurish boʻyicha barcha koʻrib chiqilgan yondashuvlarning oʻziga xos afzalliklari va kamchiliklari mavjud. Koʻpgina hollarda zamonaviy operatsion tizimlar ushbu yondashuvlarning turli xil kombinatsiyalaridan foydalanadilar. Masalan, endi „Linux“ yadrosi modul yadrosining alohida elementlari boʻlgan monolitik tizimdir [1] . Yadroni kompilyatsiya qilishda siz juda koʻp yadro komponentlarini — modullar deb nomlangan dinamik yuklash va tushirishni yoqishingiz mumkin. Modul yuklanganda uning kodi tizim darajasida yuklanadi va yadroning qolgan qismiga bogʻlanadi. Modul ichida yadro tomonidan eksport qilingan har qanday funktsiyalardan foydalanish mumkin.

Monolitik yadro oʻrniga Mach yadrosidan foydalanadigan GNU operatsion tizimining variantlari mavjud (xuddi shu Hurd bilan bir xil) va uning ustiga foydalanuvchi makonida Linux yordamida yadro tarkibiga kiradigan bir xil jarayonlar ishlaydi . Aralashtirilgan yondashuvning yana bir misoli — bu operatsion tizimni monolitik yadro bilan mikrokernel nazorati ostida boshqarish qobiliyatidir. Bu qanday boʻladi 4.4BSD va MkLinux asosida Mach microkernel, ish… Mikrokernel virtual xotirani boshqarish va past darajadagi drayverlarni taʼminlaydi. Boshqa barcha funktsiyalar, shu jumladan amaliy dasturlar bilan oʻzaro aloqani monolit yadro bajaradi. Ushbu yondashuv monolitik yadro kodini iloji boricha yaxshi disk raskadrovka qilish bilan birga mikrokernel arxitekturasidan foydalanishga urinishlar natijasida shakllandi.

Aralashgan yadro, asosan, monolitik yadro va mikrokernelning afzalliklarini birlashtirishi kerak: tuyuladiki, mikro yadro va monolit yadro haddan tashqari, aralash yadro esa oltin oʻrtacha hisoblanadi. Qurilma drayverlarini ularga ikkita usulda qoʻshish mumkin: ham yadro ichida, ham foydalanuvchi makonida. Ammo amalda aralash yadro kontseptsiyasi koʻpincha yadrolarning nafaqat afzalliklarini, balki kamchiliklarini ham taʼkidlaydi.

Manbalar

Havolalar 

What is the Linux Kernel and What Does It Do?