Skip to content

Linux: Dunyoni boshqarayotgan tizim. 2-qism.

1970-yillarning oxiriga kelib Unix Bell Labs laboratoriyalaridagi tajriba loyihasidan ancha uzoqlashib ketgan edi. Unix endi faqat bir kompaniya ichida ishlatiladigan OT emas edi. U universitetlarga kirib borgan minglab talabalar va tadqiqotchilar tomonidan o'rganilayotgan platformaga aylangan edi. Unix muvaffaqiyatining sababi faqat texnik ustunlik emas edi. Aslida u o'sha davrda shakllanayotgan dasturchilar extiyojlariga juda mos tushgandi.

Ko'plab muhandislar va tadqiqotchilar bilimlarni erkin almashish kerak deb hisoblashardi. Dasturiy ta'minot ko'pincha ilmiy maqolalar kabi qaralardi. Biror yangi texnologiya ishlab chiqilsa, boshqalar ham undan foydalanishi va uni yaxshilashi tabiiy hol deb hisoblanardi. Unix aynan shunday muhitda rivojlandi. AT&T Unixni universitetlarga tarqatayotganda uning manba kodi ham birga berilar edi. Bugungi dasturchilar uchun bu odatiy tuyulishi mumkin:

  • GitHub ochiladi.
  • Kod ko'riladi.
  • O'zgartiriladi.
  • Pull Request yuboriladi.

Lekin o'sha davr uchun bu juda noyob imkoniyat edi. Talabalar OTning ichki qismlarini o'rganishlari mumkin edi. Ular nafaqat Unixdan foydalanishardi. Uni qanday ishlashini ham ko'rishardi. Aynan shu sababli Unix atrofida kuchli muhandislik madaniyati shakllandi. Bu madaniyat keyinchalik Linux hamjamiyatida ham davom etadi. Unix eng katta ta'sir ko'rsatgan joylardan biri Kaliforniyadagi Berkeley universiteti edi. Bugungi kunda Berkeley ko'plab texnologik innovatsiyalar bilan mashhur. Lekin 1970-yillarda ham u kompyuter fanlarining eng muhim markazlaridan biri hisoblanardi. Universitet talabalari va professorlari Unix kodini o'rganishni boshlashdi. Ular o'zlariga kerak bo'lgan imkoniyatlarni qo'sha boshlashdi.

Xatolarni tuzatishdi. Yangi vositalar yaratishdi. Natijada Unixning yangi versiyasi paydo bo'ldi. Bu versiya BSD deb nomlandi. BSD — Berkeley Software Distribution degan ma'noni anglatardi. Dastlab BSD faqat qo'shimcha paket sifatida tarqatilgan. Lekin vaqt o'tishi bilan u alohida Unix oilasiga aylandi. Unix tarixida BSDning o'rni juda muhim. Sababi bugungi internetning katta qismi aynan BSD orqali shakllangan. Buni tushunish uchun o'sha davr internetiga nazar tashlash kerak. Aslida internet bugungi ko'rinishida birdaniga paydo bo'lmagan.

1970 va 1980-yillarda turli tarmoqlar mavjud edi. Har biri o'z protokollaridan foydalanardi. Bir tarmoqdagi kompyuter boshqa tarmoq bilan muloqot qila olmasdi. Bu hozirgi dunyoda har bir telefon o'z internetiga ega bo'lishiga o'xshardi. Bunday holatda global tarmoq qurishning iloji yo'q edi. Shu paytda TCP/IP protokollari paydo bo'ldi. TCP/IP turli kompyuterlarni yagona tarmoq orqali bog'lash imkonini berardi. Bugungi internetning asosi ham aynan shu protokollardir. 1980-yillarda BSD jamoasi TCP/IPni Unix tizimiga integratsiya qildi. Bu qaror tarixiy qaror edi. Chunki internet rivojlanayotgan paytda eng yaxshi tarmoq imkoniyatlariga ega OTlardan biri BSD edi.

Ko'plab universitetlar va tadqiqot markazlari BSD ishlata boshlashdi. Internet texnologiyalarining dastlabki rivojlanishida BSD juda katta rol o'ynadi. Bugungi Linux serverlarida ishlatilayotgan ko'plab tarmoq tushunchalari o'sha davrdagi BSD tajribalaridan kelib chiqqan. BSD nafaqat internet rivojlanishiga ta'sir qildi. U dasturchilar madaniyatiga ham katta ta'sir ko'rsatdi. Unix endi bir markazdan boshqariladigan loyiha emas edi. Turli guruhlar o'z ehtiyojlariga mos Unix versiyalarini yaratishni boshlashdi. Bu bir tomondan innovatsiyalarni tezlashtirdi. Ikkinchi tomondan esa yangi muammolarni keltirib chiqardi.

1980-yillarning o'rtalariga kelib deyarli har bir yirik texnologik kompaniya o'z Unix versiyasiga ega edi. IBM o'zining AIX tizimini yaratdi. Sun Microsystems Solaris ustida ishlardi. Hewlett-Packard HP-UX tizimini ishlab chiqardi. Silicon Graphics IRIX esa tizimini yaratdi. Har bir kompaniya Unixni o'z apparat platformalariga moslashtirardi.

Natijada Unix oilasi tobora parchalanib borardi. Bir tizimda ishlaydigan dastur boshqa Unix tizimida ishlamasligi mumkin edi. Dasturchilar har xil standartlar bilan ishlashga majbur bo'lishardi. Bu davr keyinchalik "Unix Wars" — Unix urushlari nomi bilan mashhur bo'lib ketadi. Texnik jihatdan hammasi Unix edi. Lekin amalda ular bir-biridan tobora uzoqlashib borayotgan edi. Aynan shu davrda kompyuter tarixidagi eng ta'sirli shaxslardan biri sahnaga chiqadi. Uning ismi Richard Stallman edi. Stallman MIT laboratoriyalarida ishlardi.

U dastlabki hacker madaniyatining faol ishtirokchilaridan biri edi. Bu yerda "hacker" so'zi bugungi ommaviy axborot vositalaridagi ma'noda emas. O'sha davrda hacker deganda texnologiyaga qiziquvchi, tizimlarni chuqur tushunadigan va ularni yaxshilashga harakat qiladigan muhandis tushunilgan. Stallman shunday muhitda ishlagan. U dasturiy ta'minot almashish odatiy hol bo'lgan davrni ko'rgan edi. Lekin 1980-yillarga kelib vaziyat o'zgara boshladi. Kompaniyalar dasturiy ta'minotni yopiq qilishni boshladilar. Manba kodlari yashirila boshlandi. Litsenziyalar qat'iylashdi.

Dasturchilar bir-biriga kod bera olmay qolishdi. Bu Stallmanni jiddiy tashvishga soldi. Uning fikricha, dasturiy ta'minot foydalanuvchilar ustidan nazorat o'rnatmasligi kerak edi. Aksincha, foydalanuvchilar dastur ustidan nazoratga ega bo'lishlari kerak edi. 1983-yilda u tarixiy qaror qabul qildi. U yangi loyiha boshlashini e'lon qildi. Loyihaning nomi GNU edi. GNU qisqartmasi qiziqarli tarzda tanlangan. GNU's Not Unix. Ya'ni GNU - Unix emas. Bu dasturchilar orasida mashhur bo'lgan rekursiv qisqartmalardan biri edi. Lekin nom ortida juda jiddiy maqsad yotardi. Stallman Unixga o'xshash, lekin butunlay erkin OT yaratmoqchi edi. Uning nazarida foydalanuvchi to'rtta asosiy erkinlikka ega bo'lishi kerak edi:

  1. Dasturdan foydalanish erkinligi.
  2. Dasturni o'rganish erkinligi.
  3. Dasturni o'zgartirish erkinligi.
  4. Dasturni boshqalar bilan ulashish erkinligi.

Bugungi ochiq manba dunyosining katta qismi aynan shu g'oyalarga tayanadi. GNU loyihasi tez rivojlana boshladi. Ko'plab dasturchilar unga qo'shildi. Bash shell yaratildi. GCC kompilyatori yaratildi. Debuggerlar yaratildi. Kutubxonalar yaratildi. Fayl utilitalari yaratildi. OT uchun kerak bo'lgan deyarli barcha komponentlar tayyor bo'ldi. Lekin muammo bor edi. OTning yuragi hali ham yo'q edi. Kernel. Kernel OTning eng muhim qismi hisoblanadi. U apparat va dasturlar o'rtasidagi vositachi vazifasini bajaradi. Xotirani boshqaradi. Jarayonlarni boshqaradi. Qurilmalar bilan ishlaydi. GNU loyihasi Hurd nomli kernel ustida ishlayotgan edi. Ammo loyiha juda sekin rivojlanardi. Bir necha yil o'tdi. Keyin yana bir necha yil. Kernel hali ham tayyor emas edi. O'sha paytda hech kim bilmasdi. Lekin dunyoning boshqa burchagida bir talaba yaqin kelajakda bu muammoni hal qilib beradi. U hozircha faqat o'qishni davom ettirayotgan edi. U MINIX nomli kichik Unix-simon tizim bilan tajribalar o'tkazayotgan edi. Uning ismi Linus Torvalds edi.

1980-yillarning oxiriga kelib kompyuter dunyosi qiziqarli holatga kelib qolgan edi. Bir tomonda milliardlab dollar investitsiya qilayotgan yirik kompaniyalar bor edi. IBM, Sun Microsystems, HP va boshqa gigantlar o'z Unix tizimlarini rivojlantirish bilan band edi. Ikkinchi tomonda esa Richard Stallman va GNU harakati erkin operatsion tizim yaratishga harakat qilayotgan edi. Lekin bu ikki dunyo orasida yana bir loyiha mavjud edi. Bu loyiha na katta korporatsiyaga, na katta hamjamiyatga tegishli edi. U universitet auditoriyalari uchun yaratilgan edi. Loyihaning nomi MINIX edi.

MINIXni Niderlandiyalik kompyuter olimi va professor Andrew S. Tanenbaum ishlab chiqgan edi. Tanenbaum operatsion tizimlar bo'yicha talabalarni o'qitardi. U bir muammoga duch kelgan edi. Talabalar operatsion tizimlar nazariyasini o'rganishardi, lekin amalda tizim ichida nima sodir bo'layotganini ko'ra olishmasdi. Unix mavjud edi. Lekin uning kod bazasi tobora kattalashib borayotgan edi. Ko'plab Unix versiyalari tijorat mahsulotlariga aylangan edi. Talabalarga operatsion tizim qanday ishlashini o'rgatish uchun soddaroq tizim kerak edi. Shuning uchun Tanenbaum MINIXni ishlab chiqdi. MINIX to'liq Unix emas edi.

Ammo u Unixning asosiy g'oyalarini o'z ichiga olgan. Fayl tizimi, jarayonlar, shell va ko'p foydalanuvchili mavjud edi. Eng muhimi, uning kodi o'quv maqsadlari uchun yozilgan edi. Talabalar tizim ichiga kirib, operatsion tizim qanday ishlashini o'rganishlari mumkin edi. 1980-yillarning oxirida dunyoning turli universitetlarida minglab talabalar MINIX bilan ishlay boshlashdi. Ularning orasida Finlandiyadagi Helsinki universitetida o'qiyotgan bir talaba ham bor edi. Uning ismi Linus Torvalds edi. O'sha paytda hech kim uni tanimasdi. U professor ham emas edi. Mashhur tadqiqotchi emas edi. Oddiy talaba edi. Linus kompyuterlarga juda qiziqardi. Ayniqsa operatsion tizimlar va kompyuter arxitekturasi uni o'ziga tortardi.

Bir kuni u Intel 80386 protsessoriga ega yangi kompyuter sotib oldi. Bugungi kunda protsessor modeli odatda katta voqea hisoblanmaydi. Ammo 386 protsessori o'sha davr uchun juda muhim edi. Unda virtual xotira imkoniyatlari mavjud edi. Protected mode mavjud edi va ko'p vazifalilikni samarali qo'llab-quvvatlash mumkin edi. Linus yangi kompyuter imkoniyatlarini chuqurroq o'rganishni istardi. MINIX bu ish uchun yaxshi vosita edi. Ammo muammo bor edi. MINIX o'quv tizimi sifatida yaratilgan edi. Uning ayrim cheklovlari bo'lib Linus esa tizimni o'z ehtiyojlariga moslashtirmoqchi edi.

Dastlab u oddiy terminal emulyatori yozishni boshladi. Maqsad universitet serverlariga qulayroq ulanish. Lekin dastur asta-sekin kattalasha boshladi. Terminal emulyatori apparat bilan ishlashni talab qildi. Apparat bilan ishlash esa xotirani boshqarishni talab qildi. Xotirani boshqarish esa kernelga o'xshash mexanizmlarni talab qildi. Bir necha oy ichida loyiha oddiy terminal dasturidan ancha uzoqlashib ketdi. Linus asta-sekin o'z operatsion tizimi ustida ishlayotganini anglay boshladi. Qizig'i shundaki, uning maqsadi yangi Unix yaratish emas edi. U dunyoni o'zgartirishni rejalashtirmagandi.

Linus shunchaki o'zi uchun qiziqarli loyiha ustida ishlayotgan edi. 1991-yil yoziga kelib loyiha ishlay boshladi. Linus uni internetdagi Usenet forumlaridan birida e'lon qilishga qaror qildi. 1991-yil 25-avgust kuni u comp.os.minix guruhiga mashhur xabarini yubordi. Xabar juda oddiy edi. U taxminan shunday mazmunda edi:

Men bepul operatsion tizim ustida ishlayapman. Bu shunchaki hobbiy loyiha. GNU kabi katta va professional bo'lmaydi."

Hobbiy loyiha bugungi kunda milliardlab qurilmalarda ishlaydi. Ammo o'sha kuni bu shunchaki talabadan chiqqan oddiy xabar edi. Internetdagi dasturchilar qiziqa boshladilar. Ba'zilar kodni yuklab oldi.

Ba'zilar xatolarni topdi. Ba'zilar yangi imkoniyatlar taklif qildi. Linus esa barcha takliflarni muhokama qilar, keraklilarini qabul qilar edi. Linux rivojlanishining dastlabki davri juda muhim saboq beradi. U markazlashgan korporativ loyiha emas edi. Dunyoning turli joylaridagi odamlar internet orqali hamkorlik qilayotgan edi. Bugungi GitHub, GitLab va ochiq manba hamjamiyatlari uchun bu odatiy hol. Ammo 1991-yilda bu juda yangi yondashuv edi. Linux rivojlanishi bilan yana bir muhim voqea yuz berdi.

GNU loyihasi yillar davomida operatsion tizim uchun kerak bo'lgan deyarli barcha vositalarni yaratib bo'lgan edi. Yetishmayotgan yagona narsa kernel edi. Linux esa aynan shu bo'shliqni to'ldirdi. Natijada GNU va Linux tabiiy ravishda birlashdi. Texnik nuqtai nazardan qaraganda foydalanuvchilar ishlatayotgan tizim faqat Linux emas edi.

U GNU vositalari va Linux kernelining kombinatsiyasi edi. Shu sababli Richard Stallman tizimni GNU/Linux deb atash kerakligini ta'kidlaydi. Bu masala bugungi kungacha bahs mavzusi bo'lib qolmoqda. Ko'pchilik uni oddiygina Linux deb ataydi. Lekin tarixiy nuqtai nazardan GNU loyihasining hissasi juda katta bo'lganini unutmaslik kerak. 1992-yilda Linus yana bir muhim qaror qabul qildi. Linux kernel GNU General Public License ostida chiqarildi.

GPL litsenziyasi foydalanuvchilarga kodni o'rganish, o'zgartirish va tarqatish imkonini berardi. Bu qaror Linux tarixini tubdan o'zgartirdi. Agar Linux yopiq litsenziya ostida qolganida, ehtimol u hech qachon bugungi darajaga yetmagan bo'lardi. Ochiq kod minglab dasturchilarni loyihaga jalb qildi. Universitetlar Linux bilan tajriba qila boshladilar. Kompaniyalar Linuxni sinovdan o'tkaza boshladilar. Yangi drayverlar yozildi.

Yangi fayl tizimlari yaratildi. Yangi tarmoq imkoniyatlari qo'shildi. Linux juda tez rivojlanardi. 1990-yillarning boshlarida Linux hali ham mutaxassislar va entuziastlar tizimi edi. Uni o'rnatish qiyin edi. Ko'plab sozlamalarni qo'lda bajarish kerak edi.

Yangi foydalanuvchi uchun Linux bilan ishlash oson emas edi. Ammo bu vaziyat uzoq davom etmadi. Tez orada Linux distributivlari paydo bo'la boshladi. Slackware, Debian, Red Hat. Bu distributivlar Linuxni oddiy foydalanuvchilar va administratorlar uchun qulayroq qila boshladilar. Linux asta-sekin talabalarning qiziqarli loyihasidan jiddiy operatsion tizimga aylanayotgan edi. Lekin oldinda undan ham katta sinov kutayotgan edi. U Windows bilan raqobatlashishi kerak edi. U korporativ serverlarga kirib borishi kerak edi.