TOPlist

OS Fuchsia: co je pod pokličkou tajemného operačního systému Googlu?

os_fuchsia_icp

V pondělí jsme informovali o tom, že Google pracuje na novém OS Fuchsia. Redaktor serveru Android Authority Gary Sims, který mimo jiné působil deset let jako softwarový inženýr a ovládá několik programovacích jazyků, se Fuchsii podíval na zoubek. Co zjistil?

Počítače jsou jako auta

Počítače jsou jako auta, která většina majitelů používá tak, že je nastartuje a jezdí v nich. Často ani nepřemýšlejí nad tím, jak složité procesy se vlastně odehrávají v útrobách kdesi pod kapotou. S operačními systémy je to podobné: bez ohledu na to, zda mluvíme o Windows, OS X, Linuxu či Androidu, můžeme říci, že uživatelé mají k dispozici zralý produkt, který prošel mnohaletým vývojem. Většina uživatelů nejen neřeší, ale často ani neví, jak vlastně takový operační systém funguje, jaké jsou jeho úkoly, co zajišťuje.

Fuchsia se od nejznámějších systémů liší v mnoha směrech. Je to nový operační systém, který je teprve v plenkách, probíhá jeho vývoj a zdaleka není úplný. Téměř pro všechny, snad kromě jeho autorů, je takovou malou záhadou. Protože ale autoři publikují zdrojové kódy, je možné s použitím příslušných nástrojů sestavit produkt, který lze spustit (tedy v případě OS zavést či „nastartovat“). Právě do tohoto úkolu se Gary Sims pustil po napsání první aktuality.

Kompilace systému

Nejjednodušší cestou ke zkompilování OS Fuchsia je použití 64bitového stroje s procesorem Intel a linuxovou distribucí Ubuntu. Kompilovat lze ale i na Mac OS X a jiných distribucích Linuxu, jako je třeba Debian.

Před několika týdny začali vývojáři Googlu uvolňovat zdrojové kódy do repozitáře nazvaného Fuchsia. Před několika týdny začali vývojáři Googlu uvolňovat zdrojové kódy do repozitáře nazvaného Fuchsia.

V těchto okamžicích je Fuchsia tvořena dvěma základními částmi. Tou první je jádro Magenta, na které jsou napojeny další různé nástroje, knihovny a programy, které z Magenty dělají Fuchsii. Srdcem Magenty je jádro Little Kernel (LK), což je v podstatě malý, primitivní operační systém, používaný například pro zavaděče („bootloadery“). I s ohledem na svou minimalistickou velikost má Little Kernel jen omezenou funkčnost, proto nad ním běží Magenta, určená pro zařízení s větší pamětí a periferiemi (pracuje tedy s ovladači hardware). Magenta má například procesy, které LK neumí. Nabízí také uživatelský režim, ve kterém běží procesy uživatele.

K sestavení operačního systému je tedy nutné udělat dvě věci. Tou první je vytvoření nástrojů a knihoven, které poběží v uživatelském prostoru, včetně jednoduchého programu shellu nazvaného „mxsh“. Druhým úkolem je sestavení LK/Magenta. Když se toto provede, lze spustit Magentu s použitím souborového systému, který obsahuje spustitelné soubory Fuchsie.

Spuštění OS Fuchsia

Jednoduchým způsobem, jak spustit OS Fuchsia, je použití populárního open source emulátoru QEMU. Zdrojový strom Fuchsie obsahuje vlastní kopii QEMU, která je kompilována jako součást celkového procesu sestavení.

Při spuštění se nejprve zobrazí několik zpráv o zavádění jádra. Úvodní zpráva zní „“welcome to lk/MP,“ po ní pak následují informace o inicializaci různých subsystémů. Poté přijde na řadu detekce procesoru, plánovač a správce zařízení a sítí. Po nastartování může uživatel komunikovat se systémem přes jednoduchý příkazový řádek („shell“) s názvem „mxsh.“

mxsh obsahuje několik integrovaných příkazů, jako jsou cd (změna adresáře), cp (kopírování souborů a složek), echo (výpis hodnoty proměnné), ls (výpis seznamu souborů v aktuálním adresáři) a rm (odstranění zadaného souboru). Pokud zadáte řetězec, který není nativním příkazem, pak se shell bude snažit najít program příslušného názvu v adresáři /boot/bin. V tomto adresáři je mnoho různých spustitelných souborů, z nichž většina má něco do činění s testováním a dalším vývojem Fuchsie. Například jeden z programů nazvaný „thread-depth-test“ testuje schopnosti vytváření aplikačních vláken. Najdeme tu také některé jednoduché spustitelné soubory, jako jsou fortune a cowsay.

Patrně nejdůležitějším prvkem je podpora skriptovacího jazyka Dart. Za ním stojí společnost Google, která ho původně vyvinula jako náhradu za JavaScript. Dart se však od té doby značně rozrostl a dnes ho lze považovat za plnohodnotný Interpretovaný jazyk (programovací jazyk, u něhož je pro spuštění programu nezbytný jeho zdrojový kód a zvláštní program zvaný interpret, který zdrojový kód provádí), který Google používá pro své vlastní systémy (například AdWords). Obecně lze Dart spustit jedním ze dvou způsobů: kompilací do JavaScriptu (pak běží přes javascriptový interpret), nebo interpretací přes samostatný Dart VM. Fuchsia používá druhý zmíněný způsob.

Pro otestování schopností je v adresáři /boot/apps připraven skript hello_fuchsia.dart, který po spuštění zobrazí hlášku „Hello, Fuchsia!“ Zobrazení hlášky se sice na první pohled nemusí zdát jako zásadní moment, ale ve skutečnosti je docela působivé. Znamená totiž, že Fuchsia je dostatečně pokročilá k provozování prostředí komplexního interpretu a spouštění skriptů. Zvládne tedy správu procesů, vláken, paměti, vstupně-výstupní operace se soubory a další úkony. OS Fuchsia tak může připomínat vůbec první sestavení Linuxu.

Co to všechno znamená?

Prvním faktem, který vyplynul z krátkého pohledu za zrcadlo, je očividně důležitá role skriptovacího jazyka Dart. Aktuální distribuce neobsahuje žádné kompilátory, ani podporu vyšších programovacích jazyků, jako je třeba Java. Vzhledem k tomu, že Google do Dartu hodně investoval, lze usuzovat, že by mohl chtít nabídnout zařízení, na kterém poběží OS Fuchsia a aplikace budou právě v Dartu. Mohlo by se jednat například o nějaký hardware pro virtuální realitu? Nebo projekt automatizace/chytré domácnosti? Nebo prostředek umělé inteligence, využívající obrovskou infrastrukturu Googlu? Víme také, že na Fuchsii funguje projekt Flutter, což by mohl být způsob, jak vytvářet vysoce výkonné multiplatformní mobilní aplikace pomocí Dart.

Na základě dosavadních zjištění se dá předpokládat, že Fuchsia nebude mířit na zařízení s několika mála kilobajty operační paměti. Naopak to vypadá, že bude cílit na zařízení s výkonem dnešních chytrých telefonů. Podle Garyho Simse je však absurdní představa, že by se mělo jednat o desktopový operační systém, který by mohl konkurovat Windows nebo OS X. Stejně tak nepravděpodobné se jeví, že by Fuchsia měla nahradit Chrome OS nebo snad dokonce Android. Přeci jen vyhledávací gigant investoval miliony do vybudování vývojářské komunity a jistě to není něco, čeho by se tak snadno vzdal.

Musíme si uvědomit to, že Fuchsia je teprve v zárodku a v současnosti ani nemá žádné grafické uživatelské rozhraní (navíc ani není jisté, že ho vůbec někdy mít bude). Není možné ji nějakou jednoduchou cestou nainstalovat, vše se musí kompilovat ze zdrojových kódů. Omezený je i počet podporovaných příkazů a knihoven.

Účel a cíl Fuchsie je i po prvním spuštění stále záhadou, nicméně máme alespoň malé náznaky. Jedním z klíčů vedoucích k pochopení je podpora jazyka Dart a projektu Flutter. Bude zajímavé sledovat, kam se cesta tohoto operačního systému bude vyvíjet dál. Možná budeme za několik let vzpomínat, jak jsme dychtivě hltali první články o operačním systému, který ovládl svět.

Co myslíte, jaké má Google plány s Fuchsií? K čemu bude sloužit a na jakých zařízeních poběží? Proč Google nestaví na nějaké již existující platformě, ať už Android nebo Chrome OS? Podělte se o své názory v diskuzi pod článkem!

Zdroj: androidauthority.com.

Karel Kilián
O Autorovi - Karel Kilián

Karel Kilián je zkušený technický redaktor a copywriter s bohatou praxí v oblasti informačních a komunikačních technologií. Jeho kariéra začala na pozici prodavače, odkud postupně… více o autorovi

Mohlo by vás zajímat

Komentáře (4)