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?
Odpowiedz
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ść.
- 1. Jaka jest różnica między ścieżką klas, systemem plików?
- 2. Różnica między systemem() i powłoką()
- 3. Różnica między systemem a shell_exec
- 4. Jaka jest różnica między dwoma pustymi programami głównymi {} z systemem i bez niego?
- 5. Jaka jest różnica między rurami i gniazdkami?
- 6. Platformy Android SDK między systemem Linux i Windows
- 7. Jaka jest różnica między systemem push i offset w systemie grid?
- 8. Jaka jest różnica między developer.paypal.com i x.com?
- 9. jaka jest różnica między ~/i ~ w systemie Linux?
- 10. Jaka jest różnica między poleceniami linux i unix?
- 11. Jaka jest różnica między? : i ||
- 12. Jaka jest różnica między $ i $$?
- 13. Jaka jest różnica między Lazarus i CodeTyphon
- 14. Jaka jest różnica między identyfikatorem @id i @ +?
- 15. Jaka jest różnica między getAbsolutePath i getCanonicalPath
- 16. Jaka jest różnica między file_get_contents i fread
- 17. Jaka jest różnica między typami plików .Resx i .Resources?
- 18. Jaka jest różnica między LDADD i LIBADD?
- 19. Jaka jest różnica między <% # i <% = w ASP.NET MVC?
- 20. Jaka jest różnica między więzieniem chro Linux a więzieniem FreeBSD?
- 21. Różnica między HDFS i NFS?
- 22. Jaka jest różnica między Subtotal i BaseSubtotal?
- 23. Jaka jest różnica między DetachedCriteria i ICriteria
- 24. Jaka jest różnica między & # x00A0; i ?
- 25. Jaka jest różnica między lex i yacc
- 26. jaka jest różnica między dijit i dojo
- 27. Jaka jest różnica między Control.Select() i Control.Focus()?
- 28. Jaka jest różnica między System.Windows.Controls.Control i System.Windows.Forms.Control?
- 29. Jaka jest różnica między apletami i SWING?
- 30. Jaka jest różnica między session.commit() i session.flush()?
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. –
http://unix.stackexchange.com/questions/41133/what-are-the-main-differences-between-those-linux-distro-vs-general-daily-linux –
"Jądro systemu Linux działające w czasie rzeczywistym. odpowiedź jest w czasie rzeczywistym lub jest deterministyczna. " http://embeddedcraft.org/embedlinuxdesktoplinux.html – thePiGrepper