Unix (tavaramerkitty kirjoitusasu UNIX) on käyttöjärjestelmä, jonka kehityksen aloittivat AT&T:n Bell Labsin työntekijät, ml. Ken Thompson ja Dennis Ritchie vuonna 1969. Unixia on sanottu kaikkien aikojen vaikutusvaltaisimmaksi käyttöjärjestelmäksi.

UNIX®-tavaramerkin omistaa The Open Group, ja sen ylläpitämän Single UNIX Specification -standardin täyttäviksi sertifioidut käyttöjärjestelmät saavat käyttää tätä nimeä. UNIX 03 -sertifikaatti on vuonna 2019 AIX-, HP-UX-, macOS- ja Solaris-käyttöjärjestelmillä.

Nykyään on olemassa useita alkuperäisestä Unixista polveutuvia tai sen kanssa yhteensopivia käyttöjärjestelmiä, joista käytetään nimitystä Unix tai Unixin kaltaiset käyttöjärjestelmät. Linux on riippumaton Unixin kaltainen käyttöjärjestelmä, joka ei polveudu alkuperäisestä Unix-käyttöjärjestelmän lähdekoodista. Unix-sukuiset käyttöjärjestelmät ovat perinteisesti olleet suosittuja monen käyttäjän keskuskoneissa, supertietokoneissa, palvelimissa ja tehokkaissa työasemakoneissa. 1990-luvulta alkaen niitä on käytetty yhä enemmän myös harrastajien ja peruskäyttäjien keskuudessa tavallisilla IBM PC:n kaltaisilla koneilla ilmaisten ja vapaiden varianttien kuten Linuxin, NetBSD:n ja FreeBSD:n ilmestymisen myötä. Myös älypuhelimet käyttävät Unixin kaltaista käyttöjärjestelmää (iOS, Android).

Unix oli ensimmäinen siirrettävä käyttöjärjestelmä, joka oli 1970-luvun puoliväliin mennessä saatavilla eri laitealustoille ja yhteiset työkalut olivat helposti siirrettävissä eri alustoille.

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 (). Nimeä ehdotti Brian Kernighan 1970-luvun puolella sanaleikkinä Multicsista ().

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 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. Artikkelin 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. Artikkelissa 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. Artikkelissa 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 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. Stephen Johnson aloitti 1970-luvun puolivälissä toisen helpommin siirrettävän C-kielen kääntäjän, josta tuli Portable C Compiler. Kielen siirtäminen uudelle laitteistolle oli tuolloin vaikeampi tehtävä, ja Johnson työskenteli kääntäjän parissa samalla kun hän, Ritchie ja Thompson työskentelivät käyttöjärjestelmän siirtämisessä Interdata 8/32 -tietokoneelle. C-kieli alkoi muuttua tyypittömästä kielestä ja mukaan tuli Algol 68 -kielen tavan mukaan nimetyt tyyppimuunnokset () sekä siirtyminen muisti-indekseistä tyypitettyihin osoittimiin. Johnson kehitti Portable C Compilerin perustalta myös Lint-ohjelman, jotta aiemmalla "K&R"-tavalla tehdyistä ohjelmista löydettäisiin mahdollisesti virheelliset tavat.

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.