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

OS SingularityOS Singularity

 
Hledat
Moderní platforma pro vytvoření vašeho nového webu – Wix.com.
Nyní už můžete mít web zdarma.
Vybavení pro Laser Game
Spuštěn Filmový magazín

OS Singularity

Google       Google       8. 10. 2006       14 946×

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

Reklama
Reklama

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

Reklama
Reklama
Obrázek ke článku NopCommerce – datová vrstva a přístup k datům – 2. díl

NopCommerce – datová vrstva a přístup k datům – 2. díl

V minulém článku jsme si představili platformu NopCommerce z globálního pohledu. V dnešním díle se již zaměříme na konkrétní část systému, a to datovou vrstvu. Představíme si základní stavební kameny systému v podobě doménových objektů. Ukážeme si, jakým způsobem rozšířit doménové objekty a jakým způsobem přistupuje NopCommerce k nastavení systému a modulů.

Obrázek ke článku Seznamte se s open source platformou NopCommerce – 1. díl

Seznamte se s open source platformou NopCommerce – 1. díl

Hledáte e-commerce řešení, které si dokážete přizpůsobit podle vašich požadavků? Chcete čistý a srozumitelný kód, se kterým bude radost pracovat? Prozkoumejte s námi možnosti open source projektu NopCommerce. Seriál programování pod NopCommerce vám pomůže překonat první kroky nejistoty a úspěšně zvládnout vývoj pod platformou NopCommerce.

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