Objavljeno: 29.10.2019 | Avtor: Dominik Cigala | Monitor November 2019

50 let Unixa - Zgodba o prelomnem neuspehu

Unix je večopravilni in večuporabniški operacijski sistem, ki je luč sveta ugledal že pred daljnimi petdesetimi leti. Začelo se je z neuspehom, iz katerega se je rodil prelomni izdelek, ki še danes v takšni ali drugačni obliki napaja številne naprave, med njimi večino pametnih telefonov na trgu.

Ideja o operacijskem sistemu Unix se je porodila v času, ko so programerji kodo računalniku posredovali eden za drugim prek preluknjanih kartic.

Zgodba o operacijskem sistemu Unix se začne v šestdesetih letih prejšnjega stoletja, ko so računalniki sicer že imeli operacijski sistem z osnovnim naborom strojnih ukazov, ki je omogočal prenosljivost programov, a večopravilnosti niso poznali. Projekt, ki so ga pri Bell Labs zasnovali v sodelovanju z GE in MIT, naj bi računalništvo naredil tako dostopno, kot sta bili dostopni elektrika in telefonija. Raziskovalci so se želeli iz pisarne priklopiti na osrednji računalnik in v realnem času dostopati do njegovih virov, vključno s shranjevanjem in z branjem datotek na njem. Danes preprosto opravilo je bilo v času, ko je bil datotečni sistem še v povojih, večopravilnost pa zaprta v ozko in nadzorovano okolje, slišati kot znanstvena fantastika.

Računalnik GE 645, ki je bil namenjen razvoju operacijskega sistema Multics, je stal toliko kot potniško letalo Boeing 737.

Računalniki so v šestdesetih letih prejšnjega stoletja zaganjali programe enega za drugim, programer je napisal kodo, jo z luknjanjem kartic pretvoril v računalniku berljivo obliko in jo oddal operaterju v računalniškem centru. Ta jo je priključil čakalni vrsti, jo ob pravem času zagnal in po izvedbi skupaj z natisnjenimi rezultati vrnil programerju. Postopek je bil tudi po najbolj uspešnem scenariju precej zamuden, posebej zapletlo pa se je v primeru napak. Luknjanje kartic, romanje v računalniški center in čakanje na rezultate, da bi računalnik javil sintaktično napako, so programerje spravljali v obup. S kompleksnostjo programov, ki je hitro naraščala, je tovrstno iskanje napak postajalo vedno bolj zamudno. Ker niti bogate razvijalske ekipe niso imele denarja, da bi programerje opremile z lastnimi računalniki, se je porodila ideja o delitvi računalniškega časa (time sharing), kjer bi več programerjev na istem računalniku hkrati izvajalo programe in rezultate prejemalo na oddaljene terminale v svojih pisarnah. Programov računalnik ne bi bral s kartic, temveč bi bili shranjeni v njegovem pomnilniku, tako da bi programerji lahko programe pisali, urejali in zaganjali v udobju lastnih pisarn.

Razvoj operacijskega sistema Multics, ki bi predstavljeno teorijo o večopravilnosti ter hkratnem programiranju na daljavo prenesel v prakso, so zagnali leta 1964. Na tehnološkem inštitutu MIT, kjer so že uporabljali preprost sistem deljenja računalniškega časa CTSS, so pripravili razvojni načrt, v GE so zagotovili strojno opremo, medtem ko so pri Bell Labs sestavili ekipo programerjev, ki naj bi vse skupaj razvila. Časa za dokončanje projekta so imeli tri leta.

Osrednji imeni ekipe, zadolžene za razvoj operacijskega sistema Multics, sta bili Ken Thompson in Dennis Ritchie.

Osrednji imeni ekipe, zadolžene za razvoj operacijskega sistema Multics, sta bili Ken Thompson in Dennis Ritchie. Čeprav sta izhajala iz različnih okolij, sta skupaj pristala v najvišjem nadstropju laboratorijev Bell Labs, v stisnjeni pisarni brez klimatske naprave, a z dostopom do računalnika, vrednega toliko kot potniško letalo. Ekipi se je leta 1966 pridružil Rudd Canaday, ki je za obrambni program Nike missile defense program že razvil preprost sistem deljenja računalniškega časa. Razvoj Multicsa je nadziral Malcolm Douglas McIlroy, ki je bil v podjetju Bell Labs že od leta 1958. Zaradi zapletene sestave računalnika GE 645 so vsi štirje prepoznali zgrešenost razvojnega načrta MIT in bili prepričani, da bi zagotovo razvili boljši operacijski sistem, če bi se lahko zadeve lotili čisto od začetka.

Šef ekipe Malcolm Douglas McIlroy je programerjem nudi dovolj svobode, da so lahko razvili svoje ideje.

Priložnost se jim je ponudila marca 1969, ko je vodstvo podjetja Bell Labs sklenilo, da ukine projekt Multics, katerega rezultati so zamujali dve leti, podjetje olajšali za precej več denarja, kot je bilo sprva načrtovano, za nameček pa je bil dotlej razvit sistem uporaben le v najbolj prostem pomenu besede. Programerji, ki so že prej imeli precej časa za stranske projekte, so naenkrat ostali brez resnejšega dela. Pod vodstvom McIlroya, ki jim je dopuščal ogromno svobode, so se podali v razvoj lastne vizije. Ko so se začeli kazati prvi rezultati – Thompson je prepričal z računalnikom povezane terminale, da so hkrati izpisali pozdrav Hello –, so zaradi odpovedi Multicsa ostali brez glavnega računalnika. Vodstvo o nabavi novega ni želelo slišati, mislili so, da programerji želijo nadaljevati delo pri propadlem projektu.

Prekinitev razvoja sistema Multics je programerje stala računalnik GE 645, rešitev so našli v manjši in v skladišču pozabljeni napravi DEC PDP-7.

Rešitev so našli v odvrženem računalniku DEC PDP-7, ki so ga v skladišče pospravili s sosednjega, precej bogatejšega oddelka akustike. Šefa Maxa Mathewsa, pionirja računalniškega prepoznavanja glasu, so prepričali, da so računalnik obudili in postavili na njegov oddelek. S tem so rešili prostorsko stisko ter stroške za pogosta opravila obesili oddelku akustike. Razvoj je spet zaživel, poleti 1969 so Thompson, Ritchie in Canaday na računalniku PDP-7 že imeli osnovnega upravitelja datotek, kar v tistem času ni bil zanemarljiv dosežek. Programi so se običajno izvajali eden za drugim, zato je bila potreba po pomnjenju informacij redka. Večina računalnikov zato ni imela zunanjih pomnilnih medijev, tračnih enot ali diskov. Razvijalci ekipe Bell Labs pa so razmišljali drugače. Zaljubili so se v zunanje pomnilnike in spisali dovolj dobrega upravitelja datotek, ki je omogočal hkratno delo z njimi, brez bojazni, da bi se podatki pri istočasnem delu uporabnikov prepisali ali izgubili.

Programerji niso imeli običajnega delovnega časa, prihajali in odhajali so, kot se jim je zljubilo, najmanj disciplinirana sta bila Thompson in Ritchie. Delo vseeno ni trpelo, ko je namreč posameznika zagrabil ustvarjalni navdih, je bil pripravljen delati tudi več dni skupaj. Thompson je v času počitnic v treh tednih spisal strojni prevajalnik, urejevalnik datotek in jedro za procesor računalnika PDP-7. Skupaj z upraviteljem datotek so tvorili delujoč operacijski sistem, ki z Multicsom razen osnovne ideje ni imel ničesar skupnega. Krstili so ga z imenom Unics, kar je po uradni razlagi okrajšava za UNIplexed Information and Computing System.

Z računalnikom DEC PDP-11 so leta 1971 razvili že popolnoma delujoč operacijski sistem s številnimi programerskimi orodji, od katerih jih precej obstaja še danes.

Nov računalnik DEC PDP-11 so razvijalci dobili šele leta 1971, čeprav so dotlej razvili že spodoben operacijski sistem s številnimi programerskimi orodji, od katerih jih precej obstaja še danes. Pridobitve so bili deležni na račun orodij za oblikovanje besedila, ki so jih potrebovali v pravnem oddelku podjetja. Ekipa je v zelo kratkem času in z majhnimi stroški prilagodila že razvita programska orodja, da so ustrezala pravnikom pri pripravi dokumentacije za vlaganje patentnih zahtevkov, zato tudi Unics ni čakal dolgo, da je zaživel na računalniku PDP-11.

Unix je bil podlaga za razvoj tako sistema BSD kot GNU, ki sta čez čas med drugim rodila tudi mobilni platformi iOS in Android.

Novica o naprednem operacijskem sistemu za računalnik PDP-11 je hitro zakrožila med podjetji z omenjeno napravo, marsikatero med njimi je na Bell Labs naslovilo prošnjo za sodelovanje. Pri Bell Labs so operacijski sistem interesentom dali zastonj, plačati so morali le poštnino in ceno medija, na katerem je bila kopija sistema. Ena izmed teh je zajadrala na univerzo Berkeley, kjer so jo na začetku osemdesetih let prilagodili za računalnike PC. Različico Unixa, ki je postala zgodovina, so poimenovali Berkeley Software Distribution oziroma BSD. To so izbrali razvijalci podjetja NeXT, na čelu z vizionarjem, ki je slišal na ime Steve Jobs. Ko je leta 1996 NeXT kupil Apple, je BSD postal osnova za operacijski sistem OS X in kasneje iOS.

Brezplačno distribucijo operacijskega sistema Unix je prekinila protimonopolna delitev podjetja AT&T leta 1984. Nova podjetja niso bila zavezana k spoštovanju sporazuma, ki je prepovedoval dobičkonosnost poslov z izumi podjetja Bell Labs. Uporabniška skupnost operacijskega sistema Unix je bila zgrožena ob spoznanju, da bo vsaka kopija plačljiva, spreminjanje kode pa prepovedano. Razvijalci na čelu z Richardom Stallmanom so se odločili, da naredijo svoj Unix. Poimenovali so ga jasno in glasno GNU, GNU’s Not Unix. Finski študent Linus Torvalds je leta 1991 na njegovi osnovi spisal jedro sistema, ki je deloval na računalnikih PC. Linux je postal osnova za mobilni operacijski sistem Android.

Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!

Komentirajo lahko le prijavljeni uporabniki

 
  • Polja označena z * je potrebno obvezno izpolniti
  • Pošlji