Systemy RTOS do zastosowań embedded i przemysłowych

| Technika

Na rynku dostępnych jest wiele systemów RTOS, z czego jedynie kilkanaście jest w praktycznym użyciu, a kilka uznać można za wiodące. W tej grupie wyróżnia się rozwiązania różniące się od siebie architekturą, szybkością pracy, funkcjami dodatkowymi i dostosowaniem do konkretnych zadań. W artykule, który jest kontynuacją zeszłomiesięcznego tematu numeru poświęconego systemom RTOS, przedstawiamy wybrane – zdaniem redakcji najistotniejsze dla polskich odbiorców – systemy operacyjne czasu rzeczywistego, a także omawiamy ich cechy techniczne i możliwości zastosowań.

Systemy RTOS do zastosowań embedded i przemysłowych

QNX – ARCHITEKTURA OPARTA O MIKROJĄDRO

Jednym z najpopularniejszych obecnie systemów operacyjnych czasu rzeczywistego jest QNX kanadyjskiej firmy QNX Soft ware Systems. Rozwijany jest on od kilkunastu lat i jest jednym z pierwszych komercyjnych systemów, który od początku swego istnienia miał bardzo nowoczesną architekturę – początkowo charakterystyczną wyłącznie dla systemów akademickich i naukowych, takich jak Mach, Chorus i Amoeba.

Obecnie system oparty jest o 32-bitowe, wydajne mikrojądro o nazwie Neutrino. Do jego zadań należą ochrona zasobów sprzętowych, szeregowanie wątków, zarządzanie pamięcią i zapewnienie mechanizmów komunikacji międzyprocesowej. Wszystkie bardziej zaawansowane funkcje dostarczane przez system są realizowane w oparciu o bazowe usługi jądra i mechanizm przekazywania komunikatów, co stanowi podstawową i najważniejszą cechę architektury. Mikrojądro tworzy strukturę w rodzaju uniwersalnej magistrali programowej, do której są „podłączone” komponenty systemu, takie jak sterowniki urządzeń, stosy protokołów sieciowych i aplikacje (patrz rys. 1).

Nietrudno zauważyć, że architektura tego typu jest w pełni skalowalna, przez co system może być używany w wielu różnych aplikacjach oraz dostosowany do specyficznych potrzeb użytkowników. Ponadto mechanizm przekazywania komunikatów jest przezroczysty i został pomyślany w taki sposób, by za jego pomocą mogły komunikować się zarówno wątki zlokalizowane na pojedynczym, jak i na różnych węzłach sprzętowych. Dzięki temu w oparciu o QNX mogą być konstruowane aplikacje rozproszone oraz o dużej dostępności, które tolerują awarie pojedynczych węzłów systemu.

Z drugiej strony wadą architektury mikrojądra jest pewna utrata wydajności spowodowana przekazywaniem komunikatów. Większość złożonych operacji jest wykonywana poprzez odwołanie do określonych komponentów systemu za pomocą wysłania komunikatu, czemu towarzyszy kopiowanie danych między przestrzeniami adresowymi i zmiana kontekstu procesora. Ze względu na moc obliczeniową współczesnych procesorów w wielu aplikacjach wspomniana utrata wydajności może nie być brana pod uwagę. Istnieje jednak pewna klasa zastosowań, np. systemy wbudowane dla telekomunikacji, takie jak routery, firewalle, urządzenia do kształtowania pasma, w których stosowanie QNX może prowadzić do niezbyt zadowalających rezultatów. Ze względu na usunięcie obsługi protokołów sieciowych z jądra systemu wydajność pakietowa urządzeń opartych o QNX jest mniejsza niż wydajność rozwiązań działających pod kontrolą systemów operacyjnych opartych o jądro monolityczne lub bibliotekę ekstrakodów.

Systemy Windows?

Dynamiczny rozwój systemów wbudowanych i inteligentnych urządzeń powszechnego użytku, takich jak komunikatory, palmtopy czy osobiste systemy nawigacji satelitarnej, skłoniły firmę Microsoft do opracowania własnego systemu operacyjnego do tego typu zastosowań, zgodnego pod względem interfejsu aplikacyjnego z Windows. W 1996 roku pojawiła się pierwsza wersja systemu do zastosowań wbudowanych Windows CE.

Jego projektanci położyli główny nacisk na możliwość stosowania go w aplikacjach multimedialnych wykorzystujących technologie bezprzewodowe oraz na skalowalność i wygodę adaptacji do urządzeń różnych producentów. W przeciwieństwie do QNX architektura Windows CE jest dość skomplikowana i nie ma w sobie akademickiej spójności. System składa się z wielu warstw i komponentów (około 220), które miały zapewnić możliwość dopasowania go do konkretnych potrzeb i dużą skalowalność.

Skalowanie systemu w stworzonym modelu wymaga jednak zrozumienia wzajemnych powiązań komponentów. Wersje systemu dla konkretnego sprzętu są zazwyczaj tworzone poprzez jego producenta (tzw. partnera OEM). Na producencie spoczywa konieczność stworzenia warstwy adaptacyjnej OAL (OEM adaptation layer), która umożliwia uruchamianie systemu i wykorzystywanie specyficznych urządzeń. Windows CE działa na wielu platformach sprzętowych: IA32, ARM, MIPS, SH4 i innych.

Wprawdzie ma on relatywnie niewielkie wymagania sprzętowe co do mocy obliczeniowej procesora i rozmiaru pamięci operacyjnej, jednak niezbyt nadaje się do tworzenia aplikacji sterowania, gdyż gwarantowane limity czasowe są zbyt duże. Niemniej jest on, zdaniem przedstawicieli Microsoftu, systemem typu hard real-time. Ma w szczególności 256 poziomów priorytetów wątków i pozwala na odpowiednią priorytetyzację przerwań. System jest kompatybilny z Win32, a do jego zalet niewątpliwych należy dostępność komponentów multimedialnych i wsparcie dla technologii bezprzewodowych. Nieco zbliżone, choć wywodzące się z innej grupy produktów, są systemy Windows XP Embedded i Windows Mobile.

Nie są to już jednak rozwiązania RTOS, a jedynie systemy przeznaczone do aplikacji wbudowanych. Windows XP Embedded wywodzi się z grupy Windows XP i w przeciwieństwie do wersji CE zawiera pełne API programistyczne. Windows Mobile jest ściśle dopasowane do telefonów komórkowych i praktycznie nie nadaje się do innych zastosowań. Obecnie Microsoft promuje grupę określaną jako Windows Embedded.

Pod nazwą tą kryją się nowe edycje wcześniej wydawanych systemów. Windows Embedded Compact to najnowsza odmiana Windows CE, czyli system RTOS. Windows Embedded Standard to uaktualniona wersja XP Embedded. Ponadto powstają odmiany Embedded Enterprise i Embedded POSReady, które przystosowane są do wymogów niektórych typów aplikacji.

ZGODNOŚĆ SYSTEMU I ZAWARTOŚĆ PAKIETU

QNX zaprojektowany został jako system zgodny ze standardem POSIX. Zgodność ta realizowana jest za pomocą zbioru bibliotek i serwerów. Te ostatnie służą do emulowania mechanizmów takich jak łącza nazwane (named pipes) i IPC. Dzięki zgodności z POSIX w QNX jest wykorzystywana duża ilość oprogramowania GNU. Na uwagę zasługuje fakt, że podstawowym kompilatorem jest GNU CC autorstwa Richarda Stallmana. Ponadto zgodność z POSIX sprawia, że system jawi się przeciętnemu użytkownikowi jako kolejna inkarnacja systemu UNIX, dzięki czemu może on używać całego zestawu znanych aplikacji i programów i nie rezygnować ze swoich przyzwyczajeń.

System QNX jest dostępny na różne architektury sprzętowe: IA32, ARM, StrongARM, Xscale, MIPS32, PowerPC, SH4 i inne. Zawiera on bogaty zestaw mechanizmów oraz narzędzi uruchomieniowych pozwalających na wygodny rozwój aplikacji. QNX może działać w systemach wieloprocesowych i z procesorami wielordzeniowymi, stosując różne tryby podziału zadań. Oprócz podziału równomiernego (symetrycznego) dostępny jest model wieloprocesowości hybrydowej, w której poszczególnym aplikacjom lub wątkom można przydzielać oddzielne jądra. Pozwala to na uruchamianie programów napisanych dla środowiska jednoprocesowego, na procesorach wielordzeniowych, bez konieczności modyfikacji kodu.

Dzięki temu dotychczasowe aplikacje mogą współpracować z aplikacjami napisanymi specjalnie na potrzeby procesorów wielordzeniowych. Dostępna jest również diagnostyczna wersja jądra QNX Neutrino, która służy do szybkiego rozwiązywania konfl iktów synchronizacji i blokad systemu oraz ułatwia znajdywanie źródeł błędów składniowych oraz wielu innych problemów na poziomie systemu. Jądro to pozwala rejestrować i datować każde wydarzenie systemowe, włączając wywołania jądra, przerwania, komunikaty, stany wątki i czynności szeregowania zadań.

Zastosowanie własnych filtrów wydarzeń dodatkowo usprawnia diagnostykę. W ramach pakietu QNX dostępny jest również system okienkowy Photon microGUI. Pozwala on na tworzenie złożonych wielowarstwowych ekranów okienkowych zawierających szybkie animacje oraz grafikę 3D. Zawiera biblioteki do tworzenia przycisków, menu i okien, przy czym obsługuje standard kodowania Unicode. Co więcej – zawiera też biblioteki pozwalające na dekodowanie wielu formatów multimedialnych. Obecnie kod źródłowy jądra QNX Neutrino jest publicznie dostępny.

Standard TRON

Wymieniając systemy operacyjne czasu rzeczywistego, warto wspomnieć o standardzie API (Application Programming Interface), który został stworzony specjalnie dla tego typu jąder. Jest to TRON (The Real-time Operating System Nucelus), którego koncepcja pochodzi z Japonii i tam cieszy się największą popularnością. W ramach TRON zdefiniowano szereg interfejsów oraz zaleceń projektowych, jakie powinny być uwzględnione przy tworzeniu jądra systemu RTOS. Sama specyfikacja TRON jest publicznie dostępna, co nie oznacza, że systemy operacyjne wykonane zgodnie z nią także muszą być darmowe. Od czasu wprowadzenia pierwotnej koncepcji TRON powstało kilka jej odmian, przystosowanych do konkretnych obszarów zastosowań:

  • ITRON (Industrial) – przystosowany do aplikacji wbudowanych,
  • JTRON (Java) – odmiana ITRON przystosowana dodatkowo do uruchamiania aplikacji Java,
  • BTRON (Business) – przystosowany do prostych stacji roboczych, urządzeń przenośnych i nieco większych komputerów, głównie jako interfejs HMI,
  • CTRON (Central and Communications TRON) -przystosowany do dużych serwerów i głównych jednostek przetwarzania danych,
  • MTRON (Macro) - do jednostek komunikujących się z innymi urządzeniami zgodnymi z TRON,
  • STRON (Silicon) - zbiór zaleceń dotyczących sprzętowej budowy jądra systemu RTOS w postaci układu scalonego.

     

RT-LINUX CORAZ POPULARNIEJSZY

Olbrzymia popularność systemów GNU/Linux skłoniła wielu projektantów do poszukiwania możliwości użycia go w systemach wbudowanych i aplikacjach sterowania. Podstawowym problemem uniemożliwiającym tego typu zastosowania był brak możliwości zachowania determinizmu czasowego wynikający z monolitycznej architektury jądra systemu. Proces przebywający w jądrze, np. po wywołaniu funkcji systemowej, nie może zostać wywłaszczony i wstrzymuje działanie innych procesów w systemie. Jak łatwo zauważyć, wpływa to na niekontrolowane zwiększenie czasu reakcji na zdarzenia zewnętrzne i może prowadzić do katastrofalnych skutków.

Mając na uwadze powyższe fakty, w New Mexico Institute of Technology opracowano rozwiązanie wzorowane na systemie MERT (Bell Labs, 1977), które zostało nazwane RT-Linux. RT-Linux jest systemem hybrydowym. Składa się z małego jądra czasu rzeczywistego, odpowiadającego za obsługę zadań czasu rzeczywistego, i umiejscowionego nad nim jądra systemu Linux. Jądro czasu rzeczywistego jest stosunkowo proste i nie zawiera sterowników urządzeń oraz skomplikowanych mechanizmów systemowych. Tworzy ono środowisko do wykonywania zadań czasu rzeczywistego oraz spełnia funkcje warstwy pośredniczącej w obsłudze przerwań.

Jądro Linuksa służy do uruchamiania złożonych aplikacji odpowiadających głównie za interakcję z użytkownikiem i przetwarzanie danych, które nie wymagają determinizmu czasowego. Zadania czasu rzeczywistego komunikują się z procesami systemu Linux poprzez kolejki FIFO. Obsługa tych kolejek została zawarta w jądrze czasu rzeczywistego. System RT-Linux jest wieloplatformowy i dostępny dla procesorów IA32, MIPS, PowerPC i ARM. Jądro czasu rzeczywistego cechuje się dużą wydajnością i pozwala na uruchamianie zadań o wysokich wymaganiach czasowych. System jest stosowany m.in. w NASA, w medycynie czy sterowaniu robotami.

ROZWÓJ SYSTEMU

Pierwotne dystrybucje systemu RT-Linux oferowane były na licencji sprzecznej GNU GPL, co powodowało pewne konfl ikty pomiędzy producentem, firmą FSMLabs, a organizacją GNU. Po przejęciu FSMLabs przez Wind River wydzielono dwie wersje systemu: Open RTLinux i Wind River Real-Time Core. Pierwsza z nich przeznaczona jest głównie dla instytutów naukowych i oferowana na licencji, która wymaga, by wszystkie aplikacje wykonane z użyciem Open RTLinux były oferowane na licencji GPL. Druga z nich dostarczana jest w ramach dystrybucji Wind River Linux wraz z pakietem narzędziowym Wind River Workbench i wsparciem technicznym ze strony producenta.

Obecnie Open RT-Linux bazuje na jądrze Linuksa w wersji 2.4/2.6, a Wind River Real-Time Core na 2.6. Obie wersje systemu RT-Linux mają dosyć duże rozmiary i wymagania pamięciowe spowodowane stosowaniem jądra systemu ogólnego przeznaczenia i architekturą hybrydową. System jest także słabo skalowalny, co wynika z jego monolitycznej architektury. W przeciwieństwie do omawianego wcześniej QNX nie może on zostać łatwo dopasowany do konkretnego zastosowania i być zredukowanym o niewykorzystywane komponenty. Problem ten jest także przyczyną ograniczonego stosowania w systemach wbudowanych systemów ogólnego przeznaczenia, takich jak Windows, Linux i BSD.

Rozwiązania specjalizowane

DSPnano i Unison RTOS firmy RoweBots to systemy RTOS przeznaczone do wykorzystania z urządzeniami wyposażonymi w mikroprocesory PIC i procesory sygnałowe. DSPnano wspiera architekturę 8- i 16-bitową, a Unison, 32-bitową. Oba są w pełni zgodne ze standardem POSIX i bazują na jądrze Linuksa.

Dostępne są one w dwóch wersjach licencyjnych, przy czym licencja darmowa nie zezwala na wykorzystanie modułu komunikacji sieciowej do zastosowań komercyjnych. DSPnano działać może na procesorach Microchip dsPIC 30, 33 PIC24 oraz Renesas M16C i R8C. Unison może być zaimplementowany w procesorach Microchip PIC32, Renesas R32C, SH2, TI, ARM, Cortex, STM32, Freescale CF, Sharc, PowerPC, a także w układach programowalnych Microblaze, NIOS i innych. Podobny do produktów RoweBots jest HeartOS firmy DDC-I.

Jest on zgodny ze standardem POSIX i obsługuje 8-, 16- i 32-bitowe mikroprocesory oraz DSP. Zajmuje niewiele miejsca w pamięci i przeznaczony jest do obsługi niewielkich i średnich aplikacji. Jest to oprogramowanie zamknięte i komercyjne. Kolejnym ciekawym systemem operacyjnym czasu rzeczywistego jest ThreadX firmy Express Logic. Wyróżniają go takie funkcje, jak dziedziczenie priorytetów i ograniczone wywłaszczanie. U podstaw ThreadX leży jądro o bardzo małych rozmiarach (picokernel), którego wielkość może nie przekraczać 2kB, a minimalne zużycie pamięci RAM wynosi tylko 500 bajtów.

Przy minimalnej konfiguracji wystarczy jedynie 300 cykli procesora do pełnej inicjalizacji systemu, po której rozpoczyna się przydzielanie zasobów systemowych aplikacjom. Dzięki niewielkim rozmiarom jądra twórcom udało się przystosować ThreadX do pracy na bardzo wielu jednostkach sprzętowych. Ich lista jest imponująca i zawiera m.in.: procesory ARM, AVR32, BlackFin, ColdFire, PIC, MIPS, Nios II, PowerPC, Renesas SH, SHARC, STM32, StrongARM, x86, Xscale i inne. ThreadX jest systemem płatnym, a jego kod źródłowy udostępniany jest klientom, którzy nabyli system.

VXWORKS I OS-9

VxWorks to system, który dawniej zyskał sobie dużą popularność i przez pewien okres był jednym z wiodących na rynku. Jest to system czasu rzeczywistego, instalowany głównie w systemach wbudowanych na platformach z rodziny x86, MIPS, PowerPC, ColdFire, SH4, ARM, StrongARM, Xscale i innych. VxWorks rozwijany jest przez Wind River Systems, która należy obecnie do Intela. System ten jest zgody ze standardem POSIX i obsługuje wiele nowoczesnych standardów, w tym protokół sieciowy IPv6.

VxWorks jest stosowany w bardzo wielu dziedzinach przemysłu i na przestrzeni lat wykorzystano go już w różnych wersjach w ponad 500 milionach kopii. Dotychczas powstały aplikacje wykorzystujące go w maszynach produkcyjnych, w robotyce, lotnictwie, wojsku i w aeronautyce, a także w urządzeniach powszechnego użytku, takich jak urządzenia sieciowe i multimedialne, drukarki oraz w systemach komunikacji. Ma także zastosowanie w medycynie, transporcie czy energetyce, gdzie dostarczany jest jako niezależne oprogramowanie sprzedawane „w pudełku”. Dosyć długą historią może się pochwalić również producent systemu OS-9x, należąca do koncernu RadiSys firma Microware.

OS-9 cieszył się niegdyś bardzo dużą popularnością, gdyż pozwalał na wielodostęp, co było wtedy cechą unikalną. W swojej budowie podobny jest do Uniksa, a jego API jest zgodne ze standardem POSIX, ale ma też kilka nietypowych cech. Przede wszystkim tworzy oddzielne drzewa katalogowe dla każdego z podłączonych urządzeń oraz utrzymuje jednocześnie dwa aktywne katalogi, z których każdy ma inne przeznaczenie. Obecnie system ten nie cieszy się zbytnią popularnością w Polsce – praktycznie nie jest promowany, a liczba aplikacji, w których został zastosowany, jest niewielka.

ECOS I ECOSPRO

W wielu przypadkach nie jest konieczne stosowanie złożonych, wielozadaniowych systemów operacyjnych ze ściśle wyodrębnionym jądrem. Sytuacja taka ma zazwyczaj miejsce, gdy u podstaw projektu nie leży założenie o skalowalności lub system jest stosunkowo prosty i nie nadzoruje pracy wielu urządzeń.

Stosowanie systemu bez wyodrębnionego jądra pozwala także na osiągnięcie większej wydajności przy wykorzystaniu tego samego sprzętu, gdyż nie istnieje narzut spowodowany przełączaniem kontekstu procesora i przestrzeni adresowych oraz szeregowaniem zadań. Omawiane systemy operacyjne rozwijane są przez wiele firm. W większości wypadków są one tworzone pod kątem indywidualnych potrzeb danego producenta i wytwarzanych urządzeń. W nawiązaniu do sytuacji rynkowej, firma Cygnus Solutions rozpoczęła prace nad systemem eCos (embedded Configurable operating system), który miał być pierwszym systemem typu open source do zastosowań wbudowanych.

Z czasem projekt przejęła firma RedHat, po czym porzuciła go, a prawa do niego przekazała do Free Soft ware Foundation, w ramach której jest on obecnie rozwijany. eCos składa się z jądra w postaci biblioteki konsolidowanej z aplikacjami oraz z zestawu narzędzi uruchomieniowych pracujących pod kontrolą systemu MS Windows lub SUN Solaris, pozwalających na stworzenie działającego obrazu systemu. Jest to system wieloplatformowy – działa m.in. na procesorach IA32, ARM, PowerPC, MIPS, SPARC, Motorola, Nios II i SuperH. Jest też zgodny ze standardami POSIX i μITRON, przez co może zostać łatwo przeniesiony na nowe architektury sprzętowe i dopasowany do konkretnych potrzeb.

System ma niewielkie wymagania sprzętowe i działa na procesorach o małej mocy obliczeniowej. Wbudowany w niego jest stos protokołów TCP/IP przeniesiony z OpenBSD, który pozwala na tworzenie aplikacji podłączanych do Internetu. Ze względu na obsługę TCP/IP i małe rozmiary eCos nadaje się świetnie do tworzenia rozwiązań zamkniętych, takich jak komponenty dla rozwiązań automatyki przemysłowej (tzw. eAutomation). Biblioteka standardowa eCos jest zgodna z biblioteką standardową GNU/Linux, dzięki czemu prototypowanie niektórych aplikacji może odbywać się przy wykorzystaniu tego systemu. Do wad eCos należy mała liczba gotowych sterowników urządzeń i konieczność rozumienia jego kodu źródłowego oraz nieco przestarzałe fragmenty kodu, które z czasem nie zostały zaktualizowane do nowszych wersji.

Najnowsza wersja systemu datowana jest na marzec 2010 roku i oznaczona jako eCos 3.0. Istnieje również eCosPro, płatny system operacyjny stworzony przez firmę eCosCentric, bazujący na rozwiązaniach dostępnych w darmowym eCos, uzupełnionych o dodatkowe moduły. EcosPro przeznaczony jest do zastosowań komercyjnych. Jego najważniejszą cechą odróżniającą go od wersji darmowej jest zgodność z protokołem RedBoot, który umożliwia pobieranie i uruchamianie aplikacji wbudowanych poprzez interfejs szeregowy lub sieć Ethernet. Producent zapewnia, że eCosPro jest lepiej przetestowany niż eCos i zawiera moduły, które do wersji darmowej zostaną wprowadzone dopiero za jakiś czas.

INTERVALZERO RTX I ETS

Ciekawą ofertę systemów RTOS prezentuje firma IntervalZero, znana wcześniej jako Ardence. Jej system RTX w obecnej wersji oznaczonej jako 2009 jest dodatkiem do Microsoft Windows. Pozwala on wykorzystać środowisko Windows, a jednocześnie sterować planistą systemowym oraz nadawaniem priorytetów wątkom. W efekcie IntervalZero RTX można nazwać podsystemem, który instalowany pod Windows zastępuje jego wbudowanego planistę tak, by uzyskać pożądany poziom determinizmu czasowego oraz aby spełniał on wymagania hard real-time.

Podsystem jest jednak na tyle niezależny od samego Windows i jego bibliotek, że wszelkie problemy, jakie w nich występują, nie powodują wstrzymania jego pracy. Oznacza to, że jeśli powstanie np. błąd w obsłudze interfejsu graficznego, który zawiesiłby cały system operacyjny, działanie aplikacji czasu rzeczywistego nie zostanie przerwane. Podsystem RTX może obsługiwać do 997 jednoczesnych niezależnych procesów, z których każdy może składać się z nieskończonej liczby wątków.

Aby zapewnić możliwość precyzyjnego przydziału priorytetów, RTX obsługuje 128 poziomów ważności wątków. Drugim z produktów IntervalZero jest ETS, czyli samodzielny system czasu rzeczywistego, który przeznaczony jest dla procesorów z rodziny x86. Głównym elementem ETS jest mikrojądro, które może zostać rozbudowane o dodatkowe komponenty za pomocą pakietu SDK, który działa w oparciu o Microsoft Visual Studio IDE. Sytem zgodny jest z API Win32 – do ETS przeniesiono bowiem wszystkie konwencje programistyczne z Windows, takie jak zarządzanie pamięcią, muteksami i semaforami, co ułatwia posługiwanie się nim programistom, którzy mają doświadczenie w programowaniu aplikacji systemu Windows. Oba systemy IntervalZero są płatne, a ich kod źródłowy nie jest udostępniany klientom.

RODZINA SYSTEMÓW LYNXOS

Omawiając tematykę systemów RTOS, wspomnieć należy o LynxOS, którego początki datuje się na lata 80. ubiegłego wieku. Początkowo był on przystosowany do pracy na procesorach Motorola 68010, ale szybko uzupełniono go o wsparcie architektury Intel x86. Już na początku swojego istnienia zdobył on popularność w lotnictwie i wciąż związany jest z tą dziedziną przemysłu.

Obecnie dostępny jest w kilku odmianach, tworząc złożoną rodzinę systemów. Trzy podstawowe to: LynxOS, LynxOS-SE i LynxOS- 178. Wszystkie z nich zapewniają warunki pracy hard real-time, przy czym LynxOS-SE pozwala na podział zasobów systemowych na oddzielne partycje, tworząc niezależne od siebie wirtualne maszyny.

Pozwala to nie tylko zabezpieczyć poszczególne aplikacje przed wzajemnym wpływem i propagacją błędów, ale także ułatwia podział zadań pomiędzy różne procesory. Odmiana LynxOS-178 przeznaczona jest do stosowania w lotnictwie i spełnia wymagania najwyższego poziomu amerykańskiego certyfikatu DO-178B. LynxOS jest rozwiązaniem płatnym, rozwijanym przez firmę LynuxWorks i przeznaczonym głównie do systemów wbudowanych. Wspiera on platformy z procesorami takimi jak ARM, PowerPC, MicroBlaze oraz MIPS i zgodny jest ze standardem POSIX.

 

Marcin Karbowniczek, Rafał Jurkiewicz, Paweł Pisarczyk, Zbigniew Piątek, Michał Sadowski