Unix 7 bertsioa, Unix sistema moderno guztien arbasoa, Research Unix
Unix, hasiera batean, bertan eta beste sistema batzuetan exekutatu ahal izateko, softwarea garatzen zuten programatzaileentzat plataforma egokia izan nahi zuen, ez, ordea, programatzen ez zutenentzat[1][2][3]. Sistema handitzen joan zen sistema eragilea ingurune akademikoetan zabaltzen hasi zen heinean, eta erabiltzaileek beren tresnak gehitzen zizkioten sistemari, eta lankideekin partekatzen zituzten[4].
Hasieran, Unix ez zegoen diseinatuta eramangarria izateko edomultiataza[5]. Geroago, Unixek, pixkanaka, eramangarritasuna, multiataza eta multierabiltzaile gaitasunak lortu zituen denbora partekatzeko konfigurazio batean. Unix sistemek hainbat kontzeptu dituzte ezaugarri: datuak biltegiratzekotestu laua erabiltzea;fitxategi sistema hierarkikoa; gailu eta prozesuen arteko komunikazio (IPC) mota jakin batzuk fitxategi gisa tratatzea, eta software-tresna ugari erabiltzea; hau da,tutuak erabiltzen dituenkomando-lerroko interprete baten bidez lotu daitezkeen programa txikiak, denak funtzionalitate berekoak diren programa monolitiko bakar bat erabili beharrean. Kontzeptu horiei, Unix filosofia deitzen zaie.Brian Kernighanek etaRob Pikek honela laburbiltzen duteUnix programazio-ingurunea lanean: «Sistema baten boterea, programetatik baino gehiago, programen arteko harremanetatik dator»[6].
1980ko hamarkadaren hasieran, erabiltzaileak Unix sistema eragile unibertsal potentzial gisa ikusten hasi ziren, tamaina guztietako ordenagailuetarako egokia[7][2]. Unix ingurunea etabezero-zerbitzari programaren eredua funtsezko elementuak zirenInterneten garapenean etakonputazioa birmoldaketa sareetan zentratuta banakako ordenagailuetan zentratuta egon beharrean.
Bai Unix, baiC programazio-lengoaia, AT&T-k garatu zituen, eta gobernuaren eta erakunde akademikoen artean banatu ziren. Horren ondorioz, biak, beste edozein sistema eragilerekin alderatuta, makina-familia ugaritara eraman zituzten.
Unix sistema eragilea liburutegi eta utilitate askok osatzen dute kontrol programa nagusiarekin batera, kernel-a.Kernelak (nukleoa) programak abiarazteko eta gelditzeko zerbitzuak ematen ditu;fitxategi-sistema eta programa gehienek partekatzen dituztenmaila baxuko beste zeregin komun batzuk maneiatzen ditu, eta sarbidea programatzen du gatazkak saihesteko programak baliabide edo gailu berera aldi berean sartzen saiatzen direnean. Sarbide horretan bitartekari izateko, nukleoak eskubide bereziak ditu nukleo-espazioaren eta erabiltzaile-espazioaren arteko bereizketan islatuta, eta azken hori lehentasunezko eremua da aplikazio-programa gehienek funtzionatzen duten eremuan.
Sistema eragile honen arrakasta guztiz ezustekoa izan zeninformatikaren munduan (informatikaren historian zehar garrantzitsuenen artean, alegia), batez ere bere lehen inplementazioaren ostean.1960ko hamarkadanMIT (Massachusetts institutu teknologian)MULTICS (MultiplexedInformation andComputingSystem) sistema garatzen hasi ziren.
Ken Thomson eta Dennis Ritchie, MULTICSen moteltasuna ikusirik, proiektua berridatzi zuten mihiztadura lengoaian DEC PDP-7 ordenagailurako. Bi programatzaileak, beste proiektu bat burutu zutenfitxategi sistema multiataza bihurtzeko. Jadanik garatuta zegoenari,komando interpretatzailea (shell ingelesez) eta programa multzo bat gehitu zioten, eta horrelaUNICS (UniplexedInformation andComputingSystem) sistema sortu zuten. Izena sistema bakarrik bi erabiltzaileentzako garatuta izanagatik dator (Andre Tanenbaumen ustez, bakarrik bat[1]).
Ordura arte proiektua ez zuen inolako finantzaketarik, baina proiektua PDP-7 makina handiago batera egokitu zutenean,Bell laborategiak behar zuen PDP-11/20 makinara alegia, testu prozesatzailea gehitu zioten, AT&T enpresaren helburua lortuz (testu prozesatzailea etarunoff testua formateatzeko tresnak garatzenean makina horrentzako). Une horretatik aurrera, enpresaren laguntza jaso zuen, etarunoff programa hedatu zutentroff sortuz. 1971ko azaroaren 3an argitaratu zen lehen Unix eskuliburuaprogramatzaileentzat.
1973 urtean, UNIX sistema berridatzi zenC programazio lengoaian, eta aldaketa honek sistema osoa beste arkitekturetara migratzea erraztu zuen, aldaketa txikiak ez baitziren egin behar horretarako. Lengoai berriak kodea laburtu zuen eta garapen denbora asko murriztu,makina lengoaiaz eta mihiztadura lengoaiaz egindakoarekin aldratuta.
AT&T enpresak hainbat enpresa eta unibertsitateren eskura jarri zuen sistema, lizentzien bidez. Lizentzia hauetako bat, Kaliforniako unibertsitateko konputazio departamentura egokitu zitzaion, eta bere sistema propioa garatu zuten:BSD (BerkleySoftwareDistribution), geroago, AT&Tko UNIX sistemaren aurkari zuzenaizango zena.
1975 urtean,AT&Tk dibisio berria sortu zuen:Unix System Laboratories, sistema berriaren ustiapen komertziala hasteko, eta urte beran 4., 5. eta 6. bertsioak kaleratu ziren. Azken bertsio berri horretan, UNIX sistemen ezaugarri garrantzitsuenetako bat agertu zen:pipe edo tutuak. Tresna horren bitartez sistemaren modularizazioari bultzada handia eman zitzaion eta software berriaren garapena arindu.1978 urtean 600 makina inguru erabiltzen zuten UNIX sistema eragile gisa.
1979 urtean argitaratu zen UNIX sistemaren 7. bertsioa, distribuzio handiko azken UNIX sistema, alegia. Hemendik aurrera, 8. 9. eta 10. bertsiak garatu ziren80ko hamarkadan, baina bere zabalkuntza bakarrik zenbait unibertsitatetara murriztu zen, hala eta guztiz ere, sistema berrietan egindako ikerkuntza zabaltzen jarraitu zuten.
Sistema berri hauetako ikerkuntzarekin,Plan 9 sistema garatu zuten,sistema banatu berria, UNIX sistemaren ondorengoa izateko sortua. Hala eta guztiz ere, sistema berri honek bakarrik konputazio eta sistema eragileen arloari buruzko ikerkuntzetarako erabili zen.
Honez gero,1982 urtean kaleratuko zen sistema komertzial berria garatzen hasi zen AT&T (azken bertsio komertziala UNIX 7 zen), etaSystem III eman zion. Baina aldi berean, zenbait enpresak (Western Digitall adibidez) UNIX 7 bertsioa saltzen zuten oraindik. Honek, nahaste handia sortzen zuen, eta hau guztia gutxi balitz, AT&T berak (Bell laboraregiak)System V sistema sortu zuen Berkleyko unibertsitateak garaturako software atalak zituena (vi edoncurses esaterako), etaDEC konpainiak garatutakoVAX makinaren bateragarri zena.
1993 urteanNovell-ekUnix System Laboratories erosi zuen. Erosketa hau, momentu larrian eman zen, laborategiak epaiketa bat baitzuen Kaliforniako Unibertsitatearekin BSD sistema zela-eta. AT&T-ko laborategiak System V-ren kodea kopiatzeagaitik salatu zuen Berkeley, baina azkenean frogatu zen, ez bakarrik salaketa faltsua zenik, baizik ere System V-ko garatzaileek BSDko atal handiak kopiatu zituztela. Gauzak horrela,Novellek erosi zuen jabeza intelektuala, oso murriztuta zen.
1991 urteanLinus Torvalds ikasle finlandiarra, Unixeko funtzio asko betetzen zituennukleoa garatu zuen eta lizentzia askearekin argitaratu. Gertakari honetatik abiatuta, zenbait urteren buruan etaGNU tresnekin bat eginez, GNU/Linux sortu zen, zenbait urteren buruan beste UNIX sistema komertzialekin lehiatzeko moduko sistema.
1995 urteanNovellekSCO (Santa Cruz Operations) enpresari saldu zizkion bere Unix ustiatzeko eskubideak, enpresa honek Unix System V sistemaren ondorengoak saltzen jarraitzen duUnixWare izenpean (Aldi batez,OpenUnix ere deitu egin zen).
Gaur egunUnix-Like sistema anitz aurki daitezke, denboran zehar garapen independiente izan dutenak, baina gero eta gehiago software librean oinarritu diren arren. Sistema hauen ezberdintasun garrantsitzuena eskubiden intelektualetako arloan dago, ezberdintasun teknikoetan baino.
AT&T sistemak: Oinarrizko Unix sistema da, beste sistemen gurasotzat hartzen dena. UnixSystem III etaUniU dira ezagunenak.
BSD sistemak: AT&T eta Kaliforniako Unibertsitatearen arteko lizentziatik jaio zen sistema da. TCP/IP protokoloa barneratzen lehena izan zen eta arrakasta handia izan zuen horregatik.FreeBSD bere eratorri librea da.
AIX sistemak: AT&T eta IBM arteko lizentziatik jaio zen sistema.
Xenix sistemak:Microsoftek AT&Tri erositako eskubidetik jaiotako sistema. Geroago,SCOk erosi zizkionMicrosofti eskubide horiek.
GNU/Linux sistemak:1983 urteanRichard StallmanekGNU proiektua hasi zuen, Unix-like sistema eragile librea eraikitzeko proiektua hasi zuen. Proiektu honen zenbait atal (hala nolagcc,emacs...) beste UNIX sistemen oinarria izan da.1991 urteanLinus TorvaldsekLinux nukleo librea garatu zuen. Bi sistemak elkartuz,GNU/Linux sistema berri oso eta erabilgarria lortu egin zen. Kontuan hartu behar da,GNU/Linux ez dela UNIX sistemaren bilakaera bat, klon berri bat baizik.
1980ko hamarkadaren amaieran, sistema eragile irekien estandarizazio-ahalegin bati esker oinarri komuna eman zitzaien sistema eragile guztiei: Horrela sortu zen POSIX,IEEEk bultzatuta. Lehen POSIX estandarra 1988an argitaratu zen.1990eko hamarkadaren hasieran, industria-partzuergo batek aparteko baina antzeko zen ahalegina egin zuen, Common Open Software Environment (COSE) izenarekin, geroagoThe Open Group delakoaren administraziopeanSingle UNIX Specification (SUS) ozenarekin ezagutuko zena. Bi saiakerak bilduta2008anOpen Group Base Specification izeneko espezifikazioa argitaratu zen.
Exekutagarri bitarren eta objektuen UNIXen arteko bateragarritasuna hainbatCPUtan ziurtatzearren1999an ELF formatua (Executable and Linkable Format) adostu zuten hainbat enpresak eta erakundek.
Fitxategi-sistemen hierarkia estandarizatzeko ereFilesystem Hierarchy Standard hitzarmena sortu zen.
Unix sistema hasieran elkarrekin paketatu ziren hainbat osagaik dute oinarri. Sistema eragilearen nukleoaz gain, garapen-ingurunea, liburutegiak, dokumentazaioa eta osagai horietarako guztietakoiturburu-kodea barne osatzen dute. Unix software-sistema autonomo ondo dokumentatua zen hasieratik eta horregatik oso eragin handia izan du irakaskuntzan.
Osagai horiek guztiak barneratuta eduki arren sistema ez zen oso handia: Unix V7-ren jatorrizko banaketak, konpilatutako bitar guztien kopiak, iturburu-kode osoa eta dokumentazioa barneratuta, 10 MB baino gutxiago hartzen zituen, eta garaiko zinta magnetiko bakar batean sartzen zen. Inprimatutako dokumentazioa bi liburukitan jasota zegoen.
Unix-eko osagaiek fitxategi-sisteman dituzten izenak etadirektoriotan antolatutako kokapenak nabarmen aldatu dira sistemaren historiaren bidez. Hala ere, V7 inplementazioa erreferentziatzat hartzen da. Ondokoak dira osagai nabarmenenak.
Nukleoa – iturburu-kodea/usr/sys direktorioan, eta azpidirektorioetan hainbat osagai daude:
conf – konfigurazioa eta makinaren mende dauden atalak. Abiatzearen kodea ere bertan da.
make – konpilazioa- eta estekatze-prozesuak automatizatzeko komando-interpretatzailea
include – goiburuko fitxategiak eta hainbat konstateren definizioa.
Komandoak – Erabiltzailearen komando arruntak eta administraziorako erabiltzen direnak.
sh –shell komando-interpretatzailea. Leiho-sistemak baino lehenago sortua eta eraginkorrago lan errepikakorretarako.
oinarrizko komandoak (utilities) –cp,ls,grep,find eta beste asko. Haiekin batera:
sistemaren komandoak – administrazio lanerako:mkfs,fsck,passwd,kill, etab.
dokumentuak formateatzeko komandoak: garai batean erabiliak ofimatikako programak sortu baino lehen:nroff,troff,tbl,eqn,refer, etapic. GeroagoTeX etaGhostscript.
grafikoak –plot azpisistema hasieran eta X11 geroago.
Unix sistemak eragin nabarmena izan zuen beste sistema eragile batzuetan. Interaktibotasuna zela-eta lortu zuen ospea, baita tarifa nominalari eskainiz hezkuntzara hurbiltzeko ahaleginagatik, hardware merkean integratzeko aukerarengatik eta makina ezberdinetara egokitzea eta garraiatzea errazteagatik. Horretan C lengoaiak funtsezko elementua izan zen.
Unixek fitxategi-sistema guztiz sinplifikatua zuen, mota guztietako fitxategiak byte segida gisa tratatuz. Horrela, erregistroen kudeaketa erabiltzailearen mailako liburutegietara pasa zen sistemaren tamaina txikiagotuz. Gainera, dispositiboak eta dagozkiendriverrak (inprimagailuak, terminalak edodisko-unitateak) integratu zituen fitxategi-sistema hierarkikoan, programei interfaze uniforme bat eskainiz eta programen malgutasuna bultzatuz. Era berean, fitxategi-sistemari dagokionean, Multicsen sortutako azpidirektorio-sistema errekurtsiboa ezagutarazten lagundu zuen. Garaiko beste sistema eragileetan direktorioak aparte zeuden eta kudeaketa berezitua behar zuten sistemaren aldetik.
Komando-interpretatzailea erabiltzaile arruntei eskaintzea, komandoak aparteko programa gisa antolatuta Multicsetik zetorren beste ezaugarri aipagarria ere bada. Lineako komando interaktiboak eta komando-fitxategiak (script-ak) idazteko lengoaia bera erabiltzeak sinplifikazioa ekarri zuen, baita komando-fitxategiak beste programen ezaugarriak edukitzea ere.Adierazpen erregularren erabilera ere bultzatu zuen.
Unixen lehen garatzaileak garrantzitsuak izan ziren modularitatea eta berrerabilgarritasunasoftware-ingeniaritzaren oinarrietara eramaten, "software-tresnak" bultzatzeko mugimendua sortuz.
TCP/IP sareko protokoloak bizkor ezarri ziren, Unix bitartez, konputagailu merke samarretan, eta hori oso mesedegarria izan zen Interneteko erabilera mundu osora zabaltzeko ahaleginean.
Unixen lineako dokumentazio zabalaren politikak eta sistemaren iturburu-kodera urte luzez eskuragarri egoteak programatzaileen aukerak eta ezagutzak areagotu zituen, eta 1983an abiatu zensoftware librearen mugimendua bultzatzen lagundu zuen.