Hibrid kernel
From Wikipedia, the free encyclopedia
Remove ads
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
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. A 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 a rendszermag és a felhasználói mód között a kontextusváltáshoz, amely normális esetben mikrokernellel jár.
Remove ads
Példák
Microsoft Windows NT
A hibrid rendszermag egyik kiemelkedő példája a Microsoft Windows NT rendszermag, mely 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 a 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: struktúrája olyan modulok gyűjteménye, melyek jól ismert interfészeken keresztül kommunikálnak, egy kis mikrokernelre, mely 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 magukba foglalják, olyan rendszermagot, amelynek absztrakciói elég általánosak ahhoz, hogy több operációs rendszer tulajdonságát egy objektumorientált szervezetre is kiterjesszék.
Az NT oka, hogy nem mikrokernel rendszer: szinte az összes alrendszer, mely 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, mely a Mach korai verzióival, valamint minden Mach alapú 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, melyek 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íti. 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 (melyek 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, Linux néven. Ez az alrendszer, mely 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, melyet 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 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, melyek szigorúan a Linux kernelre támaszkodnak, nem fognak 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, melyhez 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), melyek szükség szerint leképezhetők az alkalmazásfolyamatok címterére, az 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, melyek a címtartományukba rendeződnek, és mely 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, melyek az NT API-t kommunikálják alkalmazási folyamatok, a kernel módú alrendszerek és egymás között.
XNU kernel
Az XNU az a kernel, melyet 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, mely 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, mely 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, mely 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, az XNU is egy hibrid, mely 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ési képességét, mely 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
- BeOS
- Haiku
- Syllable
- BSD-based
- DragonFly BSD
- NetWare
- Plan 9 from Bell Labs
- Inferno
- MikeOS
- OS/2
- eComStation
- OS/4
- ReactOS
- OS/5
Remove ads
Fordítá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.
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads