OS Singularity
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

OS SingularityOS Singularity

 

OS Singularity

Google       Google       8. 10. 2006       18 187×

Článek popisuje OS Singularity společnosti Microsoft. Poukazuje na možné principy operačních systémů budoucnosti.

Singularity je relativně nový operační systém společnosti Microsoft, který vyvíjí tým Microsft Research. Cílem je vyzkoušet různé principy, které by se mohly v operačních systémech v budoucnosti objevit. Díky tomu, že se jedná o výzkumný projekt, mohou si vývojaři dovolit odstranit některé postupy, které dnešní aplikace používají, a nahradit je jiným konceptem, díky kterému například pád jednoho procesu nemůže ovlivnit fungování jiného.

Systém je jedinečný tím, že je přibližně z 90 % napsaný v jazyku C# – většina kernelu a všechny aplikace jsou psány v bezpečném managed kódu. O jejich spouštění se stará běhové prostředí systému, podobně jako .NET Framework pod Windows. Ze zbývajících několika procent je většina unsafe C# – např. garbage collector musí pracovat alespoň v minimální míře s ukazateli, ale i tak může být psán v C#. To, že je systém a z větší části i kernel napsán v C#, rozhodně neznamená, že by byl výrazně pomalejší – procesy se při spouštění (z větší části pravděpodobně při instalaci) kompilují do nativního kódu a běží nativně. Hlavní výhoda je, že nativní kód vznikl z managed jazyka a nemůže obsahovat neverifikovatelné, a tedy potenciálně nebezpečné operace, jako např. přístup programu do paměti, která mu nepatří.

Mikrokernel a izolace procesů

Systém je založený na architektuře mikrokernelu – samotné jádro je co nejmenší a řídí pouze to nejnutnější, jako je komunikace mezi dalšími komponentami a správa paměti. Architektura má smysl, pouze pokud jsou od sebe všechny komponenty důsledně izolované, a proto se v čisté podobě nepoužívá v dnešních OS. To lze řešit hardwarově pomocí segmentace a mapování paměti, což systém zpomaluje a to je na úrovni kernelu a ovladačů problém.

Singularity nabízí elegantní řešení – tím, že jsou všechny procesy psané v managed kódu, je při jejich spuštění zaručeno, že budou pracovat pouze s pamětí, která jim náleží, a izolace je tedy řešená softwarově. Všechny procesy tedy mohou bez starostí běžet v jednom adresovém prostoru a odpadá potřeba virtuální paměti pro každý proces a zpomalování kvůli přepočítávání adresy.

Konec s dynamickým linkováním

Po přímém přístupu k paměti je dalším z principů, které v Singularity není možné používat, dynamické linkování – tedy načítání a spouštění kódu v rámci aplikace za běhu, které může být často nebezpečné i v nešikovně napsané managed aplikaci. Aplikaci je možné bez dynamického linkování mnohem lépe při kompilaci optimalizovat (kompilátor zná vše, co se kdy může v aplikaci odehrát).

Nemožnost dynamického načítání je nahrazena možností spouštět další procesy a efektivním způsobem rychlé komunikace mezi procesy.

Komunikace mezi procesy

Mechanismus, který umožňuje komunikaci, se v Singularity nazývá kanály (channels). Kanál je spojení mezi dvěma procesy řízené jádrem operačního systému a má jasně definovaný kontrakt. Kontrakt je v tomto případě nejen struktura zpráv, které se mohou kanálem posílat, ale i omezení kladené na jejich pořadí (strukturu zpráv může celkem úspěšně kontrolovat kompilátor, pořadí se podle mě musí vynucovat až za běhu). Kanál není součástí aplikací, takže pokud dojde k chybě v jedné aplikaci, neovlivní to fungování aplikace na druhém konci (jak se může stát při standardním sdílení paměti).

Posílání zpráv přes kanál má ještě jednu zajímavou vlastnost. Architektura je navržená tak, že jakmile aplikace pošle zprávu do kanálu, ztrácí na ni přístup (a nemůže ji měnit). To je zásadní rozdíl oproti sdílení části paměti a hlavní výhodou je, že o takto napsaném programu se dá mnohem lépe přemýšlet a posuzovat jeho správnost. Mimo to je díky této logice možné komunikaci napsat velmi efektivně. Oba procesy běží ve stejném adresovém prostoru a zásluhou managed kódu nemohou ilegálním způsobem manipulovat s pamětí, a tak při posílání zprávy systém může pouze předat ukazatel na data zprávy.

Závěrem

Bez nadsázky mohu říct, že se jedná o skutečně jedinečné pojetí architektury operačního systému, které svými vlastnostmi překoná pravděpodobně všechny stávající operační systémy. Dá se předpokládat, že použití principů Singularity v praxi nebude ještě nějakou dobu možné. Další informace můžete najít na domovské stránce projektu.

Moc mě zajímají váše názory na architekturu OS a použité technologie – napište je, prosím, do komentářů.

Zdroj: http://blog.vyvojar.cz/tomas/archive/2006/10/03/Microsoft-Research-_2D00_-Singularity-OS.aspx - autor souhlasil s použitím textu

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
(fotka) Dušan JanošíkDušan vyvíjí software a webové aplikace na platformě .NET. Je milovníkem neuznávaných teorií, a zajímá se o parapsychologii a teraristiku.
Web     Twitter     Facebook     LinkedIn    

Nové články

Obrázek ke článku Stavebnice umělé inteligence 1

Stavebnice umělé inteligence 1

Článek popisuje první část stavebnice umělé inteligence. Obsahuje lineární a plošnou optimalizaci.  Demo verzi je možné použít pro výuku i zájmovou činnost. Profesionální verze je určena pro vývojáře, kteří chtějí integrovat popsané moduly do svých systémů.

Obrázek ke článku Hybridní inteligentní systémy 2

Hybridní inteligentní systémy 2

V technické praxi využíváme často kombinaci různých disciplín umělé inteligence a klasických výpočtů. Takovým systémům říkáme hybridní systémy. V tomto článku se zmíním o určitém typu hybridního systému, který je užitečný ve velmi složitých výrobních procesech.

Obrázek ke článku Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Vedení týmu v oboru informačních technologií se nijak zvlášť neliší od jiných oborů. Přesto však IT manažeři čelí výzvě v podobě velmi rychlého rozvoje a tím i rostoucími nároky na své lidi. Udržet pozornost, motivaci a efektivitu týmu vyžaduje opravdu pevné manažerské základy a zároveň otevřenost a flexibilitu pro stále nové výzvy.

Obrázek ke článku Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Za poslední rok se podoba práce zaměstnanců změnila k nepoznání. Především plošné zavedení home office, které mělo být zpočátku jen dočasným opatřením, je pro mnohé už více než rok každodenní realitou. Co ale dělat, když se při práci z domova ztrácí motivace, zaměstnanci přestávají komunikovat a dříve fungující tým se rozpadá na skupinu solitérů? Odborníci na personalistiku dali dohromady několik rad, jak udržet tým v chodu, i když pracovní podmínky nejsou ideální.

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý