Poprzednia - Następna

POSIX 1003.13

Z jednej strony POSIX jako podstawa standaryzacji cech real-time systemu został (słusznie) skrytykowany, z drugiej strony wiele real-time systemów wykorzystuje normę POSIX 1003. Warto zatem przyjrzeć się POSIXowi, zwłaszcza w kontekście real-time systemów.

POSIX, czyli co?

POSIX jest zbiorem norm, mających zestandaryzować cechy i interfejsy, które powinien mieć i zapewniać system a`la UNIX. Rozszerzenia realtime'owe zostały dodane w POSIX.4, przemianowanym najpierw na POSIX 1003.1b, a następnie na POSIX 1003.13.

POSIX - Portable Operating System Interface (X na końcu skrótu wydaje się być dla lepszego brzmienia, a czymże jest system operacyjny bez "X" na końcu?). Czasem mylnie tłumaczy się POSIX jako "Portable Operating System for unIX".

POSIX jest standardem rozwijanym przez IEEE (the Institute of Electrical and Electonics Engineers, Inc.). Z punktu Widzenie Linux RTOSów ważny jest standard 1003.13 - Posix Realtime Application Support.

POSIX jest standardem mającym na celu osiągnięcie na poziomie kodu źródłowego przenośności oprogramowania. Definiuje interfejs, który OS powinien udostępniać aplikacjom - zestaw system calli. POSIX rozwijany przez IEEEm jest standaryzowany przez ANSI (American National Standard Institute) oraz ISO (International Standards Organisation).

Choć POSIX jest w oczywisty sposób oparty na UNIXie, znacząca część poza-UNIXowych systemów operacyjnych wydaje się kierować w stronę zgodności z POSIXem (w tym wspomniany Windows NT).

POSIX 1003.13 definiuje "minimal realtime operating system" standard. W sekcji 6 identyfikuje a "Minimal Realtime System Profile", przewidziane dla hard realtime systemów. Środowisko aplikacji w tym "minimalnym realtime systemie" składa się z pojedynczego, wielowątkowego procesu POSIXowego chodzącego na "gołej" maszynie.


Podejście "POSIXowe" do przerabiania Linuxa

Obserwuje się dwa główne podejścia do przerabiania Linuxa na real-time system:

  1. podejście POSIXowe;
  2. podejście niskopoziomowe.

Podejście niskopoziomowe polega na zmienianiu istniejącego jadra Linuksa tak, by uczynić je real-time.

Na początku POSIX jako podstawa do standaryzacji cech real-time systemu został skrytykowany - jako duży, bałaganiarski i przeładowany feature'ami. O ile powyższe są mile widziane w "normalnych" systemach operacyjnych, o tyle raczej nie nadają się do real-time systemów. Frustrujące dla twórców linuksowych RTOSów okazały się również nieprzychylność środowiska POSIXowego oraz relatywnie duża liczba wywołań POSIXowych przy jednej operacji.

Zapewne było to przyczyna wzmożonego zainteresowania podejściem niskopoziomowym, które do czasu pojawienia się rozszerzenia POSIXa na realtime było bardzo obiecujące

Warto być może wspomnieć, ze w swojej pierwszej fazie rozwoju RTLinux był bardzo obiecującym przedstawicielem podejścia niskopoziomowego. Choć potem zmienił front i skierował się stronę POSIXa...


Poprzednia - POSIX 1003.13 - Następna