Кіріспе

Уақытты бөлісу операциялық жүйесі

Multics ("MULTiplexed Information and Computing Service") – бұл бір деңгейлі жад тұжырымдамасына негізделген, ықпалды ертедегі уақытты бөлісу операциялық жүйесі. Нейтан Грегори Multics-тің «содан бері микрокомпьютерлерден мейнфреймдерге дейінгі барлық заманауи операциялық жүйелерге әсер еткенін» жазады. Multics-тің бастапқы жоспарлау және әзірлеуі 1964 жылы Массачусетс штатының Кембридж қаласында басталды. Бастапқыда бұл MIT (Фернандо Корбатомен бірге MAC жобасы) басшылығымен, General Electric және Bell Labs компанияларының бірлескен жобасы болды. Ол GE 645 компьютерінде әзірленді, ол осы мақсатта арнайы жасалған; алғашқысы 1967 жылдың қаңтарында MIT-ге жеткізілді. GE бұрынғы 635 жүйелерін «Mark I» деп аталатын ертедегі уақытты бөлісу жүйесімен ұсынды және 645-ті Multics-пен бірге үлкен жалғасы ретінде ұсынуды жоспарлады. Bell 1969 жылы жобадан шықты, өйткені жақын арада жұмыс істейтін жүйенің жасалмайтыны анық болды. Одан кейін GE компьютер индустриясынан толығымен шығуды шешті және 1970 жылы бөлімді Honeywell компаниясына сатты. Honeywell Multics-ті коммерциялық түрде ұсынды, бірақ сәттілігі шектеулі болды. Multics телефон және электр энергиясы сияқты есептеу қызметтерін қолдау үшін жоғары сенімділікті қамтамасыз етуге бағытталған көптеген мүмкіндіктерге ие. Мұны іске асыру үшін модульдік аппараттық құрылым және бағдарламалық архитектура қолданылады. Жүйе есептеу қуаты, негізгі жад немесе дискілік кеңістік сияқты қажетті ресурстарды қосу арқылы өз көлемін кеңейте алады. Әрбір файлдағы жеке қол жеткізу тізімдері икемді ақпарат алмасуды қамтамасыз етеді, бірақ қажет болған жағдайда толық құпиялылықты сақтайды. Multics инженерлерге жүйенің өнімділігін талдауға мүмкіндік беретін бірқатар стандартты механизмдерге, сондай-ақ, өнімділікті адаптивті түрде оңтайландыру механизмдеріне ие. Көптеген жаңа және құнды идеяларына қарамастан, Multics өзінің кемшіліктеріне қарамастан компьютер ғылымына елеулі әсер етті. Компьютер индустриясына оның ең ұзаққа созылған әсері Unix құруға шабыттандыру болды, ол Multics мүмкіндіктерінің көптерін алға жылжытты, бірақ олар арзан жабдықтарда жұмыс істей алды. Unix Bell компаниясында олардың Multics командасына кіші машиналарды, біріншіден PDP 7, содан кейін PDP 11 пайдалану арқылы зерттеулерін жалғастыруға мүмкіндік беру үшін әзірленді.

Жаңа идеялар

Multics деректерге қол жеткізу үшін бір деңгейлі сақтауды іске асырады, файлдар (Multics-те сегменттер деп аталады) мен процесс жадының арасындағы айқын айырмашылықты жоққа шығарады. Процестің жады тек оның адрестік кеңістігіне карталанған сегменттерден тұрады. Оларға оқу немесе жазу үшін процесс жай ғана орталық процессордың (CPU) нұсқауларын қолданады, ал операциялық жүйе барлық өзгерістердің дискіге сақталғанын қамтамасыз етеді. POSIX терминологиясында, бұл әр файлдың карталанғаны сияқты; алайда, Multics-те процестің жадының концепциясы жоқ, Unix-те файлдарға карталанған жадыдан бөлек. Жүйедегі барлық жад файлдық жүйеде пайда болатын кейбір сегменттің бөлігі болып табылады; бұл процестің уақытша жады, оның ядролық стегі және т.б. Сегменттер 256 килосөзбен, яғни 1 МБ-тан сәл артық, шектеледі, өйткені Multics аппараттық құрамында сегмент мазмұны үшін 18 биттік сөздік мекенжайлар бар. Үлкен файлдар "көп сегментті файлдар" болып табылады және олар басқаша өңделеді. 256 кВт лимитімен тәжірибеде сирек кездесті, өйткені сол кезде бір мегабайт жад өте қымбат болатын. Multics-тің тағы бір жаңа идеясы – динамикалық байланыстыру, онда жұмыс істеп тұрған процесс сыртқы тәртіптерді олардың адрестік кеңістігіне құрайтын сегменттерді қосу арқылы қолжетімді ете алады. Бұл қолданбаларға кез келген сыртқы тәртіптің соңғы нұсқасын әрқашан пайдалануға мүмкіндік береді, өйткені бұл тәртіптер басқа сегменттерде сақталады, олар процестер бірінші рет орындауға тырысқан кезде ғана динамикалық түрде байланысты болады. Әр түрлі процестер әр түрлі іздеу ережелерін қолдана алатындықтан, әр түрлі пайдаланушылар сыртқы тәртіптердің әр түрлі нұсқаларын қолдана алады. Сондай-ақ, Multics қауіпсіздік құрылғыларында тиісті параметрлер бар болса, басқа сегменттегі код басқа процесте сақталатын дерек құрылымдарына қол жеткізе алады. Multics-тегі динамикалық байланыстыру арнайы динамикалық кітапханаларды (DLL) қажет етпейді; бағдарлама кез келген орындалатын сегментке, оған қол жеткізу құқығы бар, динамикалық түрде сілтеме жасай алады. Осылайша, бір бөлігі демон ретінде (басқа процесте) орындалатын қосымшамен өзара әрекеттесу үшін пайдаланушының процесі жай ғана ол динамикалық түрде байланыстырылған код сегментіне (демонмен байланысты кейбір операцияларды іске асыратын код сегменті) қалыпты процедура шақыру нұсқаулығын орындайды. Бұл сегменттегі код кейін демонде сақталатын және пайдаланылатын деректерді өзгерте алады. Сұрауды бастау үшін қажетті іс-қимыл аяқталғаннан кейін, қарапайым процедураны қайтару нұсқаулығы пайдаланушының процесін пайдаланушының кодына қайтарады. Multics желіде өте агрессивті қайта конфигурацияны қолдайды: орталық процессорлар, жад банктері, дискілік дисктер және т.б. жүйе жұмыс істеп тұрған кезде қосылуы және алынып тасталуы мүмкін. MIT жүйесінде, бағдарламалық жасақтаманың алғашқы дамуы жасалды, көп процессорлы жүйені екі бөлек жүйеге бөлу, жұмыс уақытында екінші жұмыс жүйесін құру үшін жеткілікті компоненттерді бірте-бірте алып тастау, қалғандары бастапқы тіркелген пайдаланушылар үшін әлі де жұмыс істеп тұрды. Жүйелік бағдарламалық қамтамасыз етуді дамыту тестілеу екінші жүйеде жүргізілуі мүмкін, содан кейін екінші жүйенің компоненттері негізгі пайдаланушы жүйесіне қосылады, оны ешқашан тоқтатпайды. Multics бірнеше процессорды қолдайды; ол ең алғашқы мультипроцессорлық жүйелердің бірі. Multics – бастапқыдан қауіпсіз жүйе ретінде жасалған алғашқы ірі операциялық жүйе. Осыған қарамастан, Multics-тің алғашқы нұсқалары бірнеше рет бұзылды. Бұл жүйеге қауіпсіздікті арттыратын әрі қарайғы жұмыстарға әкелді және қазіргі заманғы қауіпсіздік инженериясының әдістерін алдын ала көрсетті. Екінші буын аппараттық база қабылданғаннан кейін бұзылулар өте сирек болды; ол балдақ бағдарланған қауіпсіздікті қамтамасыз етеді, бұл шеберлік режимінің көп деңгейлі жетілдірілуі. 1973 жылы ZARF кодты сөзін қолданып, Multics қауіпсіздігін сынақтан өткізген АҚШ Әуе күштері командасының жобасы. 1997 жылы 28 мамырда Америка Ұлттық қауіпсіздік агенттігі ZARF кодты сөзін пайдалану туралы құпияны бұзды. Multics – иерархиялық файлдық жүйесін қамтамасыз ететін алғашқы операциялық жүйе, файл атаулары кез келген ұзындығы мен синтаксисінен болуы мүмкін. Берілген файлдың немесе каталогтың бірнеше атауы болуы мүмкін (әдетте ұзақ және қысқа формада), сонымен қатар каталогтар арасындағы символдық сілтемелер де қолдалады. Multics – ядродағы әр қауіпсіздік сақинасы үшін жеке стекпен, процесс стектерінің қазіргі стандартты концепциясын қолданған алғашқы жүйе. Ол Unix қабығында кейінірек қолданылған идея – операциялық жүйе кодын пайдаланушы кодын сияқты іске асырылған командалық процессорды жасаған алғашқы жүйе де. Бұрынғы Burroughs MCP жүйесі ESPOL-де (ALGOL-дің кеңейтілген нұсқасы) жазылғаннан кейін, ол жоғары деңгейдегі тілде (Multics PL/I) жазылған алғашқы жүйелердің бірі. Multics-ті қауіпсіз есептеу ортасына енгізу инновациялық қолдау қосымшаларын дамытуға ықпал етті. 1975 жылы MITRE Corporation қызметкері Морри Гассер Әуе күштерінің деректер орталығында (AFDSC) классификацияланған ақпаратты өңдеу үшін пароль талаптарын қанағаттандыру үшін айтылатын кездейсоқ сөз генераторын жасады. Болжауға болатын парольдерден сақтану үшін AFDSC парольдерді тағайындауға шешім қабылдады, бірақ қолмен тағайындау тым көп әкімшілік жүктеме талап ететініне келісті. Осылайша, кездейсоқ сөз генераторы зерттелді, содан кейін PL/I тілінде жасалды. Фонемаларға негізделген емес, жүйе ағылшын тілінің екінші реттік жуықтамалары (фонемалық сегменттер) және басқа ережелерді қолданды, бұл айтылуын және кездейсоқтығын арттырды, бұл басқа тәсілдермен салыстырылғанда статистикалық модельдеуге алынды. Осы генератордың ұрпағы Project Guardian кезінде Multics-ке қосылды.

Жобаның тарихы

1964 жылы Multics бастапқыда GE 645 магистральдық компьютері үшін, 36 биттік жүйе ретінде әзірленді. GE-нің компьютерлік бизнесі, Multics-ті қоса алғанда, 1970 жылы Honeywell компаниясымен сатып алынды; 1973 жыл шамасында Multics Honeywell 6180 машиналарында қолдауға ие болды, бұл қауіпсіздікті жақсартуды, соның ішінде қорғау сақиналарына аппараттық қолдауды қамтыды. Bell Labs 1969 жылы жобадан шықты; онда жұмыс істеген адамдардың бір бөлігі Unix жүйесін жасады. Multics әзірлеу MIT және General Electric компанияларында жалғасты. 1975 жылы MIT-де Multics қолдануы төмендеді және 1976 жылға қарай бұрынғы деңгейге жетпеді. Соңында, MIT 1978 жылы бағаны төмендету арқылы пайдаланушыларды Multics-ке қайта тартты. Honeywell 1985 жылға дейін жүйені дамытуды жалғастырды. Университеттерде, өнеркәсіпте және мемлекеттік мекемелерде шамамен 80 миллион долларлық құны бар нысандар орнатылды. Француз университеттері жүйесінде 1980-жылдардың басында бірнеше орналымдар болды. Honeywell Multics қолдауын тоқтатқаннан кейін, пайдаланушылар Unix сияқты басқа жүйелерге көшті. 1985 жылы Multics Ұлттық компьютерлік қауіпсіздік орталығының (NCSC) Сенімді компьютерлік жүйелерді бағалау критерийлерін пайдалана отырып, B2 деңгейіндегі қауіпсіз операциялық жүйе ретінде сертификатталды. Бұл осы деңгейге дейін бағаланған алғашқы операциялық жүйе болды. Multics 1975 жылдан 2000 жылға дейін Еуропада Groupe Bull, ал АҚШ-та Bull HN Information Systems Inc. компаниялары тарапынан таратылды. 2006 жылы Bull SAS Multics MR10.2, MR11.0, MR12.0, MR12.1, MR12.2, MR12.3, MR12.4 және MR12.5 нұсқаларының бастапқы кодын ақысыз бағдарламалық қамтамасыз ету лицензиясы бойынша жариялады. Honeywell аппараттық құралында жұмыс істеген соңғы Multics орналымы 2000 жылдың 30 қазанында Канаданың Нова-Шотландия провинциясындағы Галифакс қаласындағы Ұлттық қорғаныс министрлігінде жабылды.

Ағымдағы жағдай

2006 жылы Bull HN 1992 жылғы Multics жүйесінің соңғы нұсқасы MR12.5-тің бастапқы кодын MIT-ке ұсынды. Жүйенің көп бөлігі қазір тегін бағдарламалық қамтамасы ретінде қолжетімді, бірақ TCP/IP сияқты кейбір қосымша бөліктерден басқа. 2014 жылы Multicians Гарри Рид пен Чарльз Энтони жасаған эмулятор арқылы Multics қазіргі заманғы аппараттық құралдарда сәтті іске қосылды. Эмулятордың 1.0 нұсқасы 2017 жылдан бері қолжетімді. Multics 12.6f нұсқасы эмулятордың 1.0 нұсқасымен бірге шықты және командалық жолдың еске түсіруі және бейне жүйесі арқылы өңдеу мүмкіндігі сияқты бірнеше жаңа мүмкіндіктерді қосады.

Командалар

Multics командалық жол интерфейсі қолдайтын, жиі қолданылатын есептеу тапсырмалары үшін бағдарламалар мен командалар тізімі төменде келтірілген.

Белсенді функциялар

Multics shell тілі командаларға ұқсас, бірақ мәтіндік мән қайтаратын "белсенді функцияларды" қолдайды. Белсенді функцияны шақыру үшін белсенді функцияның аты мен аргументтері квадрат жақшаларға жазылады, ал белсенді функция қайтарған мәтіз белсенді функция шақырылған жерге командада ауыстырылады. Мысалы, команда өңделген кезде белсенді функция орындалады; ол жұмыс каталогының толық жолын қайтарады, ол командаға қойылады, соның нәтижесінде команда жұмыс каталогын шығарып береді. Кейбір бағдарламалар команда ретінде де, белсенді функция ретінде де жұмыс істей алады; команда ретінде іске қосылғанда оның нәтижесі шығарылады, ал белсенді функция ретінде іске қосылғанда оның нәтижесі мәтіз түрінде қайтарылады. Бір пікір бойынша: "Multics арқылы олар өте әмбебап және икемді операциялық жүйе жасауға тырысты, бірақ бұл әрекет сәтсіз аяқталды". Дегенмен, бұл пікір есептеу қауымдастығында күшін жойды, себебі Multics-тің көптеген техникалық инновациялары қазіргі заманғы коммерциялық есептеу жүйелерінде қолданылады. Басқа бір түсінік бойынша: Белл зертханасындағы Питер Нойман прототиптің көрсетілімін көргеннен кейін UNICS деген атты ұсынды – "eunuchs" деп айтылады – бұл "Multics-тің кемсіртуі" ретінде қарастырылды, бірақ Денис Ричи мұны жоққа шығарды. Кен Томпсон 2007 жылы Питер Сейбелмен жасаған сұхбатында Multics-ті "артық жобаланған, артық салынған және барлық нәрседен асырылған" деп сипаттады. Ол қолдануға жарамсыз болып шықты. Олар [Массачусетс технология институты] бұл үлкен жетістік деп мәлімдейді, бірақ бұл анық емес. Multics-тің Unix-ке тигізген әсері туралы Томпсон "Мен Multics-тен иерархиялық файлдық жүйе және қабықша – сіз басқа процесспен алмастыра алатын жеке процесс – бұл екі нәрсені ұнатып, алдым" деді. Денис Ричи UNIX дизайнына CTSS-тің әсер еткенін жазды.

Басқа операциялық жүйелер

Prime Computer операциялық жүйесі PRIMOS компанияның негізін қалаушы Уильям Подуска "Қораптағы Multics" деп атаған. Подуска кейіннен Apollo Computer компаниясын құрды, оның AEGIS және кейінірек Domain/OS операциялық жүйелері, кейде "Ойыншық қораптағы Multics" деп аталады, Multics дизайнын желілік графикалық жұмыс станциясы ортасына дейін кеңейтеді. Stratus Computer (қазір Stratus Technologies) компаниясының Stratus VOS операциялық жүйесі Multics-тің күшті ықпалында, және оның сыртқы пайдаланушы интерфейсі мен ішкі құрылымы ескі жобаға өте ұқсас. Multics-тің жоғары сенімділігі, қолжетімділігі және қауіпсіздік мүмкіндіктері Stratus VOS жүйесінде кеңейтіліп, қауіпсіз, сенімді транзакцияларды өңдеуді қолдайтын, қателерге төзімді компьютерлік жүйелердің жаңа тізбесін қолдайды. Stratus VOS – қазіргі таңдағы белсенді әзірленуде және өндірісте қолданылатын Multics-тің тікелей мұрагері. General Motors компаниясының Control Data Corporation STAR 100 компьютері үшін жасалған Көп консольді уақыт бөлісу жүйесі (MCTS) Multics негізінде құрылған. Multics-тің қорғау архитектурасы, жүйенің бір деңгейіндегі кодтың басқа деңгейдегі ресурстарға қол жеткізу мүмкіндігін шектеуі, ICL компаниясының VME операциялық жүйесінің қауіпсіздік мүмкіндіктерінің негізі ретінде қабылданды. Эдинбург көп қолжетімділік жүйесі (EMAS) Multics қолданған бір деңгейлі сақтау тұжырымдамасына сүйенеді, файлдарға жадыға бейнелеу арқылы ғана қолжетімділік береді. Барлық жад кеңістігі сегментпен байланысты.

Техникалық мәліметтер

Джером Х. Салтцер, «Мултикске кіріспе» (MIT Project MAC, 1974) – нақты пайдаланушыларға арналған, жүйеге едәуір ұзақ кіріспе. Эллиотт И. Органик, «The Multics System: An Examination of Its Structure» (MIT Press, 1972) – жүйе туралы стандартты еңбек, бірақ ол ерте нұсқаны сипаттайды, ал онда келтірілген кейбір мүмкіндіктер нақты жүйеде пайда болған жоқ. В. А. Виссоцкий, Ф. Ж. Корбато, Р. М. Грэм, «Multics Supervisor құрылымы» (AFIPS 1965) – Multics ядросының негізгі ішкі құрылымын сипаттайды. Джером Х. Салтцер, «Көшеленген компьютерлік жүйеде трафик басқару» (MIT Project MAC, маусым 1966) – ядролық стектерді ауыстыру идеясының бастапқы сипаттамасы; компьютерлік ғылымның классикалық еңбектерінің бірі. Р. С. Дейли, П. Г. Нейман, «Екінші реттік жад үшін жалпы мақсаттағы файлдық жүйе» (AFIPS, 1965) – файлдық жүйені, соның ішінде қол жеткізуді бақылау және резервтік көшірме механизмдерін сипаттайды. Р. Ж. Фейертаг, Э. И. Органик, «Multics кіріс/шығыс жүйесі» – I/O іске асырудың төменгі деңгейлерін сипаттайды. А. Бенсусан, К. Т. Клинген, Р. К. Дейли, «The Multics Virtual Memory: Concepts and Design» (ACM SOSP, 1969) – Multics жад жүйесін егжей-тегжейлі сипаттайды. Пол Грин, «Multics виртуалды жады – Оқулық және талдау» – Multics жад жүйесін терең зерттейді. Роджер Р. Шелл, «Модульді компьютерлік жүйеде динамикалық қайта конфигурация» (MIT Project MAC, 1971) – қайта конфигурациялау механизмдерін сипаттайды.

Қауіпсіздік

Пол А. Каргер, Роджер Р. Шелл, Multics қауіпсіздігін бағалау: әлсіздіктерді талдау (Әуе күштерінің электрондық жүйелер бөлімі, 1974) «жолақты команданың» Multics қауіпсіздігіне жасаған классикалық шабуылдарын сипаттайды. Жером Х. Солтцер, Майкл Д. Шредер, Компьютерлік жүйелердегі ақпаратты қорғау (IEEE материалдары, 1975 жылдың қыркүйегі) қауіпсіздікті жаңартудың алғашқы кезеңінің негіздерін сипаттайды; тағы бір классикалық еңбек. М. Д. Шредер, Д. Д. Кларк, Дж. Х. Солтцер, Д. Х. Уэллс. Multics ядросын жобалау жобасының (MIT LCS, 1978) соңғы есебі, одан да жақсартылған нұсқаны жасау үшін қосылған қауіпсіздік жаңартуларын сипаттайды. Пол А. Каргер, Роджер Р. Шелл, Отыз жыл өткен соң: Multics қауіпсіздігін бағалаудан алынған сабақтар (IBM, 2002) – бүгінгі қауіпті ортада қолданылған қауіпсіздікті ондаған жылдар бұрын мүмкін екені дәлелденген нәрсемен салыстыратын қызықты ретроспектива. Ол Multics 2002 жылы коммерциялық түрде қол жетімді жүйелердің көпшілігіне қарағанда әлдеқайда жоғары деңгейде қауіпсіздік ұсынды деген қорытындыға келді.