Операционная система Plan 9, созданная в Bell Labs, является, как и Linux, потомком UNIX. На сертифицированной UNIX, например, основана и macOS. ОС Plan 9, как и UNIX, была создана в виде экспериментальной операционной системы, предназначенной для испытания новых концепций. В Plan 9 реализованы ключевые принципы UNIX, но здесь идея, в соответствии с которой «всё является файлом», выведена на новый уровень.
Кролик Гленда, символ Plan 9
В первой части этого материала мы поговорим об ОС Plan 9, рассмотрим её заметные особенности. Вторая его часть посвящена рассказу о создании самодостаточного Raspberry Pi-кластера, состоящего из 4 узлов. Он представляет собой компактную платформу для экспериментов с Plan 9.
Обзор Plan 9
Операционная система Plan 9 названа в честь культового фантастического фильма «Plan 9 from Outer Space» («План 9 из открытого космоса»). А её талисман, кролик Гленда, это, вероятно, самое симпатичное существо, которое появлялось на логотипах операционных систем. Фанаты языка программирования Go могут отметить некоторое сходство между их сусликом и Глендой. Дело тут в том, что обе иллюстрации нарисовала автор комиксов и художник Рене Френч.
Правда, сходства проектов Plan 9 и Go на этом не заканчиваются. Дело в том, что в основе языка Go лежат некоторые ключевые идеи из Plan 9. Кроме того, в работе над Go и над Plan 9 участвовали одни и те же известные компьютерные специалисты — Кен Томпсон (один из создателей UNIX) и Роб Пайк.
Что такого особенного в ОС Plan 9? Самое интересное в ней — это то, что она является распределённой операционной системой. В системе, работающей под управлением Plan 9, могут присутствовать машины, играющие роль файловых серверов, вычислительных серверов, терминалов. Возможно, выглядит подобное не таким уж и необычным, но Plan 9 организует прозрачный доступ к подобным ресурсам. Всё в распределённой системе представлено файлами, которые можно экспортировать для удалённого использования. Например, это могут быть процессоры, устройства ввода/вывода, сервисы резервного копирования данных, оконная система.
Plan 9 отходит от идеи наличия в системе суперпользователя (root). Вместо этого тут имеется такое понятие, как «владелец машины» («host owner»). Он владеет всеми ресурсами некоего компьютера и может управлять его процессором, дисками, процессами. Процессам (включая процессы, представляющие удалённых пользователей) назначаются права доступа к пространству имён (к файловой системе). Благодаря этому выполнение различных операций в распределённой среде и поддержка удалённого доступа к ресурсам превращаются в самые обычные задачи.
Программы, которые предоставляют доступ к службам, представленным в виде файлов, обмениваются друг с другом информацией с использованием унифицированного протокола 9P. Это, например, оконная система, текстовые редакторы и другие обычные приложения вроде почтовых клиентов.
Первая редакция Plan 9, вышедшая в 1992 году, поставлялась в учебные заведения. Потом ОС разрешили использовать в некоммерческих проектах, потом открыли её код и выпустили её под свободной лицензией. Последний официальный релиз Plan 9 выпущен Lucent Technologies в 2002 году. Несмотря на то, что Plan 9 — это экспериментальная ОС, она нашла применение в некоторых реальных проектах, например — в RAID-массивах, предназначенных для использования в дата-центрах. Кроме того, вокруг этой ОС собралась группа энтузиастов, которые и в наши дни поддерживают и кодовую базу Plan 9, и кодовую базу её форков.
Конструкция кластера
Элементы корпуса кластера
Мне хотелось создать Plan 9-кластер, основанный на Raspberry Pi, представляющий собой самодостаточную систему, или, скорее, распределённую систему, заключённую в аккуратный корпус. Этот кластер я планировал использовать для экспериментов с Plan 9. Корпус выполнен из элементов, вырезанных из тонких акриловых листов с помощью лазера. Благодаря тому, что крупные элементы корпуса представляют собой цельные листы, согнутые в определённых местах, при сборке не приходится использовать слишком много крепежа.
Одна из частей корпуса, состоящего из гибких листов
А именно, корпус состоит из двух согнутых листов акрила. На самом деле, в его состав входит и ещё одна часть, пластиковый диск, расположенный в его верхней части, над вентиляционными отверстиями. Но эта деталь корпуса, если говорить честно, нужна, в основном, для того чтобы намекнуть на «космическую» историю Plan 9.
Другая часть корпуса
В корпусе предусмотрено крепление для Ethernet-коммутатора. Это позволяет аккуратно разместить сетевые кабели. Тут имеется и ещё одно небольшое крепление для светодиода, который подсвечивает вырезанный на передней стенке корпуса контур Гленды. Это — совершенно необходимая деталь подобного проекта.
Сетевые кабели можно аккуратно разместить внутри корпуса
Удлинительные кабели с разъёмами, подходящими для монтажа на задней части корпуса, предназначены для подключения к USB- и HDMI-портам той платы Raspberry Pi, которая будет играть роль терминала. На заднюю часть выведен и Ethernet-разъём, с помощью которого кластер связывается с внешним миром.
Задняя часть корпуса со смонтированными на ней разъёмами
Питание на платы Raspberry Pi и на Ethernet-коммутатор подаётся по 3-контактному XLR-разъёму.
Корпус в сборе
Между нижней и верхней частями корпуса имеются шестигранные нейлоновые стойки, в которые, сверху и снизу, вкручены нейлоновые винты M3, скрепляющие корпус. Диск, расположенный в верхней части корпуса, над вентиляционными отверстиями, закреплён нейлоновыми винтами M3 и соответствующими гайками. Между ним и верхней частью корпуса имеются 5-миллиметровые круглые прокладки. Тут, вместо прокладок, вполне можно использовать нейлоновые гайки.
Первая загрузка
Система в сборе
Один из самых интересных форков Plan 9 называется 9Front. И хотя сайт проекта выглядит странновато, на нём можно найти образ системы для Raspberry Pi, который можно записать на Micro SD-карту. Именно это мне и было нужно.
Надо отметить, что в проекте используются платы Raspberry Pi 2 Model B. В момент написания материала это были самые свежие из плат, поддерживаемых проектом 9Front. Но, как оказалось, базовый дистрибутив Plan9 постоянно обновляется. И он, например, поддерживает Raspberry Pi 3 Model B+ вместе с её гигабитным Ethernet-адаптером и новым беспроводным модулем. Образ для записи на SD-карту можно найти здесь.
Я записал образ системы на Micro SD-карту и вставил её в соответствующий разъём платы, которая расположена в самом низу. Именно к этой плате подключены USB- и HDMI-разъёмы, выходящие на заднюю стенку устройства.
Клавиатура
Дух проекта оправдывает использование в нём 47-клавишной клавиатуры Vortex Core. Она, вместе с небольшим HDMI-монитором, придаёт кластеру футуристичный вид. К тому же, всё это занимает совсем немного места.
Включение питания
После включения питания кластера тут же подсвечивается изображение Гленды.
Удачная загрузка
Терминал загружается, мы получаем возможность работать с оконной системой и видим текст приветствия.
Зачем это всё?
Возможно, вас посетила такая мысль: «Зачем собирать подобную установку?». Ответить на этот вопрос можно по-разному. Например — так: «Потому что это возможно!». Но, в любом случае, хотя Plan 9, вероятнее всего, не задумывалась как ОС, которая захватит мир, это — крайне интересный проект. Он интересен с точки зрения системной инженерии и, как уже было сказано, интересен тем, что идеи, зародившиеся в нём, нашли применение во многих других проектах.
Если вы хотите создать собственный Plan 9-кластер на базе Raspberry Pi — вот чертежи и подробное описание необходимых деталей.
Планируете сделать собственный Plan 9-кластер?
Автор: ru_vds