Learning Linux for embedded systems
nemrég megkérdezték tőlem, hogy egy olyan személy, aki tapasztalattal rendelkezik a beágyazott rendszerek programozásában 8 bites processzorokkal, például PIC-vel, valamint 32 bites processzorokkal, például PowerPC-vel, de nincs Linux tapasztalata, hogyan tanulhatja meg a beágyazott Linux használatát.
amit mindig ajánlok egy ilyen beágyazott rendszer programozónak, az a következő: nézd meg a beágyazott Linuxot, mint két részt, a beágyazott részt és a Linux részt. Nézzük először a Linux részt.
a Linux oldal
operációs rendszerek bővelkednek, és sok választási lehetőség van egy beágyazott rendszer számára, mind saját, mind nyílt forráskódú. A Linux az egyik ilyen választás. Nem számít, mit használ a fejlesztési gazdagéphez, legyen az Linux, Windows vagy Mac, meg kell tanulnia, hogyan kell programozni a cél operációs rendszer segítségével. Ebben a tekintetben a beágyazott Linux használata nem különbözik nagyban a VXworks, a WindowCE vagy más operációs rendszer használatától. Meg kell értened, hogyan tervezték az operációs rendszert, hogyan kell konfigurálni az operációs rendszert, és hogyan kell programozni az alkalmazásprogramozási felület (API) használatával.
néhány tényező megkönnyíti a Linux programozását, mint más beágyazott operációs rendszerek. Sok könyvet és oktatóanyagot talál a Linuxról, valamint a Unixról, amelyből származik-sokkal többet, mint más operációs rendszereknél. A Linux Online erőforrásai bőségesek, míg más operációs rendszerek sokkal kisebb jelenlétűek, vagy az operációs rendszer gyártója által vezérelt. A Linux nyílt forráskódú, és elolvashatja a kódot, hogy megértse, hogy pontosan mit csinál az operációs rendszer, ami gyakran lehetetlen egy binárisként elosztott saját operációs rendszerrel. (Természetesen nem ajánlom a Linux forrás olvasását, hogy megpróbáljam megtanulni a Linux programozását. Ez olyan, mintha megpróbálnánk megtanulni vezetni azáltal, hogy megvizsgáljuk, hogyan működik az autó sebességváltója.)
a legjelentősebb tényező, amely megkülönbözteti a Linuxot a többi operációs rendszertől, az, hogy ugyanazt a kernelt használják minden rendszerhez, a legkisebb beágyazott tábláktól az asztali rendszerekig, a nagy szerverfarmokig. Ez azt jelenti, hogy nagy mennyiségű Linux programozást tanulhat meg az asztalon egy olyan környezetben, amely sokkal rugalmasabb, mint egy céltábla használata a célhoz való csatlakozás minden bonyolultságával, a tesztprogramozás letöltésével és a teszt futtatásával. Az összes alapkoncepció és a legtöbb API ugyanaz az asztali Linuxra és a beágyazott Linuxra.
Linux telepítése
telepíthet egy asztali Linux disztribúciót a fejlesztői rendszerére, helyettesítve a Windows vagy Mac rendszert, de ez elég nagy darab lehet egyszerre, mivel valószínűleg be kell állítania az e-mailt, új eszközöket kell tanulnia, és fel kell gyorsítania egy másik asztali felületet. Telepítheti a Linuxot kettős rendszerindítású környezetben, ahol a régi környezetet használja e-mailhez stb. használja a Linux rendszert a tanuláshoz. Ez elég kínos lehet, mivel le kell állítania az egyik környezetet, hogy felhozza a másikat. Ezenkívül a vállalati környezetben való munkavégzés nem praktikus vagy lehetetlen. Az emberek inkább egy ismert környezetet támogatnak, nem pedig azt, amelyet választott.
egyszerűbb módszer egy virtuális gép környezet létrehozása a jelenlegi fejlesztési rendszeren. Windows-gazdagépek esetén telepítheti a VMware Player-t vagy a VirtualBox-ot, a Mac-en pedig a Parallels vagy a VMware Fusion. A virtuális gép használata sokkal nagyobb rugalmasságot kínál. Telepíthet egy asztali Linux disztribúciót, mint például az Ubuntu vagy A Fedora. Ezzel a disztribúcióval megismerkedhet az alapvető Linux-koncepciókkal, megtanulhatja a parancshéjat, és megtanulhatja a programok felépítését és futtatását. Újrakonfigurálhatja a kernelt vagy betöltheti az illesztőprogramokat, anélkül, hogy aggódnia kellene, hogy összeomlik az asztali rendszer. A teljes kernelt és alkalmazáskörnyezetet felépítheti, hasonlóan ahhoz, amit egy beágyazott Linux-cél fejlesztési környezetével lehet megtenni.
ha a Linuxot futtató virtuális gép összeomlik, egyszerűen indítsa újra a virtuális gépet. Az összeomlás nem befolyásolja a fejlesztési rendszeren végzett egyéb dolgokat, például egy weboldal olvasását az illesztőprogram felépítéséről és telepítéséről, vagy az e-mail írását a sok támogatási Levelezőlista egyikére.
egyes virtuális gép termékek pillanatkép funkciók, amelyek lehetővé teszik, hogy egy ellenőrzőpont egy ismert működő konfiguráció, amelyre akkor visszagörgetni, ha nem tudja kijavítani a baleset könnyen. Ez a pillanatkép sokkal könnyebb, mint megpróbálni megmenteni egy összeomló asztali rendszert vagy egy nem reagáló céltáblát.
az asztalon futó Linux virtuális gép nem tökéletes modell beágyazott Linux környezethez. A virtuális gép egy asztali rendszer hardverét emulálja, korlátozott számú eszközzel, amelyek valószínűleg nem felelnek meg egy valódi beágyazott célnak. De a célunk ezen a ponton nem egy valódi cél modellezése (amit később tárgyalunk), hanem egy olyan környezet megteremtése, ahol könnyen megtanulhatja a Linux koncepcióit és programozását.
ez az első lépés: Hozzon létre egy virtuális gépet, és telepítsen egy asztali Linux disztribúciót a virtuális gépre. A következő részletben innen választunk.
Michael Eager az Eager Consulting fő tanácsadója Palo Alto-ban, Kaliforniában. Több mint négy évtizedes tapasztalattal rendelkezik fordítóprogramok, hibakeresők és szimulátorok fejlesztésében a beágyazott rendszerekben használt processzorarchitektúrák széles skálájához. Jelenlegi és korábbi ügyfelei közé tartoznak a nagy félvezető vállalatok és rendszerfejlesztők. Michael tagja volt az ISO C++ Szabványbizottságnak és az ABI bizottságoknak több processzor architektúrán. A törpe hibakeresési Szabványügyi Bizottságának elnöke, széles körben használt hibakeresési adatformátum. Aktív a nyílt forráskódú és Linux közösségekben.
Kapcsolódó linkek:
- Linux tanulása beágyazott rendszerekhez
- első lépések a beágyazott Linuxszal: második rész
- első lépések a beágyazott Linuxszal: harmadik rész
- első lépések a beágyazott Linuxszal: negyedik rész
- első lépések a beágyazott Linuxszal: ötödik rész
- első lépések a beágyazott Linuxszal: hatodik rész
- első lépések a beágyazott Linuxszal: hetedik rész