L4 (jádro)

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

L4 je rodina mikrojader druhé generace nejčastěji používaných pro implementaci un*xových operačních systémů, ale používaných také v různých jiných systémech.

L4 byl stejně jako jeho předchůdce L3 vytvořen německým počítačovým vědcem Jochenem Liedtkem jako odpověď na slabý výkon raných mikrojaderných operačních systémů. Liedtke se domníval, že mikrojádro použitelné pro praxi vznikne spíše na základě systému navrženého pro vysoký výkon, než na základě systému navrženého pro jiné cíle. +more Jeho původní implementace v ručně psaném assembleru procesoru Intel 80386 vyvolala v počítačovém průmyslu značný zájem. L4 byl už od svého uvedení vyvíjen s důrazem na bezpečnost, izolaci procesů a robustnost.

Mikrojádro L4 se dočkalo nejrůznějších reimplementací původního binárního rozhraní (ABI) a vzniklo tak mimo jiné L4Ka::Hazelnut a L4Ka::Pistachio (Technologický institut v Karlsruhe), L4/Alpha a L4/MIPS (UNSW) a L4/Fiasco (Technická univerzita Drážďany). Z tohoto důvodu je název L4 vnímán obecněji a je nyní používán pro celou rodinu mikrojader zahrnující různé verze jaderného rozhraní.

L4 je široce rozšířeno. Jedné varianty, OKL4 od Open Kernel Labs, bylo prodáno v miliardách mobilních zařízení.

...

Historie

Operační systém typu mikrojádro (mikrokernel) vznikl jako reakce na neustálé zvětšování klasických monolitických operačních systémů, u kterých tak začal být obtížný další vývoj a údržba. Návrh mikrojádra proto odpovídá teorii strukturovaného programování. +more Výhoda mikrojádra spočívá v rozdělení systému na menší části (uživatelské servery a vlastní mikrojádro), což přináší vyšší přehlednost kódu.

Nevýhodou mikrojádra je častější nutnost změny kontextu při systémovém volání mezi uživatelským procesem, mikrojádrem a obsluhujícími servery, a s tím související ztráty výkonu.

Špatný výkon první generace mikrokernelů, jako byl zejména Mach 3, vedl v polovině devadesátých let 20. století množství vývojářů k redefinici celého konceptu mikrokernelu.

Asynchronní vnitro-kernelový koncept meziprocesové komunikace (IPC) mikrokernelu Mach 3, používající velkou vyrovnávací paměť (buffer), se ukázal být jedním z hlavních důvodů pro jeho špatný výkon. Toto přimělo vývojáře na Machu založených operačních systémů k přenesení některých časově kritických komponent, jako jsou ovladače (systém GNU Hurd) a souborové systémy, zpět do jádra, často až k přechodu k hybridnímu jádru (systémy macOS, NT). +more I když to poněkud zmírnilo problémy s výkonem, je to jasné porušení minimalistického konceptu opravdových mikrokernelů a plýtvá jejich hlavními výhodami.

Detailní analýza úzkého hrdla operačního systému Mach indikuje, že (jakékoliv další) požadavky na mikrokernel, dělají problém příliš složitým: kód meziprocesové komunikace IPC, jehož většina je v jádře, představuje špatnou lokalizaci; což ve výsledku znamená příliš mnoho neúspěšných čtení cache CPU (musí se číst z mnohem pomalejší paměti). Tato analýza vedla k závěru, že efektivní mikrokernel musí být dostatečně malý, aby většina výkonu kritického kódu byla k dispozici v cache první úrovně (pokud možno malý zlomek zmíněné cache).

Po zkušenosti s použitím svého mikrokernelu L3, dospěl Liedtke k závěru, že i několik dalších konceptů Machu bylo špatných. Prostřednictvím zjednodušení konceptu mikrokernelu ještě vynalezl první mikrokernely L4 (jádra druhé generace), které byly od počátku primárně navrženy pro vysoký výkon. +more Za účelem vyždímat každý kousek výkonu jádra, byly celé napsány v assembleru a jeho meziprocesová komunikace (IPC), tak byla 20krát rychlejší než v případě Machu.

Architektura

K nastínění obecné představy o mikrokernelu, Liedtke uvedl:

„Koncept mikrokernelu je tolerovatelný pouze tehdy, pokud přenáší maximum funkcí zevnitř kernelu ven, a tím umožňuje využití paralelního běhu serverů zabezpečujících požadovanou funkčnost systému.“

V tomto duchu, mikrokernel L4 poskytuje několik základních mechanismů: address spaces (abstrahujících tabulky stránek a poskytujících ochranu paměti, threads a scheduling (abstrahujících provádění vláken a poskytující plánování), a meziprocesovou komunikaci (pro řízení komunikace mezi procesy a thready).

Operační systém založený na mikrokernelu jako je L4, poskytuje služby, jako jsou servery, v uživatelském prostoru, zatímco monolitické kernely, jako je Linux a jako je první generace mikrokernelů, obsahuje uvnitř prostoru jádra. Například kvůli implementaci Unix-like bezpečnostního systému, musí mikrokernel (jako L4) poskytnout (uživatelské) servery pro management práv, zatímco mikrokernel Mach je obsahuje uvnitř kernelu.

L4 family tree

L4

Po zkušenosti s použitím L3, dospěl Liedtke k závěru, že několik dalších konceptů Machu bylo také špatných. Prostřednictvím zjednodušení konceptu mikrokernelu ještě vynalezl první mikrokernely řady L4, které byly od počátku primárně navrženy pro vysoký výkon. +more Za účelem vyždímat každý kousek výkonu jádra, bylo celé napsáno v assembleru a jeho meziprocesová komunikace (IPC) tak byla 20krát rychlejší než v případě Machu. Tak dramatický nárůst výkonu je vzácná událost v oblasti operačních systémů, a Liedtkova práce spustila nové kolo implementace a práce na systémech založených na L4 v řadě vysokých škol a výzkumných ústavů, včetně IBM, kde Liedtke začal pracovat v roce 1996, TU Dresden a UNSW. V Thomas J. Watson Research Center IBM Liedtke a jeho kolegové pokračovali ve výzkumu L4 a mikrokernelových systémů založených obecně, zejména Sawmill OS.

Portabilita (přenositelnost)

L4Ka::Pistachio

Až do vydání L4Ka::Pistachio a novějších verzí L4/Fiasco, byly všechny mikrokernely L4 ze své podstaty vázány k základní architektuře CPU. Další velký posun ve vývoji L4, byl vývoj na platformě nezávislého rozhraní API, které by ještě udržel na vysoké výkonnosti, i přes svoji snazší přenositelnost. +more Přestože základní koncepce jádra zůstala stejná, nové API nyní poskytuje mnoho radikálních změn oproti předchozí verzi L4, včetně lepší podpory pro systémy s více CPU (jádry), volnější vazby mezi vlákny (thready) a adresními prostory a zavedení uživatelské úrovně řídící blok vláken (UTCBs) a virtuální paměti. Po uvolnění nové L4 API (verze X. 2 aka verze 4) na počátku roku 2001 aplikovala System Architecture Group na univerzitě v Karlsruhe nový kernel, (L4Ka::Pistachio) úplně od začátku, nyní se zaměřením se jak na vysoký výkon, tak na přenositelnost. Toto bylo vydáno pod dvojklauzulovou BSD licencí.

Vysoká spolehlivost a bezpečnost

seL4

V roce 2006 zahájila skupina NICTA vývoj třetí generace mikrokernelu, s názvem seL4, s cílem poskytnout základ pro vysoce bezpečné a spolehlivé systémy, vhodné pro uspokojování bezpečnostních požadavků, jako jsou ty z Common Criteria i mimo ně.

Související články

Osobnosti

Jochen Liedtke - autor původního mikrojádra L4 * Andrew S. +more Tanenbaum - autor jader MINIX 1 a 2, a mikrojádra MINIX 3, vizte též jádro NetBSD * Gernot Heiser - autor mikrojádra seL4.

GNU - GNU GPL (licence)

Free Software Foundation (FSF) - organizace (nadace), která zastřešuje Projekt GNU ** Projekt GNU - projekt původně Richarda Stallmana, který má za cíl vyvinout kvalitní a svobodný operační systém - GNU *** GNU GPL - licence napsané Richardem Stallmanem a dalšími, k uskutečnění cílů Projektu GNU **** GNU Hurd - svobodný operační systém založený na mikrokernelu GNU Mach, vyvíjený Projektem GNU **** KataOS - svobodný operační systém od Google založený na mikrokernelu seL4 **** Linux (jádro) - jádro svobodného operačního systému, vyvíjené Linux Foundation; modulární monolitické jádro **** Linux-libre - jádro svobodného operačního systému, vyvíjené dcerou FSF (FSFLA), fork Linux (jádro); modulární monolitické jádro

BSD - BSD licence

Berkeley Software Distribution - obchodní organizace při University of California, Berkeley, která vyvinula licenci BSD a používala pro práce nad operačním systémem BSD Unix. ** BSD licence - licence organizace BSD, která používala pro BSD Unix a odvozená díla *** FreeBSD - svobodný operační systém, který vznikl z BSD Unixu; modulární monolitické jádro *** DragonFly BSD - svobodný operační systém, fork FreeBSD 4. +more8 s hybridním jádrem *** NetBSD - svobodný operační systém, který vznikl z BSD Unixu (před FreeBSD); modulární monolitické jádro *** OpenBSD - svobodný operační systém, fork NetBSD zaměřený na bezpečnost; monolitické jádro *** MINIX 3 - svobodný operační systém; mikrojádro navržené a vytvořené profesorem jménem Andrew S. Tanenbaumem; kompatibilita s NetBSD.

Reference

Další čtení

Jochen Liedtke, Ulrich Bartling, Uwe Beyer, Dietmar Heinrichs, Rudolf Ruland, Gyula Szalay. [url=http://portal. +moreacm. org/citation. cfm. id=122124&dl=ACM&coll=&CFID=15151515&CFTOKEN=6184618]Two years of experience with a μ-Kernel based OS[/url], ACM Press 1991 * (on L4 kernel and compiler) * Cheng Guanghui, Nicholas Mc Guire. [url=https://web. archive. org/web/20120327161621/http://dslab. lzu. edu. cn:8080/docs/publications/l4_kickstart. pdf]L4/Fiasco/L4Linux Kickstart[/url], Distributed & Embedded Systems Lab - Lanzhou University * Evolution of L4 design and implementation approaches.

Externí odkazy

[url=https://web. archive. +moreorg/web/20140830054545/http://www. l4hq. org/]L4Hq[/url]: L4 headquarters, community site for L4 projects * [url=http://os. inf. tu-dresden. de/L4/]The L4 microkernel family[/url]: Overview over L4 implementations, documentation and projects * [url=http://wiki. tudos. org/]Official TUD:OS Wiki[/url] * [url=http://www. l4ka. org]L4Ka[/url]: Implementations L4Ka::Pistachio and L4Ka::Hazelnut * [url=http://www. cse. unsw. edu. au/~disy/L4/]UNSW[/url]: Implementations for DEC Alpha and MIPS architecture * [url=https://web. archive. org/web/20080820043831/http://okl4. org/]OKL4[/url]: Commercial L4 version from [url=https://web. archive. org/web/20090319021316/http://www. ok-labs. com/]Open Kernel Labs[/url] * [url=https://web. archive. org/web/20140717185304/http://www. ertos. nicta. com. au/research/l4/]NICTA L4[/url]: Research Overview and Publications * [url=http://genode. org/about/index]Genode Operating System Framework[/url], an offspring of the L4 community * [url=http://www. linuxexpres. cz/novinky/zdrojove-kody-sel4-otevreny]Zdrojové kódy seL4 otevřeny[/url].

Kategorie:Operační systémy Kategorie:Mikrojádra Kategorie:Systémový software Kategorie:Svobodný software Kategorie:Software v C Kategorie:Software v Jazyce symbolických adres

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top