ODPRTA KODA, LINUX

Embedded Linux

Aljaž Mavrič Agenda OpenSystems .o.o. Gosposvetska 84, 2000 Maribor [email protected]

Embedded Linux Linux vključuje vse najsodobnejše računalniške tehnologije in v vedno več primerih postaja This article presents the state of embedded platforma, na kateri le-te tudi nastajajo. Njegov Linux as applied to consumer electronics razvojni model daje prednost optimizirani in devices, from wristwatches to PDAs to cellular modularni kodi ter s tem zagotavlja, da sistem handsets. In it we have attempted to address kljub skoraj neverjetni hitrosti razvoja ostaja important decision areas for embedded Linux zanesljiv, varen in hiter, ob maksimalni izrabi developers. We will also provide a brief strojnih zmogljivosti. Prva različica Linuxa je introduction to Linux itself and describe the bila napisana za arhitekturo Intel 386. Celo major players in the rapidly evolving field of danes lahko najnovejše različice uporabljamo na embedded Linux. 386-sistemu s 4Mb spomina.

Večkrat se o Linuxu govori kot o revolucionarni Linux je relativno nov, sodoben operacijski tehnologiji. Značilnost revolucij pa je, da nikoli sistem, ki spada v skupino operacijskih sistemov ne odrastejo in da imajo relativno kratko Unix. Operacijski sistem (OS) je poseben življenjsko dobo. Ali uspejo in tako postanejo program, ki deluje kot posrednik med status quo ali propadejo in za njimi ostane le uporabnikom in strojno opremo, in zagotovi zaznamek v zgodovini. Zato verjetno pravilo, da ustrezno okolje, ki omogoča priročno in o Linuxu govorimo kot o evolucijski učinkovito uporabo računalniške naprave. Med tehnologiji, katere modeli uporabe in razvoja drugim OS določa, kateri programi se bodo prinašajo veliko sprememb, ne le v programsko izvedli, upravlja s spominom, določa vmesnik industrijo in z njo posredno v celotni za dostop do datotečnega sistema, trdih in flash informacijski sektor, ampak tudi v družbo kot diskov ter ostalih naprav, upravlja z omrežjem celoto. Linuxova licenca GPL (GNU General (npr. TCP/IP), omogoča medsebojno Public License) in svoboda (brezplačna komunikacijo med programi in zagotavlja uporaba, brezplačna izvorna koda, prosta varnost. V dobesednem pomenu je “Linux” le distribucija) zagotavljajo hiter razvoj. jedro operacijskega sistema. “Linux sistem” pa Posledično Linux zavzema vedno večji del trga. vsebuje jedro, sistemska orodja in izbrane Eno izmed pomembnejših področij, ki je veliko aplikacije. Zato ima večina uporabnikov pri pridobilo z uporabo Linuxa, je trg embedded uporabi besede “Linux” v mislih "Linux Linux naprav. sistem", ali bolje rečeno vse stvari, ki tečejo na Linux jedru. Celoten Linux sistem lahko Embedded Linux pomeni Linux, ki je prirejen sestavite iz komponent, ki so prosto dostopne na (programsko prenesen) na določen procesor in internetu. Seveda pa to ni enostavno in zahteva ploščo v embedded napravi. Obstaja kar nekaj izredno velik vložek znanja in energije. Zato so podjetij, ki prodajajo embedded Linux rešitve. se oblikovale različne skupine, ki ponujajo Običajno vsebujejo preneseno Linux jedro z enostavno namestitev standardizirane zbirke razvojnimi orodji in v določenih primerih tudi paketov. Te Linux distribucije vključujejo real-time razširitvami. Projekti embedded osnovni Linux sistem, sistemska orodja in širok Linuxa so zelo hitro prešli iz začetne razvojne nabor aplikacij. faze in majhnega razvojnega obsega v celovite

245 AIG’03, MARIBOR

distribucije, primerne za uporabo v • podpora za veliko število različnih platform, najzahtevnejših industrijskih in poslovnih • relativna majhnost za nabor funkcionalnosti, okoljih. Največja prednost je v zadnjem času • enostaven za uporabo, posvečena predvsem standardizaciji. Pri večini • enostavna konfiguracija, projektov odprte kode se v fazi močnega razvoja • veliko število sposobnih razvijalcev... pojavi fragmentacija, ki se v zaključnih fazah Seveda ne smemo mimo nekaterih potencialnih razvoja združi nazaj v najboljšo možno rešitev šibkih točk: in pri kateri postaneta enostavnost razvoja in • pomanjkanje gonilnikov za strojno opremo, standardizacija ena izmed najpomembnejših • ni enotnega grafičnega vmesnika, dejavnikov. Vse večja pozornost je namenjena • ni skupnega marketinškega nastopa, tudi področju razvoja uporabniških vmesnikov. slabo poznavanje in strah pred GPL licenco, Vedno večje povpraševanje po embedded in • mobilnih napravah in zanimanje za uporabo • relativno nepoznan poslovni model. embedded Linuxa v le-teh vodi v razvoj manjšega števila zelo uspešnih in široko Dejstvo je, da je Linux zmogljiv, hiter in sprejetih implementacij. Podobno, kot se je to brezplačen, vendar imajo uporabniki pred njim pred leti zgodilo na področju Linux strežniškega še vedno določen strah. Za njegovo široko trga, tudi embedded Linux prehaja iz stanja, kjer uporabo, tudi na namiznih sistemih, je potreben je vsakdo razvil svojo rešitev, v stanje, kjer enostaven namestitveni postopek in uporabniški lahko komponente sistema (jedro, real time vmesnik, ki bo omogočal manj izkušenim okolje, uporabniške vmesnike, ...) uporabite uporabnikom enostavno izvedbo osnovnih takoj, brez večjih prilagoditev. Rezultati tega opravil, pri tem pa ne bo oviral naprednih prehoda se kažejo v padanju omejitev embedded uporabnikov pri zahtevnejših nalogah. To pa ni naprav, kar je še posebej očitno na področju problem pri embedded napravah, saj je Linux v prenosnih naprav. Napredek v zmogljivosti njih prednameščen in njihova omejena strojne opreme v kombinaciji z napredkom v funkcionalnost omogoča razvijalcem zelo zmogljivosti embedded programske opreme natančno določitev uporabniškega vmesnika znižuje stroške in omejitve pri izgradnji (seveda le, če ta v napravi obstaja). učinkovitih prenosnih naprav in prinaša izredno priložnost tudi za trg embedded Linuxa. Ko se odločamo glede izbire embedded sistema, je potrebno upoštevati naslednje dejavnike: Trg embedded naprav pokriva produkte od • Velikost: je eden izmed najpomembnejših kontrolnika v mikrovalovni pečici do dejavnikov pri embedded projektih, saj je od prenosnega telefona, ki je le malo manj tega, koliko prostora je na voljo za kodo, zmogljiv kot prenosni računalnik. Kam lahko tu odvisno ali bomo izbrali Linux ali ne in uvrstimo embedded Linux? Večina bo opazila, katero jedro, knjižnico, uporabniški da lahko tako zmogljiv sistem, kot je Linux, vmesnik, itd. Bomo pri tem izbrali. uporabimo v izredno širokem spektru naprav. V • Licence: Linux in večina Linux programske večini primerov predstavlja embedded Linux opreme je pod licenco GPL (GNU General najboljšo izbiro, pa naj bo to PDA, namenska Public License) . To je tako velika prednost naprava ali prenosni telefon. in priložnost, kot tudi potencialna nevarnost Linux embedded sistemov. Na eni strani Naštejmo nekaj glavnih razlogov za uspeh imamo izredno kvalitetno brezplačno embedded Linuxa: osnovo, ki pa nam zaradi licence ne dopušča • brezplačna izvorna koda, zaprtih, lastniških popravkov kode. Če • moderen operacijski sistem, uporabljate popravljeno različico GPL ali LGPL programske opreme, morate • modularnost, hitrost, zanesljivost in omogočiti tudi dostop do te programske skalabilnost, kode. • močna mrežna podpora,

246 ODPRTA KODA, LINUX

• Lastniške aplikacije: lahko tečejo na Linux • MMU: Linux že od nekdaj zahteva strojno jedru. Prav tako lahko uporabljate, razvijate opremo z MMU (memory management in prodajate lastniške knjižnice in aplikacije, unit), ki omogoča uporabo zaščitenega kljub temu, da je jedro samo pod licenco spomina. Na trgu obstaja tudi ponudba GPL. GPL programska oprema ne vpliva na jeder, ki obidejo to zahtevo. Najnovejše licenco ostale programske opreme, ki teče razvojne različice jedra imajo podporo za na napravi. Seveda pa je potrebno delo brez funkcionalnosti MMU že upoštevati, da mora biti programska oprema, vgrajeno. ki uporablja GPL knjižnice, tudi pod licenco • Aplikacije: v primerjavi z operacijskim GPL. sistemom Palm OS ali Windows CE, ne • Večina knjižnic je dosegljiva pod licenco obstaja veliko število aplikacij za končne Lesser GNU Public License (LGPL), ki uporabnike, ki bi bile specifično pisane in dovoljuje uporabo le teh tudi v lastniških zasnovane za embedded Linux. Seveda pa aplikacijah. kljub temu obstajajo, predvsem pa je • Nekatera podjetja izdajajo svojo programsko pomembno, da se da večina obstoječih opremo pod dvema licencama: GPL za aplikacij prilagoditi tudi za embedded svet. splošno in razvojno uporabo ter plačilo • Uporabniški vmesniki: ostali embedded OS nadomestila (royality) za ne-GPL uporabo. imajo le en uporabniški vmesnik, ki ga • Real-time: Veliko embedded naprav vnaprej določi ponudnik. Pri embedded zahteva, da se določen dogodek zgodi ob Linuxu to ni tako. Ne obstaja en dominanten točno določenem času. Operacijski sistem, uporabniški vmesnik, ampak večje število ki to omogoča, se imenuje Real Time podjetij in organizacij, od katerih vsak Operating System (RTOS). Linux sam po ponuja svojega. To omogoča večjo svobodo sebi ni RTOS operacijski sistem, ker bi bil v pri izbiri, konkurenco in hitrejši razvoj tem primeru neprimeren za uporabo na uporabniških vmesnikov. strežnikih in namiznih okoljih. Seveda pa lahko Linux uporabljamo tudi v napravah, ki Razvijalci se pri izbiri jedra lahko odločajo med zahtevajo RTOS funkcionalnost. Ena izmed večjim številom embedded Linux jeder: rešitev je prilagoditev jedra sistema, da se • jedro Linusa Torvaldsa (glavno Linux jedro) bo v večini primerov obnašal kot pravi • MontaVista Linux (Professional and Carrier RTOS sistem. To imenujemo “soft real- Grade editions) time”. Druga rešitev je, da poganjamo Linux • BlueCat Linux / BlueCat RT jedro na pravem RTOS. Seveda pa obstaja • uCLinux tudi možnost, da uporabljamo razširitve • Embedix jedra, ki prinašajo pravo RT zmogljivost. • ELKS • Toolchain: so zbirke orodij, ki se • REDICE-Linux uporabljajo za izgradnjo aplikacij ali slike za • TimeSys Linux embedded napravo. Nekatere omogočajo • RTLinux (MiniRTL, RtiC-Lab, prevajanje na eni arhitekturi tudi za druge RTLinux/Pro, RTLinux/BSD) arhitekture (npr. prevajanje ARM slike na • RTAI x86 namizju). Večina distribucij uporablja standardni GNU toolchain, obstajajo pa tudi • Qlinux distribucije, ki GNU orodja nadomeščajo z lastniškimi. Embedded Linux distribucije: Embedded Debian Project (EmDebian) • Podpora za datotečni sistem: eden izmed • pomembnejših dejavnikov pri izbiri naprave • Handhelds.org so tudi zahteve glede datotečnega sistema • PeeWeeLinux (samo branje, branje in pisanje, journaling • OpenZaurus datotečni sistem, ...)

247 AIG’03, MARIBOR

Štirje največji predstavniki na področju jedro sistema, je izbira prave knjižnice lastniških embedded Linux distribucij so ključnega pomena za embedded projekte. MontaVista, LynuxWorks, Lineo in v nekaj manjšem obsegu tudi RedHat. Njihova glavno Embedded C-knjižnice: geslo je "podpora", ki se zrcali v SDK paketih • GNU C Library (distribucije za različne plaforme, podpora za • uCLibc različne plošče, dokumentacija in orodja). • Diet libc Večina ponudnikov ima v svoji ponudbi tudi • eno izmed real-time različic. • sglibc

Lastniške embedded Linux distribucije: Embedded uporabniški vmesniki: • MontaVista (MontaVista Linux, MontaVista • Gtk+ Linux, Carrier Grade Edition) • Gtk/FB • LynuxWorks (BlueCat Linux, BlueCat RT) • Qt (Qt/Embedded, Qtopia, QtAWT, Qt • Lineo (Embedix, Embedix SDK, Embedix Designer, BDK) • Opie • Red Hat (GNUPro Developer Tools, eCos, • XFree86 / The X Window System RedBoot, Embedded Linux Developer • Tiny-X Suite) • FLTK • Altera / Microtronix (uCLinux, Nios • MicroWindows / Nano-X Processors, Excalibur Processors) • DirectFB • PalmPalm (Tynux, Tynux Box I, II, IMT2000) • OpenGUI • MiniGUI • Transvirtual (XOE (PocketLinux)) • PicoGUI • TimeSys (TimeSys Linux/GPL, TimeSys Linux/Real Time, TimeSys Linux/CPU, • PicoTK TimeSys Linux/Net, TimeSys SDKs) Z vstopom Linuxa na trg embedded naprav se • Mizi Research, Inc (Linu@ (Linuette), spreminja veliko stvari. Razvijalci imajo sedaj EnDA C3224) dostop do kvalitetnega RTOS-sistema, ob tem • Coollogic (Coollinux) pa obdržijo fleksibilnost in možnost prilagoditev Esfia (RedBlue Linux, AESF901PWD • programske kode. Programska oprema Companion Chip) prevzema področja, kjer je še pred kratkim • Red Flag (ControLinux) prevladovala strojna oprema. Na kratko to • MobileSoft Technology (mLinux, mGUI) pomeni, da je embedded Linux vstopil na trg, • REDSonic (REDICE-Linux) velike rasti. S svojo cenovno učinkovitostjo, odprto kodo ter napredno funkcionalnostjo si je C-knjižnice so pomembna komponenta vsakega zagotovil eno izmed najpomembnejših Linux sistema, saj predstavljajo vmesnik med položajev na trgu embedded naprav. aplikacijami in API-ji jedra. Ker je C-knjižnica v večini primerov vsaj tako velika kot celotno

248