Úvodní stránka | Tato stránka v originále

Jádro (softwarové inženýrství)

jádro je základní část operačního systému. To je kus softwaru zodpovědný pro poskytovat bezpečný multiplexing a arbitráž stroje je hardware. Jádra obvykle také uskuteční soubor abstrakcí hardwaru, které poskytují čisté rozhraní k základovému hardwaru.

Tam jsou tři široké kategorie jádr:

Tabulka s obsahem
1 monolitická jádra
2 Microkernels
3 monolitická jádra vs. microkernels
4 Exokernels
5 vidět také
6 externích spojení

Monolitická jádra

Monolitický přístup definuje vysokoúrovňové virtuální rozhraní přes hardware, se souborem primitives nebo systémových volání realizovat služby operačního systému takový jako vedení procesu, souběžnosta správa paměti v několika modulech, které vpustí režim dozorce.

Dokonce jestliže každý modul opravovat tyto operace je oddělený od celku, integrace kódu je velmi těsná a těžká dělat správně, a, jak všechny moduly vpustí stejný prostor, chyba v jednom z nich může svrhnout celý systém. Nicméně, když implementace je kompletní a důvěryhodná, pevné vnitřní začleněnní komponent dovolí nízkoúrovňové rysy základového systému být účinně vykořisťován, dělat dobré monolitické jádro vysoce výkonný. Podpůrcové monolitického jádrového přístupu dělají případu to jestliže kód není správný, to nepatří do jádra, a jestliže to je, tam je malá výhoda v přístupu microkernel.

kříženec monolitické jádro je jedno to může načíst moduly u provozní.

Příklady monolitických jádr:

Microkernels

Microkernel přístup spočívá v definovat velmi jednoduchý
virtuální stroj přes hardware, se souborem primitives nebo systémových volání splnit minimální OS služby takový jako vedení niti, adresové prostory a meziprocesová komunikace.

Hlavní cíl je oddělení implementací základní služby od operační politiky systému. Například, proces Já/O blokování mohlo být uskutečněno uživatelským serverovým během nahoře microkernel. Tyto servery uživatele, použitý pokračovat systémová vysoká úroveň se rozdělí, být velmi modulární a zjednodušovat strukturu a návrh jádra. Servisní server, který propadne nepřinese celý systém dole; tento jednodušší modul může být restartován nezávisle na zbytku.

Příklady microkernels:

Monolitická jádra vs. microkernels

Monolitická jádra jsou typicky přednostní přes microkernels přímo k nižší úrovni složitosti prodávání s celým kódem systémového řízení v jednom adresovém prostoru. Například, XNU,
Mac OS X jádro, je založený na Machovi 3.0 + BSD ve stejné adrese prostor v rozkazu omezit latenci si způsobil tradičním microkernel designem.

V časných devadesátých létech, monolitická jádra byla zvažována zastaralý. Konstrukce Linuxu jak monolitického jádra poněkud než microkernel byl téma slavný slovní přestřelka mezi Linus Torvalds a Andrew Tanenbaum; shrnutí je dostupné online.

Tam je správnost v obou stranách argumentů představovaných v Tanenbaum/Torvalds debaty.

Monolitická jádra inklinují být snadnější k designu správně a proto smět stát se více rychle než microkernel založený systém. Tam jsou příběhy o úspěchu v obou táborech.

Opačný k obecné víře, Mach není konečný cíl, být-všichni microkernel techonology. L3 byl vytvořen odhalit mýtus že microkernels jsou pomalé. L4 je následník L3 a populární implementace volala fiasko je schopné provozovat Linux vedle jiných L4 procesů v oddělených adresových prostorech. Tam jsou dostupné snímky obrazovky na freshmeat.net ukazovat tento výkon.

QNX je operační systém, který byl kolem od časných osmdesátých lét a má velmi minimalistic microkernel design. Tento systém byl daleko úspěšnější než Mach v dosahovat branek microkernel vzoru. To je použito v situacích kde software není povolený k selhání. Toto zahrnuje robotické paže na raketoplánu ke strojům, které brousí sklo kde malá chyba může stát stovky tisíců dolarů.

Mnoho věřit tomu protože Mach v podstatě propadl k adrese suma záležitostí, které microkernels byly chtěla řešit to celá microkernel technologie je neužitečná. Mach nadšenci říkají, že toto je uzavřený hlídaný postoj, který stal se populární dost že lidé jen považují to za pravdu.

Exokernels

Exokernels, také známý jako svisle uspořádané operační systémy, být poněkud radikální přístup k OS design. Centrální řada myšlenky je, “oddělit ochranu od vedení”.

Nápad za tímto je, nikdo ví to lépe jak dělat účinné použití dostupný hardware ale aplikační vývojář, tak umožnit jemu učinit rozhodnutí. Exokernels je extrémně malý od té doby, co oni libovolně omezí jejich funkčnost na ochranu a multiplexing prostředků.

“Klasický” designy jádra (oba monolitický a microkernels) oddělit hardware, skrývat prostředky pod hardwarovou abstrakční vrstvou (Hal), nebo za “důvěryhodnými” servery (tj. servery jsou rozšíření funkčnosti jádra a není tam žádná cesta kolem nich).

V těchto “klasických” systémech, jestliže vy přidělíte paměť, vy máte žádné pořekadlo ve které fyzické straně vy budete zpětní OS. Jestliže vy píšete souboru, vy máte žádné pořekadlo na souborovém systému nebo fyzické blokové alokaci.

To je tato vrstva abstrakce že exokernel pokusí se vyhnout se. To dovolí aplikaci žádat specifický kus paměti, specifický diskový blok etc., a pouze zajistí to žádaný zdroj je volný a aplikace má dovoleno zpřístupňovat to.

Protože exokernel je proto jen poskytovat velmi nízkoúrovňové rozhraní k hardwaru, postrádat některého vyšší-úroveň functionalities jiných operačních systémů, to je rozšířeno “knihovním operačním systémem”. Takový libOS rozhraní k exokernel dole, a poskytuje spisovatele aplikace se známými functionalities kompletní OS.

Toto má několik implikací:

To je možné mít několik různých libOSes v systému. Jestliže, například, vy máte libOS, který vyváží unix API a jeden vyvážet Windows API, nic tají vás před během aplikace spojovat libOS oken a jedno spojování libOS unixu, současně. libOS vývoj je dělán v prostoru uživatele -- ne restartuje, žádné ladění terminálu, úplně paměť-chráněný. Návrháři aplikace jsou volní nahradit části, nebo všichni, libOS s abstrakcemi jejich se přiznat k výkonu zvýšení.

Nyní, exokernel design je ještě velmi hodně úsilí výzkumu a to není použito v nějakých hlavních komerčních operačních systémech. Jedno pojetí operační systém je Nemesis, napsaný Univerzitou Cambridgea, Univerzitou Glasgowa, Citrix systémy a švédským institutem informatiky. MIT také stavěl několik exokernel založených systémů.

Viz též

Externí odkazy