učení Linux pro vestavěné systémy
nedávno jsem se zeptal, jak se člověk se zkušenostmi s programováním vestavěných systémů s 8bitovými procesory, jako je PIC, stejně jako 32bitové procesory, jako je PowerPC, ale bez zkušeností s Linuxem, může naučit používat Embedded Linux.
co vždy doporučuji takovému programátorovi vestavěných systémů, je toto: podívejte se na Embedded Linux jako na dvě části, vestavěnou část a linuxovou část. Podívejme se nejprve na linuxovou část.
na straně Linuxu
operační systémy oplývají a možnosti jsou mnoho pro vestavěný systém, proprietární I open source. Linux je jednou z těchto možností. Bez ohledu na to, co používáte pro svého vývojového hostitele, ať už Linux nebo Windows nebo Mac, musíte se naučit, jak programovat pomocí cílového operačního systému. V tomto ohledu se použití vestavěného Linuxu příliš neliší od použití VxWorks, WindowCE nebo jiného operačního systému. Potřebujete pochopit, jak je operační systém navržen, jak nakonfigurovat operační systém a jak programovat pomocí jeho aplikačního programovacího rozhraní (API).
několik faktorů usnadňuje učení, jak programovat Linux, než jiné vestavěné operační systémy. Najdete zde mnoho knih a výukových programů o Linuxu a Unixu, ze kterých je odvozen-mnohem více než u jiných operačních systémů. Online zdroje pro Linux jsou dostatečné, zatímco jiné operační systémy mají mnohem menší přítomnost nebo jsou řízeny výrobcem operačního systému. Linux je open source a můžete si přečíst kód, abyste pochopili, co přesně operační systém dělá, což je často nemožné s proprietárním operačním systémem distribuovaným jako binární soubory. (Rozhodně nedoporučuji číst Linux source, abych se pokusil naučit programovat Linux. To je jako snažit se naučit řídit studiem, jak funguje převodovka automobilu.)
nejvýznamnějším faktorem, který odlišuje Linux od ostatních operačních systémů, je to, že stejné jádro se používá pro všechny systémy, od nejmenších vestavěných desek, přes stolní systémy až po velké serverové farmy. To znamená, že se můžete naučit velké množství programování Linuxu na ploše v prostředí, které je mnohem flexibilnější než použití cílové desky se všemi složitostmi připojení k cíli, stahování testovacího programování a spuštění testu. Všechny základní pojmy a většina API jsou stejné pro váš desktop Linux a váš Embedded Linux.
instalace Linuxu
do vývojového systému můžete nainstalovat desktopovou distribuci Linuxu, která nahradí systém Windows nebo Mac, ale to může být docela velký kus, který byste mohli kousnout najednou, protože byste pravděpodobně museli nakonfigurovat e-mail, naučit se nové nástroje a přijít na rychlost s jiným rozhraním pro stolní počítače. Linux můžete nainstalovat do prostředí s dvojitým zaváděním, kde používáte staré prostředí pro e-mail atd., a používat systém Linux pro učení. To může být docela trapné, protože musíte vypnout jedno prostředí, abyste vychovali druhé. Navíc dělat buď v podnikovém prostředí může být nepraktické nebo nemožné. Lidé dávají přednost podpoře známého prostředí, ne takové, které jste si vybrali.
snadnější způsob je vytvořit prostředí virtuálního stroje ve vašem současném vývojovém systému. Pro hostitele Windows můžete nainstalovat VMware Player nebo VirtualBox a na Mac můžete nainstalovat Parallels nebo VMware Fusion. Použití VM vám nabízí mnohem větší flexibilitu. Můžete nainstalovat stolní linuxovou distribuci, jako je Ubuntu nebo Fedora. Pomocí této distribuce se můžete seznámit se základními koncepty Linuxu, naučit se příkazový shell a naučit se vytvářet a spouštět programy. Můžete překonfigurovat jádro nebo načíst ovladače, aniž byste se obávali, že dojde k selhání stolního systému. Můžete vytvořit celé jádro a aplikační prostředí, podobné tomu, co byste mohli udělat s cross-vývojovým prostředím pro Embedded Linux target.
pokud váš VM se systémem Linux havaruje, jednoduše restartujte VM. Pád nemá vliv na jiné věci, které byste mohli dělat ve vašem vývojovém systému, jako je čtení webové stránky o tom, jak vytvořit a nainstalovat ovladač, nebo psaní e-mailu na jeden z mnoha e-mailových seznamů podpory.
některé produkty VM mají funkce snapshot, které vám umožňují vzít kontrolní bod známé pracovní konfigurace, ke kterému se můžete vrátit, pokud nemůžete snadno opravit havárii. Tento snímek je mnohem jednodušší, než se snaží zachránit shazovat desktopový systém nebo nereagující cílovou desku.
Linux VM běžící na ploše není dokonalým modelem pro vestavěné prostředí Linuxu. VM emuluje hardware stolního systému s omezenou sadou zařízení, která pravděpodobně neodpovídají skutečnému vloženému cíli. Ale naším cílem v tomto bodě není modelování skutečného cíle (něco, o čem budeme diskutovat později), ale vytvoření prostředí, kde se můžete snadno naučit Linuxové koncepty a programování.
Toto je první krok: Vytvořte VM a nainstalujte desktopovou distribuci Linuxu na VM. Budeme vybírat odtud v naší další splátce.
Michael Eager je hlavním konzultantem společnosti Eager Consulting v Palo Alto v Kalifornii. Má více než čtyři desetiletí zkušeností s vývojem kompilátorů, debuggerů a simulátorů pro širokou škálu architektur procesorů používaných ve vestavěných systémech. Mezi jeho současné i bývalé klienty patří významné polovodičové společnosti a vývojáři systémů. Michael byl členem standardního výboru ISO C++ a výborů ABI pro několik procesorových architektur. Je předsedou Výboru Debugging Standards Committee for DWARF, široce používaného formátu ladicích dat. Je aktivní v komunitách s otevřeným zdrojovým kódem a Linuxem.
Související odkazy:
- učení Linux pro vestavěné systémy
- Začínáme s Embedded Linux: Část druhá
- Začínáme s Embedded Linux: část třetí
- Začínáme s Embedded Linux: Část čtvrtá
- Začínáme s Embedded Linux: část pátá
- Začínáme s Embedded Linux: Část šestá
- Začínáme s Embedded Linux: část Sedmá