UNIX on arvuti operatsioonisüsteem, mille alged pärinevad 1960. aastate lõpust. See töötati esimest korda välja 1969. aastal Bell Labsis. Süsteemi lõid peamiselt Ken Thompson, Dennis Ritchie, Douglas McIlroy ja teised. Varased versioonid valmisid algselt assembleri keeles ja töötasid väikestel masinatel (näiteks PDP-7). Aastal 1972 kirjutati Unixi kood ümber uue C programmeerimiskeelega, mis tegi süsteemi palju kergemini teisaldatavaks (portatiivseks) teistesse riistvarakeskkondadesse.
Ajalugu lühidalt
Unixi lühiajalugu sisaldab mitmeid olulisi etappe: Bell Labsis väljatöötamine, ülikoolide (näiteks Berkeley) panus ja sellest lähtuv BSD (Berkeley Software Distribution), AT&T kommertsversioonid (näiteks System V) ning hilisemad komerts- ja ülikoolipõhised variandid. Unixi ideed — modulaarne disain, lihtsate tööriistade kooslus ja tekstipõhine automatiseerimine — levisid laialdaselt ja mõjutasid paljusid hilisemaid operatsioonisüsteeme.
Põhifunktsioonid ja omadused
Unixi operatsioonisüsteem on mitme kasutaja ja mitme protsessoriga süsteem. See tähendab, et see võib samaaegselt käivitada mitut programmi ja teenida rohkem kui ühte kasutajat samal ajal. Unixi disain toetab tugevalt ka võrgutööd ja kaugjuurdepääsu ning sisaldab kõiki põhikomponente, mis tagavad stabiilse mitmeprotsessilise töö:
- protsesside haldus ja planneerimine,
- failisüsteem ja hierarhia (juur
/), - seadme- ja draiverihaldus,
- kasutaja- ja õiguste haldus,
- võrgu- ja teenuseprotsessid (daemonid).
Unixi üks tuntud põhimõtteid on "kõik on fail" — mitu süsteemi objekti (seadmed, puhvrid, protsesside vahelised ühendused) käsitletakse faililaadsete liidestena, mida saab lugeda ja kirjutada. See lihtsustab seadmete ja programmide vahelise suhtluse modelleerimist.
Unixi filosoofia ja tööriistad
Paljud Unixi ideed olid uued ja neid hakati laialdaselt kopeerima teistes süsteemides. Seetõttu räägitakse sageli Unixi filosoofiast, mis sisaldab ideid nagu:
- väikesed, hästi määratletud tööriistad, mida saab omavahel kombineerida,
- tekstipõhise liidese eelistamine lihtsaks automatiseerimiseks (skriptide kaudu),
- selged liidesed (standardiseeritud sisend/väljund),
- koodide ja tööriistade taaskasutus ning modulaarne ülesehitus.
Unixi puhul on oluline ka arvuti turvalisus, sest süsteemile võivad pääseda ligi paljud inimesed — nii lokaalselt kui ka üle võrgustiku. Selleks on Unixi põhilised vahendid kasutajakontode, rühmade, õiguste (lugemine, kirjutamine, täitmine) ja erikasutaja (root) halduse kujul. Levinud tööriistad ja kontseptsioonid on ka torud (pipes), suunamised (redirection), ning võimas tekstipõhine käsurea tööriistade komplekt (nt grep, awk, sed, find jne), mida sageli kasutatakse koos skriptimisega.
Käsurea ja skriptimine
Üks viis Unixi süsteemi kasutamiseks on käsurea liides. Kasutajad käivitavad käske ja programme, sisestades tekstimärke. Selle õppimine võtab aega, kuid see on väga võimas ja paindlik tööviis. Seda kasutavad endiselt paljud Unixi administraatorid ja arendajad. Neid käske käivitatakse shell'is, mis võib süsteemiti veidi muutuda (näiteks sh, bash, zsh). Shell võimaldab kirjutada skripte automatiseerimiseks, tööde ajastamiseks (cron) ja keerukate töövoogude loomiseks.
Graafiline kasutajaliides ja aknahaldus
Teine meetod Unixi-lahenduste kasutamiseks on graafiline kasutajaliides (GUI). X Window System (tuntud ka kui X11) on olnud väga levinud GUI alus Unixi süsteemides. X on graafilise liidese protokoll ja server, kuid ta ei paku iseenesest akende liigutamise või paigutuse haldamist — selleks on vaja aknahaldurit või täielikku töölaua keskkonda.
X Window Systemil on palju protokolle ja selle ökosüsteemile on saadaval tuhandeid rakendusi. X võimaldas rohelist ruumi teadus- ja tööstuslikeks rakendusteks ning ühendas selle traditsioonilise Unixi tekstipõhise töövooga.
Mõned populaarsed töölaua- ja aknahaldurid on järgmised:
Nagu enamik teisi graafilisi kasutajaliideseid, kasutavad need aknaid, dialoogiaknaid, toetavad arvutihiire kasutamist ja on loodud nii, et neid oleks lihtne kasutada. Viimastel aastatel on tekkinud ka uuemaid videojaotuse süsteeme (näiteks Wayland), mis püüavad lahendada X-i arhitektuurist tulenevaid piiranguid.
Variandid ja mõjud
Tänapäeval on palju operatsioonisüsteeme, mis sisaldavad Unixi ideid. Linux on üks neist süsteemidest, milles on palju Unixi ideid. Linux ei kasuta UNIXi koodi; ta jagab ideid, käskude nimesid ja mõningaid konventsioone. Seetõttu ei nimetata Linuxit tavaliselt otse "UNIXiks", vaid pigem "Unix-like".
Lisaks Linuxile on tuntud mitmed BSD-põhised süsteemid (FreeBSD, OpenBSD, NetBSD) ning kommertssüsteemid nagu Solaris, AIX ja HP-UX, mis kõik kannavad Unixi pärandit. Mõned süsteemid, näiteks Apple macOS (põhineb Darwinil ja BSD osadel), on ametlikult sertifitseeritud kui UNIX-standardile vastavad operatsioonisüsteemid.
Standardimine ja ühilduvus
Unixi poolt mõjutanud standardid, nagu POSIX, püüavad tagada programmide ja skriptide ühilduvuse erinevate Unixi ja Unixi-laadsete süsteemide vahel. POSIX kirjeldab palju standardseid programme, süsteemikõnesid ja käitumist, mis lihtsustab tarkvara liigutamist ühest süsteemist teise.
Turvalisus ja haldus
Unixi turvalisuse aluseks on kasutajakontode haldus, failisüsteemi õigused (omanik, rühm, ülejäänud kasutajad), protsessiõigused ja erikasutaja (root). Levinud tööriistad nagu sudo võimaldavad piiratud ajutist administraatoriõigust, mis aitab paremini hallata pääsu ja auditeerimist. Samuti on Unixi süsteemides tavapärased teenused logimiseks, turvapaigaldamiseks (paketihaldurid) ja võrgu jälgimiseks.
Tänapäevane kasutus ja tähtsus
Unixi ideed on väga mõjukad: paljud serverid, tööstus- ja teadusmasinad, pilveplatvormid ja arendusvahendid põhinevad Unixi-laadsetel süsteemidel. Paljud tarkvaraarenduse tööriistad, andmebaasid ja veebiserverid eelistavad Unixi-laadset keskkonda tänu selle stabiilsusele, modulaarsele ehitusele ja tugevale käsurea-ökosüsteemile.
X Window Systemi jaoks on saadaval tuhandeid programme. Saadaval on sellised programmid nagu tekstitöötlusprogrammid ja tabelarvutusprogrammid, sealhulgas tasuta ja avatud lähtekoodiga tarkvara, mis teeb Unixi keskkonnad paindlikuks ja kohandatavaks nii isiklike kui ka ettevõtte vajaduste jaoks.

