2014-09-16 13 views
25

Systemy RTOS i Embedded Linux są używane do programowania systemów wbudowanych. Czy Embedded Linux jest systemem RTOS? Czy ktoś może podać porównanie lub różnicę?Jaka jest różnica między systemem plików RTOS i wbudowanym systemem Linux?

+1

System operacyjny czasu rzeczywistego (RTOS) to oprogramowanie o deterministycznym działaniu. Zdarzenia są obsługiwane w ramach ograniczenia czasowego. Wbudowany system Linux nie jest systemem operacyjnym czasu rzeczywistego, ponieważ zdarzenia/przerwania są zwykle obsługiwane przez odroczone procedury lub kod "dolnej połowy", który nie może zagwarantować opóźnienia. Istnieją jednak implementacje systemu Linux dla wbudowanego systemu Linux. Myślę, że Wind River (Intel) dostarcza wersję tego. –

+0

http://unix.stackexchange.com/questions/41133/what-are-the-main-differences-between-those-linux-distro-vs-general-daily-linux –

+0

"Jądro systemu Linux działające w czasie rzeczywistym. odpowiedź jest w czasie rzeczywistym lub jest deterministyczna. " http://embeddedcraft.org/embedlinuxdesktoplinux.html – thePiGrepper

Odpowiedz

38

Linux jest uniwersalnym systemem operacyjnym (GPOS); jego zastosowanie w systemach wbudowanych jest zwykle motywowane przez dostępność obsługi urządzeń, systemów plików, łączności sieciowej i obsługi interfejsu użytkownika. Wszystkie te rzeczy mogą być dostępne w systemie RTOS, ale często z mniejszym wsparciem lub dodatkowym kosztem lub integracją.

Wiele systemów operacyjnych RTOS nie jest pełnym systemem operacyjnym w tym sensie, że jest to Linux, ponieważ składa się z biblioteki łącza statycznego, która zapewnia tylko planowanie zadań, IPC, synchronizację i synchronizację oraz niewiele więcej - w zasadzie tylko jądro planowania. Taka biblioteka jest powiązana z twoim kodem aplikacji, aby utworzyć pojedynczy plik wykonywalny, który twój system uruchamia bezpośrednio (lub za pomocą bootloadera). Większość systemów RTOS nie obsługuje bezpośrednio dynamicznego ładowania i rozładowywania kodu z systemu plików, podobnie jak w przypadku Linuksa - wszystko dzieje się podczas rozruchu i działa aż do wyłączenia.

Krytycznie Linux nie działa w czasie rzeczywistym. System RTOS zapewnia gwarancje planowania w celu zapewnienia deterministycznych zachowań i zdarzeń reagowania w odpowiednim czasie oraz przerwania. W większości przypadków jest to oparte na priorytetowym algorytmie planowania wyprzedzającego, w którym zadanie o najwyższym priorytecie gotowe do uruchomienia zawsze działa - natychmiast - uprzedzenie z wyprzedzeniem zadania o niższym priorytecie bez określonej wydajności lub zrzeczenia się CPU lub zakończenia czasu -kawałek.

Linux ma wiele opcji planowania, w tym harmonogram w czasie rzeczywistym, ale jest to w najlepszym przypadku "miękki" w czasie rzeczywistym - termin, którego nie lubię, ponieważ jest źle zdefiniowany i zasadniczo oznacza w czasie rzeczywistym, najbardziej czasu, ale czasami nie. Jeśli twoja aplikacja nie potrzebuje "twardego" czasu rzeczywistego, to dobrze, ale typowe opóźnienia w czasie rzeczywistym Linux będą rzędu dziesiątek lub setek mikrosekund, podczas gdy typowe jądro RTOS w czasie rzeczywistym może osiągnąć z opóźnień od od zera do kilku mikrosekund.

Inną kwestią związaną z wbudowanym systemem Linux jest to, że potrzebuje on znacznych zasobów procesora, być może> 200 MB, 32-bitowego procesora, najlepiej z MMU, 4 MB pamięci ROM i 16 MB pamięci RAM po prawie rozruchu (co może potrwać kilka sekund). Z drugiej strony, RTOS może być w milisekundach, uruchamiany w mniej niż 10Kb, na mikrokontrolerach od 8-bitowych. Może to mieć znaczący wpływ na koszt systemu dla produkcji seryjnej, mimo że jest pozornie "wolny".

Istnieją większe produkty RTOS, które wykazują niektóre funkcje GPOS, takie jak dynamiczne ładowanie, systemy plików, sieci, GUI (na przykład w QNX), a wiele RTOS zapewnia API POSIX (zwykle wtórne do ich macierzystego rzeczywistego -time API), na przykład VxWorks i znowu QNX, dzięki czemu można stosunkowo łatwo przeportować dużą liczbę kodów opracowanych dla systemów Linux i Unix. Te większe, bardziej kompleksowe produkty RTOS pozostają skalowalne, więc nie są wymagane funkcjonalności. W porównaniu do tego Linux ma znacznie mniejszą skalowalność.

Powiązane problemy