[Перевод] Plan 9-кластер на Raspberry Pi

Операционная система Plan 9, созданная в Bell Labs, является, как и Linux, потомком UNIX. На сертифицированной UNIX, например, основана и macOS. ОС Plan 9, как и UNIX, была создана в виде экспериментальной операционной системы, предназначенной для испытания новых концепций. В Plan 9 реализованы ключевые принципы UNIX, но здесь идея, в соответствии с которой «всё является файлом», выведена на новый уровень.

73619ca905ee254563604199d5a32ee5.jpg


Кролик Гленда, символ 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, и кодовую базу её форков.

Конструкция кластера


f9b3474e378140a064bf4e28b95bd3c2.jpg


Элементы корпуса кластера

Мне хотелось создать Plan 9-кластер, основанный на Raspberry Pi, представляющий собой самодостаточную систему, или, скорее, распределённую систему, заключённую в аккуратный корпус. Этот кластер я планировал использовать для экспериментов с Plan 9. Корпус выполнен из элементов, вырезанных из тонких акриловых листов с помощью лазера. Благодаря тому, что крупные элементы корпуса представляют собой цельные листы, согнутые в определённых местах, при сборке не приходится использовать слишком много крепежа.

6d4a97b8cac28439175d33c5775fe212.jpg


Одна из частей корпуса, состоящего из гибких листов

А именно, корпус состоит из двух согнутых листов акрила. На самом деле, в его состав входит и ещё одна часть, пластиковый диск, расположенный в его верхней части, над вентиляционными отверстиями. Но эта деталь корпуса, если говорить честно, нужна, в основном, для того чтобы намекнуть на «космическую» историю Plan 9.

3186a38185671ad37bd856b25c321f53.jpg


Другая часть корпуса

В корпусе предусмотрено крепление для Ethernet-коммутатора. Это позволяет аккуратно разместить сетевые кабели. Тут имеется и ещё одно небольшое крепление для светодиода, который подсвечивает вырезанный на передней стенке корпуса контур Гленды. Это — совершенно необходимая деталь подобного проекта.

52566e5ef4258326c06c9c654d35be26.jpg


Сетевые кабели можно аккуратно разместить внутри корпуса

Удлинительные кабели с разъёмами, подходящими для монтажа на задней части корпуса, предназначены для подключения к USB- и HDMI-портам той платы Raspberry Pi, которая будет играть роль терминала. На заднюю часть выведен и Ethernet-разъём, с помощью которого кластер связывается с внешним миром.

d7d935c885d971eae5edb426499809f1.jpg


Задняя часть корпуса со смонтированными на ней разъёмами

Питание на платы Raspberry Pi и на Ethernet-коммутатор подаётся по 3-контактному XLR-разъёму.

eb60b9eff446ce728480190250370f2a.jpg


Корпус в сборе

Между нижней и верхней частями корпуса имеются шестигранные нейлоновые стойки, в которые, сверху и снизу, вкручены нейлоновые винты M3, скрепляющие корпус. Диск, расположенный в верхней части корпуса, над вентиляционными отверстиями, закреплён нейлоновыми винтами M3 и соответствующими гайками. Между ним и верхней частью корпуса имеются 5-миллиметровые круглые прокладки. Тут, вместо прокладок, вполне можно использовать нейлоновые гайки.

Первая загрузка


81da1bf5eac371fdafeb91537999935e.jpg


Система в сборе

Один из самых интересных форков 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-разъёмы, выходящие на заднюю стенку устройства.

3e61d5efc0a262f49e62ad5fca0a7135.jpg


Клавиатура

Дух проекта оправдывает использование в нём 47-клавишной клавиатуры Vortex Core. Она, вместе с небольшим HDMI-монитором, придаёт кластеру футуристичный вид. К тому же, всё это занимает совсем немного места.

860d6224d40b1a7b96c344ea32182ee4.jpg


Включение питания

После включения питания кластера тут же подсвечивается изображение Гленды.

6d78f1ebfbd1f8459bc8eb5579f21d5f.jpg


Удачная загрузка

Терминал загружается, мы получаем возможность работать с оконной системой и видим текст приветствия.

Зачем это всё?


Возможно, вас посетила такая мысль: «Зачем собирать подобную установку?». Ответить на этот вопрос можно по-разному. Например — так: «Потому что это возможно!». Но, в любом случае, хотя Plan 9, вероятнее всего, не задумывалась как ОС, которая захватит мир, это — крайне интересный проект. Он интересен с точки зрения системной инженерии и, как уже было сказано, интересен тем, что идеи, зародившиеся в нём, нашли применение во многих других проектах.

Если вы хотите создать собственный Plan 9-кластер на базе Raspberry Pi — вот чертежи и подробное описание необходимых деталей.

Планируете сделать собственный Plan 9-кластер?

oug5kh6sjydt9llengsiebnp40w.png

3piw1j3wd_cgmzq9sefgferaumu.png

© Habrahabr.ru