IPIX

IPIX – polska wersja systemu operacyjnego dla komputerów typu IBM PC, opracowana w całości przez Zespół Technologii Oprogramowania Instytutu Podstaw Informatyki PAN.

Właściwości[edytuj | edytuj kod]

W roku 1988 IPIX był zgodny ze standardem Unix System V, zalecanym przez międzynarodową grupę X/OPEN (X/OPEN Portability Guide, Issue 2). Zgodność systemu IPIX z systemem Unix polegała na funkcjonalnej zgodności wywołań i opcji poleceń systemowych oraz na pełnej zgodności wywołań funkcji systemowych i standardowych, zdefiniowanych dla języka C. Użytkownicy systemu Unix, Xenix lub podobnego mogli więc, bez żadnego przygotowania, pracować pod nadzorem systemu IPIX. Programy napisane w języku C i działające pod kontrolą tych systemów można było przenosić nawet między różnymi typami komputerów – oczywiście tylko w wersjach źródłowych. IPIX – tak jak Unix – był systemem uniwersalnym, a więc bazą, na której można było zbudować dowolne oprogramowanie użytkowe, np. obsługę banków danych, obliczenia numeryczne czy przetwarzanie tekstów.

IPIX jak każdy system zgodny z Unixem miał wiele cech charakterystycznych dla tej klasy systemów operacyjnych, np. wielodostęp, wielozadaniowość, potoki czy hierarchiczny system plików.

Wielodostępność[edytuj | edytuj kod]

System IPIX jednocześnie obsługiwał wiele stanowisk pracy – konsolę (komputer główny) i terminale. Z każdego stanowiska użytkownik miał dostęp do wszystkich zasobów systemu, mógł więc pracować tak, jakby komputer i system były wyłącznie do jego dyspozycji. Terminalem mógł być komputer typu IBM PC (z dowolnym emulatorem terminala, np. xansi, opracowanym specjalnie dla IPIX-a) ale również terminal alfanumeryczny (np. VT100). Terminal powinien być połączony z komputerem głównym przez łącze szeregowe RS232. Planowano wówczas, aby IPIX mógł także pracować w sieci.

Wielozadaniowość[edytuj | edytuj kod]

System IPIX umożliwiał równoczesne działanie wielu procesorów (zadań) i pozwalał wykonywać jednocześnie wiele poleceń systemowych lub użytkowych (każde z nich również mogło być podzielone na procesy). Mechanizm procesów wykorzystano przy tzw. przetwarzaniu w tle – IPIX pozwalał na równoczesną pracę wsadową i konwersacyjną. Użytkownik mógł, na przykład, już wtedy zainicjować w tle drukowanie wyników, uruchomić kompilator języka C dla kilku modułów programu i jednocześnie redagować dokument.

Mechanizm potokowy[edytuj | edytuj kod]

System IPIX oferował tzw. mechanizm potoków. Potok jest specjalnym rodzajem pliku, umiejscowionym na ogół w pamięci operacyjnej komputera. Jego cechą charakterystyczną jest to, że dane napływające są zapisywane zawsze na końcu pliku, a dane przeczytane – zawsze od początku – są usuwane z pliku. Na przykład potoki poleceń IPIX-a były ciągami, w których każde poprzednie polecenie przekazywało swoje wyniki bezpośrednio jako dane do następnego polecenia.

Hierarchiczny system plików[edytuj | edytuj kod]

Podobnie jak w systemie Unix, system plików IPIX-a był drzewem o jednym korzeniu. Hierarchiczna struktura skorowidzów umożliwiała tematyczne grupowanie plików. Jedną z właściwości takiego rozwiązania było tworzenie dowiązań do zbiorów danych: jeden zbiór danych (program, tekst itp.) mógł być reprezentowany przez wiele plików o różnych lub tych samych nazwach w różnych skorowidzach. Przez system plików IPIX umożliwiał użytkownikom jednolitą obsługę wszystkich zasobów systemu: zbiorów danych, urządzeń wejścia i wyjścia, a nawet generatora dźwięków i pamięci operacyjnej.

Ochrona zasobów systemu i użytkowników[edytuj | edytuj kod]

Ochronę zasobów systemu IPIX zrealizowano na podstawie mechanizmu prawa dostępu do plików. Superużytkownik (zarządca systemu) miał wszelkie uprawnienia dostępu do wszystkich zasobów systemu. Każdy inny użytkownik musiał przedstawić się systemowi (przez podanie hasła) i od tej pory stawał się właścicielem swoich plików oraz miał dostęp do tych plików systemowych, które udostępnił mu sam system lub jego zarządca. IPIX obsługiwał również grupy użytkowników i tzw. resztę świata (potencjalni nowi użytkownicy systemu). Oprócz mechanizmu uprawnień system zapewniał możliwość blokowania dostępu do danych w pliku (nawet do jednego bajtu), to znaczy pozwalał określić, co, przez kogo i w jaki sposób było blokowane oraz sprawdzić, czy określony obszar w pliku był zablokowany i jaki był rodzaj tej blokady.

Konwersacyjny interpretator poleceń powłoki Shell[edytuj | edytuj kod]

System IPIX zapewniał szereg podstawowych usług, których wywołania były nazwane poleceniami systemowymi. Były to m.in. polecenia obsługujące system plików, wspomagające powstawanie nowych poleceń, zarządzające wykonywaniem uruchomionych zadań itp. Część usług systemu zrealizowano jako programy użytkowe, które odgrywały rolę typowych programów usługowych, np. ekranowy edytor tekstów (tworzenie plików tekstowych), obsługa plików tekstowych (porównywanie, sortowanie itp.) czy obsługa plików w formacie systemu MS-DOS. W systemie IPIX takich poleceń było ok. 100 (standard zawierał wówczas ok. 120 opisów).

Kompilator języka C[edytuj | edytuj kod]

Podobnie jak w systemie Unix, głównym językiem programowania IPIX-a był język C. Jego kompilator, zbudowany w ramach projektu IPIX, akceptował pełny język C według raportu: B. W. Kerninghan, D. M. Ritchie, The C Programming Language, Prentice-Hall, 1982 (polskie tłumaczenie: Język C, WNT 1987). Ten kompilator tworzył program według jednego z czterech modeli pamięci. Standardowa biblioteka funkcji wejścia i wyjścia (dla każdego modelu pamięci) była całkowicie zgodna ze standardem Unix System V.

Dalsze losy[edytuj | edytuj kod]

IPIX miał się rozwijać we współpracy z kilkoma polskimi informatycznymi ośrodkami naukowymi i przemysłowymi. Chodziło o rozszerzenie i wzbogacenie możliwości systemu – w ramach tej współpracy miały szybko powstać:

  • nowa dedykowana wersja IPIX dla komputerów opartych na procesorze Intel 80386,
  • kompilator języka Pascal,
  • oryginalny asembler o składni języka wysokiego poziomu,
  • pakiety funkcji obsługujących ekran i urządzenia graficzne,
  • pakiety funkcji wspomagających zarządzanie bazą danych (ISAM),
  • język SQL dla tworzenia relacyjnych baz danych.

Ponadto z planowanych prac warto wymienić opracowanie kompilatorów innych – wówczas nowoczesnych – języków programowania Loglan i Prolog oraz narzędzi do pracy w sieci.

Prace nad systemem IPIX były prowadzone w Instytucie Podstaw Informatyki PAN od 1984 roku. Wersja przeznaczona dla komputerów typu IBM PC/XT powstała dzięki zamówieniu Krakowskiej Fabryki Aparatów Pomiarowych MERA-KFAP, w dużej części finansującej to przedsięwzięcie – system był przeznaczony dla produkowanego przez tę fabrykę komputera KRAK-86. IPIX był oferowany przez MERA-KFAP razem z komputerem oraz od 1988 roku również przez IPI PAN jako samodzielny produkt rynkowy dla użytkowników i producentów innych komputerów zgodnych z IBM PC. Rozpoczęto także prace nad instalacją IPIX-a na nowym wówczas, polskim komputerze Elwro 801AT.

Zespół autorski[edytuj | edytuj kod]

Nad systemem IPIX pracowali następujący członkowie Zespołu Technologii Oprogramowania IPI PAN: doc. dr Jan Borowiec – szef zespołu, mgr inż. Elżbieta Jezierska-Ziemkiewicz, mgr Danuta Kruszewska, mgr Marek Kruszewski, mgr Stanisław Kruszewski, mgr Dariusz Kupiecki, dr Andrzej Łukasiewicz, mgr Władysław Majerski, mgr inż. Mirosław Malicki, mgr Tadeusz Paprzycki, mgr inż. Jacek Surma, dr Jan Walasek – zastępca szefa, mgr inż. Tadeusz Wilczek, mgr Julian Winiewski oraz mgr inż. Andrzej Ziemkiewicz.

Bibliografia[edytuj | edytuj kod]