UNIX

**UNIX** – grupė operacinių sistemų, kilusių iš 1969–1970 sukurtos **UNICS** (apie 1970 m. pervadintos į *UNIX*) sistemos, skirtos PDP kompiuteriams.

Dabartinis Unix prekinio ženklo savininkas yra The Open Group. Tik sistemos, visiškai atitinkančios Single UNIX Specification, yra vadinamos „UNIX“ (kitos vadinamos „Unix šeimos“ arba Unix – like).

## Panaudojimas
UNIX yra plačiai naudojama ir serveriuose, ir kitos paskirties kompiuteriuose. Unix kliento/serverio programų modelis buvo labai svarbus kuriant Internetą.

## Savybės
Iš kitų OS *UNIX* išsiskiria visų pirma failų sistema bei procesų valdymu. Daugelį *UNIX* bruožų yra perėmusios ir kitos OS, pvz., DOS ir Microsoft Windows naudojama katalogų sistema yra perimta iš *UNIX*, o OpenVMS, nors turi visiškai kitas šaknis, yra net sertifikuota kaip *UNIX*. Vienas iš neįprastų *UNIX* bruožų – bendra (nerašyta) ideologija, teigianti, kad OS turi būti patogi ir aiški specialistams, tuo tarpu eiliniai vartotojai, norėdami naudotis šiomis sistemomis, turi mokytis, bet nereikalauti sistemos profanavimo.

### Failų sistema
Failų sistema *UNIX* tipo OS abstrahuoja ne tik priėjimą prie duomenų, bet ir daugelį OS funkcijų bei įrenginių, todėl didžiąją dalį OS leidžiamų veiksmų galima atlikti naudojantis standartinėmis teksto apdirbimo programomis. Naujesnėse *UNIX* versijose per failų sistemą galima pasiekti ir duomenis, susijusius su pačios OS veikimu, dirbančiais procesais ir t. t.

Pvz., prireikus, visą disko turinį (įskaitant jo failų sistemą) galima nuskaityti, atidarius failą */dev/fd0*, o garsinį dokumentą išklausyti, jį nukopijavus į */dev/dsp*. Daugelį sistemos parametrų galima skaityti ir reguliuoti, naudojantis failais, esančiais */proc/* kataloge.

### Procesų valdymas
*UNIX* turi gana netipišką procesų paleidimo metodą, nebūdingą daugumai kitų OS:
* fork() – funkcija sukuria einamojo proceso kopiją, kuri nuo motininio proceso skiriasi tik identifikatoriumi. Skirtingai nuo kitų C kalbai būdingų funkcijų, ši grąžina du rezultatus: vieną – į motininį procesą (sukurto proceso identifikatorių), kitą – į dukterinį procesą (nulį).
* exec() – negrąžina jokio rezultato, bet einamąjį procesą pakeičia į kitą, naujai sukurtą iš vykdomojo failo, kuris nurodytas šiai funkcijai.
* wait() – laukia, kol fork() sukurtas procesas pasibaigs, naudojant exit() funkciją, bei grąžina rezultatą, perduotą exit() funkcijai.
* exit() – baigia procesą ir grąžina rezultatą motininiam procesui.

## UNIX rūšys

Tradiciškai *UNIX* sistemos skirstomos į dvi šakas, nors paskutiniu metu ribos tarp šių šakų pranyko:
* System V (anksčiau vadinta AT&amp;T) istoriniu požiūriu yra tradicinė, kildinama tiesiogiai iš pirmųjų *UNIX* realizacijų.
* BSD formaliai gali būti laikoma pirmąja *UNIX* atšaka, sukurta Berklio Universitete.

* BSD
** FreeBSD – viena iš našiausių nemokamų *UNIX* sistemų.
** Mac OS X – Macintosh kompiuteriams skirta OS.
** NetBSD – itin geru perkeliamumu pasižyminti OS.
** OpenBSD – į maksimalų saugumą orientuota OS.
* System V
** AIX – IBM gaminama *UNIX*, skirta PowerPC kompiuteriams.
** HP-UX – Hewlett Packard gaminama *UNIX*, skirta PA-RISC ir Itanium architektūros kompiuteriams.
** IRIX – SGI vystyta *UNIX* sistema, skirta kompanijos MIPS kompiuteriams.
** Solaris – Sun Microsystems ir po jos įsigijimo Oracle kompanijos gaminama *UNIX*, skirta SPARC ir PC kompiuteriams.
** UNICOS – Cray gaminama *UNIX*, skirta įvairiems Cray superkompiuteriams.
* Linux – viena iš *UNIX* tipo realizacijų, oficialiai nelaikoma *UNIX* dėl ideologinių (teisinių ir rinkodarinių) priežasčių.

Daugelis kitų OS, tradiciškai nelaikomų *UNIX*, irgi yra įgijusios kai kurių *UNIX* bruožų, o kai kurios – net sertifikuotos, kaip *UNIX*. Kai kurios iš šių sistemų gali būti laikomos tipiškomis *UNIX*, tačiau neretai tiesiog nėra sertifikuojamos *UNIX* standartų atitikimui. Tarp sistemų, sertifikuotų vienam ar kitam *UNIX* standartui arba patyrusių stiprią *UNIX* įtaką, galima paminėti šias:
* BeOS
* QNX
* Windows NT
* OpenVMS
* z/OS

## Standartai
Egzistuoja keli pagrindiniai standartai, apibrėžiantys *UNIX*:
* POSIX – pirmasis, 1985 sukurtas *UNIX* tipo sistemas apibrėžiantis standartas
** 1003.1 – 1990 patvirtintas standartas, apibrėžiantis bibliotekines funkcijas ir API
** 1003.2 – 1992 patvirtintas standartas, apibrėžiantis vartotojo aplinką
** 1003.3 – 1993 patvirtintas standartas, apibrėžiantis darbą realiame laike
* IEEE 1170 – *UNIX* API apibrėžiantis standartas
* *Single UNIX Specification* – grupė standartų, paremtų IEEE 1170 ir POSIX
** UNIX 93 – *UNIX* sistemos, implementuotos iki išleidžiant *Single UNIX Specification*
** UNIX 95 – *UNIX* sistemos, atitinkančios *Single UNIX Specification* pirmąją versiją.
** UNIX 98 – *UNIX* sistemos, atitinkančios *Single UNIX Specification* antrąją versiją.
** UNIX 03 – *UNIX* sistemos, atitinkančios *Single UNIX Specification* trečiąją versiją.
* System V Interface Definition
* ANSI C – kalbos standartas, apibrėžiantis daugelį standartinių *UNIX* būdingų funkcijų.

## Istorija
Pirmąją *UNICS* realizaciją, skirtą PDP-7 kompiuteriui, 1969 sukūrė jauni AT&amp;T programuotojai Ken Thompson ir Dennis Ritchie, jau iki tol dalyvavę keliuose stambiuose kompiliatorių ir OS projektuose. Labai didelę įtaką pirmosioms *UNIX* versijoms padarė tuo metu kurta MULTICS sistema, kurioje buvo išspręstos daugelis abstrakcijos ir bendro vartotojų darbo problemų. Priešpastatydami savo nesudėtingą, vartotojus menkai kontroliuojančią sistemą MULTICS sistemai, Ken Thompson ir Dennis Ritchie ją pavadino *UNICS*. Po kiek laiko pavadinimas pakito ir pavirto į *UNIX*.

Tobulinant pirmąsias *UNIX* versijas, buvo sukurta C kalba, kuri buvo skirta specialiai paprastesniam *UNIX* programavimui. Perrašius pagrindines *UNIX* dalis šia kalba, *UNIX* tapo lankstesne, lengviau perkeliama operacine sistema. Dėl patogaus automatizavimo ši sistema buvo pradėta naudoti, rengiant spaudai AT&amp;T dokumentus, o vėliau su pradiniais tekstais perduota į Berklio Universitetą, kur labai greitai išpopuliarėjo, tarp OS kūrimą studijuojančių studentų.

Nuo 8-ojo dešimtmečio pabaigos *UNIX* ėmė sparčiai plisti ir tarp kitų firmų, atsirado daugelis komercinių *UNIX* realizacijų, tuo pat metu išsiskyrė dvi pagrindinės UNIX šakos: viena – paremta AT&amp;T naudotomis *UNIX* versijomis, kita – paremta žymiai modernesnėmis, labiau abstrahuotomis *UNIX* versijomis, sukurtomis Berklio Universitete. Tačiau per kitus 15-20 metų šios dvi *UNIX* kryptys perimdavo viena iš kitos visas žymesnes naujoves, todėl ilgainiui supanašėjo.

Tarp aštuntojo ir devintojo dešimtmečių įvairios firmos mėgino paimti į savo rankas UNIX rinką naudodamos prirakinimo strategiją (vartotojas negali keisti mūsų į konkurentą, nes mūsų ir konkurento UNIX, kad ir panaši, nesuderinama). Tuo laiku dėl dominavimo grūmėsi X/Open, System V Release 4, OSF/1 ir UNIX International, visos daugiau ar mažiau tarpusavy nesuderinamos. Šis tarpsnis literatūroje populiariai vadinamas „UNIX karais“. Dažniausiai teigiama, kad „karai“ pakenkė UNIX populiarumui ir sąlygojo Microsoft Windows įsigalėjimo pradžią. Vėliau visas UNIX nuosavybės teises per tarpines grandis sukaupė Open Group, kurios „vieninga UNIX specifikacija“ (angl. Single UNIX Specification – SUS) šiuo metu ir yra vieningas UNIX standartas.

## Taip pat skaitykite
* CORBA
* X Window
* C (kalba)
* Linux
* POSIX
* Motif
* LDAP
* CDE

## Šaltiniai