EMBEDDED OS Jest Zastosowanie Systemu Operacyjnego
Total Page:16
File Type:pdf, Size:1020Kb
Przegląd systemów operacyjnych WYBÓRdla systemów KONSTRUKTORA wbudowanych Przegląd systemów operacyjnych dla systemów wbudowanych Użytkownicy rozpieszczani kolorowymi wyświetlaczami oraz wych wyposażonych w jednostkę za- interfejsami dotykowymi telefonów komórkowych stawiają przed rządzania pamięcią MMU oraz dużą, ze- NUMERU TEMAT konstruktorami urządzeń elektronicznych coraz większe wymagania. wnętrzną pamięć operacyjną, zazwyczaj Niegdyś popularne monochromatyczne wyświetlacze znakowe większą niż 4 MB. • Minisystemy operacyjne, przeznaczone odchodzą do lamusa nawet w urządzeniach amatorskich. dla mikrokontrolerów jednoukładowych, Równocześnie czasy prostych interfejsów komunikacyjnych, takich pracujące w pojedynczej przestrzeni ad- jak np. RS232, którego oprogramowanie można było zmieścić resowej i wymagające niewielkiej pamię- w kilkudziesięciu liniach kodu, również odeszły w zapomnienie. ci operacyjnej rzędu pojedynczych kB. Współczesne interfejsy takie jak USB, Ethernet, CAN, Wi-Fi, Systemy z pierwszej grupy, są najczęściej Bluetooth, wymagają skomplikowanych rozwiązań programowych, rozwiązaniami zaawansowanymi, zapewnia- zarówno do obsługi samych rejestrów sprzętowych kontrolera jącymi sterowniki dla wielu układów peryfe- ryjnych, wbudowaną obsługę zaawansowa- interfejsu, jak i dodatkowych warstw abstrakcji. Wszystko to nych protokołów sieciowych, wyświetlaczy powoduje, że przygotowanie we własnym zakresie odpowiedniego graficznych, klawiatur itp. Wspierają one oprogramowania od podstaw dla nieco bardziej zaawansowanych również separację oraz wirtualizację zaso- projektów, za pomocą samego kompilatora, jest zadaniem żmudnym, bów pomiędzy poszczególnymi aplikacjami, podatnym na błędy, a co za tym idzie kosztownym. Rozwiązaniem dzięki czemu nawet w przypadku awarii EMBEDDED OS jest zastosowanie systemu operacyjnego. jednej z aplikacji, pozostała część systemu oraz aplikacja nadal pracują prawidłowo. Typowym przedstawicielem systemu wyma- Tworzenie całego oprogramowania od wydajną jednostkę centralną oraz zasoby gającego mikroprocesora z MMU jest Linux, podstaw ma czasem sens (choć nie zawsze) pamięci. Umożliwiają przy tym uruchamia- którego architekturę programową przedsta- jedynie w dużych firmach dla produkcji nie systemów operacyjnych bez zauważalnej wiono poglądowo na rysunku 1. wielkoseryjnej, gdzie pracochłonny koszt utraty wydajności. Często wykorzystanie Linux składa się z monolitycznego jądra przygotowania wyspecjalizowanego opro- systemów operacyjnych nie wymaga pono- odpowiedzialnego za wirtualizację zasobów, gramowania umożliwia zastosowanie prost- szenia dodatkowych kosztów, ponieważ wie- szeregowanie zadań, komunikację między- szych, a zatem tańszych podzespołów. Dla- le z nich jest dostępnych na wolnych licencji procesową, obsługę protokołów sieciowych. tego w urządzeniach elektronicznych coraz umożliwiającej pobranie i modyfikowanie Jądro zapewnia także jednolity interfejs chętniej stosowane są systemy operacyjne, źródła, przy czym gro z nich to projekty doj- dostępu do urządzeń dodając dodatkową które doskonale upraszczają proces przygo- rzałe, mające certyfikaty lub umożliwiające warstwę abstrakcji uniezależniającą aplika- towania oprogramowania pozwalając sku- wykupienie wsparcia komercyjnego. Istnieją cję od sprzętu, na którym pracuje. Bezpo- pić się na funkcjonalności, dodając kolejną również komercyjne systemy o zamkniętym średni dostęp do sprzętu ma jedynie jądro warstwę abstrakcji pomiędzy programem kodzie źródłowym, których użycie wymaga systemu operacyjnego. Wszystkie aplikacje a sprzętem. Podobnie jak kilkanaście lat poniesienia dodatkowych kosztów zakupu korzystające ze sprzętu muszą odwoływać temu w oprogramowaniu wbudowanym ode- samej licencji. W zależności od sposobu li- się do niego za pośrednictwem jądra. Jądro szliśmy od pisania kodu aplikacji w assem- cencjonowania, może to być opłata jednora- pracuje w trybie uprzywilejowanym, mając blerze (z wyjątkiem nielicznych wstawek) na zowa lub też opłata od każdej sztuki działa- dostęp do całej przestrzeni adresowej oraz rzecz języka C, który nazywany jest „przeno- jącego urządzenia. urządzeń peryferyjnych. Aplikacje działają śnym assemblerem”, tak dzisiaj obserwuje- w przestrzeni użytkownika i mają ograni- my proces odchodzenia od bezpośredniego Architektura czony dostęp do zasobów systemowych pra- programowania rejestrów mikrokontrolera Pod pojęciem systemu operacyjnego cując w wydzielonych, niezależnych prze- na rzecz systemów operacyjnych oraz biblio- dla urządzeń wbudowanych kryje się cała strzeniach adresowych. Dostęp do wywołań tek dodatkowych. Nie bez znaczenia jednym gama systemów, od tych najprostszych, które systemowych jądra odbywa się za pomocą z dodatkowych powodów coraz większej po- możemy uruchomić na mikrokontrolerach biblioteki libc, która zapewnia dodatkową pularności takich rozwiązań jest rewolucja, 8-bitowych, po rozbudowane, znane z kom- funkcjonalność oraz tworzy warstwę abs- która dokonała się w przeciągu ostatnich kil- puterów PC. Ze względu na rodzaj obsługi- trakcji pomiędzy interfejsem jądra a aplika- ku, lat polegająca na odchodzeniu od mikro- wanych układów systemy możemy podzielić cją użytkownika. kontrolerów 8-bitowych w stronę rozwiązań na dwie kategorie: Pomimo niezaprzeczalnych, zalet peł- 32-bitowych (głównie ARM). Współczesne • Systemy operacyjne przeznaczone dla noprawne systemy operacyjne narzucają mikrokontrolery mają wielokrotnie bardziej mikroprocesorów minimum 32-bito- stosunkowo duże wymagania odnośnie do ELEKTRONIKA PRAKTYCZNA 7/2013 57 WYBÓR KONSTRUKTORA wzajem oraz do wszystkich zasobów sprzęto- wych. Kod systemu oraz aplikacje linkowane są statycznie do pojedynczego obrazu, który jest następnie wgrywany do pamięci Flash urządzenia. Główną częścią systemu opera- cyjnego jest jądro, które jest bardzo proste i składa się z modułu szeregowania zadań (schedulera) oraz modułu komunikacji mię- dzyprocesowej (IPC). Moduł szeregowania zadań jest odpowiedzialny za przydzielanie czasu procesora poszczególnym aplikacjom, natomiast moduł IPC jest odpowiedzialny za komunikację pomiędzy procesami oraz ją- drem. Aplikacje mają dostęp do wszystkich zasobów, zatem nie jest konieczne odwoły- TEMAT NUMERU TEMAT wanie się do sprzętu za pośrednictwem ją- dra. W tej architekturze można odwoływać się bezpośrednio do sprzętu za pomocą wpisów do rejestrów sprzętu, tak jak w przy- padku klasycznych aplikacji pozbawionych systemu. Bardzo często minisystemy mają do- datkowe moduły udostępniające warstwę abstrakcji sprzętu HAL czy integrujące np. stos TCP lub USB, niestanowiące w ścisłym sensie jądra systemu, ale dostarczane razem z nim. Dodatkowa warstwa nie jest wymaga- na, ale pozwala na uniezależnienie aplikacji od specyfiki danego rozwiązania sprzętowe- go. Często również minisystemy wyposażane Rysunek 1. Poglądowa architektura systemu Linux embedded są w dodatkowe stosy protokołów np. TCP/ IP, USB, Bluetooth itp., zapewniając odpo- EMBEDDED OS samej jednostki centralnej oraz wymagają nia. Przede wszystkim nie jest wymagana wiednie API. Zazwyczaj istnieje możliwość dodatkowych zasobów, takich jak stosunko- jednostka centralna wyposażona w MMU, wyłączenia poszczególnych modułów na wo duża pamięć operacyjna czy dodatkowa a apetyt na pamięć jest znacznie mniejszy. etapie kompilowania i pozostawienie mini- pamięć stała, w której będą przechowywane Do jego uruchomienia wystarczy nawet 8-bi- malnego zestawu składającego się jedynie pliki oraz aplikacje. Niestety, współczesne towy mikrokontroler wyposażony w pamięci z jądra. Rozpatrując minisystem z punktu mikrokontrolery jednoukładowe nie mają RAM i Flash o wielkości kilkunastu KB. widzenia pełnoprawnego systemu możemy zasobów umożliwiających uruchomienie Podstawową architekturę takiego mi- powiedzieć, że jego jądro stanowi analogię pełnoprawnego systemu. W takich wypad- nisystemu pokazano na rysunku 2. Brak do biblioteki obsługi wątków np. Linuksowe- kach znajdują zastosowanie „minisystemy wymagań odnośnie do MMU, powoduje, że go pthread, a poszczególne aplikacje należy operacyjne” o znacznie uproszczonej budo- wszystkie aplikacje oraz sam system działają rozpatrywać bardziej w kategoriach wątków, wie, oparte o koncepcję mikrojądra. Systemy we wspólnej przestrzeni adresowej. Aplika- niż procesów z uwagi na pracę we wspólnej te mają zdecydowanie mniejsze wymaga- cje oraz jądro mają pełny dostęp do siebie na- przestrzeni adresowej. Wybór platformy sprzętowej. Mikrokontroler jednoukładowy czy mikroprocesor z MMU? Do niedawna wybór pomiędzy mikro- kontrolerem, a mikroprocesorem z MMU dla średniozaawansowanych projektów był oczywisty. Podstawowym wyborem był mikrokontroler jednoukładowy z uwagi na korzystną cenę lub o wiele prostszy projekt płytki drukowanej. Jedynie w wypadku naj- bardziej zaawansowanych projektów mogli- śmy sobie pozwolić na użycie mikroproceso- ra oraz pełnego systemu operacyjnego. Dziś porównując cenę oraz możliwości współcze- snych układów wybór już nie jest taki oczy- wisty. Układ umożliwiający uruchomienie kompletnego systemu operacyjnego możemy nabyć w cenie detalicznej około 20 złotych. Uzupełniając go o pamięć DRAM oraz nie- Rysunek 2. Uproszczona architektura minisystemu operacyjnego wielką pamięć Flash, łącznie za około 10 58 ELEKTRONIKA PRAKTYCZNA 7/2013 Przegląd systemów operacyjnych dla systemów wbudowanych użyć bardziej zaawansowa będzie i rozsądniej wygodniej dów należy rozważyć czy nie nym. Z tych właśnie powo ujawnić się w zupełnie in w jednym fragmencie może mięci, gdzie błąd popełniony mechanizmów ochrony pa gdy nie mamy do dyspozycji dowanym