TOPlist

BlackBerry PlayBook a jeho operační systém: Jak pracuje technologie QNX?

RIM po dlouhém očekávání a množících se spekulacích ukončil trápení svých fanoušků a udělal ve věci jasno – představil svůj první tablet. Výrobce se v tomto případě pořádně opřel do vývoje a chce se na trhu ukázat s něčím, na co se hned tak nezapomene a zatím se mu to daří, protože reakce na nový PlayBook jsou víceméně pozitivní. RIM v tomto zařízení použil systém QNX, který si v tomto článku představíme.

QNX Neutrino je operační systém napěchovaný superlativy. Zvládá multitasking, obsluhu procesorů s více jádry, možnost přihlášení více uživatelů najednou a zároveň je bezpečný, spolehlivý, přizpůsobitelný a postavený na standardních průmyslových API. Základem QNX je POSIX, stejně jako u Linuxu nebo OS X, a používá se tam, kde je zapotřebí vysoká spolehlivost a bezpečnost (clustery, sítě, armáda, zdravotnictví, automobilový průmysl – Porsche, BMW) a RIM jej nyní nasadil i do svého tabletu. Toto řešení mimochodem ve svých routerech používá i gigant Cisco. Jeho hlavní přednosti v tomto případě jsou:
– adaptibilní přidělování ochran proti kódu, který zabírá příliš mnoho procesorového času zaručuje, že program nemůže poškodit systém nebo snížit jeho výkon. Výhodou je aktivita dle potřeby. Není-li jeho zásah vyžadován, zůstává nečinný.
– ochrana proti kódu, který zabírá příliš velkou část paměti.
– ochrana proti poškození souborů.

QNX má patent na přizpůsobivé přidělování (Adaptive Partitioning), který dává multitaskingu na PlayBooku vyniknout. Jádro je navrženo tak, aby bylo malé a velmi spolehlivé. Tradiční operační systémy jsou monolitické a obsahují velké množství kódu, který může chybovat. Komerční software obsahují obvykle 5 až 30 chyb na každých tisíc řádku kódu. Například Windows CE má 3,9 miliónu řádků, Linux 9 a více miliónů a Windows přes 70 miliónů řádků. Jádroádro QNX má 100 tisíc řádků vysoce optimalizovaného kódu. QNX má certifikace POSIX, FDA, OpenGL, ISO9001, EAL4+ a SIL3 a už to dává tušit, že by mělo jít o dobře chráněný operační systém. Zpracování je založeno na mikro jádru, které podporuje technologie ARM, MIPS, PowerPC, XScale a spoustu dalších. Manažér procesů, ovladače, síť, aplikace a další se k mikro jádru připojují jako pluginy, které nemají na okolní zařízení vliv, takže při pádu jednoho ze systémů se nezhroutí celý komplet a známé modré obrazovky smrti (BSOD) se nemusíme obávat. Vše běží v procesech a je tudíž snadnější vychytávat chyby než při debugování celého systému.

-

Programy i ovladače přebývají ve vlastním prostoru paměti s chráněným adresováním a používají dobře definované rozhraní zpráv. Díky všem těmto zprávám a segregaci jsou operační systém i aplikace efektivně obhospodařovány. Využívá se také koncept několika mikro-jader, která zařízení umožňují komunikaci přes síť enkryptovaným přenosem. Je tím umožněn multithreading ve 2 až 32 jádrových procesorech anebo distribuce a komunikace mezi několika celky, pro které není podstatné, že jsou každé součástí jiného zařízení. PlayBook tedy může komunikovat s Bluetooth, s telefonním modulem nebo například s GPS vašeho telefonu BlackBerry.

Velmi užitečné je také pokročilé řízení paměti, protože většině operačních systémů tento proces zabírá 20 až 30 % výkonu, zvlášť na architektuře ARM. Proto QNX změnil způsob práce aplikací s pamětí, a umožňuje stránkování od 4k do 1M s výkonem zvýšeným o 10 až 30 %. Dá se tedy napsat, že díky tomu vypadá práce s 1GHz procesorem jako práce s CPU taktovaným na 1,3 GHz. To vše je zakomponováno v technologii a není snadné tento způsob aplikovat na ostatní platformy, což poskytuje RIMu konkurenční výhodu.

- - -
PlayBook od BlackBerry má velkou šanci na úspěch

Platforma aplikací je část, která zajímá vývojáře (Java, Adobe Air, Flash, OpenGL, POSIX, WebKit). QNX je systém pracující se zasíláním zpráv, které tvoří komunikaci mezi operačním systémem a aplikacemi a vystaví asynchronní abstraktní objekty pro komunikaci například s audiem, telefonem, GPS nebo sítí. K navázání spojení aplikací s ostatními částmi systému se využívá asynchronní API. Například objekt pro automobil automaticky ukáže jeho rychlost a teplotu motoru, které API zprostředkuje autorizovaným aplikacím; ve světě telefonních přístrojů zase naopak chceme vědět, kdy se změnila síla signálu. Novinkou je, že všechny tyto možnosti jsou záležitostí operačního systému a neprogramovacího jazyku. Pro QNX jsou všechny programovací jazyky pouze sobě rovné a rozšiřitelné objekty, které přidávají další virtuální prostředí a platformy bez nutnosti změny architektury.

-

Jednotlivé vrstvy operačního systému
1. Neutrino OS se sítí, ovladači a všemi vlastnostmi a možnostmi jádra.
2. Navigator je část mající na starosti řízení oken a aplikací. Přepíná aplikace mezi pozadím a popředím.
3. Launcher spouští nativní, Adobe Air, HTML a další aplikace, monitoruje paměť a má na starosti ukončování aplikací. Vytváří virtuální chráněné prostředí, spouští a zastavuje aplikace a komunikuje s Navigatorem při změnách.
4. Apps – aplikace, které běží ve vlastní virtuální chráněné paměti. Každá aplikace má své vlastní prostředí.
5. Composition – tato část pomocí potřebné technologie vše ostatní skládá a zobrazuje na vašem displeji. Potřebujete například, aby část aplikace napsané v Adobe Air využívala WebKit. Systém vám to umožní a WebKit s Adobe Air hladce poběží společně v jedné aplikaci.

Composition je velmi zajímavá část, která vám umožní zobrazovat web, PDF, video a další například v Adobe Air nebo další technologii a to vše skrze HDMI odesílat do externího projektoru. Další neméně zajímavou vlastností je architektura médií, která otvírá přístup do SQL databáze médií, ke snadno připojitelným kodekům a online obsahu.

Programovací prostředí běží na WIndows, Linuxu nebo OSX. Zahrnuje Adobe CSS pro Air nebo Flash, QNX pro nativní vývoj a nástroje RIM pro Javu. Celý software běží na VMware a umožňuje provoz v jakémkoli prostředí. Jednoduché publikování, podepisování a debugování přímo v tabletu přes Wi-Fi s celoobrazovkovým debuggerem.

Nativní vývoj je další částí tématu. Nástroje pro QNX jsou založeny na Eclipse a byly jedním z jeho zakládajících členů. Jmenují se Momentus a poskytují celou řadu dílčích nástrojů pro QNX (názvy jsou pro zachování srozumitelnosti v angličtině):
IDE tools
Debugger
Code coverage tools
Application profiler
System profiler
Memory analysis
System builder
target navigator view

Komponenty Compileru:
GCC optimizing compilers
ANSI C Libraries
Dinkum C++ and Embedded C++ libraries
Lots of other libraries
GDB debugger

Všechny tyto informace vypadají velmi zajímavě, a pokud bude vše tak ohromující, jak říkají dostupné materiály, máme se rozhodně na co těšit. To ale ukáže až budoucnost, avšak jak se zatím zdá, PlayBooke nakročeno správným směrem. RIM se mimochodem rozhodl celou společnost QNX koupit za částku 200 milionů USD a po uskutečnění akvizice byly ihned zdrojové kódy QNX staženy z dosahu veřejnosti.

Zdroje: BerryReview, QNX

Autor článku Standa
Standa

Kapitoly článku