Кіріспе

ICL VME (Virtual Machine Environment) операциялық жүйесі – Ұлыбританиялық International Computers Limited (ICL, қазір Fujitsu тобының құрамында) компаниясы жасаған операциялық жүйе. 1970-ші жылдарда ICL-дің жаңа 2900 сериялы мейнфреймдерін іске қосу үшін әзірленген (алғаш VME/B, кейін VME 2900), бұл операциялық жүйе қазір OpenVME деп аталады, Unix қосалқы жүйесін қамтиды және ICL 39 сериялы және Trimetra мейнфрейм компьютерлерімен қатар, стандартты x64 серверлерде де жұмыс істейді.

Тарих

1974 жылдың қазанында алғаш рет іске қосылғанда, оның операциялық жүйесі "System B" деп аталды. Алғашқы жеткізілімге дейін ол "VME/B" болып өзгерді. VME/K (алғашқыда "Tiny" үшін "System T" деп аталған) тәуелсіз түрде (Кэмпбелл Келли айтуынша, "Эд Мактың қалауымен") әзірленді және кейіннен 2960 сияқты кішігірім мейнфреймдермен бірге жеткізілді. Ол кезде VME/B әлі де өнімділік және сенімділік мәселелерімен күресіп жатты, ал басым көпшілігі американдық басқару тобы оған күмәнмен қарады. "System D" деп аталатын тағы бір жоба болды, ол дерлік нақты уақыт режимінде жұмыс істейтін, конфигурацияланатын және бейімделген қосымшаларды құруға арналған, озық және жоғары модульдік операциялық жүйе еді. Ол British Rail жүйесіне конкурсқа қатысқанмен, инженерлік ресурстардың жетіспеуіне байланысты кейіннен тоқтатылды. ICL компаниясы Еуропалық ғарыш агенттігіне Дармштадттағы операциялық орталығында Meteosat спутнигінен алынған деректерді өңдеу үшін үлкен жүйе сатты. Клиенттің талаптарына сәйкес VME/K-ның VME/ESA деп аталатын арнайы нұсқасы орналасқан жерде әзірленді. 1980 жылы қаржылық дағдарыстан кейін ICL басқармасына жаңа басшылар келді (Кристофор Лейдлоу төраға, Робб Уилмот басқарушы директор). Жаңа басшылықтың алғашқы шешімі VME/K-ны қолдауды тоқтату болды. 1981 жылдың шілдесінде "VME2900" іске қосылды: клиенттерге VME/B және VME/K біріктірілген нұсқа ретінде ұсынылса да, шындығында VME/B базасы болды, VME/K-дан таңдап алынған бірнеше мүмкіндіктер енгізілген. Бұл ескірген мүмкіндіктерді жоюға мүмкіндік берді, олар "BONVME" опциясы ретінде қажет болған клиенттерге қолжетімді болды. "2900" жұрнағы 1985 жылы ICL 39-сериясын 2900-дің түпнұсқалық сериясының ізбасары ретінде шығарған кезде SV213 (System Version 213) нұсқасында алынып тасталды; ал SV294 нұсқасынан кейін "Open" префиксі қосылды. VME Unix үшін жазылған қосымшаларды VME/X деп аталатын UNIX System V Release 3 негізіндегі кіші жүйе арқылы іске қосуға қабілетті болды, ол VME-де жұмыс істеу үшін бейімделген және ASCII таңбалық кодировкасын қолданды. 2007 жылы Fujitsu компаниясы VME нұсқасын Microsoft Windows, SUSE немесе Red Hat Enterprise Linux жүйелерінде x86 64 аппараттық құралдарында superNova деп аталатын хостталған кіші жүйе ретінде іске асыратындығын жариялады. Fujitsu 2020 жылға дейін клиенттердің компьютерлерінде VME қолдауын сақтауға ниеттенді. 2020 жылы Fujitsu 13 HM Revenue and Customs қосымшаларын өздерінің компьютерлерінен Fujitsu-дың виртуалды басқарылатын VME хостинг платформасына көшірді. 2021 жылдан бастап Жұмыс және зейнетақы министрлігі VME-ге негізделген жүйелерін толық ауыстырды, бұл оның жүлделі VME R ауыстыру бағдарламасын аяқтағаннан кейін болды. https://www.computerweekly.com/news/252498414/DWP-completes-in-house-VME-replacement-project

Сәулет

VME қабаттар жиынтығы ретінде құрылған, әр қабат әртүрлі абстракция деңгейіндегі ресурстарға қол жеткізе алады. Бір қабатпен ұсынылған виртуалды ресурстар төменгі қабат ұсынған виртуалды ресурстардан құралады. Әр қабаттың ресурстарына қол жеткізу, қол жеткізу деңгейлері жиынтығы арқылы бақыланады: ресурсты белгілі бір қол жеткізу деңгейінде пайдалану үшін, процеске сол деңгейге қол жеткізуді қамтамасыз ететін кілт қажет. Бұл тұжырым Мултикс жүйесіндегі "қорғау сақиналарына" ұқсас. Архитектура 16 қол жеткізу деңгейін қолдайды, олардың сыртқы 6-сы пайдаланушы деңгейіндегі кодқа арналған. Қол жеткізу деңгейлеріне перпендикуляр (ортогональды) түрде, операциялық жүйе ресурстарды виртуалды машина түрінде қолданбаларға қолжетімді етеді. Виртуалды машина бірнеше процесті іске қоса алады. Іс жүзінде, VME виртуалды машинасы басқа операциялық жүйелердегі процесс тұжырымына жақын, ал VME процесі көбінесе жиекке (thread) ұқсас. Виртуалды машинаға ресурстарды бөлу стек моделін қолданады: стек ашылғанда, сол стек деңгейінде бөлінген барлық ресурстар босатылады. Сондықтан, қолданбадан операциялық жүйеге шақыру, сол процесс стегін сақтайтын, бірақ қорғау деңгейін өзгертетін шақыру арқылы жасалады; жүйелік шақырулардың тиімділігі – архитектураны бәсекеге қабілетті ететін ерекшеліктердің бірі. Виртуалды машиналар арасындағы байланыс оқиғалар (аталған байланыс арналары) және ортақ жад аймақтары арқылы жүзеге асырылады. Аппараттық архитектура сонымен қатар семафор нұсқауларын: INCT (арттыру және тексеру) және TDEC (тексеру және кеміту) ұсынады. Файлдар және басқа да тұрақты объектілер "Каталог" деп аталатын репозиторийде сақталады. Файл атауларының иерархиясы файлдың нақты таспа немесе диск көлеміндегі орналасуына тәуелсіз. Офлайн сақтау қажеттілігі жоғары болған кезде, бұл файлдарды олардың орналасқан жеріне қарамастан бақылауды және оларды қайта атаусыз орналасқан жерлер арасында жылжытуды жеңілдетті. Файлдардан басқа, Каталог пайдаланушылар мен пайдаланушылар тобын, томдарды, құрылғыларды, желілік қосылымдарды және көптеген басқа ресурстарды қадағалайды. Файлдарға қатысты метадеректер "Файл сипаттамасы" деп аталатын объектіде сақталуы мүмкін. Каталог, кейінірек "мәліметтер арасындағы қатынастар базасы" деп аталатын нәрсенің алғашқы мысалы болды. Үзілістер (interrupts) тиісті процесс үшін стекте жаңа стек фреймін құру, осы жаңа ортаны пайдалану арқылы үзілісті өңдеу және кейін үзілген процесске оралу үшін стекті ашу арқылы өңделеді. Орындалу кезінде туындайтын ерекше жағдайлар, "күтпеген жағдайлар" деп аталады, объектілік бағдарлама қателіктерін өңдеуші (OPEH) арқылы ұсталады, ол есепті (іріктемелік ізге тең) интерактивті түрде немесе журналға жаза алады.

OMF

Компиляцияланған объектілік код OMF (Object Module Format) деп аталатын форматта сақталады, ол компилятордың нәтижесі де, жүктеуші пайдаланатын формат та болып табылады. Әртүрлі компиляторлармен қатар, Collector сияқты қосымша құралдар да бар, ол бірнеше OMF модульдеріндегі кодты орындалу кезінде тиімді жүктеу үшін бір модульге біріктіреді, ал Module Amender (Модульді өзгертуші) құралы жиналым тілінің синтаксисін пайдаланып, OMF модульіндегі нұсқауларды түзетуге және қателерді жоюға мүмкіндік береді.

Қауіпсіздікті күшейту нұсқалары

ICL компаниясы Ұлыбритания мемлекеттік секторына, әсіресе OPCON CCIS сияқты ерекше қауіпсіздік талаптары бар компьютерлік қызметтерді жеткізумен тығыз байланысты болғандықтан, қауіпсіз жүйелер нарығына ерте кірді. VME, ICL-дің қауіпсіз жүйелер саласындағы қызметінің ядросын құрады. Оның артықшылығы, ең соңғы жасалған кең ауқымды операциялық жүйе ретінде, бастапқы архитектурасы қауіпсіз жүйені әзірлеуге қажетті көптеген негізгі элементтерді қамтиды, әсіресе аппараттық қолдаумен қол жеткізуді бақылау тіркелімдері (ACR) арқылы кез келген процеске (пайдаланушыларды қоса алғанда) берілетін құқықтарды шектеуге мүмкіндік берді. Бұл 1980 жылдардың ортасында Ұлыбритания үкіметінің Орталық есептеу және телекоммуникация агенттігінің (CCTA) ICL Қорғаныс технологиялар орталығына (DTC) VME-нің қауіпсіздігі күшейтілген нұсқасын әзірлеу үшін Project Spaceman жобасын қаржыландыруына әкелді. ICL бұл өнімді екі толықтыратын өнім ретінде ұсынды: коммерциялық нұсқасы – «Жоғары қауіпсіздік опциясы» (HSO), ал мемлекеттік секторға арналған нұсқасы, мемлекеттік шифрлау (GFE) технологияларын қамти отырып, «Үкіметтік қауіпсіздік опциясы» (GSO) деп аталды. HSO және GSO, ITSEC және Common Criteria-ның алдын бағыттарының бірі – CESG UK (Қауіпсіздік) бағалау схемасы бойынша ресми түрде сынақтан өтті және осылайша ресми түрде сертификатталған алғашқы кең таралған операциялық жүйе атанды.

39-серия

Series 39 диапазоны Nodal Architecture-ді енгізді, бұл таратылған ортақ жадты жаңадан іске асыру болып табылады және оны көппроцессорлық жүйе мен кластерлік дизайнның гибриді ретінде қарастыруға болады. Әрбір машина бірнеше түйіндерден тұрады, және әрбір түйінде өзінің тапсырыс код процессоры (CPU) және негізгі жады болады. Виртуалды машиналар әдетте (кез келген уақытта) бір түйінде орналасқан, бірақ кез келген түйінде жұмыс істей алуға және бір түйіннен екіншісіне көшірілуге мүмкіндігі бар. Дискілер және басқа перифериялық құрылғылар түйіндер арасында ортақ пайдаланылады. Түйіндер жоғары жылдамдықты оптикалық шина арқылы байланыстырылған, ол қолданбаларды виртуалды ортақ жадпен қамтамасыз ету үшін қолданылады. Ортақ деп белгіленген жад сегменттері (ашық немесе жаһандық сегменттер) әр түйінге көшіріледі, ал жаңартулар түйіндер аралық желі арқылы таратылады. Ортақ емес жад сегменттерін (түйіндік немесе жергілікті) пайдаланатын процестер басқа түйіндер мен процестерден толық оқшауланған күйде жұмыс істейді.

Даму процесі

VME бастапқыда S3 тілінде, Algol 68R негізінде арнайы жасалған жүйелік бағдарламалау тілінде жазылған (бірақ VME/K негізінен SFL құрастыру тілінде жазылған). Жоғары деңгейдегі тіл қолданылса да, операциялық жүйе негізгі аппараттық архитектурадан тәуелсіз болып жобаланбаған: керісінше, бағдарламалық қамтамасыз ету мен аппараттық архитектура тығыз байланысты. 1990 жылдардың басынан бастап, кейбір жаңа VME жүйелері толық немесе ішінара C бағдарламалау тілінде жазылды. VME әзірленгеннің алғашқы күндерінен бастап CADES деп аталатын бағдарламалық инженерия қоймасының жүйесімен жасалды, ол бастапқыда Дэвид Пирсон (компьютер ғалымы) жобалап, басқарды және IDMS базасын пайдалану үшін құрылды. CADES – код модульдерінің нұсқаларын басқару жүйесі ғана емес, ол талаптарды қалыптастырудан, жобалау әдістемесі мен сипаттамадан бастап, пайдалану кезеңіндегі техникалық қолдауға дейін бағдарламалық жасақтаманың өмірлік циклының барлық аспектілерін басқарады. CADES VME модульдерін әзірлеуде дерек құрылымдарының (Modes), тұрақты шамалардың (Literals), процедуралық интерфейстердің және негізгі алгоритмдердің жеке анықтамаларын сақтау үшін пайдаланылды. Осы компоненттердің әрқайсысының бірнеше нұсқасы («Төлтемсүрлер») болуы мүмкін. Алгоритмдер System Development Language (SDL) тілінде жазылды, содан кейін препроцессор арқылы S3 кодына түрлендірілді. Бірдей модульдердің бірнеше нұсқасын жасауға болады.

Жүйелік бағдарламалау тілдері: S3 және SFL

VME операциялық жүйесінің өзі және компиляторлар, транзакцияларды өңдеу мониторлары сияқты басқа жүйелік бағдарламалық жасақтаманы әзірлеу үшін негізгі қолданылатын тіл – S3. Бұл Algol 68-ге көп жағынан негізделген жоғары деңгейдегі тіл, бірақ дерек түрлері мен төмен деңгейдегі функциялар мен операторлары 2900 сериясының архитектурасына тығыз үйлесімді. Ассемблерлік тіл SFL (System Function Language) де қолжетімді. Ол VME/K-ны әзірлеу үшін пайдаланылды, оның жасаушылары жоғары деңгейдегі тілдің жеткілікті өнімділік бере алатынына көз жеткізбеді, сондай-ақ үшінші тарап өнімінің бастапқы түрі болғандықтан IDMS деректер базасы жүйесі үшін де қолданылды. SFL бастапқыда Macro Assembler Programming Language (MAPLE) деп аталды, бірақ 2900 архитектурасы жоғары деңгейдегі тіл машиналарын құрастырылған ретінде ұсынылғаннан кейін, ICL Marketing сұрауы бойынша атауы өзгертілді. Ол D жүйесі үшін құралдар жиынтығының бір бөлігі ретінде әзірленді, бірақ кейін жоба тоқтатылды. Ішкі пайдалану үшін басқа архитектураларға арналған құрастырушылардың (VME-де жұмыс істейтін CALM xx, Pascal-де жасалған және әртүрлі хосттарда жұмыс істейтін PALM xx) туысқан отбасылары әзірленді. S3 де, SFL де соңғы пайдаланушыларға арналған қолданбаларды коммерциялық дамыту құралы ретінде жарияланған емес, себебі олар әдетте операциялық жүйенің стандартты бөлігі ретінде жеткізілмеді және жеке өнім ретінде тікелей сатылмады. Дегенмен, SFL және S3 пайдаланушы ұйымдары мен оларға ерекше қажеттіліктері бар үшінші тараптар үшін опция ретінде қолжетімді болды.