RTOS QNX - podstawa niezawodnych systemów

| Technika

RTOS QNX jest systemem operacyjnym twardego czasu rzeczywistego opartym na mikrojądrze. Idea jego pracy polega na uruchamianiu większości usług systemowych w postaci wielu małych zadań, określanych jako serwery. Cechy te odróżniają QNX od systemów opartych na monolitycznym jądrze, w których system operacyjny jest jednym obszernym programem złożonym z dużej ilości komponentów.

RTOS QNX - podstawa niezawodnych systemów

W przypadku QNX zastosowanie mikrojądra pozwala użytkownikom (programistom) na wyłączenie zbędnych funkcji bez konieczności zmiany samego systemu operacyjnego. Jądro QNX składa się z dwóch podstawowych komponentów: mikrojądra i menedżera procesów. Menedżer procesów jest odpowiedzialny za zarządzanie procesami i ochronę pamięci, a mikrojądro za szeregowanie zadań, komunikację międzyprocesową i przyjmowanie przerwań sprzętowych.

QNX Neutrino został przygotowany do pracy na wielu platformach sprzętowych i obecnie działa z praktycznie każdym nowoczesnym procesorem używanym w segmencie systemów wbudowanych. Obejmuje to układy PowerPC, rodzinę x86, MIPS, SH-4 i rodzinę procesorów ARM, StrongARM i XScale.

QNX Momentics to z kolei elastyczne, zintegrowane środowisko programistyczne oparte na platformie Eclipse, dające maksymalny wgląd w funkcjonowanie systemu. Wyposażone jest ono w innowacyjne narzędzia profilowania, które skracają czas debugowania i przyspieszają optymalizację złożonych systemów wbudowanych. QNX Neutrino i QNX Momentics wschodzą w skład Platformy Programistycznej QNX.

NOWOŚCI W QNX

Fot. 1. Przykładowa aplikacja medyczna na bazie RTOS QNX dla wyrobów medycznych (zgodne ze standardem IEC 62304) z wykorzystaniem środowiska grafi cznego Qt

W czerwcu br. ukazała się aktualizacja Service Pack 1 dla platformy QNX 6.5.0. Aktualizacja ta zawiera szereg usprawnień systemu operacyjnego oraz nowe i zaktualizowane sterowniki, pozwalające na obsługę szerszej gamy urządzeń. Najnowszy Service Pack obejmuje kluczowe potrzeby klientów, zgłaszane od czasu wydania QNX 6.5.0.

Zmianie uległy struktury opisujące konfigurację procesora, pozwalając na bardziej efektywne zarządzanie pamięcią podręczną procesora. Zmodyfikowano program rozruchowy systemu operacyjnego QNX w celu usprawnienia współpracy z programem rozruchowym U-Boot. Wprowadzono aktualizację programu rozruchowego (startup-apic i pci-bios-v2) dla architektury x86 w celu zapewnienia kompatybilności z platformą SandyBridge i IvyBridge.

W zakresie usług sieciowych uspraw niono działanie klienta DHCP oraz serwer gns odpowiedzialny za komunikację w sieci lokalnej QNX. Natomiast stos sieciowy io-pkt rozszerzono o funkcjonalność alternatywnego kolejkowania ALTQ, wprowadzono możliwość modyfikacji priorytetu wątku głównego stosu oraz wprowadzono dwa nowe interfejsy wirtualne typu tun oraz tap.

Środowisko graficzne Photon usprawniono w zakresie obsługi obrazów typu JPEG oraz poprawiono narzędzie phuser, które umożliwiało zwykłemu użytkownikowi dostęp do zasobów z uprawnieniami administratora.

HTML5 I INNE TECHNOLOGIE

Obecnie większość producentów systemów wbudowanych potrzebuje niezwykle wszechstronnego i dobrze zintegrowanego stosu programowego. Ponadto takie oprogramowanie powinno ewoluować w odpowiedzi na bardzo dynamiczne wymogi rynku. Kilka lat temu stosunkowo niewielu klientów potrzebowało wsparcia dla HTML5, natomiast aktualnie to podstawowy wymóg rynku systemów wbudowanych.

Aplikacje HTML5 mogą stanowić przyszłość na przykład dla systemów informacyjno- rozrywkowych w świecie motoryzacji. Poza dostarczaniem treści multimedialnych, muszą one komunikować się z rodzimymi aplikacjami, takimi jak programy nawigacyjne napisane w OpenGL czy też ze sterownikami magistrali komunikacyjnych.

Wszystko to stwarza wyzwanie od strony technicznej, ponieważ klienci wymagają dostępu do najnowszych technologii z jednoczesnym zapewnieniem wysokiego poziomu jakości i funkcjonalności - naprzeciw tym wyzwaniom staje dzisiaj QNX. Współczesne samochodowe systemy informacyjno-rozrywkowe zbudowane są w oparciu o bardzo zaawansowane rozwiązania.

Typowy sprzęt wykorzystywany do tego celu to 32-bitowa jednostka procesorowa z technologią MMU, np. Cortex A8/A9, ARM11, ARM9, umożliwiająca realizację takich zadań jak rozpoznawanie mowy, system nawigacji, radio internetowe+satelitarne, zestaw głośnomówiący czy łączność bezprzewodowa.

Przewiduje się, że w przyszłości funkcjonalność ta będzie rozszerzona o obsługę serwisów społecznościowych, większą integrację z urządzeniami mobilnymi, łączność z usługami w chmurze, a także możliwość uruchamiania dodatkowych aplikacji. Przy tak zaawansowanym środowisku ważne jest, aby w przypadku awarii dowolnej aplikacji pozostałe były zdolne do pracy.

Z punktu widzenia użytkownika ważny jest także szybki start aplikacji. W obu przypadkach decydujący jest wybór platformy bazowej i systemu operacyjnego. W przypadku systemu operacyjnego QNX, mamy do dyspozycji szereg mechanizmów i technologii (FastBoot, inteligentne partycjonowanie, HTML5, OpenGL ES), umożliwiających osiągnięcie zamierzonego celu.

NIE TYLKO MOTORYZACJA

Interfejsy graficzne to nie tylko technologia HTML5 i przemysł motoryzacyjny. To także wszelkiego rodzaju systemy automatyki budynków, urządzenia medyczne, aparatura pomiarowa i inne. Wychodząc naprzeciw tendencjom rynkowym i potrzebom klientów, w 2010 roku rozpoczęto prace nad implementacją bibliotek Qt służących do budowy graficznych interfejsów programów komputerowych w systemie operacyjnym QNX.

Technologia Qt dostarcza dojrzały i stabilny szkielet dla rozwoju bogatych aplikacji 2D i 3D na platformach opartych o QNX. Środowisko Qt rozszerza w ten sposób portfolio rozwiązań graficznych systemu QNX i pozwala na wybór odpowiedniej technologii w zależności od potrzeb klienta.

Wraz z wydaniem Qt Commercial 4.8.1, znajdującym wsparcie w systemie operacyjnym QNX, możliwa jest cross-kompilacja aplikacji w systemie Windows.

WYMOGI STAWIANE SYSTEMOM RTOS

Fot. 2. BlackBerry PlayBook z oprogramowaniem na bazie RTOS QNX zapewnia wyjątkową jakość i szybkość korzystania z Internetu i obsługuje więcej funkcji HTML5 niż jakakolwiek przeglądarka wbudowana w tablet dostępna na rynku

QNX Neutrino jest powszechnie używany jako podstawa różnych systemów w motoryzacji, przemysłowych systemów sterowania, przyrządów medycznych, systemów obronnych, elektrowni jądrowych i innych krytycznych aplikacji. Wymagania stawiane takim systemom bardzo często odnoszą się do bezpieczeństwa warstwy sprzętowej oraz oprogramowania.

Bezpieczny system oprogramowania ma dwie główne cechy: zawsze reaguje, gdy odpowiedź jest wymagana i zawsze zapewnia prawidłową odpowiedź. Aby spełnić takie wymagania, warstwa oprogramowania musi korzystać z systemu operacyjnego czasu rzeczywistego (RTOS), który spełnia określone wymagania regulacyjne dotyczące niezawodności i dostępności.

Budowa urządzenia spełniającego rygorystyczne wymogi może być bardzo czasochłonna, a co za tym idzie wymagająca odpowiednich środków finansowych. Wychodząc naprzeciw tym wymaganiom, wydane zostały odpowiednie dla takich wyrobów wersje QNX Neutrino zgodne z wymaganymi normami (SIL3, IEC 61508, IEC 62304, EAL4+).

Cel wydania tych produktów jest prosty - pomóc programistom systemów kolejowych, urządzeń medycznych, systemów samochodowych, turbin wiatrowych i innych krytycznych aplikacji, zmniejszyć czas i koszt certyfikacji swoich produktów końcowych Spełnienie wymogów Międzynarodowej Komisji Elektrotechnicznej (IEC) w zakresie standardu 62304 jest gwarancją dla zastosowania QNX Neutrino w wyrobach medycznych.

Norma IEC 62304 jest międzynarodowym standardem i skupia się na procesie tworzenia oprogramowania, określając metodykę rozwoju i testowania oprogramowania. QNX Neutrino RTOS Safe Kernel i QNX Neutrino RTOS Certified Plus są wyrobami certyfikowanymi do spełnienia wymogów IEC według standardu 61508 Safety Integrity Level 3 (SIL3).

Wymieniony standard bezpieczeństwa funkcjonalnego systemów elektronicznych zapewnia bardzo wysoki poziom niezawodności i stosowany jest w systemach krytycznych dla bezpieczeństwa w transporcie, wytwarzania energii, sterowania procesami i innych gałęziach przemysłu.

QNX Neutrino Kernel Secure i QNX Neutrino RTOS Certified Plus są także certyfikowane, aby spełniać surowe wymagania Common Criteria ISO/IEC 15408 Evaluation Assurance Level (EAL) 4 +.

Certyfikacja do EAL 4 + potwierdza, że parametry bezpieczeństwa zostały metodycznie testowane przez niezależne laboratorium i organ certyfikujący (Canadian Security Establishment), a to oznacza, że bezpieczne jądro QNX Neutrino będzie przekraczać wymogi niezbędnych do zapewniania EAL4.

KIERUNKI ROZWOJU

Trendy w rozwoju systemów wbudowanych dotyczą także architektury sprzętu. Należy tutaj wskazać na bardzo intensywny rozwój procesorów wielordzeniowych. Zastosowanie takiej architektury oznacza, że możemy zwielokrotnić wydajność obliczeniową poprzez wykorzystanie kilku procesorów zamiast jednego.

W rzeczywistości, aby maksymalnie wykorzystać korzyści płynące z takiego rozwiązania, musimy zapewnić odpowiednie warunki. Komputer musi mieć odpowiednią płytę główną, procesor i system operacyjny. System operacyjny QNX Neutrino dostarcza odpowiednie biblioteki oraz narzędzia służące do rozwoju oprogramowania pracującego w architekturze wielordzeniowej.

Narzędzia te o wspólnej nazwie QNX Momentics mogą być znakomicie wykorzystane do optymalizacji programów pracujących sekwencyjnie, wyszukiwania tzw. wąskich gardeł, analizy przełączania procesów i wątków pomiędzy rdzeniami, debugging w środowisku wielordzeniowym, itp. Znaczenie narzędzi pomocniczych jest bardzo istotne i może ułatwić przejście na architekturę wielordzeniową.

ESWD Software
www.swdsoft.pl