Salam dostlar,
Əminəm ki, bir çoxunuz "kernel" haqqında məlumatlısınız, lakin bu məqaləmdə bir az dərin məlumatlara vararaq sizə "kernel" və onun növləri haqqında bəhs etmək istərdim. Beləliklə, "kernel" (nüvə) nədir?
"Kernel" əməliyyat sisteminin çox vacib və kritik komponentlərindən biridir ki, proseslərin və "system calls"-un köməyi (iştirakı) sayəsində, cihaz (hardware) ilə proqram təminatı (software) arasında körpü rolunu oynayaraq, onlar arasında əlaqənin (ünsiyyətin) təmin edilməsini həyata keçirir. Ümumi olaraq qeyd edim ki, hər bir əməliyyat sisteminin (Linux, Windows və s.) öz "kernel"-i mövcuddur. Bəzən "kernel"-i əməliyyat sistemi də adlandırırlar, lakin bu doğru yanaşma deyil. Çünki əməliyyat sistemi cihaz (hardware) ilə istifadəçi (user), "kernel" isə cihaz ilə proqram təminatı arasında əlaqəni təmin edir. Yəni "kernel" əməliyyat sisteminin özü deyil, əməliyyat sisteminin vacib bir komponenti (core) sayılır. Əməliyyat sistemləri bir-birindən fərqli kimi, həmin əməliyyat sistemlərində yer alan "kernel" də fərqli ola bilir ki, nümunə olaraq "windows" və "linux" əməliyyat sistemlərinin komponenti sayılan "kernel"-i bəzi fərqliliklərinə görə müqayisə edə bilərik. Beləliklə:
- "windows kernel" kommersiya tiplidir və "Microsoft" şirkətinə məxsusdur, "linux kernel" isə açıq mənbə (open source) kodludur və pulsuzdur (Linus Torvalds tərəfindən yaradılmlışdır);
- "windows"-da "kernel" hibrid (Windows NT), "linux"-da isə "kernel" monolit arxitekturarlıdır;
- "windows kernel"-də müxtəlif cihazlar (device) üçün müxtəlif mexanizmlər mövcud olduğu halda, "linux kernel"-də hər bir cihaz özünəməxsus bir fayldan ibarətdir;
- "windows kernel"-də fayl icazə və idarəsi üçün "ACL"-dən, "linux kernel"-də isə ənənəvi "Unix" icazələri və "POSIX ACL"-dən istifadə olunur;
- "windows"-da "GUI Stack" "kernel"-də, "linux"-da isə istifadəçi səviyyəsində (user space) yer alır;
- "windows"-da konfiqurasiyalar reyestrdə saxlanıldığı halda, "linux"-da isə konfiqurasiyalar fayllarda saxlanılır və s. ;
"Kernel"-in növləri:
- "Monolithic Kernel" - ona qoşulan bütün cihazları dəstəkləyir, ən sadə və ən çox yayılmış nüvə (kernel) növüdür. Burada istifadəçi və nüvə xidmətləri (services) eyni yaddaş sahəsində (memory) həyata keçirilir ki, bu zaman nüvənin həcminin artması əməliyyat sisteminin də həcmini artırmış olur. Bu nüvənin əsas üstünlüyü ondan ibarətdir ki, istifadəçi (user address space) və nüvə (kernel address space) üçün ayrıca və fərqli yaddaş sahəsi yoxdur və bu da proseslərin icrasının daha sürətli olmasını təmin edir;
- "Microkernel" - yeni "kernel" növüdür və monolit "kernel"-dən fərqli olaraq burada istifadəçi və nüvə xidmətləri (services) eyni yaddaş sahəsində (memory) deyil, fərqli yaddaş sahələrində (user address space) və nüvə (kernel address space) həyata keçirilir;
- "Hybrid Kernel" - monolit və mikro "kernel"-lərin birləşməsini təmin edir, mikro "kernel"-lərdən daha çox xidmətləri (service) həyata keçirsə də, lakin xidmətləri monolit "kernel"-dən daha azdır. Beləliklə, hibrid "kernel" sürəti monolit "kernel"-dən, modulluğu isə mikro "kernel"-lərdən götürür.
- "Nano Kernel" - əsasən daxili sistemlərdə (embeeded controllers) və ya məhdud sayda resursları olan cihazlarda istifadə olunan və yalnız bir neçə min kod sətirindən ibarət olan ən kiçik nüvə növüdür ki, avadanlığın imtiyazlı (privileged) rejimində icra olunan kod minimal sayılır;
- "Exo Kernel" - elə də məhşu olmasa da, lakin mikro "kernel"-in başqa bir variantı kimi düşünmək olar və mobil cihazlarda istifadə məqsədilə yaradılmış, fərdiləşdirməni asanlaşdırmaq üçün resurs mühafizəsii (protection) idarəetmədən (management) ayırmaq üçün nəzərdə tutulmuşdur;
"Kernel Mode" və "User Mode"
"Kernel"-in vəzifələri:
- "Memory Management" - yaddaş həcminin istifadə olunduğunu müəyyən edir;
- "Process Management" - proseslərin mərkəzi nüvədən (CPU) istifadəsinin həcmi və vaxtını müəyyən edir;
- "Device Drivers" - cihaz (avadanlıq) və proseslər arasında vasitəçi (tərçüməçi) rolunu həyata keçirir;
- "System calls and security" - proseslərdən sorğuların toplanmasını həyata keçirir;
Dostlar,
Güman edirəm ki, məqaləm maariflənməniz istiqamətində sizin üçün faydalı olar.
Təşəkkür edirəm
Hörmətlə,
Müəllif
Araz Əhmədov
Comments
Post a Comment