Uwolniony QNX

QNX to mało znany system operacyjny czasu rzeczywistego i kolejny po BeOS "uwolniony" i udostępniony bezpłatnie zwykłym użytkownikom. Pod koniec września 2000 jego okrojona wersja (Realtime Platform) została zamieszczona w Internecie.

QNX to mało znany system operacyjny czasu rzeczywistego i kolejny po BeOS "uwolniony" i udostępniony bezpłatnie zwykłym użytkownikom. Pod koniec września 2000 jego okrojona wersja (Realtime Platform) została zamieszczona w Internecie.

Istnieje już od ponad 15 lat i dotychczas stosowany był głównie do sterowania procesami przemysłowymi i w systemach wojskowych. QNX Realtime Platform (RP) został udostępniony nieodpłatnie do użytku niekomercyjnego oraz dla osób zainteresowanych tworzeniem nowych programów do tego systemu. Udostępniona dystrybucja nie zawiera wszystkich pakietów dostępnych komercyjnie (np. związanych z silnym szyfrowaniem), ale jest w pełni funkcjonalna.

Co jest w środku?

Menu instalatora QNX - tutaj należy utworzyć dyskietkę startową

Menu instalatora QNX - tutaj należy utworzyć dyskietkę startową

QNX jest systemem czasu rzeczywistego, co oznacza, że potrafi bez opóźnienia, na bieżąco obsługiwać i przetwarzać informacje, które otrzymuje z klawiatury, myszy, czujników, portów szeregowych itd. Najbardziej istotna jest nie jego - zazwyczaj bardzo duża - szybkość, ale to, że gwarantuje czas, w jakim zostanie wykonane określone zadanie lub zdarzenie zewnętrzne. Ten gwarantowany czas obsługi umożliwia tworzenie programów "przewidywalnych", dających pewność działania nawet podczas dużego napływu informacji. Oprócz tej pewności programista otrzymuje zaawansowane możliwości kierowania kolejnością obsługi (sterowania priorytetem). Systemy tradycyjne (np. MS Windows, Linux) budują zawsze kolejkę zadań do wykonania, ale szybkość ich obsługi nie jest gwarantowana i w dużej mierze ma charakter losowy. Z kolei rozbudowane możliwości definiowania priorytetów pozwalają na zastosowanie QNX jako systemu sterującego automatyką przemysłową, gdzie pewne zdarzenia mają znaczenie krytyczne (np. otwarcie zaworu bezpieczeństwa w zbiorniku przy gwałtownym wzroście ciśnienia czy przemieszczanie celu w systemach sterowania ogniem) i muszą być zawsze obsłużone na czas.

QNX zbudowano na podstawie mikrojądra Neutrino, a jego najważniejsza cechą jest to, że jako główna część systemu zajmuje się bardzo niewielką liczbą zadań, a właściwie tylko dwoma: obsługuje kolejkę zadań (tzw. schedule) do wykonania oraz steruje przekazywaniem wiadomości (message passing) między procesami działającymi w systemie. Różni go to znacząco od systemów klasycznych, takich jak Windows czy Linux, gdzie jądro decyduje o wszystkim, co dzieje się w systemie - obsłudze sieci, dostępie do plików, prawie dostępu itd. Samo jądro QNX jest więc niewielkie, a wszystkie usługi związane z plikami czy siecią obsługują cztery osobne procesy: Process Manager - odpowiedzialny za zarządzanie aktywnymi zadaniami; Filesystem Manager - odpowiedzialny za operacje związane z systemem plików; Device Manager - odpowiedzialny za sterowniki urządzeń; Network Manager - odpowiedzialny za obsługę sieci. Warto zauważyć, że te procesy systemowe nie mają żadnej uprzywilejowanej pozycji, a ich lista nie jest raz na zawsze zamknięta. Programiści mogą tworzyć własne usługi systemowe.

Oczywiście bez względu na to, jak dobrze zaprojektowany jest system operacyjny, komputery mają swoje sprzętowe ograniczenia uniemożliwiające natychmiastową reakcję na informacje zewnętrzne. Te sprzętowe (latency) ograniczenia - czas potrzebny na wywołanie przerwania sprzętowego, dostęp do pamięci RAM czy szybkość procesora w przełączaniu między zadaniami - są niezależne od mechanizmów QNX, niemniej łatwe do obliczenia.

Dla użytkownika praca z systemem czasu rzeczywistego nie różni się od pracy ze zwykłym systemem (chociaż generalnie QNX jest szybszy). Z punktu widzenia użytkownika QNX przypomina UNIX - podobna jest struktura katalogów systemowych, sposób zarządzania użytkownikami i prawami dostępu. Jeśli kiedykolwiek korzystałeś z Linuksa, to będziesz wiedział, jak się posługiwać QNX. Ale nawet jeśli nie znasz systemów uniksowych, masz do dyspozycji wygodny graficzny interfejs Photon MicroGUI, znacznie ułatwiający pracę zwykłym użytkownikom.

Szybki jak Photon

Rewelacyjnym osiągnięciem firmy QNX jest środowisko graficzne Photon MicroGUI, bardzo małe i szybkie, kompletne rozwiązanie graficznego interfejsu użytkownika. Dodatkowo możliwe jest doinstalowanie serwera X-Window (xph), który pozwoli na uruchamianie programów przeniesionych z systemów UNIX/Linux. Cały interfejs użytkownika przypomina nieco Windows 9x, dodano również pasek do szybkiego uruchamiania programów (po prawej stronie ekranu). Dołączona do systemu przeglądarka WWW Voyager nie obsługuje języka Java/JavaScript i nie oferuje wielu możliwości współczesnych przeglądarek, ale może być dobrym rozwiązaniem na przykład do terminali internetowych, punktów informacyjnych czy bankomatów. QNX ma wbudowaną obsługę kodowania czcionek w wielu standardach (w tym polskich znaków w ISO8859-2 i Windows cp1250), ale możliwe jest tylko czytanie polskojęzycznych plików tekstowych (dołączono trzy kroje czcionek z polskimi znakami: Swiss, Dutch i New Century). Wprowadzanie polskich czcionek nie jest, niestety, możliwe (chociaż istnieje sterownik polskiej klawiatury) bez szperania w systemie.

Dostępne aplikacje

QNX Realtime Edition zawiera dwa kluczowe komponenty komercyjnego, "dużego" systemu QNX - QNX Neutrino oraz Photon microGUI. Na płycie instalacyjnej znajduje się ponadto sporo znanych z Linuksa programów GNU - kompilator GCC, debuggery GDB, DDD, biblioteki Glibc, Glide, Mesa, Perl, programy terminalowe itd. Dostępne są rozszerzenia językowe, multimedialne, obsługa czcionek TrueType, serwer X-Window (xph), odtwarzacz RealPlayer 7, gry i wiele innych. Dodano nawet rozbudowane, wizualne narzędzie do tworzenia aplikacji - PhAB (App Builder). System zawiera menedżer pakietów, przeprowadza automatyczną aktualizację i instalację nowych pakietów, łącząc się z adresem qnx.com. Możliwe jest również dodawanie pakietów z dysku lub CD-ROM-u. Dodatkowo dostępne są do ściągnięcia ze stron QNX: Quake 3 Demo, Macromedia Flash 4 i kod źródłowy całego systemu (niestety, z wyjątkiem mikrojądra Neutrino i środowiska Photon).

Instalacja

App - wizualne narzędzie do tworzenia aplikacji w QNX RP

App - wizualne narzędzie do tworzenia aplikacji w QNX RP

QNX bardzo dobrze (np. w porównaniu z BeOS-em) obsługuje sprzęt spotykany w przeciętnych pecetach: najpopularniejsze karty sieciowe, dźwiękowe, monitory, karty grafiki 3D (ale tylko z układem 3dfx). Można również korzystać z modemów - ale będą działać tylko te "prawdziwe", mające własny procesor sygnałowy (czyli nie tzw. winmodemy). Również korzystanie z drukarki nie powinno być problemem. Instalację systemu najłatwiej przeprowadzić z poziomu Windows. QNX może być zainstalowany jedynie na partycji FAT (NTFS nie jest obsługiwany), a wymagane miejsce na dysku to około 600 MB. Należy utworzyć dyskietkę, która będzie służyła do uruchamiania komputera w trybie pracy QNX. Wystarczy w tym celu uruchomić plik setup.exe z głównego katalogu płyty CD-ROM i w menu wybrać opcję Make Floppy. W czasie instalacji będziesz musiał podać hasło administratora (użytkownika root) i utworzyć jednego, zwykłego użytkownika. QNX rozpoznaje znajdujące się na dysku partycje FAT i instaluje je w podkatalogu /fs w trybie odczyt-zapis, a montowany jest automatycznie w podkatalogu /fs/cd0. Usunięcie QNX z dysku należy przeprowadzić z poziomu Windows (Panel sterowania | Dodaj/usuń programy).

Nie dla każdego

W przeciwieństwie do BeOS-a, firma QNX nie zamierza rozpowszechniać swojego systemu jako biurkowego. Brakuje programów biurowych czy do obróbki multimediów. Główne zastosowanie może znaleźć w telefonach, automatach, urządzeniach przenośnych i typu POS (Point Of Sale - punkty sprzedaży), jak bankomaty czy terminale internetowe. Wynika to stąd, że QNX jest systemem modułowym i łatwo go dostosować do konkretnych potrzeb. W przypadku urządzeń o małej ilości pamięci system razem z interfejsem graficznym może się zmieścić w kilkuset kilobajtach. Firma QNX przespała jednak pojawienie się komputerów typu handheld oraz urządzeń typu WebTV. Uważano, że jej system jest zbyt rozbudowany, aby na jego podstawie budować takie urządzenia. Była to błędna strategia: w latach 1998-1999 aż 30 procent rynku systemów operacyjnych do rozwiązań typu embedded opanował Linux, który pod względem technicznym jest do tego o wiele gorzej przygotowany od QNX. Oczywiście nie bez znaczenia jest różnica cenowa, ale brak QNX na tym rynku jest zauważalny.

QNX jest dostępny pod adresem http://get.qnx.com oraz w archiwach Tucows (www.tucows.com). Można ściągnąć "obraz" płyty w formacie ISO do samodzielnego przygotowania płyty instalacyjnej, druga wersja to jeden plik - instalator do Windows.

Adresy internetowe:

www.qnx.com - adres firmy QNX

get.qnx.com - stąd można pobrać niekomercyjną wersję QNX

qdn.qnx.com - baza informacji na temat urządzeń obsługiwanych przez QNX


Zobacz również