Unix
Historia

Unixin pääarkkitehteina toimivat Ken Thompson ja Dennis Ritchie, joista jälkimmäinen kehitti myös C-ohjelmointikielen. Kehitystyön aikana he olivat töissä AT&T-yhtiön tutkimuskeskuksen Bell Labsin Computing Sciences Research Centerissä. Vuodesta 1964 alkaen osaston henkilöt työskentelivät Multics-projektin parissa.
Unixin varhainen versio tunnettiin myös nimellä UNICS (lyhenne sanoista Un-multiplexed Information and Computing Service). Nimeä ehdotti Brian Kernighan 1970-luvun puolella sanaleikkinä Multicsista (lyhenne sanoista Multiplexed Information and Computing Service).
1960-luvulla MIT, AT&T:n Bell Labs ja General Electric (GE) kehittivät Multics-käyttöjärjestelmää GE-645-suurtietokoneelle, joka maksoi vuonna 1965 lähes yhtä paljon kuin Boeing 737. Multicsin parissa Bell Labsilla työskentelivät Rudd Canaday, Ken Thompson, Dennis Ritchie ja Malcolm Douglas McIlroy.
Multics-projektin tavoitteena oli laskentakapasiteetin saatavuus kuten sähkön tai puhelimen saatavuus. Järjestelmä oli myöhässä, ylittänyt budjetin ja ei täyttänyt odotettua toiminnallisuutta. Osasyyksi ongelmiin mainitaan virheelliset tuhansien sivujen määrittelyt ja GE-645:n hankala arkkitehtuuri. Kehitykseen vaikuttaneilla osapuolilla oli myös erilaisia tavoitteita: GE halusi ”vahvistaa tuotelinjaa”, MIT halusi ”kehittää viimeisintä tekniikkaa” ja Bell Labs halusi hyvän ympäristön työtä varten. 
Käyttöjärjestelmä pääsi lopulta myyntiin asti, mutta sen suorituskyky oli huono. AT&T päätti lähteä projektista ja siirtää voimavaransa muualle. Pian projektin päättymisen jälkeen GE-645 vietiin pois. Bell Labsin ryhmä alkoi etsiä vaihtoehtoja yhteistyöhön soveltuvalle ”aikajakavalle” osituskäyttöjärjestelmälle.
Thompson oli kirjoittanut Multicsille pelin nimeltä ”Space Travel”, muunsi sen Fortranille ja siirsi pelin GECOS-käyttöjärjestelmälle. Hän kuitenkin huomasi, että peli oli liian hidas ja sen ajaminen vei 75 dollarin arvosta tietokoneaikaa. Pelissä oli simulaatio aurinkokunnan merkittäville kappaleille ja pelaaja ohjasi avaruusalusta, jolla voi yrittää laskeutua planeetoille ja kuille.  
Thompson löysi akustiikkalaboratorion käyttämättömän DEC PDP-7 -koneen, jossa oli hyvä grafiikkanäyttö ja kirjoitti pelin uudelleen Ritchien kanssa assembly-kielellä sille. Peliä varten kehitettiin muun muassa toiminnot liukulukuaritmetiikkaan, graafisten merkkien esitykseen ja debuggaamiseen.
Peliä kehitettiin GE-635-tietokoneella ja käännettiin GECOS:illa, josta se siirrettiin reikänauhoilla PDP-7:lle.
Kesällä 1969 Thompson, Ritchie ja Canaday suunnittelivat tiedostojärjestelmän perusteet tiedostojen hallintaan. Eräajoon suunniteltujen tietokoneiden ei yleensä tarvinnut säilöä tietoja pysyvästi, joka aiheutti haasteita. Elokuussa Thompson kehitti assemblerin (as), tiedostoeditorin ja ytimen. Thompson teki myös karkean komentotulkin (sh) ja yksinkertaisia komentoja (vastaavia kuten Unixin rm, cat ja cp -komennot). Tämän jälkeen järjestelmässä itsessään pystyi kääntämään ohjelmia.
Thompson suunnitteli ytimen yksinkertaiseksi, jossa ei ollut komentokieltä kuten Multicsissa vaan se käsiteltiin yhtenä käyttäjäsovelluksena.
Ytimessä ei ollut tiedostomuotoja vaan tiedostot olivat vain yksiulotteinen joukko tavuja. Järjestelmään syntyi varhain prosessit, joita oli yksi päätettä kohden. Uuden prosessin luomiseen käytettiin fork- ja exec-kutsuja, joka oli yksinkertaisempi toteuttaa kuin yhdistetty kutsu ja jota vastaava oli käytössä muun muassa Berkeley Time-Sharing System -järjestelmässä. Vuoronnukseen oli käytössä yksinkertainen prioriteettipohjainen algoritmi.
Vuonna 1969 Doug McIlroy oli tehnyt järjestelmän ensimmäisen korkean tason kielen, joka oli toteutus R. M. McCluren TMG:stä (ohjelmointikielen kääntäjän kirjoittamiseen tarkoitettu kieli, ”kääntäjän kääntäjä”, TransMoGrifier). Syyskuussa 1969 Bell Labsin tietokoneosastolla oli toimiva monen käyttäjän osituskäyttöjärjestelmä, johon osastolla ei vielä ollut massamuistia.
Toukokuussa 1970 tilattiin PDP-11-minitietokone 65 000 dollarin hintaan: perusteeksi hankinnalle kerrottiin työkalujen kehittäminen tekstin editointiin ja muokkaamiseen. Myös akustiikkalaboratorion Max Mathews lupasi alkurahaa tietokoneen hankintaan. 
Koska Unixissa ei tuolloin ollut moniohjelmointia (vain yksi prosessi käyttäjää kohden) sen siirtäminen PDP-7:ltä PDP-11:lle oli siirtokirjoitusta vastaavaa.
Ensimmäinen Unixin hankkinut asiakas oli Bell Labs Patent Department, joka käsitteli patenttihakemuksia. Myöhemmin käyttöjärjestelmästä välittyi tieto muille PDP-11-konetta käyttäville, jotka pyysivät sitä myös omaan käyttöönsä. Käyttöjärjestelmää välitettiin halukkaille postituskulujen ja tallennusmedian hinnalla.
Ensimmäinen Unix Programmer's Manual on päivätty 3. marraskuuta 1971. Kirjoittamisen aikaan järjestelmä oli jo siirretty (”kirjoitettu uudelleen”) PDP-7:ltä PDP-11:lle, jolloin se oli vielä tehty assemblyllä. Kirjoittamisen hetkellä UNIX-aikaa mitattiin sekunnin kuudeskymmenesosissa, joka riitti vain 2,5 vuodeksi ja muutettiin myöhemmin täysille sekunneille.
Thompson aloitti järjestelmän siirtämisen Fortranille, mutta luopui siitä nopeasti. Tämän jälkeen Thompson kirjoitti B-ohjelmointikielen perustuen BCPL-kieleen (tai toisen teorian mukaan Thompsonin Bon-kieleen). Ritchie lisäsi B:hen tyyppijärjestelmän, ja antoi sille aluksi nimen NB (”New B”) ja alkoi kirjoittaa kääntäjää. Kesällä 1972 Unix kirjoitettiin uudelleen NB:stä kehitetyllä C-kielellä. Vuoden kuluessa C:tä käytettiin myös Honeywell 6000 -tietokoneilla ja pian sen jälkeen IBM 310 -sarjan koneilla. Käyttöjärjestelmien välisten erojen vaikutus ohjelmien siirtämiseen johti tuolloin radikaaliin ajatukseen siirtää myös itse käyttöjärjestelmä eri laitteistolle vähentäen eroja.
Unix-putkien kehitys johti useisiin toisiinsa liitettävien työkaluohjelmien kuten grep ja sed kehittämiseen, joka vaikutti koko käyttöjärjestelmän filosofiaan.
Ritchien ja Thompsonin kirjoitus käyttöjärjestelmästä julkaistiin Communications of the ACM -lehdessä heinäkuussa 1974. Paperin mukaan ensimmäinen versio Unixista oli PDP-7- ja PDP-9-tietokoneille, toinen versio PDP-11/20-tietokoneelle ja kolmas PDP-11/40- ja PDP-11/45-tietokoneille. Paperissa mainittiin sen olevan usean käyttäjän käyttöjärjestelmä, jossa on ominaisuuksia, joita on harvoin suuremmissakaan käyttöjärjestelmissä: muun muassa hierarkkinen tiedostojärjestelmä ja kyky käynnistää asynkronisia prosesseja. Hierarkkinen tiedostojärjestelmä mahdollisti tiedostojen sijoittamisen hakemistoihin. Paperissa mainittiin myös, että tehokas käyttöjärjestelmä ei tarvitse olla kallis laitteilta tai ihmisten työmäärältä: käyttöjärjestelmää voitiin suorittaa jopa alle 40 000 dollarin laitteistolla ja alle kaksi miestyövuotta käytettiin järjestelmäohjelmiston kehittämiseen. Paperin päivitetyssä versiossa mainittiin kolmannen version tukevan moniohjelmointia, lueteltiin lisää yhteensopivia PDP-11-versioita ja kuvattiin neljäs versio, jota voitiin käyttää Interdata 8/32 -tietokoneella.
AT&T oli tehnyt vuonna 1956 sopimuksen, joka esti sitä myymästä tuotteita, jotka eivät suoraan liittyneet puhelimiin tai telekommunikaatioon johtuen monopolisäädännöstä. Tämän vuoksi käyttöjärjestelmää ei voitu myydä tuotteena ja AT&T päätyi julkaisemaan lähdekoodit kaikille sitä pyytäville nimellistä maksua vastaan. AT&T ei voinut myöskään tarjota tukea käyttöjärjestelmälle, mikä johti varhaisten käyttäjien perustamiin käyttäjäryhmiin kuten Usenix.
Unix oli ensimmäisiä käyttöjärjestelmiä, joissa käyttöliittymä oli erillinen itse käyttöjärjestelmästä. Vuonna 1975 Bell Labsille tullut Stephen Bourne kehitti ohjelmoitavan Bourne shell -komentotulkin korvaamaan Thompsonin yksinkertaisemman komentotulkin. Ensimmäinen laajalti käytetty vaihtoehtoinen komentotulkki oli C shell.
1970-luvun puolivälissä Thompson lähti hetkeksi Bell Labsilta ja opetti Kalifornian yliopiston Berkeleyn kampuksella (UCB). Berkeleyssä otettiin tuolloin käyttöön versio 6 Unix (V6), joka oli ensimmäinen laajasti Bell Labsin ulkopuolelle levinnyt. Kuudetta versiota levitti Western Electric sen lisensoineille.
Berkeleyssä oli juuri saatu PDP-11, johon Thompson auttoi asentamaan v6 Unixin. AT&T:llä oli käytössä jatkuvasti kehittyviä versioita, joissa tärkeitäkin korjauksia, kun taas muualla oli käytettävä julkaisuversioita (v4, v5, v6..). Tästä sai alkunsa ”50 muutosta”, jonka AT&T ei halunnut leviävän tiukan ”ei tukea” -säännön johdosta. 
AT&T:n versio 7 julkaistiin vuonna 1979 ja siihen sisältyi UCB:n tekemiä muutoksia. Berkeleyssä sai alkunsa tutkijoiden ja opiskelijoiden tekemät muutokset AT&T:n Unixiin, joka aluksi levisi nimellä ”Berkeley Unix” ja myöhemmin täysi Unix-julkaisu nimeltä Berkeley Software Distribution (BSD).
Bill Joyn ja muiden opiskelijoiden tekemät muutokset levisivät tutkijapiireissä moneen yliopistoon. UCB perusti Computer Systems Research Groupin DARPAn rahoituksella kehittämään Unixia. CSRG teki suuren osan TCP/IP:n kehitystyöstä. Australiassa opettava professori John Lions julkaisi vuonna 1977 sen ajan kuuluisan kirjan A Commentary on the Unix Operating System, joka sisälsi myös järjestelmän täydellisen lähdekoodin. Kirjaa käytettiin materiaalina käyttöjärjestelmiin liittyvillä kursseilla ympäri maailman. Vuonna 1979 AT&T kuitenkin puuttui kirjan levittämiseen.
Vuosina 1976–1977 käyttöjärjestelmän ydin siirrettiin VM/370 virtualisoidulle alustalle. Vuonna 1977 Interactive Systems Corporation oli ensimmäinen joka myi Unixia loppukäyttäjille käyttäjätuettuna tuotteena.
Vuoteen 1978 mennessä Unixista oli versio myös 32-bittiselle Interdata 8/32 -koneelle, joka erosi merkittävästi PDP-11:stä ja muistutti IBM System/360- ja IBM System/370 -koneita. Interdata 8/32:lle siirtämisen jälkeen seurasi versio DEC VAX 11/780:lle, josta tuli paljon suositumpi kuin Interdatasta.
Vuonna 1977 Unixia käytettiin yli 300 tietokoneessa. Vuoteen 1978 mennessä Unixia käytti yli 600 tietokonetta. Vuonna 1987 myytiin yli 300 000 Unixia, Unixien kokonaismäärän ylittäessä 750 000 luvun.
1980-luvun alkupuolella ilmestyivät ensimmäiset kirjat Unixista: Stephen Bournen The Unix System ja Brian Kernighanin ja Rob Piken The Unix Programming Environment.
Vuonna 1984 AT&T hajotettiin monopolioikeudenkäynnin seurauksena seitsemään erilliseen yhtiöön. AT&T menetti alueelliset operaattorit säilyttäen kaukopuheluiden verkon, mutta sai vastineeksi oikeuden osallistua tietokoneliiketoimintaan. Yhtiö perusti AT&T Computer Systems -yksikön, joka julkaisi kaupallisen Unix System III -version. AT&T julkaisi 1983 Unix System V -järjestelmän, jonka laajalti levinnyt versio System V Release 4 julkaistiin vuonna 1989. System V toimi AT&T 3B -sarjan tietokoneilla. AT&T:n UNIX System Group (USG) järjestettiin uudelleen 1989, jolloin perustettiin UNIX Software Operation (USO) ja UNIX System Laboratories (USL). USO ja USL yhdistyivät 1990 ja siitä tuli AT&T:n tytäryhtiö.
1980-luvun lopulla Bell Labs siirtyi kehittämään Plan 9 -käyttöjärjestelmää.
Vuonna 1992 AT&T haastoi BSD-haaran kehittäjät Berkeley Software Designin ja Kalifornian yliopiston oikeuteen väittäen BSD:n sisältäneen AT&T:n omistamaa koodia. Osana kiistan sovitusta osa ohjelmakoodista toteutettiin uudestaan, osa poistettiin ja osaan lisättiin maininta AT&T:n tekijänoikeudesta. 
Unix System Laboratories (USL) myytiin vuonna 1993 Novellille, joka myi UnixWare-liiketoiminnan Santa Cruz Operationille (SCO) vuonna 1995.