1. A UNIX kialakulása
1969-et írtak, amikor az AT&T Bell Laboratóriuma kiszállt abból a projektből, amelyet az MIT-vel együtt folytatott a Multics operációs rendszer kifejlesztése céljából. A Bell Laboratórium munkatársai így kényelmes interaktív számítógépes környezet nélkül maradtak. Ken Thomson és Dennis Ritchie ekkor fejlesztette ki egy “gazdátlan” PDP-7 típusú gépre a UNIX prototípusát, mely a Multics nyomán kapta nevét. Ez a rendszer már tartalmazta a UNIX legalapvetőbb jellemzőit, nevezetesen az állomány- és processzkezelő alrendszert, valamint minimális számú egyéb segédprogramot.
1971-ben a UNIX-ot, mely ekkor még teljes egészében assemblyben volt megírva, s nem volt nagyobb 16 kilobyte-nál, PDP-11-re írták át. Ekkoriban hozta létre Ritchie a C programozási nyelvet, mely az addig létező assembly és magasszintű nyelvek közötti igen szerencsés átmenetnek bizonyult. A UNIX rendszer magját, a kernelt (pontosabban annak legnagyobb részét) 1973-ban átírták C nyelvre, ami abban az időben szokatlan ötletnek tűnt. A C nyelvű kernel hordozhatósága következtében hamarosan már 25 UNIX rendszer működött a Bell Laboratórium különböző részlegeiben.
1974-ben jelent meg az első nyilvános publikáció a UNIX-ról, s ekkortól kezdett el rohamosan terjedni, különösen az egyetemeken, ahol az AT&T a kezdeti időkben ingyenesen terjesztette.
1979-re már mintegy 500 különböző UNIX rendszer működött az Egyesült Államokban; különösen nagy népszerűségnek örvendett a telefontársaságoknál, ahol mind programfejlesztési, mind hálózati tranzakciós feladatokra kiterjedten alkalmazták. Ebben az évben kezdték meg a kereskedelmi célú értékesítést is, és szintén ebben az évben történt meg az első átvitel egy nem PDP gépre.
Az első időszak szabad terjesztési politikája a gyors elterjedés mellett hátrányokkal is járt: a szabadon terjesztett forráskódba bárki belenyúlhatott, saját képére és hasonlatosságára formálva a helyi UNIX rendszert. Az 1977-82 közti időszakban az AT&T megpróbálta összefogni a saját UNIX variánsokat, s a Version 7 után a System III néven ismert rendszerrel jelent meg a piacon.
1983-ban (ekkor már százezer körül járt a működő UNIX rendszerek száma), jelent meg a System III továbbfejlesztése, a System V, amelynek jelenlegi legfrissebb változata az 1997-ben bejelentett System V Release 5 (V.5).
A Berkeley UNIX
A kaliforniai Berkeley egyetemen már 1977 óta használták a UNIX-ot, s az idők folyamán kialakult egy széles körben elterjedt saját UNIX változatuk, mely több ponton erősen eltér az AT&T verzióitól. E családot a BSD (Berkeley Software Distribution) jelzéssel látták el, legfrissebb változata a 4.4 BSD UNIX.
A Xenix
A Xenix volt az első olyan UNIX rendszer, mely IBM PC gépekre készült. (Megrögzött Unix hívőket tán nem ildomos erre emlékeztetni, de kifejlesztője a Microsoft volt...)Első változatai csak i8088 processzoron futottak, s annak korlátozott képességei miatt igazi többfelhasználós működést nem is tettek lehetővé. Az i386 alapú PC-k megjelenésével a Xenix is biztosítja a hagyományos UNIX gépek funkcióit. A Xenix elsősorban az MS-DOS rendszerrel kapcsolatos plusz szolgáltatásokban tért el a System V és BSD alapú UNIX rendszerektől, így értelemszerűen a Xenix alapú gépek biztosítottak először lehetőséget az egy gépen párhuzamosan meglévő MS-DOS állományok UNIX alóli kezeléséhez. Mára, a nagyteljesítményű PC-k megjelenésével, egyre több “igazi” UNIX rendszert kínálnak PC-kre is; a “ kereskedelmi” (értsd: fizetős) rendszerek közül messze a legelterjedtebb az SCO UNIX, de a szabadon hozzáférhető Linux és FreeBSD is rohamosan terjed.
Trendek és szabványok
Úgy tűnik, a UNIX terjedési üteme az elkövetkező években is megmarad, sőt fokozódik. Pár éve még csak a miniszámítógépek területén volt jelentős a részesedése, azóta viszont mind a magasabb, mind az alacsonyabb teljesítménykategóriákban is előkelő helyet harcolt ki magának. A számítógépes rendszerek teljes piacán az 1981-es 2%-ról 1986-ra a UNIX kereken megháromszorozta jelenlétét, s 1991-es becsült piaci részesedése elérte a 22%- ot, ami több mint 30 milliárd dolláros forgalmat jelentett.
E hatalmas piac megszerzéséhez egy nagy problémával kell még megküzdeni a gyártóknak, s ez paradox módon épp a szabványok hiánya. A UNIX ugyanis közel sem olyan egységes és hordozható, mint azt eleinte hitték. A problémák gyökere a kezdeti időkre nyúlik vissza, amikor a UNIX forráskódját szabadon terjesztette az AT&T. Az ennek következtében létrejött variánsokat igen nehéz egységesíteni, az AT&T-nek is több esztendőbe került, amíg házon belül kialakult valamiféle egység a System III képében.
Jelenleg óvatos becslések szerint is legalább hetven féle, jelentősen eltérő UNIX van kereskedelmi forgalomban, a System V, a BSD, illetve a Xenix megjelölés mindössze a kiindulási alapot biztosítja egy-egy UNIX rendszer megítélésénél. (Mindegyik változatnak vannak befolyásos támogatói, a System V a nagy európai szoftverházak körében és az üzleti alkalmazásoknál népszerű, a BSD változatok a kutatási intézményekben kedveltek.)
Ilyen körülmények között a szabványosításnak rendkívüli a jelentősége, s a kilencvenes évek elejére felerősödtek az erre irányuló törekvések. A kezdő lépést az AT&T tette meg, amikor nyilvánosságra hozta az SVID (System V Interface Definition) néven ismert ajánlását. Ez lényegében az AT&T által szabványosnak tekintett System V rendszerhívásainak és szubrutinjainak egységes felhasználói felületét és definícióit határozza meg. Egy UNIX verzió akkor minősül SVID kompatibilisnak, ha átjut az AT&T úgynevezett validációs tesztjein, mely a rendszerhívások SVID-konform voltát vizsgálja.
Az SVID kétélű fegyvernek bizonyult az AT&T számára: noha minden nagy szoftvercég elismerte az SVID jelentőségét, az riasztólag hatott rájuk, hogy az egységes UNIX jövője egy közel sem pártatlan cég kizárólagos felügyelete alatt alakuljon. Mintegy ellenreakció is volt tehát, hogy a UNIX-ot forgalmazó szoftvercégek egy csoportja (a /usr/group nevű felhasználói csoport munkáját folytatva) Posix néven (Portable Operating System Interface (x)) néven egy szabványtervezetet dolgozott ki az IEEE égisze alatt, melyet jelenleg mind az ANSI, mind az ISO támogat. A Posix az SVID-ben definiált rendszerhívások mintegy hetven százalékát használja, számos területen hozzá is tesz azonban új vonásokat, elsősorban a valósidejű, hálózati és adatbázis alkalmazások, valamint az Ada nyelvvel való kapcsolat területén.
Hogy a dolog még tovább bonyolódjon, a legnagyobb európai gyártókat tömörítő X/OPEN csoport ugyan támogatta a Posixot, valamint többé-kevésbé az SVID-t is, de saját ajánlásaiban további — természetesen eltérő... — bővítéseket (szűkítéseket) is ajánl.
Ami ezek után az egyes UNIX-ot előállító cégeket illeti, a még közel sem kiforrott szabványok közti lavírozásban egészen mostanáig a “mindennel (többé-kevésbé) kompatibilisnek lenni” elve kínálta az egyetlen kiutat. Így az általános gyakorlat szerint egy- egy UNIX rendszer alapvetően valamelyik elterjedt változatra (System V vagy BSD) épül, de a rivális rendszer és a készülő szabványok szerinti egyéb rendszerhívásokat is tartalmazza, ha pedig azonos nevű rendszerhívások másképp működnének az egyes változatokban, a felhasználó választhatja meg, melyik értelmezés szerint működjön az adott rendszerhívás.
Egységes UNIX
Az elmúlt négy-öt év során a nagy UNIX fejlesztő cégek között elkeseredett harc indult a UNIX egységesítéséért, pontosabban az általuk favorizált UNIX rendszerek szabványosításáért, s az ígéretesen növekvő piac megszerzéséért. A szakmában csak “The UNIX War” néven emlegetett háborúskodás 1987-ben vette kezdetét, amikor az AT&T bejelentette, hogy az addig a BSD rendszereket támogató Sun közreműködésével egységes UNIX-ot fejlesztenek ki, pontosabban, a System V következő változata, a System V Release 4 (SVR4) integrálni fogja az AT&T és a BSD rendszerek szolgáltatásait. E cél megvalósítására jött létre a UNIX International (UI) nevű tömörülés, támogatói között található többek közt az NCR, a Unisys és a Data General.
Az SVR4, amelyet az AT&T és a Sun mellett az Intel, a Microsoft és az INTERACTIVE Systems közreműködésével fejlesztettek, egyesíti magában a System V, a 4.3 BSD és a Xenix szolgáltatásait, valamint a Posix ajánlásainak is megfelel.
Az SVR4 fő vetélytársa az Open Systems Foundation (OSF) által támogatott Unix verzió, az OSF/1 volt. Ez szintén egyesítette magában a főbb Unix variánsok funkcióit, de nem a hagyományos Unix kernelre támaszkodott, hanem a Carnegie-Mellon egyetemen fejlesztett Mach operációs rendszerre. A Mach rendszerhívási szinten teljesen Unix kompatibilis ugyan, de eleve többfonalas, ún. multithreaded kernelre épül. Ennek révén helyből támogatja a Unix többprocesszoros rendszereken való használatát, s a futó feladatok több processzor közti szétosztását is. E táborba sorakozott fel az IBM, a DEC, a HP, a Bull és a Siemens-Nixdorf is.
A két "ellenséges szekértábor" között mindig is volt mozgás, de az egész piac akkor bolydult meg igazán, amikor a Novell megvásárolta a Unix System Laboratories-t (USL), azt a céget, ami az AT&T jogutódjaként gondozta az SVR4 Unix rendszerek forráskódját. Az iparban hatalmas vihart kavart e lépés, mert kétségessé vált, hogy a Unixszal soha nem foglalkozott Novell teljes lélekkel fogja-e a továbbiakban támogatni a Unix fejlesztését. Talán éppen e félelmek miatt, egyre több cég vette meg a Unix forráskódját a Novelltől, hogy bebiztosítsa magát az esetleges későbbi "rugalmas elszakadásra".
A fenntartások igazolódtak, a Novell nem igazán tudott mit kezdeni a Unixszal, míg végül 1993-ban egy váratlan húzással átadta az SVR4 Unix védjegyet és az azzal kapcsolatos minősítési jogokat a független X/Opennek. Így a Unix-megfelelőség elbírálása végre egy gyártófüggetlen szervezethez került, ami jelentős lökést adhat a további fejlesztésnek. Az X/Open a Posix ajánlásokat továbbfejlesztve és a legfontosabb gyártókkal konzultálva fejlesztette ki az ún. Spec 1170 ajánlást, ami jelenleg a Unix minősítés alapját képezi. (A név onnan ered, hogy a megkérdezett gyártók közmegegyezéses alapon definiálták a számukra legfontosabb Unix rendszerhívásokat és segédprogramokat, mindazokat, amiket legfontosabb programjaik használnak - e kívánságlista összefésülése után pedig nem több és nem kevesebb mint 1170 parancs illetve rendszerhívás maradt a listán.) Az X/Open két minősítési szintet jelölt meg a Unix védjegyre pályázóknak, a nem teljes Posix megfelelőséget igazoló Unix 93, illetve az erősebb Unix 95 nevűt. A Unix 95 címkét elnyerő Unix verziók száz százalékosan megfelelnek a Spec 1170 szabványnak, s az alájuk írt programoknak (újrafordítás után persze) futniuk kell bármelyik másik Unix 95 minősítésű rendszeren.
Szintén örömteli fejleményként értékelhető, hogy a korszerű grafikus felhasználói felületek terén is kialakult egy egységes szabvány. A CDE (Common Desktop Environment) az X11/Motif grafikus ablakkezelő rendszerre épül, s ma már gyakorlatilag minden gyártó biztosítja grafikus felülettel bíró gépein. E szabvány jelentőségét nem lehet eléggé túlértékelni, hiszen így a Unixos gépeken dolgozó felhasználók a grafikus felület szintjén is egységes (és igen jól használható, számos korszerű eszközt tartalmazó) felülettel találkoznak, kiküszöbölve a Unix rendszerekkel szemben eddig felhozott legfontosabb kifogásokat.
Könyvünk legutolsó kiadásának zárásakor a két legfrissebb fejlemény a 64 bites Unix API specifikáció fejlesztése, illetve az a bejelentés, hogy az SCO megvette a Unix forráskódot a Novelltől, és a továbbiakban a Hewlett-Packarddal együtt hármasban fejlesztik a licenszátadás alapjául szolgáló Unix kódot. Utóbbi tény drámaian lecsökkenti a piacon lévő eltérő Unix kódverziók számát (már eddig is egyre többen gyakorlatilag változtatás nélkül vették át az eredeti USL majd Novell kódot, s ahhoz írtak kiterjesztéseket), és ez megint csak a gyorsabb és hatékonyabb fejlesztés irányába hathat. Az egységes 64 bites Unix specifikáció széles körű elfogadása pedig szintén ebbe az irányba mutat, lehetővé téve hogy a Unix versenyképesen, egységes platformon megújulva léphessen át a huszonegyedik századba.
1. ábra: A főbb UNIX változatok kialakulása