Nauka Linuksa dla systemów wbudowanych
niedawno zapytano mnie, jak osoba z doświadczeniem w programowaniu systemów wbudowanych z procesorami 8-bitowymi, takimi jak PIC, a także procesorami 32-bitowymi, takimi jak PowerPC, ale bez doświadczenia z Linuksem, może nauczyć się korzystać z wbudowanego Linuksa.
to, co zawsze polecam takiemu programiście systemów wbudowanych, to: spójrz na wbudowanego Linuksa jako dwie części, część wbudowaną i część Linuksową. Rozważmy najpierw część Linuksową.
po stronie Linuksa
systemy operacyjne obfitują, a możliwości wyboru są liczne dla systemu wbudowanego, zarówno własnościowego, jak i otwartego. Linux jest jednym z tych wyborów. Bez względu na to, czego używasz dla swojego hosta programistycznego, czy to Linux, Czy Windows, czy Mac, musisz nauczyć się programować za pomocą docelowego systemu operacyjnego. Pod tym względem Korzystanie z wbudowanego Linuksa nie różni się znacznie od korzystania z VXworks, WindowCE lub innego systemu operacyjnego. Musisz zrozumieć, w jaki sposób System Operacyjny jest zaprojektowany, jak go skonfigurować i jak programować za pomocą interfejsu programowania aplikacji (API).
kilka czynników sprawia, że nauka programowania Linuksa jest łatwiejsza niż w przypadku innych wbudowanych systemów operacyjnych. Znajdziesz tu wiele książek i samouczków na temat Linuksa, a także Uniksa, z którego jest on pochodną — o wiele więcej niż w przypadku innych systemów operacyjnych. Zasoby Online dla Linuksa są obszerne, podczas gdy inne systemy mają znacznie mniejszą obecność, lub jeden napędzany przez producenta systemu operacyjnego. Linux jest open source, i możesz przeczytać kod, aby zrozumieć dokładnie, co robi SYSTEM OPERACYJNY, coś, co jest często niemożliwe z prawnie zastrzeżonym systemem operacyjnym dystrybuowanym jako pliki binarne. (Na pewno nie polecam czytania Linuksa source, aby spróbować nauczyć się programować Linuksa. To jak próba nauczenia się jazdy poprzez badanie, jak działa skrzynia biegów.)
najważniejszym czynnikiem, który odróżnia Linuksa od innych systemów operacyjnych jest to, że to samo jądro jest używane dla wszystkich systemów, od najmniejszych wbudowanych płyt, przez systemy desktopowe, po duże farmy serwerów. Oznacza to, że możesz nauczyć się dużej ilości programowania Linuksa na pulpicie w środowisku, które jest o wiele bardziej elastyczne niż korzystanie z płyty docelowej ze wszystkimi złożonościami łączenia się z celem, pobierania programowania testowego i uruchamiania testu. Wszystkie podstawowe pojęcia i większość interfejsów API są takie same dla desktopowego Linuksa i wbudowanego Linuksa.
instalacja Linuksa
możesz zainstalować stacjonarną dystrybucję Linuksa w swoim systemie programistycznym, zastępując System Windows lub Mac, ale może to być dość duży kawałek do odgryzienia w jednym czasie, ponieważ prawdopodobnie będziesz musiał skonfigurować pocztę e-mail, nauczyć się nowych narzędzi i przyspieszyć z innym interfejsem pulpitu. Możesz zainstalować Linuksa w środowisku dual-boot, gdzie używasz starego środowiska do poczty e-mail itp. i używać systemu Linux do nauki. Może to być dość niezręczne, ponieważ musisz zamknąć jedno środowisko, aby przywołać drugie. Dodatkowo, robienie tego w środowisku korporacyjnym może być niepraktyczne lub niemożliwe. Ludzie wolą wspierać znane środowisko, a nie takie, które wybrałeś.
prostszym sposobem jest stworzenie środowiska maszyny wirtualnej na bieżącym systemie programistycznym. W przypadku hostów z systemem Windows można zainstalować VMware Player lub VirtualBox, a na komputerze Mac można zainstalować Parallels lub VMware Fusion. Korzystanie z maszyny wirtualnej oferuje znacznie większą elastyczność. Możesz zainstalować stacjonarną dystrybucję Linuksa, taką jak Ubuntu lub Fedora. Możesz użyć tej dystrybucji, aby zapoznać się z podstawowymi pojęciami Linuksa, nauczyć się powłoki poleceń oraz nauczyć się budować i uruchamiać programy. Możesz zmienić konfigurację jądra lub załadować sterowniki, bez obawy, że zawiesisz swój system pulpitu. Możesz zbudować całe jądro i środowisko aplikacji, podobne do tego, co możesz zrobić ze środowiskiem cross-development dla osadzonego Linuksa.
jeśli twoja maszyna wirtualna z systemem Linux ulegnie awarii, po prostu uruchom ją ponownie. Awaria nie wpływa na inne rzeczy, które możesz robić w swoim systemie programistycznym, takie jak czytanie strony internetowej o tym, jak zbudować i zainstalować sterownik, lub pisanie wiadomości e-mail do jednej z wielu list mailingowych wsparcia.
niektóre produkty VM mają funkcje migawek, które pozwalają na przejście do punktu kontrolnego znanej konfiguracji roboczej, do którego można cofnąć, jeśli nie można łatwo naprawić awarii. Ta migawka jest o wiele łatwiejsza niż próba ratowania systemu pulpitu lub nie reagującej płyty docelowej.
Linux VM uruchomiony na pulpicie nie jest idealnym modelem dla wbudowanego środowiska Linux. Maszyna wirtualna emuluje sprzęt systemu desktopowego z ograniczonym zestawem urządzeń, które raczej nie pasują do rzeczywistego osadzonego celu. Ale naszym celem w tym momencie nie jest modelowanie prawdziwego celu (o czym porozmawiamy później), ale stworzenie środowiska, w którym można łatwo nauczyć się koncepcji i programowania Linuksa.
to jest pierwszy krok: Utwórz maszynę wirtualną i zainstaluj na niej desktopową dystrybucję Linuksa. Wybierzemy stąd w kolejnej odsłonie.
Michael Eager jest głównym konsultantem w Eager Consulting w Palo Alto, Calif . Ma ponad czterdziestoletnie doświadczenie w opracowywaniu kompilatorów, debuggerów i symulatorów dla szerokiej gamy architektur procesorów używanych w systemach wbudowanych. Jego obecni i byli klienci to główne firmy półprzewodnikowe i Programiści systemów. Michael był członkiem Komitetu Standardów ISO C++ i komitetów ABI dla kilku architektur procesorów. Jest przewodniczącym Debugging Standards Committee for DWARF, powszechnie używanego formatu danych debugowania. Jest aktywny w społecznościach open-source i Linux.
:
- Nauka Linuksa dla systemów wbudowanych
- pierwsze kroki z wbudowanym Linuksem: część druga
- pierwsze kroki z wbudowanym Linuksem: Część trzecia
- pierwsze kroki z wbudowanym Linuksem: Część czwarta
- pierwsze kroki z wbudowanym Linuksem: część piąta
- pierwsze kroki z wbudowanym Linuksem: część szósta
- pierwsze kroki z wbudowanym Linuksem: część siódma