UNIX, TRADYCJA OTWARTOŚCI.

W 1969 r. w centrum obliczeniowym Murray Hill firmy Bell Laboratories w New Jersey, należącej do koncernu AT&T rozpoczęto prace nad nowym systemem operacyjnym, z założenia wielodostępnym. Właśnie dążność do zapewnienia jednoczesnego dostępu do wspólnych danych wielu użytkownikom i komunikacji między nimi była pierwszym impulsem do tych prac.

W 1969 r. w centrum obliczeniowym Murray Hill firmy Bell Laboratories w New Jersey, należącej do koncernu AT&T rozpoczęto prace nad nowym systemem operacyjnym, z założenia wielodostępnym. Właśnie dążność do zapewnienia jednoczesnego dostępu do wspólnych danych wielu użytkownikom i komunikacji między nimi była pierwszym impulsem do tych prac.

W wyposażeniu centrum znajdowała się wówczas kosztowna maszyna General Electric 645 z systemem operacyjnym Multics, w którym wszyscy użytkownicy byli ściśle izolowani. Doświadczenia nad bardziej wygodnym systemem zostały zainicjowane przez Kena THOMPSONa (wcześniej biorącego udział w pracach nad Multicsem). Znaczny postęp w tych pracach nastąpił w trakcie opracowywania wersji programu modelującego ruch planet Układu Słonecznego.

Uwaga programistów skoncentrowała się wówczas na nieoprogramowanym i niewykorzystanym minikomputerze PDP-7 firmy DEC (Digital Equipment Corporation). Początkowo oprogramowanie przenoszono do niego z General Electric za pomocą taśmy perforowanej, ale wkrótce (czerwiec 1969, a w innych źródłach: luty 1971) Ken THOMPSON opracował wygodny system operacyjny dla tej maszyny, pisząc go w całości w asemblerze i nadając mu, zaproponowaną przez Briana W. KERNIGHENa, nazwę UNIX. Usprawnienia postępowały wraz z rosnącą liczbą pierwszych użytkowników. Rozwiązanie stało się popularne, gdy włączono do niego możliwości edycji tekstów.

Pierwszym językiem programowania wysokiego poziomu w UNIXie był język B opracowany również przez Kena THOMPSONa i będący rozszerzeniem języka BCPL (zdefiniowanego przez Martina RICHARDSa w MIT, Massachusetts Institute of Technology, w 1969 r., który to język zawierał już elementy programowania strukturalnego). Powodzenie całego przedsięwzięcia pociągnęło realizację nowego wariantu systemu na pierwsze maszyny PDP-11/20 i PDP-11/45. Już wówczas część oprogramowania systemowego została napisana w B, ale rezultaty skłaniały raczej do wniosku, że systemu operacyjnego w tym języku napisać się nie da.

Doświadczenia te zaowocowały w 1972 r. pracą Dennisa RITCHIEgo, który zdefiniował nowy język programowania, wzorując go na B i nazywając C, oraz przedstawił nowy projekt systemu UNIX dla maszyny PDP-11. System ten szybko dojrzewał do kolejnych wersji: Version 1, Version 2 (z pojęciem potoku łączącego procesy), Version 7 (1977-1979, wraz ze szczegółowym opisem). Nobilitacją dla systemu było opublikowanie artykułu Ritchiego i Thompsona w 1974 r. opisującego strukturę systemu i sposób jego pracy. Version 8 pojawiła się w 1983 r. już ze świadomością realizacji produktu rynkowego i nazwano ją System III. Od tego roku zaobserwowano też tendencję producentów sprzętu polegającą raczej na przystosowywaniu projektowanych komputerów do UNIXa, niż na szukaniu systemów odpowiednich dla ich maszyn. Wkrótce powstała wersja o nazwie System V, a w 1986 r. opublikowano System V Interface Definition (SVID). W systemie pojawił się tzw. shell (powłoka), jeden z procesów w warstwie zewnętrznej systemu (tj. poza jądrem) odpowiedzialny za konwersację z użytkownikiem, interpreter komend wprowadzanych z klawiatury. Nazwano go Bourne-shell, od nazwiska jego twórcy, Stephana R. BOURNE'a. O powstałym systemie Dennis RITCHIE mówił: "przyczyną, dla której oryginalny UNIX był tak mały i elegancki było to, że zrobiliśmy te rzeczy, które naprawdę chcieliśmy zrobić".

Od roku 1975 UNIX (Version 6) był udostępniany, początkowo bezpłatnie, uniwersytetom amerykańskim, a potem i innym za niewielką opłatą licencyjną. Tak rozpowszechniał się głównie w ośrodkach naukowych, gdzie wspierał prowadzone tam prace badawcze, i z których wiele podjęło własne prace nad nim samym (System III nie był już rozpowszechniany w celach badawczych). W Uniwersytecie Kalifornijskim w Berkeley, na bazie Version 7, powstało kilka szczególnie istotnych rozwiązań: wersja edytora łącząca poprzednie ex i vi, interpreter poleceń C-shell (w końcu lat 70-ych), kompilator języka Pascal, system zarządzania bazą danych pod nazwą INGRES oraz szereg rozwiązań zaproponowanych w kolejnych wydaniach tzw. modelu BSD.

Burzliwy rozwój sieci komputerowych w latach 70-ych, zaowocował powstaniem wielu standardów sieciowych i modeli komunikacyjnych. Bez wątpienia największym z projektów i realizacji tamtych czasów była (i pozostała do dziś) sieć Internet, a w istocie cała rodzina sieci wzajemnie połączonych, posługujących się jedną rodziną protokołów komunikacyjnych, zwaną TCP/IP, ogłoszoną jako model w 1980 r. Uniwersalność i łatwość implementacji internetowych protokołów spowodowały ich popularność wśród użytkowników UNIXa (w tym aprobatę przez UniForum). Implementacje te realizowano na rodzącym się standardzie komunikacyjnym Ethernet, którego dojrzałą postać zaproponowały firmy Digital, Intel i Xerox w 1984. Drogę przetarło pierwsze dołączenie tych protokołów do UNIXa na Uniwersytecie Kalifornijskim.

Wśród wielu znaczących inicjatyw we wczesnych latach 80-ych, na Uniwersytecie Kalifornijskim DARPA utworzyła Computer Science Research Group (CSRG), która zajęła się konstrukcją modelu systemu UNIX pod nazwą Berkeley Software Distribution, BSD. Wkrótce po utworzeniu CSRG do UNIXa dodano rozwiązania sieciowe, wypracowane dla protokołów sieci ARPAnet. Do podjętych zadań należała konstrukcja silniejszego i elastycznego systemu plików dla systemu UNIX. W wersji 3BSD zaproponowano zmianę dotychczasowej strategii zarządzania pamięcią z tzw. wymiatania (swapping, usuwanie na dysk całych obrazów procesów) na tzw. "stronicowanie na żądanie" (demand paging, a jeśli pozwala na to sprzęt, ewentualnie wspomagane wymiataniem w sytuacjach krytycznych; metoda ta znalazła się potem również w System V Rel.2). W 1981 r. w BSD 4.2 UNIX, pojawiły się: pierwsza implementacja modelu tzw. gniazdek (Berkeley Socket Interface), mechanizmu realizacji komunikacji między procesami, kanały dla przepływu danych ze standardowego wyjścia jednego procesu do standardowego wejścia innego procesu, uogólnienie funkcji wejścia/wyjścia znanych z bibliotek języka C (open(), read(), write() i close()). BSD4.3 zawierał implementacje dwóch najpopularniejszych protokołów zdalnego wywoływania procedur: Xerox Courier i SUN RPC.

Technologia kryjąca się pod BSD (i dostępna w postaci kodu źródłowego, obecnie wersja 4.3 jako "freeware", nie wymagająca licencji od USL) stawała się częścią i inspiracją dla wszystkich późniejszych implementacji UNIXa.

Gdy DARPA zakończyła finansowanie grupy CSRG w 1986 r., nowe fundusze napłynęły od takich producentów, jak Cray Research, Inc., Hewlett-Packard Co. i SUN. Było to bardziej praktyczne niż odtwarzanie sporego nakładu pracy na projekty związane z systemem plików czy rozwiązaniami sieciowymi. W końcu 1992 r. ogłoszono BSD 4.4, ale również zapowiedziano rozwiązanie CSRG.

Wersje UNIXa do zastosowań komercyjnych powstawały także poza ośrodkami uniwersyteckimi: IDRIS, CROMIX, COHERENT (firmy Mark Williams Co.), ONIX, SINIX (z Siemens Nixdorf) i Xenix. Tę ostatnią wersję, najszerzej znaną, opracowano w Microsoft i Santa Cruz Operation (SCO) na przełomie lat 70-ych i 80-ych, bazując głównie na Version 7. Dla SCO implementacje UNIXa dla tych samych procesorów były głównym kierunkiem działań, w odróżnieniu od Microsoftu, dla którego PC DOS pozostawał nadal na pierwszym planie. W SCO opracowano kolejno wersje: SCO UNIX System V (w 1985 dla 80286), SCO Xenix System V (w 1987 dla procesorów 80286 i 80386), SCO Unix System V/386 Release 3.2 (pierwsza z licencją AT&T na używanie nazwy UNIX i uwzględniająca najważniejsze standardy międzynarodowe). Z kolei, SCO MPX jest rozwinięciem opracowania firmy COROLLARY, systemu dla mikrokomputerów wyposażonych w więcej niż jeden mikroprocesor Intel 386 lub 486. Rezultatem instalacji SCO MPX v.2.0 współpracującego z SCO UNIX rel. 3.2 version 4.0 jest adaptacja jądra systemu SCO UNIX do pracy w środowisku wielu procesorów, od 2 do 30, traktowanych symetrycznie.

Dziś dwie firmy dominują na rynku systemów UNIX dla PC 386: SCO (70% sprzedanych systemów i największa liczba aplikacji) i Interactive Systems (25% sprzedanych systemów). Interactive 386, v3.2, uchodzący dotychczas za silniejsze środowisko programistyczne od SCO, po wykupieniu przez SUNsoft (jedną z firm SUN Microsystems, Inc.), jest teraz zastępowany na rynku przez SOLARIS 2.0, system zawierający szereg nowoczesnych rozwiązań, a w tym możliwość programowania aplikacji wielowątkowych (multithreaded aplications) oraz ładowalne moduły jądra. Do propozycji IBM należy rozwijająca się linia o nazwie AIX (Advanced Interactive eXecutive), która pojawiła się w 1986 wraz z komputerami RT, pierwszymi stacjami roboczymi IBMa. Potem były wersje dla PS/2 i System/370, a ostatnio dla RISC System/6000. System ten oparto o SVR2 i dziś zawiera liczne rozszerzenia i modyfikacje. Znani dostawcy PC, Dell i Everex, sprzedają własne realizacje UNIXa na swoje maszyny: odpowiednio Dell UNIX SVR4 i Esix SVR4. Również wszystkie komputery korporacji Motorola są wyposażone w UNIX: System V/68 (dla procesorów serii 68000) i System V/88 (dla procesorów serii 88000); są to implementacje SVR4.

Za bazowy system operacyjny, wybrała UNIX, powstała w 1982 r., firma SUN Microsystems (Stanford University Network) podejmując problematykę stacji roboczych. Jej firmowe wersje UNIXa, pod nazwą SunOS, bazujące początkowo na wydaniach XENIX v3.0 i BSD4.2 bogate były w oryginalne rozwiązania. Wśród nich znalazły się: standard Network File System (NFS), oparty o protokoły TCP/IP (jego licencję wykupiło kilkaset firm produkujących oprogramowanie systemowe, w tym wszystkie największe), system RPC zdalnego wywoływania procedur, VFS - wirtualny system plików oraz mechanizm dynamicznego łączenia programów. Rozwiązania te przejmowały inne wersje firmowe, a wszystkie z wymienionych zaimplementowano w wydaniu AT&T SVR4 (System V Release 4, 1990). Również DEC (producent komputerów, na których UNIX się narodził) postarała się o własną wersję systemu. W 1983 powstał ULTRIX - implementacja dla maszyn DEC i VAX bazująca na rozwiązaniach z AT&T System V i BSD 4.2/4.3.

W tym samym roku wyszła pierwsza wersja UNIXa firmy Hewlett-Packard najpierw pod nazwą AP-UX, a potem HP-UX dla minikomputerów HP-9000, dziś z procesorem PA-RISC. System bazuje na AT&T UNIX System V rel. 3.0 i spełnia SVID2 firmy AT&T, a ponadto zalecenia POSIX (1003.1), X/Open (XPG3), zawiera rozwiązania systemu Berkeley 4.3 oraz dodatkowe rozwiązania HP i OSF podwyższające efektywność przetwarzania, usprawniające kontrolę nad systemem i zwiększające produktywność programisty. Są to między innymi narzędzia typu CASE, interpreter poleceń Keyshell czy Terminal Session Manager. Dodanie środowiska HP VUE (Visual User Environment - środowisko graficzne HP-UX wzorowane na NewWave, nakładce na MS Windows, dla użytkownika posiadającego stacje robocze lub X-terminale) pozwala użytkownikowi sięgać do pełnych możliwości systemu HP-UX. HP VUE bazuje na OSF/Motif i X/Windows. Przewidziana jest możliwość włączenia systemu w istniejące sieci lokalne lub rozległe za pomocą standardów takich, jak ARPA-BSD i TCP/IP, SNA lub różne implementacje bazujące na modelu OSI/ISO: pocztę elektroniczną X.400, X.500 directory services, FTAM file transfer. Usługi sieciowe są osiągalne w sieciach lokalnych i rozległych takich, jak 802.3/Ethernet i X.25. Według badań UNIX WORLD, firma HP zajmowała w kolejnych latach 1991 i 1992 pierwsze miejsce wśród dostawców systemów UNIXowych i pierwsze miejsce na rynku komercyjnych systemów RISC/UNIX.

Prace standaryzacyjne UNIXa zainicjowało amerykańskie stowarzyszenie /usr/group (obecnie UniForum) w 1981 r. (w 1984 r. opublikowano pierwsze propozycje standardu). Przebiegają one intensywniej od 1985 r., gdy patronat nad nimi przejęła IEEE (Institute of Electrical and Electronics Engineers) w ramach przedsięwzięcia o nazwie POSIX (Portable Open System Interface for Computer Environments). Pierwotnym celem tych prac był standard funkcji systemowych UNIXa. Z czasem prace te, obecnie prowadzone w 16 podstawowych grupach problemowych (oznaczanych kodami 1003.0, 1003.1, .., 1003.15), przeistoczyły się w próbę standaryzacji niemal wszystkiego, co dotyczy systemów otwartych. Pierwszy z serii planowanych standardów, 1003.1, organizacja ta opublikowała w 1988 r. w dokumencie znanym (ze względu na kolor okładki tego wydania) jako Brzydka Zielona Książka (The Ugly Green Book). Inne są w trakcie opracowywania.

W październiku 1987 r. ogłoszono, że nowa wersja UNIXa SVR4 powstanie w ścisłej współpracy AT&T z SUN Microsystems. Wiadomość tę wzmocniła następna, ze stycznia 1988 r., o tym, że AT&T zamierza zakupić znaczny pakiet akcji firmy SUN. W obawie przed zdominowaniem rynku UNIXa firmy konkurencyjne (m.in. IBM, DEC, Hewlett-Packard) powołały, w maju tego samego roku, Open Software Foundation (OSF) - konsorcjum, które postawiło sobie za cel opracowywanie i promocję wzorcowego UNIXa oraz innych standardów programowych. Za wersję wyjściową dla nowego systemu, o nazwie OSF/1, wybrano w warstwie najniższej wieloprocesorowy system Mach z Carnagie-Mellon University (proponowany dotychczas w implementacji firmy NEXT wraz ze stacjami Nextstation Turbo wyposażonych w procesor Motorola 68040, lub w implementacji firmy Mt. Xinu na PC: Mach386), traktowany, między innymi, jako nowy pomysł na jądro UNIXa (microkernel concept), oraz AIX z IBM w warstwie wyższej. Jednocześnie postanowiono zachować zgodność z SVID2.

Następstwem powstania OSF było zawiązanie stowarzyszenia firm wspierających AT&T i System V. Wśród założycieli były: Olivetti i Unisys, a przyłączyły się AT&T, SUN, SCO i ICL. Wkrótce, w 1988, stowarzyszenie przekształciło się w korporację UNIX International (UI). W AT&T utworzono odrębną jednostkę organizacyjną, UNIX System Laboratories (USL), która przejęła całokształt spraw związanych z produkcją, sprzedażą i licencjonowaniem UNIXa. Obie grupy, UI i OSF, szybko zwiększyły liczbę swoich członków. Wiele z firm, asekurując się, zgłosiło swój akces do obu grup. Wśród nich była DEC, główny producent sprzętu wspierający SVR4, ale z przeznaczeniem na maszyny z procesorem Alpha typu RISC. Deklaruje jednocześnie implementację systemu OSF/1 na swoich stacjach z procesorami R2000, R3000 i R4000. Również działania innych największych firm nie są jednoznaczne. Poparcie IBM jest tonowane rozwijanym przez tę firmę systemem OS/2. Własne negocjacje z USL prowadzi HP, która jednocześnie deklaruje kontynuację prac nad HP-UX. NOVELL, Inc., podpisał konkretne umowy o współpracy z USL (powołując Univel, j.v.), SCO, DEC, Compaq i HP dotyczące integracji sieciowych systemów operacyjnych oraz ich nowych wersji. Produkt z Univel pod nazwą UNIXware, realizacja najnowszego wydania SVR4.2 z USL, integrująca usługi systemu UNIX i NetWare, dostępny jest już od jesieni 1992 r.

Pierwszym produktem UI był UNIX SVR4 (System V Release 4), natomiast OSF - OSF/Motif (graficzny interfejs użytkownika) oraz standard DCE (Distributed Computing Environment), którego komponentą jest adaptacja standardu AFS (Andrew File System) rozwiniętego w Carnagie-Mellon University z udziałem IBM. AFS (i DCE) umożliwia aplikacji niezależność położenia pliku w sieci (oznaczającą możliwość przeniesienia każdego pliku w dowolnej chwili w dowolne miejsce bez zmiany jego nazwy i atrybutów), czego nie oferuje NFS, wspomniany wyżej, standard SUN Microsystems. Pierwsze wydanie specyfikacji OSF/DCE miało miejsce we wrześniu 1991, a jej aktualizacja 1.1 jest spodziewana w 1993. Od USL wiele firm wykupiło licencję na kod źródłowy SVR4. Najnowsze wydanie SVR4.2 znane jest jako Destiny. Częścią prac standaryzacyjnych USL przy współudziale dostawców UNIXa dla PC było rozwinięcie Intel Binary Compatibility Standard (IBCS), standardu dla aplikacji precyzującego warunki binarnej zgodności systemów i aplikacji. Wersję IBCS2 uwzględniono w SVR4.

Inny rodzaj działalności prowadzi X/Open, organizacja założona w 1984 przez firmy europejskie, dziś o równym wpływie grup UI oraz OSF. Prowadzi ona analizy standardów ISO, IEEE, przemysłowych i innych ze względu na ich praktyczność. Okresowe publikacje X/Open Portability Guide (XPG) są wielotomowymi dokumentami o statusie zestawu zaleceń.

W przekonaniu wielu użytkowników różnorodność rozwiązań i implementacji UNIXa jest jego ważną słabością. Ich presja zmusza OSF i UI do nieformalnych uzgodnień i deklaracji o wzajemnej zgodności systemów. Jednym z podstawowych punktów zbieżnych jest POSIX 1003.1.

W ramach IEEE prowadzone są działania, zmierzające do uwolnienia wszelkich standardów POSIXa od bliższych związków z C (i z jakimkolwiek innym językiem programowania), prace nad systemami czasu rzeczywistego i przetwarzaniem transakcyjnym (OLTP, On-Line Transaction Processing), dotychczas domeny systemów specjalizowanych (MPE/HP-3000 Hewlett-Packarda lub CICS IBM). Opracowuje się też uniwersalny model przetwarzania transakcji wzorowany na OSI DTP i X/Open XTP.

Jednak problemy bezpieczeństwa w systemach UNIX, formułowane jako komercyjne bezpieczeństwo, należą obecnie do najistotniejszych z punktu widzenia użytkownika. Jeszcze z wersją System III wiąże się zła reputacja UNIXa w zakresie bezpieczeństwa: kolejne implementacje miały własne podejście do tych problemów.

Najbardziej znane dziś specyfikacje wymagań to: Trusted Computer System Evaluation Criteria (National Security Agency, USA, 1985, znane jako "Orange Book", której tzw. poziom C2 jest najczęściej implementowany), europejskie Information Technology Security Evaluation Criteria oraz Minimum Security Functionality Requirements for Multi-User Operating Systems (MSFR, National Institute of Standards and Technology, USA). Te ostatnie formułowane są przy współudziale i spełniają potrzeby takich "wielkich użytkowników", jak American Express Corp., Electronic Data Systems Corp., Eastman Kodak Co. Podkreślane są najsłabsze punkty systemów UNIX: brak kontroli dostępu na podstawie czasu, miejsca lub użycia procesora, podatność na odmowę usługi na skutek zagarnięcia wszystkich zasobów systemu przez inny proces czy niepewne procedury upoważnień. Bezpieczeństwo jest więc obecnie obszarem dużych zmian, w którym przodują trzy firmy posiadające największe doświadczenie we współpracy z użytkownikami: HP, DEC i IBM.

ACE, to jeden z ostatnich przejawów dynamiki "unixowego" rynku. Uczestnicy programu ACE (Advanced Computing Environment), organizacji założonej w 1991 r. przez szereg firm, w tym m.in. Compaq, Silicon Graphics, DEC, SCO i Microsoft, w celu opracowania nowych standardów środowiska komputerowego, ogłosili swoją koncepcję systemów otwartych opartą o procesory INTEL i MIPS oraz nowy system operacyjny ACE-UNIX. Jako zgodna z ustaleniami ACE proponowana jest najnowsza konstrukcja z Santa Cruz Operation dla maszyn z procesorami 80386 i 80486 o nazwie Open DeskTop (ODT). Przyszłość ACE wydaje się jednak dziś bardzo wątpliwa. DEC, ogłaszając wyniki prac nad procesorem Alpha, dało sygnał o zakończeniu finansowania rozwoju R4000 (MIPS). Wykupienie MIPS przez Silicon Graphics uratowało firmę, ale wstrzymało też inwestycje innych udziałowców pomysłu. Odstąpiły również Compaq (w kwietniu 1992) i SCO, a Bull rezygnuje po wykupieniu przez IBM 5% jego akcji.

Problemy związane z wprowadzaniem standardów technicznych przeplatają się z problemami ekonomicznymi i prawnymi, interesami różnych firm, instytucji i krajów, z pomysłowością jednostek i z potrzebami użytkowników. UNIX dziś skupia uwagę ich wszystkich.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200