Введение: Когда мир PowerPC встретил открытый исходный код

Представьте, что вы пытаетесь подружить современный софт с железом из альтернативной вселенной — без привычных шин, с капризными контроллерами и архитектурой из 90-х, где каждый килобайт на счету (примерно как пытаться запустить современный Electron-апп на машине с 512 МБ ОЗУ). Прямо сейчас ретрокомпьютинг переживает ренессанс: энтузиасты не просто ставят эмуляторы, а выжимают максимум из раритетного «железа», заставляя его решать реальные задачи. История персональных компьютеров полна неожиданных поворотов, союза конкурентов и смелых экспериментальных проектов. Середина 1990-х годов была особенно интересным временем для компании Apple. Переходя на архитектуру PowerPC совместно с IBM и Motorola, купертиновцы искали новые пути интеграции своих аппаратных решений в корпоративный сегмент. Одним из самых амбициозных и технически изящных проектов той эпохи стал MkLinux — проект по переносу операционной системы GNU/Linux на микроядерную архитектуру Mach, запущенный при активной поддержке Research Institute of Open Systems (OSF) и самого техногиганта из Купертино.

В то время как рядовые пользователи наслаждались классической Mac OS, системные администраторы и разработчики смотрели в сторону серверов. Вершиной аппаратной мысли Apple для корпоративного рынка в середине 90-х был Apple Workgroup Server 9150 — мощная, массивная и дорогая машина на базе процессора PowerPC 601 с тактовой частотой до 80 МГц и поддержкой до 264 МБ оперативной памяти RAM. «Прокачать» такую систему с помощью свободной Unix-подобной операционной системы означало вдохнуть в нее вторую жизнь, превратив дорогой офисный терминал в полноценный сервер для разработки, хостинга и научных вычислений. В этой статье мы подробно разберем архитектуру MkLinux, особенности работы операционной системы на железе AWS 9150 и то, как энтузиасты заставляли работать микроядерную парадигму на оборудовании Apple.

Архитектурные основы MkLinux: Микроядерный подход Mach 3.0

Главное отличие MkLinux от традиционных дистрибутивов Linux того времени заключалось в его фундаменте. Большинство дистрибутивов Linux используют монолитное ядро, где все подсистемы (драйверы устройств, сетевой стек, файловые системы) работают в едином пространстве привилегий. MkLinux пошел по другому пути, взяв за основу микроядро Mach 3.0.

Концепция микроядра заключается в минимизации кода, работающего в режиме ядра (напоминает микросервисную архитектуру головного мозга, где даже драйвер мыши хочет крутиться в отдельном контейнере). Само микроядро Mach отвечало лишь за:

  • Управление задачами и потоками (threads).
  • Планирование процессорного времени.
  • Межпроцессорное взаимодействие (IPC — Inter-Process Communication).
  • Базовое управление виртуальной памятью.

Все остальные компоненты операционной системы, включая файловые системы и сетевые протоколы, были вынесены в пользовательское пространство в виде серверов. Сам же Linux был реализован как один из таких серверов, работающий поверх микроядра Mach. Такой подход обеспечивал высокую изоляцию компонентов, модульность и потенциально повышенную отказоустойчивость, хотя и накладывал определенные накладные расходы на производительность из-за частых переключений контекста и межпроцессорного взаимодействия (IPC).

Но теория — это одно, а заставить эту сложнейшую конструкцию стабильно крутиться на конкретной материнской плате — совсем другая задача. Давайте заглянут под капот культовой серверной машины того времени и посмотрим, с чем именно пришлось столкнуться разработчикам.

Аппаратная база: Apple Workgroup Server 9150

Чтобы понять масштаб энтузиазма разработчиков MkLinux, нужно взглянуть на «железо», на котором всё это запускалось. Apple Workgroup Server 9150 ( AWS 9150 ) базировался на материнской плате от Macintosh Quadra 950, но был серьезно переработан под нужды серверного рынка.

  • Процессор: RISC-чип PowerPC 601 (первое поколение совместной архитектуры Apple, IBM и Motorola).
  • Шина:<дууп>