LEHRBAUM, R.: Linux + Microwindows: challenger to WinCE. Copyright © 2000 LinuxDevices.com.
Přeloženo a otištěno se souhlasem vlastníka aut. práv.
Linux + Microwindows: soupeř WinCE
Linux proti Windows. To je válka, která zuří na mnoha frontách. Zatímco armády těch vývojových pracovníků, kteří tvoří své aplikace v Linuxu, útočí na pozice WinNT v serverech, routerech, firewallech a v oblasti telekomunikačních aplikací, oddíly přívrženců otevřeného zdrojového kódu potichu a nenápadně obsazují pozice, které dříve příslušely dalšímu z operačních systémů firmy Microsoft – WinCE. Je to oblast handheldů a vestavných systémů.
Soupeři
Chce-li se Linux s úspěchem postavit WinCE, musí se vyrovnat se dvěma úkoly. Za prvé musí zmenšit svoji velikost, aby byl vhodný pro stísněné prostory ve vestavných systémech. Naštěstí to díky modularitě, pružnosti a možnostem konfigurace Linuxu není problém. Pozitivem je i dostupnost otevřeného zdrojového kódu, velmi oceňovaná tisíci programátorů, kteří prahnou po tom, aby mohli Linux aplikovat do miliard vestavných aplikací. Výsledkem je množství „malých ostrůvků“ Linuxu v oblasti vestavných aplikací, např. Embedix, ETLinux, LEM, Linux Router Project, LOAF, uClinux, muLinux, ThinLinux, FirePlug Linux a PizzaBox Linux (viz www.linuxdevices.com/links).
Druhým úkolem, s nímž se musí Linux vyrovnat, chce-li s WinCE úspěšně soupeřit na poli vestavných aplikací, je vytvořit grafické uživatelské rozhraní (GUI), které bude snadno ovladatelné pro obsluhu i pro programátory. Takové rozhraní, které by splňovalo všechny požadavky vestavných aplikací, dosud nebylo v Linuxu k dispozici. Ale tvrzení, že v Linuxu není vhodné GUI pro vestavné aplikace, nyní, se zdokonalováním funkčních schopností systému Microwindows, přestává být pravdivé. Microwindows je projekt, který přinese do oblasti Linuxu pro vestavné aplikace moderní grafické prostředí postavené na bázi programových oken.
Greg Haerr, vedoucí vývojový projektant Microwindows, řekl: „Je to systém, který dovolí sestavit aplikační programové rozhraní špičkové kvality.“ „Cílem vývoje Microwindows je vytvořit moderní softwarový systém se souborem funkcí, s kterým můžete realizovat vše, co vyžadují malé vestavné aplikace,“ pokračoval Haerr. V krátkosti: Microwindows je hardwarově nenáročné uživatelské rozhraní s otevřeným zdrojovým kódem. Je to ideální doplněk systémů Linux pro vestavné aplikace. Spolu tvoří ofenzivní tým, který se může úspěšně utkat s WinCE.
Dvě aplikační programová rozhraní za cenu jednoho
Microwindows přináší ještě jednu výhodu. Aplikační programové rozhraní (API) vytvořené v Microwindows, které se nazývá Win32 GDI API, je graficky téměř shodné s WinCE. Pro programátory je proto snadné použít své zkušenosti a znalosti získané při programování ve Windows 98/NT/CE také při tvorbě aplikací v Linuxu. Programátor, který byl zvyklý pracovat v operačním systému Windows, může po krátkém seznámení a zaškolení začít pracovat s Microwindows.
Microwinows ovšem nabízí řešení i pro ty programátory, kteří jsou zvyklí na linuxové API X Window. Microwindows jim nabízí Nano-X, rozhraní, které je alternativou k Xlib z X11. Tyto dvě skutečnosti – za prvé, že v Microwindows jsou k dispozici aplikační rozhraní podobné Win32 i X, a za druhé, že je to systém s otevřeným kódem, tzn. s možností snadno jej přizpůsobit požadavkům uživatele – činí z Microwindows ideální grafické rozhraní pro malé a vestavné aplikace.
Schopné k okamžitému použití
Jak jsou Microwindows připraveny k použití ve vestavných aplikacích? Haerr říká: „Microwindows již byly začleněny do mnoha 32bitových aplikací pracujících v mnoha vestavných CPU, včetně MIPS, StrongARM, SH3 a Intel – to znamená, že byly začleněny do zcela reálných aplikací v handheldech a vestavných zařízeních, které budou uvedeny na trh v průběhu následujících šesti měsíců. Microwindows budou součástí osobních digitálních asistentů (PDA) pracujících s Linuxem, podobných např. známým asistentům Everex Freestyle a Vadem Clio s Windows CE.“
Jsou Microwindows hotová? „Definitivně ještě ne,“ říká Haerr. „Není to jen náhrada WinCE, jak někteří soudí. Microwindows přinesou i množství nových funkcí, potřebných pro účelné a spolehlivé uživatelské rozhraní vhodné pro vestavné aplikace. Microwindows mají otevřený zdrojový kód, mohou tedy být přizpůsobovány podle požadavků uživatele.“ Chcete zkusit uživatelsky přizpůsobit WinCE? Hodně štěstí…
Co ještě není kompletní? „Mnohé,“ vysvětluje Haerr. „Ačkoliv značná část GDI API je již implementována, práce je ještě na samém začátku. Například Microwindows v současné době umožňují vyjímání objektů do schránky, kreslení čar, kreslení a vyplňování obdélníků, mnohoúhelníků, kružnic, elips, psaní textů s různými fonty, podporují barevný model RGB, vytváření oken, vnořených oken, zpráv, barevných palet, podporují frame buffer 1, 2, 4, 8, 16 a 32 bpp, umožňují vytvářet titulní proužky, rámečky, pracovat s objekty pomocí funkcí blit atd. Zatím ale nepodporují kódy pro rastrové operace ROP src/dest, neumějí kreslit přerušovanou čáru, vyplňovat objekty vzory a šrafami, nepodporují funkci strechblit a mnohé další. Velký problém je, že dosud nejsou portovány všechny uživatelské nástroje, které využívají WinCE, jako menu, zátržítka (check box), dialogová okna s rolovací nabídkou (combo box), výčtové rámečky (list box), stromové struktury nabídek atd. To jsou funkce, které mnohé aplikace vyžadují. Microwindows poskytují výhodnou možnost kompilovat aplikace v Linuxu a emulovat je na pracovní ploše systému X bez toho, aby musela skutečně běžet na cílovém zařízení. K dispozici jsou drivery pro X11, frame buffer, PC VGA stejně jako pro hardware mnoha vestavných zařízení.
Původní záměr projektu byl nabídnout programátorům, kteří pracovali s Win32, přechod k linuxovým systémům, a to tak, že dostanou k dispozici náhradu WinCE s otevřeným zdrojovým kódem, v níž budou funkční rekompilované aplikace z Windows. Když se podíváme na tempo, jímž se Microwindows vyvíjejí, lze očekávat, že tohoto cíle bude zakrátko dosaženo.
Další informace o Microwindows lze získat na webové stránce projektu – microwindows.censoft.com a na stránce linuxdevices.com.
|