3. Charakterystyka systemu czasu rzeczywistego QNX.
Pierwowzorem systemu QNX był system operacyjny THOTH będący wynikiem prac badawczych dotyczących technik komunikacji międzyprocesorowej prowadzonych na Uniwersytecie Waterloo. Dwóch pracowników uniwersytetu zaprojektowało i zaimplementowało dla mikrokomputera IBM PC nowy system operacyjny, który został nazwany pierwotnie QUNIX, następnie QNX i pod tą nazwą funkcjonuje do dzisiaj.
W roku 1982 roku QNX v.l.O by pierwszym wielozadaniowym i wielodostępnym systemem operacyjnym dla mikrokomputera IBM PC. Cechy takie jak: wielozadaniowość, wielodostępność, dedykowalność dla architektury IBM AT i zintegrowana sieć lokalna stały się przyczyną zdobycia przez system QNX dużej popularności na całym świecie.
Obecnie QNX jest całkowicie zgodny ze standardem POSIX (Portable Operating System Interface for Computer Environment). Zdefiniowany przez IEEE (ang. Institute of Electrical and Electronic Engineers) POSIX określa interfejs pomiędzy systemem operacyjnym a światem zewnętrznym (aplikacje i użytkownicy). Wiele przemawia za tym, że POSIX może stać się uniwersalną platformą dla Systemów Otwartych (ang. Open Systems). Np. coraz częściej różne instytucje wybierając system operacyjny do własnych zastosowań, stawiają warunek zgodności ze standardem POSIX.
Zgodność ze standardem POSIX otwiera przed systemem QNX nowe możliwości:
duża ilość dostępnych aplikacji (zgodność na poziomie kodu źródłowego pozwala na bezproblemową implemetację);
zwiększa się ilość użytkowników mogących bez przygotowania wykorzystywać system (zgodność ze środowiskiem użytkownika systemu UNIX: tryb graficzny, shell, polecenia, biblioteki C, itp.);
zwiększa się możliwość wykorzystania systemu w różnych zastosowaniach i przez różnych niekoniecznie przeszkolonych użytkowników. [5]
3.1. Budowa systemu QNX
Architektura systemu QNX oparta jest o model client-server, w przeciwieństwie do systemu UNIX, którego struktura oparta jest o monolityczne jądro. System QNX składa się z wielu modułów zwanych zadaniami administrującymi. Moduły te współpracują ze sobą za pośrednictwem mikrojądra wykorzystując do tego efektywną technik komunikacji zwaną przesyłaniem komunikatów (message passing). Modułowa struktura pozwala na dynamiczne konfigurowanie systemu w zależności od potrzeb zewnętrznych. Zintegrowanie usług sieci lokalnej z systemem operacyjnym pozwala rozszerzyć komunikację międzyzadaniową na całą sieć.
Do zadań mikrojądra należy:
• Przekazywanie komunikatów (IPC);
• Szeregowanie procesów;
• Odbieranie przerwań;
• Niskopoziomowa komunikacja sieciowa;
• Przekazywanie procesom sygnałów;