Содержание статьи
info
Читай также: «Полуось. Как OS/2 изменила судьбу Microsoft и открыла дорогу для Windows».
С чего все началось?
Середина девяностых стала для корпорации 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, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее