UNIX

**UNIX** (; UNIX — The Open Group kompaniyasining roʻyxatdan oʻtgan savdo belgisidir) — portativ, koʻp vazifali va koʻp foydalanuvchili operatsion tizimlar oilasi boʻlib, ular 1970-yillarda Ken Tompson, Dennis Richi va boshqalar tomonidan Bell labaratoriyasi (*Bell Labs*)da ishlab chiqilgan original AT&T Unix loyihasi gʻoyalariga asoslangan. Unix tizimining yuzaga kelishida Multics operatsion tizimining taʼsiri katta boʻlgan.

Unix turkumiga kiruvchi operatsion tizimlar modulli konstruksiya bilan ajralib turadi, bunda har bir vazifa alohida yordamchi dastur tomonidan bajariladi, oʻzaro aloqa yagona fayl tizimi orqali amalga oshiriladi va utilitlar bilan ishlash uchun buyruqlar satri qoʻllanadi.

Unix gʻoyasi kompyuter operatsion tizimlarining rivojlanishiga katta taʼsir koʻrsatdi. Unix tizimlari hozirda tarixiy eng muhim operatsion tizimlardan biri sifatida tan olingan.

## Umumiy maʼlumot
Birinchi Unix tizimi AT&Tʼning Bell Labs boʻlimi tomonidan ishlab chiqilgan. Oʻshandan beri koʻp sonli turli xil Unix tizimlari tuzildi. Qonuniy jihatdan, faqat „Yagona UNIX spesifikatsiyasiga muvofiqligi“ (*Single UNIX Specification*) uchun sertifikatlangan operatsion tizimlar „UNIX“ deb nomlanish huquqiga ega. Qolganlari, oʻxshash tushuncha va texnologiyalardan foydalansalar ham, Unixʼsimon operatsion tizimlar (inglizcha *Unix-like*) deb ataladi.

### Oʻziga xosligi
Unixʼsimon tizimlarning boshqa operatsion tizimlardan asosiy farqi shundaki, ular dastlab koʻp foydalanuvchili, koʻp vazifali tizim hisoblanishidadir. Unixʼda koʻp odamlar bir vaqtning oʻzida har biri oʻz terminali (vazifalarni bajarish uchun buyruqlar berish vositasi)da ishlashi mumkin, shu bilan birga ularning har biri ushbu kompyuterning resurslaridan foydalanadigan koʻplab turli xil hisoblash jarayonlarini amalga oshirishi mumkin.

Unixʼning ikkinchi ulkan afzalligi uning koʻp platformaliligidir. Tizimning yadrosi deyarli har qanday mikroprotsessorga osongina moslasha oladigan tarzda tuzilgan.

Unix boshqa muhim xususiyatlarga ega:
* tizimni sozlash va boshqarish uchun oddiy matnli fayllardan foydalanish;
* buyruq satridan ishga tushirilgan yordamchi dasturlardan keng foydalanish;
* virtual qurilma — terminal orqali foydalanuvchi bilan oʻzaro aloqani taʼminlash;
* jismiy va virtual qurilmalarni va jarayonlararo aloqaning ayrim vositalarini fayllar shaklida taqdim etish;
* har biri bitta vazifani bajaradigan bir nechta dastur konveyerlarini qoʻllash.

### Tizimdan foydalanish
Hozirgi vaqtda Unix tizimlari asosan serverlar, shuningdek, turli qurilmalar, jumladan smartfonlar uchun oʻrnatilgan tizimlar orasida keng tarqalgan. Unix tizimlari superkompyuterlarda ham qoʻllanilmoqda, xususan, Linux TOP500 superkompyuterlarida 100 foiz Unix tizimida ishlamoqda.

Ish stantsiyalari va uyda foydalanish uchun operatsion tizimlar orasida Unix va Unixʼsimon operatsion tizimlar Microsoft Windowsʼdan keyin ikkinchi (Mac OS), uchinchi (GNU/Linux)dan keyingi oʻrinlarda turadi.

## Tarixi
### Oʻtmishdoshlari

1957-yilda Bell laboratoriyasida ichki ehtiyojlar uchun operatsion tizim ishlab chiqish boʻyicha ish boshlandi. BESYS tizimi Viktor Visotskiy boshchiligida ishlab chiqilgan. Keyinchalik u Multics loyihasiga rahbarlik qildi, keyin esa Bell Labs axborot boʻlimi rahbari boʻldi.

1964-yilda uchinchi avlod kompyuterlari paydo boʻldi, ular uchun BESYS imkoniyatlari endi mos emas edi. Visotskiy va uning hamkasblari yangi operatsion tizimini ishlab chiqishga emas, balki General Electric va MITʼning qoʻshma loyihasi Multicsʼga eʼtibor qaratishga qaror qilishdi. Bell Labsʼni oʻz ichiga olgan telekommunikatsiya giganti AT&T loyihani sezilarli darajada qoʻllab-quvvatladi, biroq 1969-yilda loyihadan moliyaviy foyda keltirmagani uchun undan voz kechdi.

### Birinchi Unix tizimlari

Unix dastlab 1960-yillarning oxirida Bell Labs xodimlari, xususan, Ken Tompson, Dennis Ritchi va Duglas Makilroy tomonidan ishlab chiqilgan.

1969-yilda Ken Tompson 70-yillarning minikompyuterlar uchun Multics gʻoyasini amalga oshirish uchun yangi operatsion tizimning birinchi versiyasini avval boshida oddiyroq apparat (DEC PDP-7)da yozdi. Ushbu versiya 1-nashr (*Edition 1*) deb nomlangan va birinchi rasmiy versiya edi. Barcha Unix ilovalarining tizim vaqti 1970-yil 1-yanvardan boshlab hisoblanadi.

Tizimning birinchi nomi UNICS sifatida qisqartirilgan *Uniplexed Information and Computing Service* edi. Bu nom 1970-yilda Multicsga oʻxshab berilgan. Ammo oxir-oqibat operatsion tizim Unix nomi bilan mashhur boʻldi.

Unix tizimining birinchi versiyalari assembler tilida yozilgan va oʻrnatilgan yuqori darajali kompilyatorga ega emas edi. Taxminan 1969-yilda Ken Tompson Dennis Ritchi yordamida Bi (B) tilini ishlab chiqdi va tadbiq etdi. Bu til 1966-yilda ishlab chiqilgan BCPL tilining soddalashtirilgan (minikompyuterlarda amalga oshirish uchun) versiyasi edi. Bi, BCPL kabi, talqin qilingan til edi. 1972-yilda Unixʼning Bi tilida qayta yozilgan ikkinchi nashri chiqdi. 1969—1973-yillarda Bi asosida Si (C) deb nomlangan kompilyatsiya qilingan til ishlab chiqilgan.

1973-yilda Unixʼning uchinchi nashri oʻrnatilgan C kompilyatori bilan chiqdi. Oʻsha yilning 15-oktyabrida tizimning toʻrtinchi nashri yadrosi C tilida qayta yozildi (Multics tizimi ruhida, shuningdek, PL/1 yuqori darajadagi tilda yozilgan). 1975-yilda beshinchi nashri C tilida butunlay qayta yozib chiqildi.

1974-yildan beri Unix universitetlar va akademik muassasalarga tarqaldi. 1975-yilda Bell laboratoriyalaridan tashqarida ishlab chiqilgan yangi versiyalar paydo boʻldi va tizimning mashhurligi ortdi. Shuningdek, 1975-yilda Bell labaratoriyasi oltinchi nashrini chiqardi.

1978-yilga kelib, tizim 600 dan ortiq mashinalarga, birinchi navbatda, universitetlarga oʻrnatildi. *Yettinchi nashr* Unixning yagona soʻnggi versiyasi edi. Aynan u yerda zamonaviyga yaqin buyruqlar satri tarjimoni boʻlgan „Bourne shell“ mavjud edi.

1980-yillarning boshida Bell labaratoriyasiga egalik qilgan AT&T Unix qiymatini tan oldi va operatsion tizimning tijorat versiyasini yaratishni boshladi. 1982-yilda sotuvga chiqarilgan ushbu versiya *UNIX System III* deb nomlandi va tizimning yettinchi versiyasiga asoslangan edi.

Biroq, 1956-yilda AQSh hukumati tomonidan kiritilgan taqiq tufayli kompaniya Unixʼni tijorat mahsuloti sifatida ishlab chiqishni bevosita boshlay olmadi. Adliya departamenti AT&T kompaniyasini telefon va telegraf tarmoqlari va uskunalari bilan bogʻliq boʻlmagan faoliyat bilan shugʻullanishni taqiqlovchi shartnoma imzolashga majbur qildi. Unixʼni hali ham tijorat mahsulotlari darajasiga oʻtkazish imkoniyatiga ega boʻlish uchun kompaniya operatsion tizimning dastlabki kodini baʼzi oliy oʻquv yurtlariga berdi va kodni juda liberal shartlar ostida litsenziyaladi. 1973-yil dekabr oyida Berkli universiteti birinchilardan boʻlib manba kodini oldi.

1978-yildan beri Berkli universitetida yaratilgan *BSD Unix* oʻz tarixini boshlaydi. Uning birinchi versiyasi Unixʼning oltinchi nashriga asoslangan edi. 1979-yilda yettinchi nashrga asoslangan *3BSD* deb nomlangan yangi versiya chiqdi. BSD virtual xotira va talab boʻyicha sahifalarni joylash kabi foydali xususiyatlarni qoʻllab-quvvatladi. BSD Bill Joy tomonidan yozilgan.

Unix tizimida boʻlinishning muhim sababi 1980-yilda TCP/IP protokoli stekining amalga oshirilishi edi. Shu vaqtgacha Unixʼda mashinadan mashinaga aloqa oʻzining boshlangʻich bosqichida edi — aloqaning eng muhim usuli UUCP (fayllarni bir Unix tizimidan boshqasiga koʻchirish vositasi, dastlab modemlar yordamida telefon tarmoqlari orqali ishlagan).

Tarmoq ilovalari uchun ikkita dasturlash interfeysi taklif qilingan: Berkley soketlari va TLI (Transport Layer Interface).

### Unixʼsimon bepul operatsion tizimlar
1983-yilda Richard Stollman GNU loyihasini eʼlon qildi, bu asl manba kodidan foydalanmasdan, noldan bepul Unixʼsimon operatsion tizimni yaratishga urinish edi. Ushbu loyiha doirasida ishlab chiqilgan dasturiy taʼminotning aksariyati — GNU asboblar zanjiri, Glibc (C standart kutubxonasi) va Coreutils
boshqa bepul operatsion tizimlarda asosiy rol oʻynaydi. Biroq, GNU vazifalarini toʻliq bajarish uchun zarur boʻlgan Unix yadrosi oʻrnini yaratish boʻyicha ish juda sekin davom etdi. Hozirda GNU Hurd — Mach mikroyadrosi arxitekturasi asosida zamonaviy yadro yaratishga urinish hali tugallanmagan.

1991-yilda Linus Torvalds Linux yadrosini yozish uchun yordamchilarni jalb qilganida, GNU loyihasi tomonidan ishlab chiqilgan vositalardan foydalanish aniq tanlov edi. GNU operatsion tizimi va Linux yadrosi birgalikda GNU/Linux deb nomlanuvchi operatsion tizimni tashkil qiladi. Yadro, GNU yordam dasturlari va qoʻshimcha dasturiy taʼminotni oʻz ichiga olgan ushbu tizimning tarqatilishi (masalan, Red Hat va Debian) ham havaskorlar, ham bizneslar orasida mashhur boʻldi.

1992-yil boshida Networking Release 2 asosida 386/BSD distributivi chiqarildi. UNIX Systems Laboratories BSDIʼga, keyin esa Berkli universitetiga Unix fayllarini manba va ikkilik formatlarda deyarli hech narsa evaziga tarqatishga ruxsat bergani uchun sudga murojaat qildi. Butun 1992-yil USL uchun sud ishlarida sezilarli muvaffaqiyat keltirmadi, ammo Kaliforniya universitetining qarshi daʼvosi paydo boʻldi. 1993-yil boshida 386/BSD distributivi oʻz nomini NetBSDʼga oʻzgartirdi. 1993-yil dekabr oyida oddiy foydalanuvchilarga moʻljallangan yana bir distributor FreeBSD paydo boʻldi. 1993-yilning yozida Novell USLʼni sotib olgandan soʻng, BSD kodlari holatini hal qilish boʻyicha muzokaralar boshlandi. 1994-yil yanvariga kelib, CSRG va Novell 18 000 Tarmoq relizi 2 dan uchta faylni olib tashlashga kelishib oldilar, baʼzi fayllar qayta koʻrib chiqilishi kerak edi va universitet 70 ga yaqin faylga USL mualliflik huquqi maʼlumotlarini qoʻshishi kerak edi.

1994-yil iyun oyida 4.4BSD-Liteʼning „toza“ versiyasi chiqdi. Shu vaqtdan boshlab, BSDI, NetBSD va FreeBSD guruhlari oʻzlarining tizim versiyalarini toza 4.4BSD-Lite tizimi bilan qayta sinxronlashtirishlari kerak edi. Shunday qilib, USL daʼvosi topshirilgandan keyin uch yil ichida amalga oshirilgan barcha ishlanmalar mualliflik huquqining buzilishi va uchinchi tomon kodidan foydalanish uchun koʻrib chiqilishi kerak edi. Yadro va operatsion muhitning muhim komponentlarini qayta yozib chiqildi. Keyinchalik ular mustaqil OpenBSD, TrustedBSD va DragonFlyBSD loyihalariga ajralishdi.

1997-yilda Apple oʻzining yangi operatsion tizimi uchun poydevor qidirdi va NeXT tomonidan ishlab chiqilgan bepul yadroli NEXTSTEP operatsion tizimini tanladi.

2000-yilda Apple Inc. ochiq kodli POSIXʼga mos keladigan Darvin operatsion tizimini chiqaradi. U Apple tomonidan yozilgan kodni NeXTSTEP, FreeBSD va boshqa bepul loyihalardan olingan kod bilan birlashtiradi. Darvin — bu Mac OS X va Apple iOS tomonidan qoʻllanadigan asosiy komponentlar toʻplamidir. U Unified UNIX Spetsifikatsiyasining 3-versiyasi (SUSv3) va POSIX ilovalari va yordamchi dasturlari bilan mos keladi.

2005-yil 14-iyunda Solaris operatsion tizimi ochiq kodli edi. Ushbu loyiha, xuddi uning asosida yaratilgan operatsion tizim kabi, OpenSolaris nomini oldi. 17-iyun kuni, kod topilganidan uch kun oʻtgach, SchilliX distributivi tuzildi. 2008-yil may oyida OpenSolaris 2008.05 uchun birinchi rasmiy distributiv chiqdi. OpenSolarisʼga asoslangan oʻndan ortiq distributivlar mavjud, ulardan eng mashhurlari BeleniX va Nexenta OSdir.

GNU/Linux va BSD oilasi hozirda tijoriy Unix tizimlaridan bozor ulushini tez surʼatda qoʻlga kiritmoqda va bir vaqtning oʻzida oxirgi foydalanuvchi ish stollariga, mobil va oʻrnatilgan tizimlarga kirib bormoqda.

### Unixʼsimon pullik operatsion tizimlar
AT&T boʻlingandan soʻng, Unix savdo belgisi va asl manba kodiga boʻlgan huquqlar egalarini bir necha bor oʻzgartirdi, xususan, ular uzoq vaqt davomida Novellga tegishli edi. 1993-yilda Novell savdo belgisi va dasturiy taʼminotni sertifikatlash huquqlarini X/Open konsorsiumiga topshirdi, keyin esa Open Software Foundation bilan birlashib, The Open Group tashkil qilindi. U yetakchi kompyuter korporatsiyalari va davlat tashkilotlarini, jumladan IBM, Hewlett-Packard, Sun, NASA va boshqalarni birlashtiradi. Konsorsium operatsion tizimlar uchun ochiq standartlarni ishlab chiqadi, ulardan eng muhimi, avval POSIX nomi bilan tanilgan Yagona UNIX Spetsifikatsiyasi. Ochiq guruh nuqtai nazaridan, UNIX nomini faqat Yagona UNIX spetsifikatsiyasiga sertifikatlangan tizimlar olishi mumkin.

1995-yilda Novell Santa Cruz Operationruen kompaniyasiga mavjud litsenziyalar va tizim Vni yanada rivojlantirish huquqlarini sotdi. 2000-yilda Santa Cruz Operation oʻzining Unix biznesini Kalderaga sotdi, uning nomi SCO Group deb oʻzgartirildi.

### Unix tizining operatsion tizimlar evolyutsiyasiga taʼsiri
Unix tizimlari katta tarixiy ahamiyatga ega, chunki ular bugungi kunda OT hamda dasturiy taʼminot sohasidagi baʼzi mashhur tushunchalar va yondashuvlarning tarqalishiga yordam berdi. Shuningdek, Unix tizimlarining rivojlanishi asnosida Si (C) tili yaratildi.

Multics singari, Unix ham assembler tilida emas, balki yuqori darajali tilda yozilgan (oʻsha paytda bu til dominant edi).

Unda oldingi operatsion tizimlar bilan solishtirganda sezilarli darajada soddalashtirilgan fayl modeli mavjud edi. Fayl tizimi xizmatlar va qurilmalarni (masalan, printerlar, terminallar va qattiq disklar) oʻz ichiga olgan va ular uchun bir xil koʻrinadigan interfeys taʼminlagan edi, ammo qurilmalar bilan ishlash uchun qoʻshimcha mexanizmlar (masalan, IOCTL va kirish bitlari) oddiy baytga toʻgʻri kelmasdi.

Unix Multicsʼning oʻzboshimchalik chuqurligi bilan ierarxik fayl tizimi haqidagi gʻoyasini ommalashtirdi. Oʻsha paytdagi boshqa operatsion tizimlar (jumladan, DOS) disk maydonini kataloglar yoki boʻlimlarga boʻlish imkonini berdi, lekin joylashtirish darajalari soni aniqlangan va koʻpincha faqat bitta joylashtirish darajasi mavjud edi. Keyinchalik, barcha asosiy xususiy operatsion tizimlar Multics-dan olingan rekursiv pastki kataloglarni yaratish qobiliyatiga ega boʻldi. Buyruqlar satri interpretatori foydalanuvchi dasturlaridan biriga aylangani va alohida dasturlarning qoʻshimcha buyruqlar vazifasini bajarishi Unix tomonidan ommalashtirilgan yana bir Multics innovatsiyasidir. Unix qobiq tili foydalanuvchi tomonidan interaktiv ish uchun ham, skript yozish uchun ham qoʻllanadi, yaʼni, masalan, IBM JCL tizimidagi kabi vazifalarni tavsiflash uchun alohida til mavjud emas. Qobiq va operatsion tizim buyruqlari oddiy dasturlar boʻlgani uchun foydalanuvchi ularni oʻz xohishiga koʻra tanlashi yoki hatto oʻz qobigʻini yozishi mumkin. Va nihoyat, yadroni qayta kompilyatsiya qilmasdan tizimga yangi buyruqlar qoʻshilishi mumkin. Maʼlumotlarni ketma-ket qayta ishlaydigan dasturlar zanjirini yaratishning yangi Unix buyruq qatori maʼlumotlarni parallel qayta ishlashdan foydalanishni osonlashtirdi.

Unixʼning asosiy xususiyatlari matnni kiritish va uni eʼlon qilishga toʻliq eʼtibor qaratish hamda soʻzining hajmi sakkiz bitga koʻpaytirilishini taxmin qilish edi. Dastlab Unixʼda ikkilik muharrirlari ham yoʻqligi bois tizim matnli buyruqlar yordamida toʻliq moslangan edi. Kirish/chiqarishning eng katta va eng kichik birligi matn bayti boʻlib, Unix I/Uʼni boshqa operatsion tizimlarning rekordga yoʻnaltirilgan kiritish-chiqarish tizimidan butunlay ajratib turdi.

Unix muntazam iboralarning keng qoʻllanilishiga hissa qoʻshdi, ular birinchi marta „ed“ nomli Unix matn muharririda amalga oshirildi. Unix dasturlariga taqdim etilgan imkoniyatlar standart operatsion tizim interfeyslari (POSIX)ning asosiga aylandi.

Tizimli dasturlashda keng qoʻllanadigan, dastlab Unix ishlab chiqish uchun yaratilgan C tili mashhurligi boʻyicha Unix tilidan oʻzib ketdi. C tili dasturchiga maʼlum bir dasturlash uslubini yuklashga urinmagan birinchi „tolerant“ til edi. C protsessorning barcha imkoniyatlariga kirishni taʼminlovchi birinchi yuqori darajadagi til boʻldi, masalan, havolalar, jadvallar, bitni siljitish (bitlarni soʻzlarga oʻtkazish), oʻsish va hokazo.

Unixʼsimon operatsion tizimlarning eng mashhur namunalaridan baʼzilari macOS, Solaris, BSD va NeXTSTEP hisoblanadi.

## Unix tizimining standart buyruqlari
* Fayllar va jildlarni tuzish hamda kezish buyruqlari: touch, ls, mv, rm, cp, ln, pwd, cd, mkdir, rmdir, find, du.
* Fayllarni koʻrish va tahrir qilish buyruqlari: nano, more, less, ed, ex, vi, emacs.
* Matnlarga ishlov berish buyruqlari: echo, cat, grep, sort, uniq, sed, awk, tee, head, tail, cut, tr, split, printf.
* Fayllarni solishtirish buyruqlari: comm, cmp, diff, patch.
* Turli tuman buyruqlar interpretarori buyruqlari: yes, test, xargs, expr.
* Tizim boshqaruviga oid buyruqlar: chmod, chgrp, chown, ps, su, w, who, df, mount, umount.
* Aloqaga oid buyruqlar: mail, telnet, ftp, finger, rsh, ssh.
* Buyruqlar qobigʻi buyruqlari: sh, bash, csh, ksh, tcsh, zsh.
* Manba va obyekt kodlari bilan ishlash buyruqlari: cc, gcc, ld, nm, yacc, bison, lex, flex, ar, ranlib, make.
* Maʼlumotni siqish va arxivlash buyruqlari: compress, uncompress, gzip, gunzip, tar.
* Ikkilik fayllar bilan ishlash buyruqlar: od, strings.

## Manbalar

## Havolalar