Multics

**Multics** ( — *„Murakkab axborot va hisoblash xizmati“*) — bir darajali xotira konseptsiyasiga asoslangan dasturlarning vaqt almashinuviga ega boʻlgan dastlabki operatsion tizim hisoblanadi.

Multics operatsion tizimini ishlab chiqish 1964-yilda boshlangan. Dastlab loyihada Massachusets texnologiya instituti (MIT), General Electric (GE) va Bell Labs ishtirok etdi. 1969-yilda Bell Labs loyihadan voz kechdi va 1970-yilda General Electric korporatsiyasining kompyuter biznesini (Multiks bilan birga) Honeywell egallab oldi va uni Bullʼga sotdi. Multics General Electric tomonidan tijorat mahsuloti sifatida ishlab chiqilgan va kompyuter bozorida hech qachon muvaffaqiyatga erishmagan boʻlsa-da, Honeywell rahbarligida ishlab chiqarilgan.

Multics tizimi koʻplab innovatsion va qimmatli gʻoyalar tufayli kompyuter sanoatiga katta taʼsir koʻrsatdi. Tizim tanqidchilar tomonidan koʻplab eʼtirozlarga uchragan boʻlsa-da, hali ham u kiritgan tushunchalar operatsion tizimlar dunyosida uzoq muddatli hayotga ega ekanligini koʻrsatmoqda.

Multics tizimi ishonchlilik va yuqori ishlashni taʼminlaydigan koʻplab xususiyatlarga ega edi. Masalan, dasturiy taʼminotning modulliligini qoʻllab-quvvatlashdan tashqari, tizim oʻz ish jarayonida foydalanadigan elektron qurilmalarni modulli qoʻllab-quvvatlashga ham qaratilgan edi, bu esa uning modullari: markaziy protsessor, xotira, disk maydoni va boshqalarni oddiy almashtirish orqali tizimning hisoblash imkoniyatlarini oshirish imkonini berardi. Har bir foydalanuvchi uchun individual fayllarga kirish roʻyxatlari tizimda maʼlumot almashish uchun juda moslashuvchan mexanizmni taqdim etadi, bu ham foydalanuvchilar tomonidan saqlanadigan va foydalaniladigan maʼlumotlarning toʻliq maxfiyligini kafolatlaydi. Shuningdek, Multics tizimida muhandislarga tizimning hisoblash quvvatini tahlil qilish imkonini beradigan bir qator standart mexanizmlar, shuningdek, operatsion tizimning oʻzini optimallashtirishni taʼminlovchi mexanizmlar toʻplami mavjud.

## Joriy etilgan gʻoyalar
Multics fayllar (Multics tizimida segmentlar deb ataladi) va hisoblash jarayonlari uchun xotira tushunchalarini aniq ajratib turadigan bir maromda saqlash modelini joriy etgan birinchi operatsion tizimlardan biri edi. Hisoblash jarayonlarining xotirasi segmentlardan iborat boʻlib, ularning har biri oʻz manzil maydoniga ega boʻladi. Segmentlarni oʻqish yoki yozish uchun hisoblash jarayoni tizimning markaziy protsessorining koʻrsatmalaridan foydalangan va operatsion tizim oʻzgartirilgan maʼlumotlarni kompyuterning tashqi xotira qurilmasida saqlashning barcha jarayonlarini oʻzi bajargan.

Shunday qilib, Multics butunlay markazlashtirilgan fayl tizimini ishlab chiqdi va amalga oshirdi, unda fizik jihatdan tashqi xotiraning turli jismiy qurilmalarida joylashgan fayllar bitta markazlashtirilgan arxivga yoki „daraxtga“ oʻxshash ierarxik tuzilishga mantiqiy birlashtiriladi, ularning oraliq tugunlari kataloglar deb ataladi, „barglarida“ esa fayllar joylashgan boʻladi. Multics shuningdek, fayllarni virtual xotira segmentlariga solishtirish imkonini beruvchi katta sahifali segmentli virtual xotirani ishlab chiqdi va amalga oshirdi. Boshqacha qilib aytadigan boʻlsak, tegishli jarayonning virtual xotirasida fayl ochilganda, tashqi xotirada joylashgan fayl toʻliq koʻrsatilgan segment hosil qilgan (OS Multics fayl tizimida sahifalangan fayllar asosiy darajada qoʻllab-quvvatlaydi. Murakkab tashkiliy ishlar uchun ustqurilma mavjud). Fayl bilan keyingi ishlash virtual xotirani boshqarishning umumiy mexanizmiga asoslangan edi.

Ushbu yondashuvning asosiy kamchiliklaridan biri (asosan tizim ishlayotgan kompyuterlarning elektron arxitekturasidagi farqlar tufayli paydo boʻlgan) segment hajmini 256 * 1024 32 bitli soʻzlar bilan cheklash edi, bu 1 megabaytni anglatadi. Shuning uchun, belgilangan chegaradan kattaroq fayllar bilan ishlash uchun bajariladigan dasturlarda qoʻshimcha koddan foydalanish kerak edi. 256 * 1024 32 bitli soʻzlardan katta boʻlgan fayllarning oʻzi tizim tomonidan bir-biriga ulangan bir qator segmentlar sifatida taqdim etilgan. Katta maʼlumotlar bazalari va katta hajmdagi grafik maʼlumotlar paydo boʻlishidan oldin, bu fayl hajmi chegarasi kamdan-kam hollarda oshgan.

Multics tizimida navbatdagi innovatsion gʻoya ham birinchi marta bajariladigan dasturni kod kutubxonalari bilan dinamik bogʻlash (dynacim linking) amalga oshirildi. Dinamik bogʻlanish tufayli bajariladigan jarayon tizimdan oʻzining manzil maydoniga qoʻshimcha segmentlarni, yaʼni bajariladigan dastur uchun foydali kodni oʻz ichiga olgan segmentlarni bogʻlash soʻrovini amalga oshirsa boʻlar edi.

Shunday qilib, dasturlar alohida segmentlarda saqlanadigan tashqi kod kutubxonalaridan avtomatik ravishda foydalanishi mumkin edi, shu bilan birga ushbu kutubxonalarda saqlangan funksiyalarga dinamik havolalar tuzildi. Tashqi bajariladigan kodli dinamik havola faqat bir marta, kutubxonadan funksiyaning birinchi chaqiruvi paytida tuzilgan va keyinroq qayta ishlatilishi mumkin edi. Tizimdagi har bir foydalanuvchi alohida jarayonlarga ega boʻlgani sababli, foydalanuvchi ehtiyojlariga qarab turli xil tashqi kutubxonalar bir xil dasturga ulanishi mumkin edi.

Multics’dagi toʻgʻri xavfsizlik sozlamalari bilan bir segmentdagi kod butunlay boshqa jarayonda ishga tushirilgan maʼlumotlar tuzilmalariga kirishi ham birdek muhim edi. Foydalanuvchi va individual *demon* jarayonlari (yoki shunchaki demonlar) oʻrtasidagi bunday oʻzaro taʼsir uchun foydalanuvchi jarayoni ushbu jarayon bilan bogʻliq kod segmentini dinamik ravishda ulashi va u yerda joylashgan usullarni chaqirishi vazifa etib belgilangan edi. Bogʻlangan segmentdagi kod toʻgʻridan-toʻgʻri demonda ishlatiladigan maʼlumotlar tuzilmalari bilan ishlashi mumkin. Bogʻlangan segmentdan chaqirilgan kod oʻz ishini tugatgandan soʻng, ijro chaqirilgan usuldan normal qaytish tartibi orqali foydalanuvchi jarayoniga qaytadi.

Multics koʻp protsessorli kompyuterlarda ishlashi mumkin edi, bu aslida eng dastlabki koʻp protsessorli operatsion tizimlardan biri edi.

Multics, shuningdek, dasturlar va foydalanuvchilar oʻrtasidagi aloqa xavfsizligiga eʼtibor qaratgan birinchi tizimlardan biri edi. Bundan tashqari, Multics tizimining dastlabki versiyalari xakerlar tomonidan qayta-qayta buzib kirilganiga qaramay, xavfsiz deb ishlab chiqilgan va joriy qilingan birinchi operatsion tizim boʻlishi mumkin. Tizimning buzilishi xavfsizlikni yaxshilashga olib keldi, natijada operatsion tizimlarda xavfsizlik arxitekturasiga keng tarqalgan yondashuvlarni belgilab berdi va Multics yanada xavfsizroq qilib tuzila boshlandi. Tizimga foydalanuvchi imtiyozlari (foydalanuvchining maʼlumotlar va dasturlarga kirish huquqlarini aniqlash)ni oʻrnatilgan qoʻllab-quvvatlovchi ikkinchi avlod elektron uskunalari oʻrnatilishi bilanoq Multics tizimini buzish holati kamaydi.

Multics birinchilardan boʻlib ierarxik fayl tizimini joriy qildi. Fayl nomlari deyarli ixtiyoriy uzunlikda boʻlishi va har qanday belgilarni oʻz ichiga olishi mumkin. Fayl yoki katalog bir nechta nomga ega boʻlishi mumkin (qisqa va uzun); kataloglar orasidagi belgili bogʻlanishlar (symlink) ham foydalanish uchun mavjud edi.

Shuningdek, Multics birinchi boʻlib tizim yadrosidagi har bir hisoblash jarayoni uchun steklardan foydalanishning (hozirda *standart* etib belgilangan) yondashuvini, yadro atrofidagi har bir xavfsizlik darajasi uchun alohida stek bilan tatbiq etdi.

Multics shuningdek, yuqori darajadagi PL/I tilida yozilgan birinchi operatsion tizimlardan biri edi (Bunday birinchi tizim Burroughs B5000 kompyuterlari uchun MCP boʻlib, u Algol dialektidan foydalanilgan).

## Qisqacha tarixi
Multics dastlab 36-bitli GE-645 meynfreym (super kompyuter)lari va keyinchalik Honeywell 6180 seriyali EHMlar uchun ishlab chiqilgan.

Bell Labs 1969-yilda loyihadan voz kechdi. Ushbu kompaniyada Multicsʼni ishlab chiqqan bir qancha odamlar UNIXʼni tuzishga oʻtdilar. Keyinchalik tuzilgan UNIX tizimi Multics tizimi bilan tashqi oʻxshashliklari, jumladan ishlatiladigan buyruqlar nomlari deyarli bir xil edi. Biroq, UNIX dizayn falsafasi butunlay boshqacha boʻlib, imkon qadar kichik va iloji boricha sodda tizim tuzishga qaratilgan edi, bu uning Multics tizimidan asosiy farqi edi.

„UNIX“ nomi (dastlab „Unics“ edi) „Multics“dan olingan. UNIXʼdagi U harfi „Uniplexed“ (bir boʻgʻinli) degan maʼnoni anglatadi, bu Multicsʼning asosiy nomi boʻlgan „Multiplexed“ (murakkab)dan farqli oʻlaroq, UNIX yaratuvchilarning Multicsʼning murakkabliklaridan uzoqlashishga, oddiyroq va koʻproq narsani ishlab chiqishga urinishini taʼkidlash uchun shunday nomlangan edi.

Honeywell GEʼning kompyuter boʻlinmasini sotib oldi va 1985-yilgacha Multics tizimini rivojlantirishni davom ettirdi. Universitet, sanoat va davlat hisoblash markazlariga 80 ga yaqin koʻp millionli qurilmalar yetkazib berildi.

Shuningdek, 1980-yillar boshida Multics Fransiyaning bir qancha universitetlardagi kompyuterlarda oʻrnatildi.

Honeywell Multicsʼni qoʻllab-quvvatlashni tugatgandan soʻng, foydalanuvchilar boshqa tizimlarga, jumladan UNIX tizimlariga oʻtishdi.

Oxirgi Multics oʻrnatilgan EHM 2000-yil 31-oktyabrda Kanada Mudofaa vazirligida toʻxtatilgan.

2007-yilda Multics uchun manba kodi va hujjatlari BULL tomonidan Massachusets texnologiya institutiga topshirildi va MIT veb-saytida eʼlon qilindi.

## Mualliflari
* Fernando Korbato — MITʼda ishlagan vaqtda Multics loyihasi rahbari;
* Viktor Visotskiy — BESYS loyihasining yetakchilaridan biri, sobiq Multics loyihasi masʼuli;
* Lui Pusen — Multics tizimining buyruqlar tiliga qobiq atamasini kiritgan dasturchi.

## Manbalar

## Havolalar
* F. J. Corbato, V. A. Vyssotsky, Multics tizimi bilan tanishish (ingliz tilida)
* F. J. Corbato, C. T. Clingen, J. H. Saltzer, Multics — Birinchi yetti yillik (ingliz tilida)