Moravské přístroje, a. s., zdroj: https://www.mii.cz/art?id=174&lang=405, vytištěno: 24/05/2024 23:53:13

Hlavní stránkaProduktyPrůmyslový počítačový systém DataLabDataLab PC

Windows CE a Windows XP Embedded
Operační systémy rodiny Windows byly tradičně navrhovány pro práci na osobních počítačích a později i serverech s poměrně bohatou konfiguracík dispozici je disková paměť pro ukládání souborů a odkládání stránek paměti, relativně hodně paměti, výkonný procesor, rychlý grafický adaptér apod. Ovšem počítačové technologie se stávají levnější, dostupnější a také menší a méně náročné na spotřebu a tím pronikají do řady dalších oborů. Počítače lze nalézt ve strojích, domácích spotřebičích, mobilních telefonech a spoustě dalších výrobků. Takto použité počítače bývají označovány jako „zabudované“ (embedded).

První rozkvět zabudovaných počítačů umožnila masová výroba levných mikroprocesorů. Programové vybavení ale nebylo moc složité a zpravidla bylo specializované na určitou oblast nasazení. Vývoj software pro taková nasazení je velice drahý a ekonomicky přijatelný až pro velké série daného výrobku. Pro kusová nasazení je vývoj problematický. Rovněž vývojové nástroje jsou relativně nedostupné. Zabudovaná řešení často postrádala flexibilitu a konektivitu.

Naopak svět osobních počítačů se vyznačuje otevřeností. Masová a tím pádem levná výroba komponent osobních počítačů je zpřístupňuje každému a dostupnost vývoje software pro PC udělala z osobních počítačů základní prostředek nejen pro zpracování dat, ale i pro komunikaci a výměnu informací.

Jakmile se architektura procesorů určených pro zabudovaná nasazení rozšířila na 32 bitů a dostupná paměť se začala místo na KB počítat na MB, rozhodla se firma Microsoft využít popularity a obecné známosti svých operačních systémů na PC a vytvořit operační systém pro zabudovaná nasazení. Základním požadavkem byla co možná největší kompatibilita s existujícím API systémů Windowsveškeré znalosti a zkušenosti programátorů tvořících software pro Windows tak je možné využít i v zabudovaných řešení.

Windows CE

V historii firmy Microsoft existuje několik snah proniknout na trh zabudovaných aplikací, například projekt Windows At Work, který zcela neuspěl především díky použití nespolehlivého 16 bitového kódu systémů MS-DOS a Windows v3.1 a naprosté závislosti na architektuře Intel x86. Po dalších neúspěšných pokusech vyvinout zcela nový objektový operační systém (projekt Pulsar) dostal podporu systém Windows CE (podle neoficiální interpretace písmena CE značí Consumer Electronics, česky spotřební elektronika), určený právě pro práci v zabudovaných aplikacích bez pevného disku a s omezenými zdroji.

Hlavní předností systému Windows CE (a také částečně jeho nedostatkem) je snaha o zachování kompatibility aplikačního programového rozhraní s ostatními systémy Windows. Ačkoliv je systém napsán zcela znovu (není v něm obsažen kód převzatý z jiných implementací Windows), syntaxe a chování funkcí jeho programového rozhraní je až na pár výjimek shodná s jinými systémy. Tak je sice řada parametrů různých funkcí nevyužita a parametry jsou předávány zbytečně (Windows CE kupříkladu nepodporují zabezpečení, jak je známe z Windows NT/2000/XP), ale na druhé straně programátoři API systémů Windows znají a tyto znalosti mohou zužitkovat při vývoji aplikací pro Windows CE, což se ukazuje jako velmi silná zbraň v boji za získání popularity.

Celou architekturu ovlivnilo sada základních požadavků:

  • Windows CE musí být schopny práce v zabudovaných aplikacích bez diskové paměti.

  • Systém musí být navržen modulárně, aby až OEM partneři nasazující jej ve svých řešeních mohli zvolit které komponenty chtějí a které ne a tím výrazně redukovat jeho paměťové nároky.

  • Systém by měl být schopen deterministické práce v aplikacích reálného času.

  • Systém musí podporovat robustní zpracování více procesů s oddělenými paměťovými prostory a současné zpracování více prováděcích toků.

  • Cílovou platformou nebudou jen procesory x86, ale i jiné 32bitové architektury procesorů.

  • API systému by mělo zůstat kompatibilní s jinými implementacemi Windows.

Některé cíle se podařilo splnit lépe, jiné hůře:

  • Windows CE skutečně pracují na systémech disponujících řádově stovky KB paměti. Pokud je v systému začleněno grafické uživatelské rozhraní, spotřeba paměti vzroste na několik MB. Vzhledem k dnešnímu stavu vývoje pamětí a jejich ceně není racionální snažit se množství potřebné paměti dále snižovat.

  • Podpora procesorů je velmi široká. Mimo klasické řady Intel x86 podporují Windows CE i RISC procesory ARM, MIPS, PowerPC, Hitachi SH, Toshiba apod. Obecně mohou Windows CE pracovat na jakémkoliv 32bitovém procesoru s implementovanou správou paměti.

  • Podpora deterministického přepínání kontextu prováděcích toků je zavedena až od verze 3. Od této verze jádro operačního systému provádí inverzi priorit prováděcích toků jen v jediné úrovni a tím umožňuje stanovit maximální dobu potřebnou na přepnutí kontextu.

  • Od verze 3 je také k dispozici podstatně jemnější členění priorit prováděcích toků, k dispozici je 256 úrovní priorit, na rozdíl od 8 úrovní v předchozích verzích systému („velké“ implementace Windows disponují 32 úrovněmi priorit).

  • I další vlastnosti podporující zpracování úloh v reálném časy byly ve verzi 3 vylepšeny. Kupříkladu systémové časovače pracují s rozlišením 1 ms oproti 25 ms u předchozích verzí. Byla přidána podpora pro vložené zpracování přerušení (objeví-li se přerušení s vysokou prioritou v době zpracovávání přerušení s nižší prioritou, obsluha přerušení s vysokou prioritou se předběhne a nemusí čekat až obsluha přerušení s nižší prioritou skončí).

  • Počet současně spuštěných procesů je omezen na 32. Počet prováděcích toků těchto procesů je ale omezen jen množstvím zdrojů počítače. Omezení na 32 procesů plyne ze snahy o maximální zefektivnění správy paměti jednotlivých procesů. Rovněž virtuální adresový prostor každého procesu je omezen na 32 MB.

  • Další omezení se týká DLL knihoven, které jsou mapovány na stejné paměťové lokace všech procesů. Adresový prostor pro DLL knihovny každého procesu je tak omezen již zavedenými DLL knihovnami všech ostatních běžících procesů.

  • Zásadním problémem se ukázal požadavek na kompatibilitu se systémy Windows NT/2000/XP, které pracují na počítačích s neskonale větší pamětí a rychlejšími procesory a jejichž API je velice košaté. Návrháři se snažili vybrat vždy z několika způsobů, jimiž je možné danou funkčnost ve Windows NT/2000/XP naprogramovat, zachovat vždy alespoň jediný způsob, ale velmi často se nepodařilo ani to. Řada funkcí ve Windows CE prostě není a je nutné tento nedostatek složitě obcházet, pokud to je vůbec možné.

  • Dalším problémem je celkový výkon systému. Windows CE využívají k implementaci řady funkcí jádra systému (grafika, správa oken a událostí, souborové služby) servisních procesů. Ačkoliv z teoretického hlediska je taková architektura velice čistá, v praxi přináší značné problémy díky velké režii a samotné Windows NT od této architektury z výkonnostních důvodů ustoupily již ve verzi 4. Díky tomu běží Windows CE na stejném počítači znatelně pomaleji než třeba Windows 98.

  • Relativní mladost systému zapříčiňuje poměrně značné množství chyb. Vývojáři se musí připravit na problémy mající původ v systému samotném i ve vývojových nástrojích, které je nutno v aplikacích obcházet. V tomto ohledu ale není situace nijak výjimečná a lze předpokládat, že s vyspíváním Windows CE bude chyb ubývat.

Přes všechny nedostatky představují Windows CE univerzální platformu, která díky své dostupnosti, podobnosti s jinými systémy Windows, relativní bezproblémovosti implementace (ve srovnání s úsilím nutným k implementaci jiných platforem) a široké podpoře vývojových nástrojů získává na popularitě a stále častěji se stává volbou výrobců systémů pro průmyslovou automatizaci. Windows CE před jinými systémy pomáhá mimo popularity platformy Windows a síly firmy Microsoft také jejich robustní návrh a otevřenost k aplikacím třetích stran. Jiné systémy reálného času jsou často navrhovány spíše jako sada knihoven pro plánování času a podporu periferií a aplikace bývá zaintegrována do celého obrazu systému ve fázi jeho překladu a chyby aplikace ohrožují celý systém. Kupříkladu podpora pro oddělené paměťové prostory jednotlivých procesů bývá často dodávána jako volitelná komponenta, pokud je vůbec k dispozici.

Přes dostupnost vývojových prostředků Microsoft Embedded Visual C++ a Visual Basic bývá největším problémem nasazení Windows CE tvorba programového vybavení. Řada výrobců začíná nabízet systém Windows CE pro zabudované aplikace na platformě PC. Oproti jiným verzím Windows to přináší řadu výhod, například schopnost práce bez pevného disku, možnost bezproblémového vypnutí bez nebezpečí poškození souborů na disku a ohrožení dalšího startu systému, rychlý start aplikace po zapnutí apod. Problém ale je jak vytvořit aplikaci samotnou. Začít psát aplikaci přímo v jazyce C nebo C++, přitom studovat programové rozhraní systému a jeho zvláštnosti, ladit ji a testovat, to si mohou dovolit jen velké společnosti, které mají potřebné programátorské zázemí a které předpokládají nasazení aplikace ve velkých objemech schopných uhradit vysoké vývojové náklady. Pro jednotlivá navzájem se dosti lišící nasazení je použití základních vývojových nástrojů krajně nevhodné a neekonomické.

Řešením problému jak Windows CE v průmyslovém PC oživit je systém rychlého vývoje průmyslových vizualizačních a řídicích aplikací . Verze pro Windows CE umožňuje nasadit aplikaci na všech počítačích na nichž pracuje systém Windows CE verze 3.0 nebo 4.x (Windows CE.NET). Tedy nejen na počítačích s architekturou PC a FLASH pamětí namísto pevného disku, ale i na počítačích s procesory ARM či MIPS.

Windows XP Embedded (XPe)

Operační systémy řady Windows NT (včetně Windows 2000 a Windows XP) jsou tradičně svázány s architekturou PC. Řada vlastností, které pro nasazení na stolních PC či serverech nepředstavují žádný problém (nebo jsou naopak přínosné) ale prakticky znemožňují nasazení v zabudovaných aplikacíchWindows NT ke svému běhu potřebují pevný disk pro stránkovací soubor, instalace je značně rozsáhlá, uživatelé mají jen omezené možnosti ovlivňovat konfiguraci systému apod. Ovšem např. pevný disk je v mnohých zabudovaných řešeních nepřípustný pro svou náchylnost na mechanické otřesy a omezenou dobu nepřetržitého provozu.

Přesto existuje řada zabudovaných nasazení, pro něž jsou další vlastnosti Windows NT velmi vítanépředevším velmi bohatá podpora nejrůznějšího hardware, dostupnost vývojových nástrojů i velkého množství hotových programů apod. Pokud dnes na trhu existuje nějaká periferie určená k připojení k PC, šance že spolu s ní bude dodáván i ovladač pro Windows 2000/XP je opravdu značně velká. To se samozřejmě týká také zařízení pro průmyslovou automatizaci, kdy výrobci dodávají podpůrné knihovny pro komunikaci se svým hardware, OPC servery a další software především pro Windows 2000/XP. Další vítanou vlastností Windows 2000/XP je robustnost. Ačkoliv v žádném případě nejde o operační systém reálného času, pro trvalý běh aplikací a zpracovávání velkého množství dat je to systém velmi vhodný.

Prvním pokusem o úpravy Windows NT pro použití v zabudovaných řešeních bylo vytvoření systému Windows NT Workstation 4.0 Embedded. Základem úprav bylo vzájemné izolování jednotlivých modulů jádra systému tak, aby byly schopny práce relativě samostatně. Součástí distribuce byl i vývojový nástroj, který umožnil OEM partnerům systém zkonfigurovattedy zahrnout moduly, které jsou pro danou aplikaci potřebné a vynechat komponenty, které by byly nadbytečné. Tak bylo možné vytvořit obrazy Windows NT např. zcela bez grafického uživatelského rozhraní, bez podpory síťové komunikace apod. Velmi podstatnou vlastností byla schopnost práce bez pevného disku, tedy např. jen z CompactFlash disků.

Poznámka:

Paměťová mádia založená na FLASH pamětech mají ve srovnání s pevnými disky jednu výraznou nevýhodupočet zápisových cyklů je omezen podle typu paměti na 100 000 až 1 000 000. Během práce operačního systému i aplikací ale dochází k řadě zápisů na diskzakládají se a mažou pomocné soubory, zapisují se události do souborů se zprávami apod. Především se ale neustále zapisuje do odkládacího souboru (page file). Pokus umístit standardní systém Windows NT na FLASH disk se sice může zdařit, ale životnost takové instalace bývá jen několik týdnů či měsíců. Poté začne FLASH disk chybovat a instalace přestane pracovat.

U systémů určených k nasazení do zabudovaných řešení (Windows CE) takový problém nenastává, systémy prostě během práce na disk nezapisují a pokud ano, je možné vytvořit virtuální disk v paměti RAM. Systémy adaptované pro práci v zabudovaných aplikacích (Windows NT/XP Embedded) jsou vybaveny tzv. zápisovým filtrem, což je komponenta schopná zachycovat pokusy o zápis na disk a bránit tak zničení FLASH pamětí. Práce bez odkládacího souboru je ovšem součástí úprav systému.

Ačkoliv Windows NT Workstation 4.0 Embedded bylo možno v zabudovaných řešeních používat, byly uvedeny na trh těsně před uvedením Windows 2000 na PC a servery. Práce na Windows 2000 Embedded sice započaly, ale na trh nebyly uvedeny. Finálního uvedení se dočkala až verze Windows XP Embedded (nazývaná také Windows XPe).

Windows XPe (stejně jako Windows CE) nejsou prodávány jako produkt koncovým uživatelům. Pouze výrobci zařízení (OEM) mohou zakoupit vývojové nástroje a vytvořit instalaci Windows XPe pro svá zařízení. K dispozici je neobyčejně rozsáhlá databáze ovladačů zařízení (grafických adaptérů, síťových karet, tiskáren, ). Rovněž je k dispozici zápisový filtr pro instalaci systému na FLASH disky či pro vytvoření zaveditelného obrazu systému na CD-ROM (Windows XPe ale samozřejmě mohou pracovat ze standardního pevného disku či zavádět systém po síti).

Co tedy lze od Windows XPe očekávat?

  • Významnou výhodou Windows XPe je jejich naprostá kompatibilita s Windows XP. Jakýkoliv ovladač či jakákoliv aplikace pro Windows XP bude pracovat i na Windows XPe. Na Windows XPe samozřejmě pracuje standardní verze , není tedy nutné používat verzi pro Windows CE.

  • Protože Windows XPe pracuje s veškerými ovladači pro Windows XP, je k dispozici rychlá 3D grafika pro trojrozměrné zobrazování a visualizaci v prostředí .

  • Protože Windows XPe nejsou ničím jiným než Windows XP upraveným pro práci v zabudovaných aplikacích, i Windows XPe vyžadují pro svůj běh počítač kompatibilní se standardem PC. Nepracují tedy na jiných procesorech než x86 a vyžadují standardní PC periferie. Pro zařízení s čipy ARM či MIPS zůstávají Windows CE.

  • Windows XPe mohou pracovat bez pevného disku. Pro běh základního systému stačí 512 MB FLASH disk, pro košatou instalaci systému bude zapotřebí 1 GB FLASH disk. Počítač pro Windows XPe s grafickým uživatelským rozhraním by měl být vybaven alespoň 512 MB paměti RAM.

  • Windows XPe není možno koupit jako maloobchodní produkt. Dodává se pouze se zařízeními, např. s průmyslovými počítači DataLab PC firmy Moravské přístroje .

pro Windows CE nebo Windows XPe?

Oba systémy jsou vhodné pro nasazení v zabudovaných aplikacích a systém pracuje na obou systémech. Rovněž např. průmyslové počítače DataLab PC jsou dodávány s podle přání zákazníka s oběma systémy. Který systém zvolit? Existuje řada kritérií, která mohou pomoci vybrat vhodný systém.

Windows CE Windows XPe
„Malý“ systém, vystačí si s jednotkami až desítkami MB paměti. „Velký“ systém, nezbytná je paměť řádu stovek MB.
Relativně omezená datová průchodnost. Datová průchodnost je vysoká.
Omezená velikost procesu (32 MB) a počet procesů (32). „Žádná“ omezení na velikosti a počty procesů, velikosti DLL apod.
Mimo procesorů x86 pracuje na různých RISC architekturách. Vyžaduje hardware kompatibilní s x86 PC.
Zaručuje deterministickou odezvu (hard real-time). Nezaručuje deterministickou odezvu (soft real-time).
Přenesení systému na novou platformu je zdlouhavý a náročný proces. Přenesení systému na novou platformu je relativně jednoduché.
Podpora hardware je omezená. Podpora hardware je neobyčejně bohatá.
Vyžaduje specifické ovladače zařízení. Pracuje s ovladači pro Windows 2000/XP.
Vyžaduje přenos (portování) aplikací. Pracuje se všemi aplikacemi pro Windows 2000/XP.
Nepodporuje 3D grafiku. Plná podpora 3D grafiky.
Vyžaduje pro Windows CE. Pracuje se standardní verzí .