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ů.
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í . |
|