- PVSM.RU - https://www.pvsm.ru -
Операционная система Plan 9 [1], созданная в 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 from Outer Space» («План 9 из открытого космоса»). А её талисман, кролик Гленда, это, вероятно, самое симпатичное существо, которое появлялось на логотипах операционных систем. Фанаты языка программирования Go [2] могут отметить некоторое сходство между их сусликом и Глендой. Дело тут в том, что обе иллюстрации нарисовала автор комиксов и художник Рене Френч.
Правда, сходства проектов Plan 9 и Go на этом не заканчиваются. Дело в том, что в основе [3] языка 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 [4]. И хотя сайт проекта выглядит странновато, на нём можно найти образ системы для Raspberry Pi, который можно записать на Micro SD-карту. Именно это мне и было нужно.
Надо отметить, что в проекте используются платы Raspberry Pi 2 Model B. В момент написания материала это были самые свежие из плат, поддерживаемых проектом 9Front. Но, как оказалось, базовый дистрибутив Plan9 постоянно обновляется. И он, например, поддерживает Raspberry Pi 3 Model B+ вместе с её гигабитным Ethernet-адаптером и новым беспроводным модулем. Образ для записи на SD-карту можно найти здесь [5].
Я записал образ системы на Micro SD-карту и вставил её в соответствующий разъём платы, которая расположена в самом низу. Именно к этой плате подключены USB- и HDMI-разъёмы, выходящие на заднюю стенку устройства.

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

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

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

Автор: ru_vds
Источник [8]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/razrabotka/358183
Ссылки в тексте:
[1] Plan 9: https://9p.io/plan9/
[2] Go: https://en.wikipedia.org/wiki/Go_(programming_language)
[3] основе: https://talks.golang.org/2012/splash.article
[4] 9Front: http://9front.org/
[5] здесь: http://plan9.bell-labs.com/sources/contrib/miller/9pi.img.gz
[6] вот: https://github.com/DesignSparkrs/pi-cluster-case
[7] Image: http://ruvds.com/ru-rub?utm_source=habr&utm_medium=article&utm_campaign=perevod&utm_content=plan_9_klaster_na_raspberry_pi#order
[8] Источник: https://habr.com/ru/post/524168/?utm_source=habrahabr&utm_medium=rss&utm_campaign=524168
Нажмите здесь для печати.