A Linuxot jól ismerő szakértők ugyanakkor potenciális problémaforrásként tekintenek a beágyazott rendszeren futó alkalmazások korlátaira. A Glyn kidolgozott egy olyan új starter kitet, mellyel a beágyazott rendszerek és a Linux hatékonyabban párosítható, így lehetővé téve a beágyazott rendszerekhez való hozzáférést.
Korábban a beágyazott rendszerek az operációs rendszer adottságait gyakran egyáltalán nem használták ki, csak a C-ben vagy Assemblerben megírt, nem ingyenes szoftver lehetőségeit aknázták ki. Míg a Computer On Module (COM) rendszerű gépek nagy teljesítményük miatt addig a PC-s rendszerek felső árszegmensébe tartoztak, ma már ezek is megfizethető áron kaphatók. Ez persze megnehezíti a rendszerfejlesztést, és amint a beágyazott rendszer bonyolultsági foka átlép egy bizonyos határt, már nem praktikus házon belüli fejlesztésre alapozni a működését — főleg kisebb cégek esetén.
Miért a Linux?
Általánosságban elmondható, hogy egy új terméknek nem egy házon belüli, saját fejlesztésre, hanem egy operációs rendszerre alapozva történő kifejlesztésének az az előnye, hogy az összetettebb funkciók — melyek megvalósításához speciális, házon belül adott esetben elérhetetlen szaktudásra lenne szükség — kész modulként azonnal a rendelkezésünkre állnak. A Linux beágyazott rendszerekhez történő felhasználásának nyilvánvaló és gyakran emlegetett előnye az elsődleges költségmegtakarítás: a kernel és az összes szükséges modul a nyílt forráskódú licencrendszerek alapján ingyen hozzáférhető. Ez összességében több millió euró összértékű szoftvert jelent. Az ingyen rendelkezésre álló forrásoknak köszönhetően a szoftver az egyedi igényekhez is hozzáigazítható, ráadásul mivel e források korlátlanul elérhetőek, a termék nem fog egyetlen konkrét szállítótól sem függeni. Ha egy gyártó felfüggeszti egy termékcsoport gyártását, vagy ha teljesen eltűnik a piacról, az adott termék — sőt, akár az azt használó egész vállalat — sorsa megpecsételődhet.
A szoftver önmagában még nem késztermék. A háttértámogatás hiánya régóta a beágyazott szoftverekhez használható platformként használt Linux egyik hátrányának számít. A Glyn GUI kit egyik feladata, hogy betömje ezt a hézagot: újabb lépést jelent a hatékony, ámde összetett operációs rendszerek — például a Linux —, valamint a hardverelemekkel megfelelően koordinált fejlesztői szoftver összehangolása felé, kiegészítve mindezt a szükséges képzés és a modern internetes kapcsolat révén megvalósuló, optimális háttértámogatás előnyeivel. A PolyTouch-funkcióval rendelkező, 5,7 hüvelykes EDT/TFT képernyő segítségével maximum öt ujj egyidejű érintésének megbízható értékelésére van lehetőség. Természetesen az ehhez szükséges szoftveres meghajtóprogram szintén a rendszer részét képezi. A PolyTouch márkanév a tajvani EDT kijelzőgyártó által kifejlesztett projektív/kapacitív érintésérzékeny technológia neve, mely a 3,5—7 hüvelyk közötti képátlójú képernyőkön érhető el. Az alaplapra a Glyn termékcsaládjába tartozó valamennyi TFT közvetlenül csatlakoztatható.
A különböző teljesítményigényeknek való megfelelés érdekében a felhasználók választhatnak a starter kit egy TX28-as modullal felszerelt és a Freescale gyártotta i.mx28 és ARM9-alapú 454 MHz-es, valamint egy 1,2 GHz-es ARM Cortex A8-as processzorral felszerelt változata között. A starter kit áramköri alaplapja mindkét változathoz használható.
Segédprogramok: belépő a Linux világába
Annak érdekében, hogy a felhasználók a lehető legkényelmesebben léphessenek be a beágyazott Linux világába, a Glyn stratégiai partneri kapcsolatra lépett az immár 11 éve a beágyazott Linuxhoz kapcsolódó fejlesztési és háttér-támogatási szolgáltatások sikeres előállítójának számító Kernel Concepts céggel. A starter kit részét képezi a „µCross" segédprogram-gyűjtemény. Mi az a µCross, és hogyan teszi lehetővé a beágyazott rendszerhez való hozzáférést? Első lépésként ismerkedjünk meg a hagyományos rendszerrel!
Általában „Linux operációs rendszerről" beszélünk, ám ez megfogalmazás nem teljesen pontos, mivel a „Linux" csupán az operációs rendszer kerneljét jelzi. Egy teljes értékű operációs rendszernek azonban a bootloader, a kernel, a BSP és a fájlrendszer is részét képezi.
BSP – mit takar a rövidítés?
A beágyazott elemekhez — például az egyedi hardverekhez — különleges meghajtóprogramokra van szükség. Mivel a kernelből, specifikus meghajtóprogramokból, programokból stb. álló szerves egységet szinte kivétel nélkül minden esetben konkrét hardverekhez vagy rendszerekhez tervezik/adaptálják, ezeknek a meghajtóprogramoknak a Board Support Package (BSP) (kb. kártyatámogató csomag) nevet adták.
A Linux disztribúciós rendszerek másik jelentős összetevője a gyökér-fájlrendszer. Ebbe beletartozik néhány felső szintű könyvtár és az alkönyvtárak is, a bennük található fájlokkal, valamint természetesen a házon belüli alkalmazás is. Ez annyit jelent, hogy a fent említett fájlokra egy házon belüli Linux-disztribúcióhoz is szükség van. A Linux-disztribúció nem más, mint egy programcsomagokból összeállított gyűjtemény. Legalább a vele azonos nevű Linux kernel és a rendszer működéséhez szükséges szoftver tartozik bele. Ennek létrehozásához számos ingyenesen hozzáférhető segédprogram is létezik, de van-e ezeknek gyakorlati értékük egy kezdő linuxos számára? A csomag megismeréséhez széles körű alapismeretekre és meglehetősen sok időre van szükség — és ez az, ami miatt sok fejlesztő sajnos idő előtt feladja a Linuxszal való ismerkedést.
Vajon melyik kezdő rendelkezik azokkal a minimálisan szükséges ismeretekkel, melyekre egy működő Linux-rendszer létrehozásához szükség van, nem beszélve arról, hogy melyik könyvtárakra van szükség ahhoz, hogy vonzó grafikus felületeket lehessen megtervezni, és hogy ezek hogyan függenek össze egymással? Itt lép be a képbe a µCross. A µCross teljes körű eszközkészletet ad a fejlesztő kezébe, aki így azonnal hozzáfoghat a termékfejlesztéshez. Különböző csomagok széles körét tartalmazza, melyekkel számos funkció végrehajtható, emellett részét képezi a koordinált Cross SDK (Software Development Kit — szoftverfejlesztő eszközkészlet) is. Konkrétan a grafikus felhasználói felület létrehozásához szükséges könyvtárakat tartalmazza, melyekben megtalálható többek között a GTK+, a Qt és egyebek is, de emellett támogatja a Qt/beágyazott funkciót is.
A µCross a fentiek alapján tehát kiegészíti a BSP-t. A BSP-nek csak a hardverspecifikus elemeire (a bootloaderre, a kernelre és esetleg néhány különleges meghajtóprogramra) van szükség, minden másról a µCross gondoskodik. A koordinált összetevők a következők:
- Toolchain (a GNU segédprogramokra, pl. a GCC-re alapozva).
- A GUI-fejlesztéshez szükséges SDK, GTK+, Qt, Qt/beágyazott, FLTK és DirectFB-támogatás.
- Gyökér-fájlrendszer + csomagmenedzsment.
- Csomag-feedek — már több mint 6000 előre elkészített bináris csomag érhető el.
- Frissítések — rendszeresen megjelenő új verziók.
- Háttér-támogatási szolgáltatások széles köre.
Az ismert fejlesztői környezetek (IDE) és a szabadon hozzáférhető felhasználóifelület-építő és debugging-eszközök használata révén nagyon hamar létrehozhatóak a beágyazott eszközökhöz készülő grafikus felhasználói interfészek. Ezt követően már a kompilálás és a célrendszerhez linkelés is csak néhány egyszerű lépésből áll. A teljes µCross-termék kimondottan csomagorientált. Minden elemét csomagok részeként adminisztrálhatjuk, és a célrendszerbe történő installálás is így történik. Kiemelkedően hasznos tulajdonsága, hogy a későbbi frissítések továbbra is csomagonként és nem teljes rendszerimage-ek formájában hajthatók végre.
A szoftverkompiláláshoz szükséges termékek (compiler, linker és debugger) összességét általában toolchainnek (eszközláncnak) nevezik. Mivel a célrendszer gyakran más processzor-architektúrájú (ARM9 vagy Cortex A8) és -perifériájú, mint az a rendszer, amelyen a fejlesztés történik, a host (PC) toolchainje sem fejlesztési, sem debugging-célokra nem használható. Emellett fontos egy toolchain kompilálása és a dependenciák strukturálása is.
A µCross SDK a célrendszerhez igazodó teljes toolchaint kínálja, de jóval többre képes, mint egy egyszerű toolchain. Olyan kiegészítő funkciókkal is rendelkezik, melyek lehetővé teszik a teljes körű alkalmazásfejlesztést, a grafikus interfészt is ideértve. A µCross SDK révén lehetővé válik a jól ismert fejlesztőeszközök, például az Eclipse, a Qt-Creator és az Anjuta/Glade használata is. Fejlesztői és runtime-csomagok formájában minden szükséges építőelem megtalálható benne.
Pár kattintás, és kész a komplett image: µTIB
A beágyazott alkalmazáshoz szükséges runtime-rendszer kompilálása igen időigényes feladat lehet. Sok program más programoktól vagy konkrét könyvtáraktól függ. E függések („dependencyk") kézzel történő megoldása szintén nagyon összetett problémát alkothat. A következő lépés, hogy mindezt egy olajozottan működő rendszerbe illesszük. Sokan alábecsülik az ehhez a három művelethez szükséges erőfeszítés mértékét.
A µTIB látványosan leegyszerűsíti a munkát. A felhasználónak nincs más dolga, mint összeállítani a runtime-rendszerrel szemben megfogalmazott elvárások egyszerű, elvont leírását — a dependenciák megoldása ezután a µTIB dolga. Ez az eszköz akár ügyfélspecifikus adatokat, például házon belüli alkalmazásokat vagy konfigurációkat is beépíthet a kompilálási folyamatba, méghozzá a lehető legegyszerűbb módon. A művelet végén egy teljes runtime-rendszert kapunk .tar.gz archívum vagy komplett flash image formájában, mellyel nincs több dolgunk, mint néhány perc alatt installáljuk a célrendszerre. A µTIB támogatja a jffs2, valamint a Chip Flash-hez szükséges ubi- és egyéb formátumokat, pl. a .tar.gz-t is. A beágyazott rendszerhez való hozzáférést grafikus felhasználói felület teszi lehetővé.
A rendszer nem állandó
A rendszer folyamatosan változik, mivel a fejlesztők a világ minden táján a Linux továbbfejlesztésén dolgoznak. Jó példa erre a Qt grafikai programozás: itt az a kihívás, hogy grafikus felületet készítsünk egy beágyazott eszköz számára. A beágyazott fájlrendszer könyvtárai a kibocsátás időpontjában a házon belüli PC toolchainben használt könyvtárakat tükrözik. A szoftver későbbi frissítéseinek is meg kell felelniük a teljes fájlrendszer létrehozására használt korábbi tool-verziónak.
A µCross erre a problémára is megoldást kínál: az egyes µCross-verziók használatukat követően többé nem változnak, vagyis a forrás is állandó marad. Miután megtörtént egy megfelelő toolchainnel való koordinálása, a házon belüli szoftver a fejlesztési szakaszt követően akár még évek múlva is frissíthető lesz.
Különleges, pluszértéket tartalmazó starter kit
Ezt az innovatív starter kitet a Karo és a disztribútor, a Glyn közösen fejlesztette ki, a képernyőre szánt vagy multitouch-alkalmazások iránti növekvő igényre adott válaszként. Könnyen beilleszthető a Glyn EDT TFT-család koncepciójába. A termékcsaládba tartozó kijelzők 3,5–7 hüvelyk közötti méretekben kaphatók, és mivel mindegyik ugyanazt az interfészt használja, könnyen cserélhetők. A Kernel Concepts által gyártott µCross-csomag olyan, professzionális igényességgel karbantartott szoftveres alap, mely lehetővé teszi a gyors termékfejlesztést. Ez a fejlesztési fázisban és a későbbi átalakítások során is tágabb mozgásteret, ezáltal idő- és pénzmegtakarítást tesz lehetővé.