Linuxin oppiminen sulautettuihin järjestelmiin
minulta kysyttiin äskettäin, miten henkilö, jolla on kokemusta sulautettujen järjestelmien ohjelmoinnista 8-bittisillä prosessoreilla, kuten PIC, sekä 32-bittisillä prosessoreilla, kuten PowerPC, mutta ei Linux-kokemusta, voi oppia käyttämään sulautettua Linuxia.
suosittelen aina tällaiselle sulautettujen järjestelmien ohjelmoijalle seuraavaa: katsokaa sulautettua Linuxia kahtena osana, sulautettuna osana ja Linux-osana. Tarkastellaan ensin Linux-osaa.
Linuxin puolella
käyttöjärjestelmiä on runsaasti ja sulautetun järjestelmän valinnanvaraa on paljon, sekä omaa että avointa lähdekoodia. Linux on yksi näistä valinnoista. Ei ole väliä mitä käytät kehitys isäntä, onko Linux tai Windows tai Mac, sinun täytyy oppia ohjelmoimaan kohdeos. Tässä suhteessa sulautetun Linuxin käyttö ei eroa suuresti vxworksin, Windowcen tai muun käyttöjärjestelmän käytöstä. Tarvitset ymmärrystä siitä, miten käyttöjärjestelmä on suunniteltu, miten käyttöjärjestelmä konfiguroidaan ja miten ohjelmoidaan sen sovellusrajapinnan (API) avulla.
muutamat tekijät tekevät Linuxin ohjelmoinnin oppimisesta helpompaa kuin muiden sulautettujen käyttöjärjestelmien. Löydät monia kirjoja ja tutorials noin Linux, sekä Unix josta se on peräisin — paljon enemmän kuin muille ose. Online-resursseja Linuxille on runsaasti, kun taas muilla Oseilla on paljon pienempi läsnäolo, tai käyttöjärjestelmän valmistajan ajama. Linux on avointa lähdekoodia, ja voit lukea koodia saadaksesi käsityksen siitä, mitä käyttöjärjestelmä tarkalleen tekee, mikä on usein mahdotonta, kun oma käyttöjärjestelmä jaetaan binääreinä. (En todellakaan suosittele lukeminen Linux source yrittää oppia ohjelmoimaan Linux. Se on kuin yrittäisi opetella ajamaan tutkimalla, miten auton vaihteisto toimii.)
merkittävin Linuxin erottava tekijä muista ose-järjestelmistä on se, että samaa ydintä käytetään kaikissa järjestelmissä pienimmistä upotetuista tauluista pöytäkonejärjestelmiin, suuriin palvelinfarmeihin. Tämä tarkoittaa sitä, että voit oppia suuren määrän Linux-ohjelmointia työpöydälläsi ympäristössä, joka on paljon joustavampi kuin kohdetaulun käyttäminen kaikkine monimutkaisuuksineen, jotka liittyvät kohteeseen, testiohjelmoinnin lataamiseen ja testin suorittamiseen. Kaikki peruskäsitteet ja useimmat sovellusliittymät ovat samat työpöydällesi Linuxille ja Sulautetulle Linuxille.
Linuxin asentaminen
voit asentaa desktop Linux-jakelun kehitysjärjestelmääsi ja vaihtaa Windows-tai Mac-järjestelmäsi, mutta se voi olla aika suuri pala purtavaksi kerralla, koska sinun on todennäköisesti määritettävä Sähköposti, opittava uusia työkaluja ja keksittävä uusi työpöytäliittymä. Voit asentaa Linuxin dual-boot-ympäristöön, jossa käytät vanhaa ympäristöä sähköpostiin jne., ja käyttää Linux-järjestelmää oppimiseen. Tämä voi olla aika kiusallista,koska sinun täytyy sulkea yksi ympäristö tuoda toisen. Lisäksi jommankumman tekeminen yritysympäristössä voi olla epäkäytännöllistä tai mahdotonta. Se ihmiset haluavat tukea tunnettu ympäristö, ei sellainen, että olet valinnut.
helpompi tapa on luoda virtuaalikoneympäristö nykyiseen kehitysjärjestelmään. Windows isännät, voit asentaa VMware Player tai VirtualBox, ja Mac, voit asentaa Parallels tai VMware Fusion. VM: n käyttö tarjoaa paljon enemmän joustavuutta. Voit asentaa työpöydän Linux-jakelun, kuten Ubuntun tai Fedoran. Tämän jakelun avulla voit tutustua Linux – peruskäsitteisiin, oppia komentotulkin ja oppia rakentamaan ja ajamaan ohjelmia. Voit määrittää ytimen tai ladata ajureita uudelleen ilman huolta siitä, että kaadat työpöytäjärjestelmäsi. Voit rakentaa koko ytimen ja sovellusympäristön samaan tapaan kuin sulautetun Linux-kohteen ristikehitysympäristön kanssa.
jos VM: ssä Linux kaatuu, käynnistät VM: n yksinkertaisesti uudelleen. Kaatuminen ei vaikuta muihin asioihin, joita saatat tehdä kehitysjärjestelmässäsi, kuten web-sivun lukemiseen siitä, miten kuljettaja rakennetaan ja asennetaan, tai sähköpostin kirjoittamiseen johonkin monista tukipostituslistoista.
joissakin VM: n tuotteissa on snapshot-ominaisuuksia, joiden avulla voit ottaa tunnetun työkokoonpanon tarkastuspisteen, johon voit palata, jos et pysty korjaamaan kaatumista helposti. Tämä tilannekuva on paljon helpompaa kuin yrittää pelastaa kaatuvan työpöytäjärjestelmän tai reagoimattoman kohdetaulun.
työpöydällä toimiva Linux VM ei ole täydellinen malli Sulautetulle Linux-ympäristölle. VM emuloi työpöytäjärjestelmän laitteistoa, jossa on rajoitettu joukko laitteita, jotka eivät todennäköisesti vastaa todellista upotettua kohdetta. Mutta tavoitteemme tässä vaiheessa ei ole mallintaa todellista kohdetta (josta keskustelemme myöhemmin), vaan luoda ympäristö, jossa voit oppia Linux-konsepteja ja ohjelmointia helposti.
tämä on ensimmäinen vaihe: luo VM ja asenna VM: lle työpöydän Linux-jakelu. Valitsemme täältä seuraavassa erässä.
Michael Eager on pääkonsultti Eager Consultingissa Palo Altossa, Kaliforniassa. Hänellä on yli neljän vuosikymmenen kokemus kääntäjien, debuggereiden ja simulaattoreiden kehittämisestä monenlaisille prosessoriarkkitehtuureille, joita käytetään sulautetuissa järjestelmissä. Hänen nykyisiin ja entisiin asiakkaisiinsa kuuluu merkittäviä puolijohdeyhtiöitä ja järjestelmäkehittäjiä. Michael on ollut useiden suoritinarkkitehtuurien ISO C++ – Standardikomitean ja ABI-komiteoiden jäsen. Hän on Dwarfin, laajalti käytetyn debug-tietomuodon, Debugging Standards Committeen puheenjohtaja. Hän on aktiivinen avoimen lähdekoodin ja Linux-yhteisöissä.
aiheeseen liittyviä linkkejä:
- Linux for embedded systems
- Getting started with Embedded Linux: Part Two
- Getting started with Embedded Linux: Part Three
- Getting started with Embedded Linux: Part Four
- Getting started with Embedded Linux: Part Five
- Getting started with Embedded Linux: Part Six
- Getting started with Embedded Linux: Part Six
- Getting started Embedded Linux: Part Seven