Hibrid nüvə

Hibrid-nüvə (ing. Hybrid kernel) — modifikasiya olunmuş mikro-nüvələr (kompyuterin əməliyyat sisteminin əsas minimal funksiyalarının toplusu) əməliyyatın sürətləndirilməsi üçün nüvənin sahəsində “nəzərə çarpılmayacaq” hissəsini işlətmək üçün imkan yaradır.

“Hibrid” nüvələrin üstünlükləri və çatışmazlıqları

[redaktə | mənbəni redaktə et]
Monolit nüvəli, mikro-nüvəli və hibrid nüvəli prossesorlu əməliyyat sistemlərinin strukturu quruluşu

Nəzərdən keçirilmiş bütün əməliyyat sistemlərinin hazırlanması yanaşmalarının öz üstün və əskik cəhətləri var. Bir çox halda müasir ƏS-ləri bu yanaşmaların ayrı-ayrı kombinasiyalarından istifadə edir. Misal üçün, hal-hazırda,

"Linux"un nüvəsi monolit sistem olmaqla ayrı-ayrı nüvə modullarından ibarətdir. Nüvənin kompilyasiyası zamanı bir çox modul adlandırılan komponentilərinin dinamik yüklənməsi və dayandırılmasına icazə vermək olar. Modulun yüklənməsi zamanı onun kodu sistem səviyyəsində yüklənir və nüvənin digər hissələri ilə əlaqəyə keçir. Modulun daxilində nüvənin ixrac etdiyi istənilən funkaiyalarından istifadə etmək mümkündür.

GNU ƏS-nin (Debian/GNU Hurd) bir neçə variantında monolit nüvə yerinə Mach nüvəsindən istifadə olunur ("Hurd"dakı kimi) və onun üzərində – istifadəçi məkanında "Linux"un istifadəsi zamanı nüvənin bir hissəsi ola biləcək prosseslər işləyir. Qarışıq yanaşmanın başqa bir nümunəsi də monolit nüvəli ƏS-nin mikro-nüvə vasitəsilə yüklənməsi olardı. 4.4BSD və "MkLinux"da Mach mikro-nüvəsi əsasında bu cür qurulub. Mikro-nüvə virual yaddaşın (VM) və aşağı səviyyəli drayverlərin idarə olunmasına köməklik edir. Tətbiqlərlə qarşılıqlı əlaqə yaradan funksiyalar kimi qalan digər funksiyalar da monolit nüvə vasitəsilə həyata keçirilir. Bu yanaşma mikro-nüvəli arxitekturanın üstünlüklərinin istifadə edilməsi ilə bərabər, yaxşı sazlanmış monolit nüvənin kodunu saxlamaqla cəhdləri zamanı yaranmışdır.

Mikro-nüvəli arxitektura ilə monolit nüvəli arxitektura daha çox Windows NT nüvəsi üzərində cəmləşib. Çox hallarda Windows NT mikro-üvəli ƏS adlansa da, həqiqətdə bu tam da belə deyil. NT-nin mikro-nüvəsi həddindən artıq böyükdür və təqribən 1 Mbaytdan çoxdur. Üstəlik sistemin nüvəsində, misal üçün qrafik interfeys modulu da yer alıb. Elə bunlara görə də, ona “mikro” prefiksi əlavə etmək düz olmazdı. Mikro-nüvəli ƏS-lərində olması gərəkən kimi, Windows NT-nin nüvə komponentləri kənara çıxardılan yaddaşda yerləşir və öz aralarında mesajlaşma yolu ilə əlaqədə olurlar. Monolit nüvəli ƏS-lərinə xas olan formada Windows NT-nin nüvəsinin komponentləri bir ünvanlı mühitdə işləyir və eyni verilənlər strukturundan istifadə edir. Səbəbi çox sadədir: təmiz mikro-nüvəli dizayn kommersiya cəhətdən sərfəli deyil, çünki effektiv deyil.

Beləliklə, Windows NT ƏS-ni tamamilə haqlı olaraq hibrid ƏS adlandırmaq olar.

Qatışıq nüvə prinsipcə mikro-nüvə və monolit nüvənin üstünlüklərini özündə cəmləndirməlidir. Sanki mikro-nüvə və monolit nüvə — iftiradır, lakin qatışıq (hibrid) — həqqətəndə dəyərli bir şeydir. Onlarda avadanlıqların drayverlərini (idarəedici proqramlarını) iki üsulla əlavə etmək mümkündür: nüvənin içinə və istifadəçi sahəsinə. Praktikada isə qarışıq nüvə konsepsiyası tək üstünlükləri yox, iki nüvələrin çatışmalıqlarını da büruzə etdirir.

Ənənəvi ləpə kateqoriyaları monolit ləpələr və mikrokernellərdir (nanokernellər və ekzokernellər mikrokernellərin daha ekstremal versiyaları kimi görünür). Hibrid ləpələrlə adi monolit ləpələrin oxşarlığına görə "hibrid" kateqoriyası mübahisəlidir; termin Linus Torvalds tərəfindən sadə marketinq kimi rədd edilmişdir.[1] Hibrid nüvənin arxasında duran ideya mikrokernelə bənzər bir ləpə quruluşuna sahib olmaqdır, lakin bu strukturu monolit nüvə kimi həyata keçirməkdir. Mikrokerneldən fərqli olaraq, hibrid nüvədəki bütün (və ya demək olar ki, hamısı) əməliyyat sistemi xidmətləri hələ də nüvə məkanındadır. Mikrokerneldə olduğu kimi istifadəçi məkanında xidmətlərin olmasının etibarlılıq faydalarından heç biri yoxdur. Bununla belə, adi monolit nüvədə olduğu kimi, mesajın ötürülməsi və ləpə və istifadəçi rejimi arasında kontekst keçidi üçün normal olaraq mikrokernellə gələn heç bir performans yükü yoxdur.

The Windows NT operating system family's architecture consists of two layers (user mode and kernel mode), with many different modules within both of these layers.

Hibrid nüvənin görkəmli nümunələrindən biri Windows 11Windows Server 2022 daxil olmaqla, Windows NT ailəsindəki bütün əməliyyat sistemlərini gücləndirən və Windows Phone 8, Windows Phone 8.1 və Xbox One-a güc verən Microsoft Windows NT nüvəsidir.

Windows NT hibrid nüvəyə əsaslanan ilk Windows əməliyyat sistemi idi. Hibrid ləpə Karnegi Mellon Universitetində Riçard Rəşid tərəfindən hazırlanmış Mach mikrokernelindən təsirlənmiş, lakin təmiz mikronüvənin bütün meyarlarına cavab vermədən dəyişdirilmiş mikronüvə kimi hazırlanmışdır. NT-əsaslı Windows monolit ləpə deyil, hibrid nüvə (yaxud makrokernel[2])) kimi təsnif edilir, çünki emulyasiya alt sistemləri monolit nüvədə olduğu kimi kernel rejimində deyil, istifadəçi rejimində server proseslərində işləyir və daha sonra buna görə Mach dizayn məqsədlərinə bənzəyən çoxlu sayda dizayn məqsədləri (xüsusən də OS şəxsiyyətlərinin ümumi nüvə dizaynından ayrılması). Əksinə, NT-nin mikrokernel sistemi olmamasının səbəbi, sistem komponentlərinin əksəriyyətinin monolit dizaynda olduğu kimi nüvə ilə eyni ünvan məkanında işləməsidir (ənənəvi monolit dizaynda hər bir mikrokernel olmayacaqdır). se, lakin ləpə NT-nin mikrokernel və nüvə rejimi alt sistemləri ilə geniş oxşar funksionallığı həyata keçirəcək).

Windows-da əsas əməliyyat sistemi şəxsiyyəti həmişə mövcud olan Windows API-dir. Windows şəxsiyyətini həyata keçirən emulyasiya alt sistemi Client/Server Runtime Subsystem (csrss.exe) adlanır. NT-nin 4.0-dan əvvəlki versiyalarında bu alt sistem prosesində pəncərə meneceri, qrafik cihazı interfeysi və qrafik qurğu drayverləri də var idi. Performans səbəblərinə görə, lakin 4.0 və sonrakı versiyalarda bu modullar (çox vaxt hətta monolit sistemlərdə, xüsusən də daxili qrafik dəstəyi olmadan dizayn edilənlərdə istifadəçi rejimində həyata keçirilir) kernel-rejim alt sistemi kimi işləyir. NT-də işləyən proqramlar, sənədləri ictimaiyyətə açıq olmayan yerli NT API-yə deyil (cihaz drayverinin işlənib hazırlanmasında istifadə olunan rutinlər istisna olmaqla) OS şəxsiyyətlərindən birinə (adətən Windows API) yazılır. ƏS şəxsiyyəti tələb olunduqda tətbiq proseslərinin ünvan fəzalarına uyğunlaşdırılan istifadəçi rejimli DLL-lər dəsti (bax: Dinamik keçid kitabxanası) vasitəsilə həyata keçirilir və emulyasiya altsisteminin server prosesi (əvvəllər təsvir edildiyi kimi). Tətbiqlər öz ünvan fəzalarına uyğunlaşdırılan ƏS şəxsiyyət DLL-lərinə zəng etməklə sistem xidmətlərinə daxil olur, bu da öz növbəsində NT işləmə vaxtı kitabxanasına (ntdll.dll) daxil olur, eyni zamanda prosesin ünvan məkanına uyğunlaşdırılır. NT işləmə vaxtı kitabxanası bu sorğuları kernel rejimində İcraedici proqramlara çağırmaq və ya müvafiq istifadəçi rejimi altsistem server proseslərinə Yerli Prosedur Zəngləri (LPC) etmək üçün kernel rejiminə tutaraq xidmət edir ki, bu da öz növbəsində onlarla əlaqə yaratmaq üçün NT API-dən istifadə edir. tətbiq prosesləri, nüvə rejimi alt sistemləri və bir-birləri.[3]

XNU nüvəsi

XNU, Apple Inc.-in macOS, iOS, watchOS və tvOS əməliyyat sistemlərində istifadə üçün əldə etdiyi və inkişaf etdirdiyi və Darvin əməliyyat sisteminin bir hissəsi kimi pulsuz və açıq mənbə proqram təminatı kimi buraxdığı nüvədir. XNU X Unix deyil sözünün abbreviaturasıdır.[4]

Əvvəlcə NeXT tərəfindən NeXTSTEP əməliyyat sistemi üçün hazırlanmış XNU, Mach nüvəsinin 2.5 versiyasını 4.3BSD komponentləri və Driver Kit adlı sürücülərin yazılması üçün obyekt yönümlü API birləşdirən hibrid nüvə idi.

Apple NeXT-ni əldə etdikdən sonra Mach komponenti mikronüvə olan OSFMK 7.3[5]-ə yüksəldilib. Apple, FreeBSD hissələri daxil olmaqla, hibrid nüvə kimi fəaliyyət göstərən ciddi şəkildə dəyişdirilmiş OSFMK 7.3-dən istifadə edir. (OSFMK 7.3 Utah Mach 4 ləpəsinin müvafiq kodunu və orijinal Carnegie Mellon Universitetinin Mach 3.0 nüvəsindən ayrılmış bir çox Mach 3.0 variantlarının müvafiq kodunu ehtiva edir.) BSD komponentləri FreeBSD layihəsinin kodu ilə təkmilləşdirilmişdir. Driver Kit I/O Kit adlı drayverlərin yazılması üçün C++ API ilə əvəz olundu.

Bəzi digər müasir ləpələr kimi, XNU həm monolit, həm də mikronüvələrin xüsusiyyətlərini özündə cəmləşdirən hibriddir və hər iki texnologiyadan ən yaxşı şəkildə istifadə etməyə çalışır, məsələn, mikronüvələrin mesaj ötürmə qabiliyyəti daha modulyarlığa [sitat lazımdır] və ƏS-nin daha böyük hissələrinə imkan verir. qorunan yaddaşdan faydalanmaq, həmçinin müəyyən kritik tapşırıqlar üçün monolit nüvələrin sürətini saxlamaq.

  1. "Linus Torvalds". 2021-01-09 tarixində arxivləşdirilib. İstifadə tarixi: 2022-07-04. As to the whole "hybrid kernel" thing - it's just marketing. It's "Oh, those microkernels had good PR, how can we try to get good PR for our working kernel? Oh, I know, let's use a cool name and try to imply that it has all the PR advantages that that other system has.
  2. "MS Windows NT Kernel-mode User and GDI White Paper". Microsoft Corporation. 2007. 2012-02-02 tarixində arxivləşdirilib. İstifadə tarixi: 2007-03-01.
  3. Probert, Dave. "Overview of Windows Architecture". Using Projects Based on Internal NT APIs to Teach OS Principles. Microsoft Research/Asia - Beijing. 2005. 2007-11-28 tarixində arxivləşdirilib. İstifadə tarixi: 2007-03-01.
  4. "Porting UNIX/Linux Applications to OS X: Glossary". Apple Computer. 2005. 2017-10-03 tarixində arxivləşdirilib. İstifadə tarixi: 2017-06-16.
  5. Jim Magee. WWDC 2000 Session 106 - Mac OS X: Kernel. 14 minutes in. 2018-12-26 tarixində arxivləşdirilib. İstifadə tarixi: 2022-07-05.

Xarici keçidlər

[redaktə | mənbəni redaktə et]