Nowe technologie Edukacja Kontakt O nas Dodaj do ulubionych Ustaw tę stronę jako startową

Artykuły dotyczące systemu QNX i jego zastosowań

 

"QNX Story"

Opracował: Wiesław Barcikowski

Wydział Cybernetyki
Wojskowa Akademia Techniczna

Dawno, dawno temu, za Wielką Wodą ..... powstał system operacyjny QNX.

Dawno, to znaczy w 1982 roku i chyba zgodzimy się z tym, że w historii rozwoju mikrokomputerów to prawie starożytność. A za Wielką Wodą (z punktu widzenia Europejczyka), to znaczy w Kanadzie.


Pierwowzorem systemu QNX był system operacyjny THOTH (nazwany imieniem egipskiego boga mądrości, nauki i magii) będący wynikiem prac badawczych dotyczących technik komunikacji międzyprocesorowej prowadzonych na uniwersytecie Waterloo. Dwóch pracowników uniwersytetu Dan Dodge i Gordon Bell, zainspirowanych systemem THOTH, zaprojektowało i zaimplementowało dla mikrokomputera IBM PC (który właśnie pojawi się na rynku) nowy system operacyjny, który został nazwany pierwotnie QUNIX (czy ktoś to jeszcze pamięta?). System został wprowadzony na rynek przez firm Quantum Software Systems utworzoną przez autorów systemu. Nazwa "Qunix" nie spodobała się firmie AT&T, która uznała, że zbyt mocno przypomina ona nazwę "Unix" (która jest zastrzeżonym znakiem towarowym właśnie firmy AT&T). W odpowiedzi na ten zarzut firma Quantum usunęła z nazwy obie samogłoski i tak powstała nazwa QNX, pod którą system znany jest od ponad 10 lat.

Wtedy, w 1982 roku QNX v.1.0 by pierwszym wielozadaniowym i wielodostępnym systemem operacyjnym dla mikrokomputera IBM>PC. W dwa lata później, w 1984 roku, QNX v.1.20 sta się pierwszym systemem operacyjnym zaprojektowanym specjalnie dla mikrokomputerowa IBM AT (wykorzystującym mechanizmy ochrony pamięci). W tym samym roku jeszcze powstał QNX v.2.0, który dzięki zintegrowanej sieci lokalnej sta się pierwszym sieciowym systemem operacyjnym dla rodziny mikrokomputerów IBM>PC.

Wspomniane powyżej cechy: 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 (ponad 200tys. kopii). Użytkownicy szczególnie cenią system QNX jeszcze za to, że jest systemem czasu rzeczywistego oraz systemem przetwarzania rozproszonego.

Główne dziedziny zastosowań systemu QNX to:

  • systemy sterowania i monitorowania (ang. SCADA-Supervisory Control and Data Acquisition) np. sterowanie procesem produkcji w fabryce
  • systemy bieżącego przetwarzania transakcji (ang. OLTP- On-Line Transaction Processing) np. obsługa transakcji dokonywanych za pomocą kart kredytowych
  • systemy bezwzględnego nadzoru (ang. MCS- Mission Critical Systems) np. system kontroli funkcjonowania elektrowni jądrowej.

Wiele znanych firm będących światowymi potentatami i liderami w dziedzinach które reprezentują, zastosowało system QNX w swoich systemach użytkowych: AT&T, Du Pont, Ford, Goodyear, Hewlett Packard, Intel, NASA, Philips, Texaco, Us Air Force, Visa, Xerox....

Dla przykładu: firma Texaco, jeden z największych koncernów petrochemicznych świata, eksploatuje zbudowany na bazie systemu QNX, system zdalnego monitorowania i sterowania wydobyciem ropy naftowej spod dna morza (czytaj: KOMPUTER 9/92 oraz Dlaczego firma TEXACO wybrała system QNX, artykuł Wiesława Barcikowskiego). System STORMAC (ang. System for Texaco Offshore Remote Monitoring and Control) obejmuje swym zasięgiem olbrzymi obszar Zatoki Meksykańskiej przyległy do południowych wybrzeży USA (kilka tysięcy kilometrów długości!). Kilku (!) ludzi z naziemnego centrum sterowania w Nowym Orleanie za pomocą kilkunastu (!) mikrokomputerów IBM PC/486 monitoruje/steruje 16000 punktów (!) pomiarowych/wykonawczych rozsianych na obszarze Zatoki. Pracujący pod kontrolą systemu QNX, STORMAC funkcjonuje przez 24 godz./dob przez 365 dni/rok i w przypadku nadejścia złej pogody pozwala firmie Texaco uniknąć strat w wysokości 1.5 mln $/dzień !!!.

Takie efektywne systemy użytkowe mogą być realizowane dzięki nowoczesnej architekturze systemu QNX, która jest oparta o tzw.

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 (ok. 8 kB) wykorzystując do tego efektywną technik komunikacji zwaną przesyłaniem komunikatów (ang. message passing). Struktura modułowa (rys.1) QNX 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ć. Lokalna sieć komputerowa QNX Net jest całkowicie przezroczysta!. Dowolny zasób sieci: dysk, drukarka, terminal, modem czy nawet procesor (zdalna realizacja zadań!) jest dostępny dla dowolnego zadania uruchomionego w dowolnym węźle sieci. QNX sprawia, że mimo fizycznego rozproszenia komputerów-węzłów sieci, każdy użytkownik ma wrażenie jakby pracował na jednolitym, dużym i wydajnym komputerze (rys.2). Cechy te pozwalają budować na bazie systemu QNX systemy użytkowe o najwyższych wymaganiach, a mianowicie rozproszone systemy czasu rzeczywistego.

Rozwój systemu QNX

nie zatrzyma się na wspomnianej wersji 2.0. W kolejnych latach powstawały kolejne wersje zawierające ulepszenia dostosowujące system do dynamicznie rozwijającej się bazy sprzętowej. Zasadnicza zmiana nastąpiła w dziesięć lat po premierze. W 1991 roku firma Quantum wprowadziła na rynek nową wersję systemu - QNX v.4.0. Oprócz wielu udoskonaleń tradycyjnie już zwiększających wydajność i niezawodność, modularność i konfigurowalność czy wreszcie możliwości sieciowe, wprowadzono istotne novum: QNX v.4.0 jest całkowicie zgodny ze standardem POSIX (ang. Portable Operating System Interface for Computer Environment). Zdefiniowany przez IEEE (ang. Institute of Electrical and Electronic Engineers) POSIX określa sprzęg miedzy 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 (w tym agendy rządowe USA) 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:

  • znacznie zwiększa się ilość dostępnych aplikacji (zgodność na poziomie kodu źródłowego pozwala na bezproblemową implementację )
  • zwiększa się ilość użytkowników mogących bez przygotowania wykorzystywać system (zgodność ze środowiskiem użytkownika systemu UNIX: shell, polecenia, biblioteki C, itp.)
  • zwiększa się "akceptowalność" systemu w różnych zastosowaniach i przez różnych (nawet tych sceptycznie nastawionych) użytkowników (zgodność z obecnym i przyszłym "standardem" systemu operacyjnego).

Czyli innymi słowy, na zewnątrz - QNX oferuje uniwersalne środowisko programistyczne znane z systemu UNIX; od wewnątrz - struktura modułowa i efektywna komunikacja międzyzadaniowa systemu QNX gwarantuje niespotykaną elastyczność i wydajność oraz wszystkie zalety znane z poprzednich wersji systemu.

Na poparcie tego poniżej zostaną wymienione niektóre

parametry techniczne systemu QNX v.4.0

  • wielozadaniowość: 255 współbieżnych procesów
  • wielodostęp: 100 użytkowników na węzeł
  • czas rzeczywisty: zmiana kontekstu: 17 mikrosekund,
  • obsługa przerwania: 6 mikrosekund dla IBM PC/486-33MHz
  • całkowicie przezroczysta sieć lokalna (Arcnet, Ethernet, Token Ring)
  • metody szeregowania zadań: FIFO, Round-Robin, Adaptive
  • rozdzielczość zegarów: nanosekundy
  • efektywna obsługa pamięci dyskowych (algorytm "elevator")
  • otwartość: TCP/IP, 3270-SNA, X.25

wymagania sprzętowe:

  • procesor: 8088 - 80486
  • pamięć operacyjna: < 640 kB (runtime), 2 MB (development)
  • np.: Mikrokernel - 8 kB
  • Process Manager - 63 kB
  • Device Manager - 25 kB
  • pamięć dyskowa: 5 MB (o.s.) + 4 MB (development)

Na tym jednak nie koniec. Nie kończąca się pogoń za coraz lepszymi parametrami trwa i będzie trwać - bo takie jest wyzwanie naszych czasów.

W 1992 roku pojawiła się na rynku znowu ulepszona wersja systemu: QNX v.4.1

Oprócz udoskonalenia niektórych parametrów (np. czas przełączania zadań: 12 mikrosekund dla IBM PC/486-33MHz) wprowadzone zostało rewelacyjne rozwiązanie sieci lokalnej. Już sama nazwa sieci: FLEET (ang. Fault-tolerant, Load-balancing, Efficient, Extensible, Transparent) mówi o jej możliwościach. Istotą tego rozwiązania jest możliwość łączenia węzłów wieloma niezależnymi sieciami fizycznymi. Pozwala to znacznie zwiększyć przepustowość (np. trzy magistrale Ethernet łączące dwa węzły dają łączną przepustowość około 3 MB/sekund ), a także niezawodność (awaria jednej sieci nie powoduje zerwania połączenia) i elastyczność.

A co nas czeka w przyszłości?. Już wkrótce planowane jest wprowadzenie na rynek 32-bitowej wersji systemu, która zachowa jednak kompatybilność z poprzednimi wersjami 16-bitowymi (przecież jeszcze tyle jest mikrokomputerów 16-bitowych!) i w której zostanie udoskonalona wydajność, elastyczność, niezawodność,....

QNX a sprawa polska.

System QNX jest od lat znany i stosowany w Polsce, zarówno w przemyśle, jak i bankowości czy wreszcie w zarządzaniu przedsiębiorstwem. Po ostatnich zmianach nadających mu zgodność ze standardem POSIX, sta się interesującą alternatywą dla dominujących w Polsce systemów UNIX i NetWare. QNX dzięki temu, że został zaprojektowany dla architektury PC jest bardzo dobrą propozycją w szczególności właśnie dla polskiego rynku zdominowanego przez rodzin mikrokomputerów IBM PC. Pamiętajmy, że w polskich firmach stoi jeszcze dużo prostych IBM XT i IBM AT kupowanych w okresie żywiołowej "pecetyzacji" naszego kraju, i które można wykorzystać pod warunkiem, że będziemy mieli do dyspozycji efektywny system operacyjny, jakim jest np. system QNX.

Zamiast podsumowania

na zakończenie zaprezentowana zostanie opinia, którą zamieścił Dawid White w artykule "QNX, A Real Time MultiEverything OS that Runs On LANs" zamieszczonym w znanym czasopiśmie LAN Magazine (January 1989), poświęconym testowi systemu QNX:

"gdyby firma IBM wybrała system QNX dla mikrokomputera IBM PC, wprowadzenie na rynek modelu AT mogłoby zostać opóźnione, gdyż aplikacje uruchamiane pod systemem QNX w komputerach PC zachowują się tak, jakby zostały uruchomione pod systemem DOS w komputerze 386".

Oczywiście komentarz ten należy traktować z przymrużeniem oka, gdyż rozwój technologii mikroprocesorowej dokonuje się bez względu na aktualne możliwości oprogramowania, natomiast interesujące jest samo porównanie podkreślające możliwości systemu operacyjnego QNX.