RTLinux
| RTLinux | |
|---|---|
| Typ | System operacyjny czasu rzeczywistego |
| Deweloper | Victor Yodaiken, Mikhail Barabanov ( en: New Mexico Institute of Mining and Technology ), FSMLabs, Wind River Systems |
| Napisane w | C |
| System operacyjny | linux |
| Pierwsza edycja | 1996 |
| Licencja | GPLv2 |
| Stronie internetowej | rt.wiki.kernel.org/index… |
RTLinux to system operacyjny czasu rzeczywistego z twardym mikrojądrem , który obsługuje Linuksa jako proces w pełni wywłaszczalny . Prace nad RTLinux zakończono w 2007 roku i w oparciu o rozwój tego systemu operacyjnego uruchomiono autorski projekt Wind River .
Funkcje implementacyjne
Twórcy RTLinux podążyli ścieżką, która przewiduje uruchamianie jądra Linuksa z nanojądra czasu rzeczywistego jako zadania o najniższym priorytecie . W RTLinux wszystkie przerwania są obsługiwane przez jądro czasu rzeczywistego, które zawiera własny harmonogram zadań , obsługę przerwań i kod biblioteki. Jeśli nie ma obsługi czasu rzeczywistego dla jakiegoś przerwania, jest ono przekazywane do Linuksa. W rzeczywistości Linux jest bezczynnym (bezczynnym) zadaniem RTOS , które jest uruchamiane tylko wtedy, gdy żadne zadanie nie jest wykonywane w czasie rzeczywistym. Jednocześnie na zadanie Linuksa nakładane są pewne ograniczenia, które jednak są niewidoczne dla programisty.
Linux nie może wykonywać następujących operacji:
- blokować przerwania sprzętowe ;
- nie daj się wypchnąć przez inne zadanie.
Kluczem do implementacji tego systemu jest sterownik emulujący system kontroli przerwań , który jest wywoływany przez Linuksa, gdy próbuje blokować przerwania. W takim przypadku sterownik przechwytuje żądanie, zapisuje je i zwraca kontrolę do systemu Linux.
Wszystkie przerwania sprzętowe są przechwytywane przez jądro RTOS. Kiedy pojawia się przerwanie , jądro RTLinux decyduje, co zrobić. Jeśli to przerwanie musi być obsługiwane przez procedurę obsługi czasu rzeczywistego, to jądro wywołuje odpowiednią procedurę obsługi. W przeciwnym razie, lub jeśli program obsługi w czasie rzeczywistym mówi, że chce współdzielić to przerwanie z Linuksem, procedura obsługi jest ustawiana w stan oczekiwania. Jeśli Linux zażądał włączenia przerwań, to oczekujące przerwania są emulowane.
Jądro RTLinux jest zaprojektowane w taki sposób, że jądro czasu rzeczywistego nigdy nie musi czekać na zwolnienie zasobu zajmowanego przez proces Linuksa.
Do wymiany danych między systemami RTOS i Linux dostępne są następujące narzędzia:
- obszary pamięci współdzielonej ;
- pseudourządzenia zapewniające możliwość wymiany danych z aplikacjami czasu rzeczywistego.
Kluczową zasadą budowania RTLinux jest używanie jak największej ilości Linuksa i jak najmniejszej ilości RTLinuksa. Rzeczywiście, Linux zajmuje się inicjalizacją systemu i urządzeń , a także dynamiczną alokacją zasobów. RTLinux odpowiada tylko za planowanie zadań w czasie rzeczywistym i obsługę przerwań. Procesy czasu rzeczywistego są zaimplementowane jako ładowalne moduły Linuksa, aby ułatwić uruchamianie w kontekście jądra, zachowując modułowość i rozszerzalność systemu .
Aplikacja czasu rzeczywistego z RTLinux składa się zwykle z dwóch niezależnych części: procesu wykonywanego przez jądro RTLinux i normalnej aplikacji Linux.
To modułowe podejście do pisania aplikacji jest nieodłączne w wielu rozszerzeniach czasu rzeczywistego dla systemów wielofunkcyjnych, w których zadanie w czasie rzeczywistym działa niezależnie od systemu operacyjnego. Twórcy przyjęli już schemat, zgodnie z którym zadania krytyczne czasowo są programowane za pomocą interfejsów API udostępnianych przez rozszerzenie czasu rzeczywistego, a wszystkie funkcje usługi i interfejsu użytkownika są przypisane do mocy systemu operacyjnego. Dzięki takiemu podejściu programista musi tylko nauczyć się obsługi interfejsu API w czasie rzeczywistym.
Wady implementacji RTLinux
- Aplikacje czasu rzeczywistego działają w przestrzeni jądra, dlatego mogą nadpisać część pamięci jądra i zepsuć system
- Interakcja między podsystemem RT a Linuksem nie może odbywać się w czasie rzeczywistym
- Jądro Linuksa działa w tle, więc zadania Linuksa mogą mieć duże opóźnienia.
- Nie można używać sterowników Linuksa w zadaniach czasu rzeczywistego, dlatego twórcy aplikacji czasu rzeczywistego są zmuszeni do przepisywania sterowników urządzeń na podsystemie RT
Inne rozszerzenia czasu rzeczywistego dla Linuksa
- KURT
- Xenomai
- pl:RTAI
- pl:RMX
- Zaawansowany system operacyjny czasu rzeczywistego Linux Zarchiwizowany 14 lutego 2012 r. w Wayback Machine , opartym na Linuksie twardym systemie operacyjnym czasu rzeczywistego do użytku w robotyce .
Linki
- Wersja GPL RTLinux-GPL. Nie jest już aktualizowany Zarchiwizowany 10 marca 2007 w Wayback Machine
- Real-Time Linux Wiki - alternatywny projekt znany jako CONFIG_PREEMPT_RT patch Zarchiwizowany 19 grudnia 2008 w Wayback Machine
- Real Time Linux Foundation zarchiwizowane 16 października 2007 r. w Wayback Machine
- Darmowa wersja Open Source RTLinux. Powrót online 18.08.2007. Zarchiwizowane 27 lutego 2007 r. w Wayback Machine
- Wind River Supply RTLinuxPro / Wind River Real-Time Core — komercyjna wersja RTLinux zarchiwizowana 4 października 2006 w Wayback Machine
- Oryginalny dostawca RTLinuxPro Zarchiwizowane 14 stycznia 2007 w Wayback Machine
- electronica.org.in/ Tutaj znajdziesz wystarczającą ilość materiałów/projektów/for dyskusyjnych dla RTLinux
- pomaga to zrozumieć koncepcję RT. (niedostępny link) . Zarchiwizowane z oryginału 28 stycznia 2013 r.
- daje łatę jądra do pobrania wraz z dokumentacją. Zarchiwizowane 26 września 2007 r. w Wayback Machine