Hibrid kernel

A Wikipédiából, a szabad enciklopédiából

A hibrid kernel egy operációs rendszer kernel architektúra, amely megpróbálja kombinálni a mikrokernel és monolitikus kernel típusok előnyeit.

Áttekintés[szerkesztés]

A hagyományos kernel kategóriák monolitikus kernel és Mikrokernel (vannak speciális nano és exokernelek is). A "hibrid" kategória ellentmondásos a hibrid magok és a közönséges monolitikus magok hasonlósága miatt; a kifejezést Linus Torvalds egyszerűen elutasította .

A hibrid rendszermag elképzelése, hogy egy kernel struktúrája hasonló a mikrokerneléhez, de a struktúrát egy monolitikus rendszermaghoz hasonlóan hajtsa végre. Mikrohálózattal ellentétben a hibrid rendszermag összes (vagy csaknem összes) vezérlőrendszere továbbra is a rendszermagban van . Tehát nincs olyan megbízhatósági előny a felhasználói térben, mint a mikrokernelben, a szolgáltatások nyújtásában rejlik . Ugyanúgy, mint egy közönséges monolitikus rendszermag, nincs semmi teljesítménynövelés az üzenet átadásához és a rendszermag és a felhasználói mód között a kontextusváltáshoz, amely normális esetben mikrokernellel jár .

Példák[szerkesztés]

Microsoft Windows NT[szerkesztés]

A hibrid rendszermag egyik kiemelkedő példája a Microsoft Windows NT rendszermag, amely a Windows NT- család összes operációs rendszere, beleértve a Windows 10 és a Windows Server 2016-ot , valamint a Windows Phone 8 , a Windows Phone 8.1 és az Xbox One . Az NT alapú Windows hibrid rendszermag (vagy makrokernel), hasonlít monolitikus felépítéshez, mivel az emulációs alrendszerek felhasználói szintű kiszolgálói folyamatokban futnak be, nem pedig kernelen keresztül, mint egy monolitikus rendszermagban, továbbá azért, mert a Mach tervezési céljaira emlékeztet. (különösen nehéz szétválasztani a magot és a felületet). Ezzel szemben az NT nem mikrokernel rendszer, mert a rendszerösszetevők többsége abban a címtérben fut, mint a rendszermag, hasonlóan a monolitikus kialakításhoz (egy hagyományos monolitikus kialakításban nem lenne mikrokernel tész de a kernel nagyjából hasonló funkcionalitást valósít meg az NT mikrokernel és kernel módú alrendszerei számára.

A Windows NT felépítés ugyanazokat a célokat tartalmazza, mint a Mach , az archetipikus mikrokernel rendszer, az egyik legfontosabb az, hogy struktúrája olyan modulok gyűjteménye, amelyek jól ismert interfészeken keresztül kommunikálnak, egy kis mikrokernelre, amely az alapvető funkciókra korlátozódik, például az első szintű megszakításkezelés, menet-ütemezés és szinkronizációs primitívek. Ez lehetővé teszi a közvetlen eljáráshívások vagy az interprocess kommunikáció használatát(IPC) a modulok közötti kommunikációhoz, és így a modulok lehetséges helyéhez különböző címtartományokban (például a rendszermag térben vagy a kiszolgáló folyamatokban). A Mach-esetében a megosztott, egyéb tervezési célok a különböző architektúrák támogatását is magukban foglalják, olyan rendszermagot, amelynek absztrakciói elég általánosak ahhoz, hogy több operációs rendszer tulajdonságát és egy objektumorientált szervezetre is kiterjesszék.

Az NT oka, hogy nem mikrokernel rendszer, az, hogy szinte az összes alrendszer, amely a rendszerkiszolgálást nyújtja, beleértve az egész végrehajtót is, kernel módban fut ugyanabban a címtérben, mint maga a mikrokernel, nem pedig a felhasználó módú kiszolgálói folyamatokban. Ez egy olyan NT attribútum, amely a Mach korai verzióival, valamint minden Mach alapulú kereskedelmi rendszer, és amely a közvetlen eljáráshívások által kínált kiváló teljesítményből fakad, az IPC helyett egy memóriaterületen, az alrendszerek közötti kommunikáción keresztül dolgoznak. Az NT-ben lévő felhasználói módú alrendszerek tartalmaznak egy vagy több emulációs alrendszert, amelyek mindegyike az operációs rendszer személyiségét biztosítja az alkalmazásoknak, a Session Manager Subsystem (smss.exe), amely elindítja az emulációs alrendszereket a rendszer indításakor és a Helyi Biztonsági Hatóság alrendszer szolgáltatás (lsass.exe), amely a rendszer biztonságát érvényesíteti. Az alrendszerek nem egy adott OS-személyiségre íródnak, hanem a natív NT API-ra (vagy a natív API-ra ).

A Windows operációs rendszer elsődleges személyisége a Windows API , amely mindig jelen van. A Windows személyiséget megvalósító emulációs alrendszert Client / Server futásidejű alrendszernek (csrss.exe) nevezik. Az NT 4.0-es verziói előtt az alrendszer folyamata tartalmazza az ablakkezelőt, a grafikus eszköz-illesztőprogramot és a grafikus illesztőprogramokat is. A 4.0-s és újabb verziókban azonban ezek a modulok (amelyek gyakran monolitikus rendszereken is használatban vannak, különösen a belső grafikus támogatás nélkül tervezett modulok) rendszermagú alrendszerként futnak.

2007-től egy másik operációs rendszer személyiségét ( UNIX ) kínálják opcionálisan telepített rendszerkomponensként a Windows Vista és a Windows Server 2003 R2 egyes verzióiban. A hozzátartozó alrendszerfolyamat a UNIX-alapú alkalmazások alrendszere (psxss.exe), amely korábban része volt a Windows kiegészítőknek, a Windows Services for UNIX-nek . Az OS / 2 alrendszert (os2ss.exe) a Windows NT régebbi verzióiban támogatták, csakúgy, mint egy nagyon korlátozott POSIX alrendszer (psxss.exe). A POSIX alrendszert a UNIX alrendszer váltotta fel, így ugyanúgy futtatható.

2016 augusztusában a Microsoft bemutatta a legfrissebb Windows alrendszert, a Windows alrendszert Linux néven . Ez az alrendszer, amely csak a 64 bites Windows 10 verzió 1607-es verzióján (évfordulós frissítés, Redstone kódnevű) áll rendelkezésre, az Ubuntu 14.04 LTS lecsökkentett verzióját futtatja natív módon az operációs rendszeren belül emuláció nélkül. "Bash on Windows" -ként forgalmazták, mert bash futott, egy népszerű parancssori felület, amelyet sok Linux disztribúcióban és MAC OS X-ben használt, és lehetővé teszi az amd64-re fordított bináris fájlok átalakítását az alrendszeren belül. Ezt úgy tervezték, hogy a fejlesztők futtassák az eszközeiket a Windows rendszeren, anélkül, hogy emulálniuk kellene őket, és ezért a fejlesztői módot engedélyezniük kell a Windows beállításoknál. Csak parancssori alkalmazások futtatására tervezték, bár a reddit felhasználó felfedezte a GUI-alkalmazások vagy akár egy teljes asztali környezet futtatását. Egyes alkalmazások, amelyek szigorúan a Linux kernelre támaszkodnak, nem fogják tudni futni, mert nem tartalmazzák a Linux kernelt.

Az NT-ben futó alkalmazások az OS egyik személyére (általában a Windows API-ra) vannak írva, és nem az eredeti NT API-ra, amelyhez a dokumentáció nem áll rendelkezésre (az eszközillesztő-fejlesztésben használt rutinok kivételével). Az operációs rendszer személyisége felhasználói módú DLL-eken keresztül valósul meg (lásd: Dinamikus hivatkozás-könyvtár), amelyek szükség szerint leképezhetők az alkalmazásfolyamatok címterére, emulációs alrendszer szerverfolyamattal együtt (a korábban leírt módon). Az alkalmazások hozzáférési rendszerszolgáltatásai az operációs rendszer személyi DLL-jének leképezésére, amelyek a címtartományukba rendeződnek, és amely az NT futtatókönyvtárba (ntdll.dll) hívja őket, szintén leképezve a folyamat címtartományába. Az NT futásidejű könyvtára ezeket a kéréseket a rendszermag módba való beolvasztásával vagy a rendszermag-módú végrehajtó rutinok meghívásával vagy a Helyi eljáráshívások (LPC-k) segítségével a megfelelő felhasználói módú alrendszer-kiszolgálófolyamatokká teszi, amelyek az NT API-t kommunikálják alkalmazási folyamatok, a kernel módú alrendszerek és egymás között.

XNU kernel[szerkesztés]

Az XNU az a kernel, amelyet az Apple Inc. fejlesztett ki MacOS, iOS, watchOS és tvOS operációs rendszerek néven a Darwin operációs rendszer részeként. Az XNU betűszó: az X Nem Unix.

A NeXT által a NeXTSTEP operációs rendszerhez kifejlesztett XNU egy hibrid rendszermag, amely a Carnegie Mellon Egyetemen kifejlesztett Mach kernel 2.5-ös verzióját ötvözi a 4.3BSD komponensekkel és egy objektumorientált API-val a Driver Kit nevű illesztőprogramok írásához.

Miután az Apple megvásárolta a NeXT-et, a Mach-összetevőt frissítették OSFMK 7.3-ra, amely egy mikrokernel. Az Apple egy erősen módosított OSFMK 7.3-t használ hibrid rendszermagként a FreeBSD részeivel együtt. (Az OSFMK 7.3 tartalmazza a Utah Mach 4 kernel egyetemi kódját és a számos Mach 3.0 változat kódját, amely az eredeti Carnegie Mellon University Mach 3.0 rendszermagból származik.) A BSD összetevőket frissítették a FreeBSD projektet és az illesztőprogram-csomagot egy C ++ API-val helyettesítették az I/O Kit nevű illesztőprogramok írásához.

Mint más modern kernelek is, az XNU egy hibrid, amely mind a monolitikus, mind a mikrokernel jellemzőit tartalmazza, és mindkét technológiát a lehető leghatékonyabban próbálja kihasználni, például a mikrokernelek üzenetküldés képességét, amely lehetővé teszi a nagyobb modularitást és az operációs rendszer nagyobb részeit a védett memória előnyeit, valamint a monolitikus magok sebességének megőrzése bizonyos kritikus feladatokhoz.

Az XNU fut az ARM-en, IA-32 és x86-64 alapú processzorokon is.

Egyéb[szerkesztés]

  • BeOS
    • Haiku
  • Syllable
  • BSD-based
    • DragonFly BSD
  • NetWare
  • Plan 9 from Bell Labs
    • Inferno
  • MikeOS
  • OS/2
    • eComStation
    • OS/4
  • ReactOS
  • OS/5

Fordítás[szerkesztés]

  • Ez a szócikk részben vagy egészben a Hybrid kernel című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.