Аль­тер­натив­ная исто­рия — один из самых популяр­ных литера­тур­ных жан­ров. Мно­гим инте­рес­но узнать, в какую сто­рону свер­нула бы цивили­зация, если бы Колумб не открыл Аме­рику или IBM при­няла на воору­жение вмес­то чипов Intel про­цес­соры PowerPC… Впро­чем, пос­леднее — сов­сем не фан­тасти­ка, а реаль­ный исто­ричес­кий факт. Ведь для «IBM PowerPC» даже раз­рабаты­валась спе­циаль­ная опе­раци­онная сис­тема!
 

С чего все началось?

Се­реди­на девянос­тых ста­ла для кор­порации IBM не луч­шим пери­одом в ее исто­рии. С одной сто­роны, соз­данный этой ком­пани­ей стан­дарт пер­сональ­ных компь­юте­ров IBM PC заво­евал зна­читель­ную долю рын­ка во всем мире, с дру­гой — незави­симые про­изво­дите­ли кле­пали IBM-сов­мести­мые пер­сонал­ки и ком­плек­тующие для них мил­лион­ными тиража­ми, лишая при­были самого авто­ра тех­нологии. Ко все­му про­чему спе­циаль­но раз­работан­ная для этих машин опе­раци­онная сис­тема OS/2 стре­митель­но теряла популяр­ность под натис­ком Microsoft Windows, прев­ратив­шей­ся в самую рас­простра­нен­ную ОС на нашей пла­нете. Впо­ру задумать­ся над сво­им будущим.

И в IBM задума­лись. Выход из сло­жив­шегося тех­нологи­чес­кого и финан­сового тупика там уви­дели в сме­не аппа­рат­ной плат­формы: если вмес­то про­цес­соров Intel пер­сонал­ки IBM PC будут исполь­зовать мик­росхе­мы PowerPC, это поз­волит ком­пании, во‑пер­вых, сос­редото­чить в сво­их руках про­изводс­тво железа, а во‑вто­рых, выпус­тить под эту тех­нологи­чес­кую плат­форму собс­твен­ную опе­раци­онку, что, в свою оче­редь, поз­волит писать и про­давать софт для нее.

Кор­порация IBM вмес­те с Motorola и Apple уже дав­но при­нима­ла непос­редс­твен­ное учас­тие в раз­работ­ке RISC-архи­тек­туры PowerPC, потому эти про­цес­соры были для нее, что называ­ется, «род­ными». К 1994 году ком­пания Apple пла­ниро­вала пол­ностью отка­зать­ся от про­цес­соров Motorola серии 68k в поль­зу PowerPC, что слу­жило наг­лядным при­мером, доказы­вающим прин­ципи­аль­ную воз­можность такой радикаль­ной сме­ны архи­тек­туры. К сло­ву, зна­читель­но поз­же Apple про­дела­ла подоб­ный фокус еще дваж­ды: в 2006-м, миг­рировав с PPC на плат­форму Intel, и в 2020-м, перей­дя с Intel на чипы Apple Silicon. Что же каса­ется опе­раци­онной сис­темы, которую мож­но было бы исполь­зовать на новых компь­юте­рах IBM, то работа над ней началась еще в 1991 году. В общем, казалось, что для реали­зации это­го амби­циоз­ного про­екта звез­ды скла­дыва­лись самым бла­гоп­рият­ным обра­зом.

 

Концепция операционной системы

В 1990-м, ког­да IBM и Microsoft окон­чатель­но прек­ратили сот­рудни­чес­тво по раз­работ­ке OS/2, архи­тек­торы пер­вой из этих двух ком­паний приш­ли к выводу, что эво­люция опе­раци­онных сис­тем дви­жет­ся куда‑то не туда. Унас­ледован­ная еще из шес­тидеся­тых парадиг­ма про­цедур­ного прог­рамми­рова­ния делала раз­работ­ку ОС чрез­вычай­но тру­доем­ким и ресур­созат­ратным про­цес­сом. Прог­раммис­ты тра­тили мас­су вре­мени не толь­ко на написа­ние кода: коман­ды раз­работ­чиков, пог­лощен­ные исправ­лени­ем оши­бок и внед­рени­ем новых фун­кций, не успе­вали соз­давать сов­мести­мые с этой ОС при­ложе­ния. Каж­дая опе­раци­онная сис­тема сущес­тво­вала в изо­ляции и не поз­воляла исполь­зовать при­ложе­ния из дру­гой эко­сис­темы. Архи­тек­торы IBM меч­тали об «уни­вер­саль­ной» плат­форме, в которой мож­но было бы запус­кать прог­раммы, соз­данные и для DOS/Windows, и для OS/2, и для UNIX.

Что­бы воп­лотить эту меч­ту в реаль­ность, в IBM начали тру­дить­ся сра­зу в двух нап­равле­ниях. Во‑пер­вых, ком­пания решила пол­ностью сло­мать общепри­нятый тог­да цикл раз­работ­ки опе­раци­онных сис­тем, под­разуме­вав­ший выпуск нес­коль­ких аль­фа‑вер­сий, затем бета‑вер­сий, потом релиз‑кан­дидата и, наконец, релиза, пос­ле чего весь про­цесс пов­торял­ся с новой вер­сией ОС. Вмес­то это­го они решили рас­парал­лелить раз­работ­ку и тес­тирова­ние: в этом слу­чае тес­тиров­щики работа­ли с отдель­ными модуля­ми ОС, в то вре­мя как прог­раммис­ты занима­лись написа­нием новых ком­понен­тов и исправ­лени­ем багов в сущес­тву­ющих. Этот прин­цип получил наз­вание Grand Unified Theory of Systems (GUTS), или «боль­шая еди­ная теория сис­тем». Во‑вто­рых, в IBM начали соз­давать мик­рояд­ро для прин­ципи­аль­но новой опе­раци­онной сис­темы, отличной от OS/2. Идея была гран­диоз­ной: в IBM нацели­лись, ни мно­го ни мало, соз­дать еди­ную уни­фици­рован­ную архи­тек­туру для мно­жес­тва сущес­тву­ющих и будущих опе­раци­онных сис­тем мира.

Это мик­рояд­ро, получив­шее наз­вание IBM Microkernel, было задума­но как мас­шта­биру­емое, кросс‑плат­формен­ное и модуль­ное, с под­дер­жкой кли­ент‑сер­верной архи­тек­туры, при этом лицен­зировать пред­полага­лось не толь­ко бинар­ные фай­лы, но и исходный код. В IBM наде­ялись добить­ся уни­вер­саль­нос­ти, бла­года­ря которой это мик­рояд­ро мож­но было бы исполь­зовать как на нас­толь­ных компь­юте­рах, так и в мей­нфрей­мах, при­мер­но как сей­час ядро Linux лежит в осно­ве ОС и на мобиль­ных Android-устрой­ствах, и на пер­сонал­ках, и на сер­верах. За осно­ву в IBM взя­ли модифи­циро­ван­ный Open Software Foundation форк мик­рояд­ра Mach 3.0, соз­данно­го сот­рудни­ками уни­вер­ситета Кар­неги — Мел­лона Ричар­дом Рашидом и Эви Тевань­яном. Выбор был про­думан­ным: это же мик­рояд­ро поз­же ста­ло осно­вой для раз­работан­ного Apple ядра XNU, которое исполь­зует­ся в macOS, iOS, iPadOS, tvOS и watchOS.

Пла­ны IBM были амби­циоз­ными. Работа­ющая на осно­ве IBM Microkernel опе­раци­онная сис­тема дол­жна была широко исполь­зовать биб­лиоте­ки и фрей­мвор­ки для упро­щения соз­дания прик­ладных прог­рамм, обес­печивать пол­ную обратную сов­мести­мость с уста­рев­шими и нас­леду­емы­ми сис­темами и при этом под­держи­вать как 32-бит­ный, так и 64-бит­ный режимы работы, при­чем парал­лель­но. Кро­ме того, новое мик­рояд­ро дол­жно было работать на нес­коль­ких аппа­рат­ных архи­тек­турах: PowerPC, ARM и x86, но от этих гран­диоз­ных пла­нов в ито­ге приш­лось отка­зать­ся, и пол­номас­штаб­ная под­дер­жка была реали­зова­на толь­ко для PPC.

По­верх мик­рояд­ра рас­полагал­ся слой обще­дос­тупных служб (Personality Neutral Services, PNS), обес­печива­ющий вза­имо­дей­ствие ядра и прик­ладных про­цес­сов в опе­раци­онной сис­теме. Ведущий архи­тек­тор IBM Пол Джи­ангарра, занимав­ший­ся про­екти­рова­нием этой ОС, писал, что слой PNS по задум­ке раз­работ­чиков вклю­чал не толь­ко низ­коуров­невые служ­бы фай­ловой сис­темы, вво­да‑вывода и драй­веров устрой­ств, но и высоко­уров­невые служ­бы, обес­печива­ющие работу сетево­го сте­ка и баз дан­ных. Счи­талось, что раз­мещение таких ори­енти­рован­ных на при­ложе­ния служб близ­ко к мик­рояд­ру повысит их эффектив­ность за счет сок­ращения количес­тва вызовов фун­кций.

В IBM при­дума­ли и собс­твен­ную модель драй­веров под наз­вани­ем Adaptive Driver Architecture (ADD) — пред­полага­лось, что она облегчит пор­тирова­ние драй­веров меж­ду раз­ными ОС, исполь­зующи­ми IBM Microkernel. По задум­ке раз­работ­чиков такие драй­веры дол­жны были стать частью инс­тру­мен­тария, обес­печива­юще­го перено­симость ОС: нап­ример, некото­рые из них мог­ли исполь­зовать­ся с целью под­дер­жки обо­рудо­вания, необ­ходимо­го для нор­маль­ной работы при­ложе­ний Windows и OS/2 на мик­рояд­ре IBM Microkernel.

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    9 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии