ФЭНДОМ


Оригинал: http://www.linux-magazine.com/issues/2006/62/the_other_os
Перевод: RapidFX

Обзор Править

С момента изобретения UNIX, программисты Bell Labs не сидели сложа руки, и одним из плодов их работы стала распределенная операционная система Plan 9. Plan 9 зародился в конце 1980 годов, как новая система призванная решить проблемы UNIX, которые разработчики посчитали «слишком глубокими, для того чтобы исправлять». Эта новая операционная система несла в себе несколько инноваций, оказавших влияние на последующие системы. Но до недавнего времени, Plan 9 находился под коммерческой лицензией, связывавшей пользователей.

Bell Labs и небольшое сообщество программистов продолжали улучшать и развивать Plan 9. Лицензия смягчалась из года в год, и в 2003 году, Plan 9 был наконец то был выпущен под свободной лицензией. Коммерческая ветвь, известная как «Inferno» теперь также открыта.

Давайте взглянем на «4-ю редакцию» Plan 9 и посмотрим что же в ней такого привлекательного?

Начало Править

Дистрибутив занимает 65 Мб запакованного ISO-образа, который можно использовать как live-CD. Если у вас возникли проблемы во время загрузки с CD, вы можете проверить на сайте генератор загрузочных флоппи-дисков для подходящего аппаратного обеспечения. Инсталляция весьма спартанская, но тем не менее хорошо организованная и более-менее дуракоустойчивая (Рис. 1). Инсталлятор проверяет текущий статус после каждого шага. Графика работает для видео-карт с поддержкой Vesa. Если вы предпочитаете не экпериментировать с полной инсталляцией прямо сейчас, можете поиграться в виртуальной машине. Смотрите раздел "Виртуальный Plan 9" для инструкций. Если вы заинтересовались, вы так же можете попробовать установить user-space набор важнейших инструментов [3].

Более последователен чем UNIX Править

Базовая концепция Plan 9 в том что это - распределенная операционная система, не похожая на UNIX, где сетевая функциональность расширена такими механизмами как удаленный вход в систему и сетевая файловая система. В Plan 9, сетевая поддержка встроена в функционал операционной системы. Например, все ресурсы теоретически, могут прозрачно распределены в сети Plan 9. Система скрывает от пользователя, что ресурсы не являются локальными. Plan 9 не только поддерживает файловые серверы, но и серверы авторизации и CPU-серверы. Вы можете использовать Plan 9 для создания грид-систем таких как 9grid.

Plan 9 основан на парадигме UNIX о том, что «все является файлом». Опираясь на огромную коллекцию дополнений, Unix впитывал в себя все больше изменений, которые шли вразрез с исходными принципами. Примером этого является ужасный механизм интерфейса сокетов, используемый для функций чтения и записи и отличный от обычных файлов. Plan 9 кладет этому конец предоставляя интерфейсы файло-ориентированной системы, например, /net/tcp и /net/udp сетевых интерфейсов. Большинство системных служб следуют серверному принципу и взаимодействуют через файл-ориентированные интерфейсы. В Plan 9 нет обычной программы FTP. Вместо этого ftpfs монтирует сервер-FTP в ваш каталог /n/ftp. Сервер 9660fs ответственен за монтирование дисков CD. Plan 9 был первой системой осуществившей поддержку файло-ориентированной системы управления процессами proc. В Plan 9 основную сетевую функциональность осуществляет протокол 9P, в состав которого входит около 30 управляющий сообщений. Реализация 9P в Линукс была добавлена в основное ядро начиная с версии 2.6.14, устранив этим любые препятствия во взаимодействии Linux и Plan 9.

Пространства имен Править

Plan 9 взяв этот файло-ориентированный дизайн, продвинулся дальше с концепцией пространства имен. Традиционно, UNIX управлял своими ресурсами в едином пространстве имен, в котором /dev/tty1 всегда представлял собой один и тот же терминал. В противоположность этому приложения Plan 9 имеют свое собственное пространство имен, так что /dev/window будет указывать на собственное окно приложения. Другая важная особенность - это монтирование с объединением. Это дает возможность упростить управление ресурсами, такими как файлы и каталоги путем монтирования нескольких каталогов в единую точку. Это делает возможным монтирование каталогов с исполняемыми файлами расположенными на сервере в локальный каталог /bin, что делает ненужным трюки с переменной PATH. Линукс совсем недавно позаимствовал такой дизайн перекрывающихся файловых систем Union-FS.

Графика и Rio Править

В противоположность X11 в UNIX, Plan 9 напрямую интегрирован с графическим окружением, и это чрезвычайно упрощенная модель. Лежащая в основе модель принадлежит Oberon Никлауса Вирта, на которой был сделан интерфейс системы Xerox Cedar. Десктоп Plan 9 предоставляет простую программную модель с файло-ориентированным интерфейсом и элементарными операциями. Например, простое cat /dev/screen > output создает снимок экрана приложения. Однако реализация графической подсистемы Rio более сложна, она включает в себя параллельные процессы и нити которые взаимно обращаются друг к другу. Rio может показаться отклонением от правил, модель строчно-ориентированного терминала, которая отбрасывает в прошлые дни, когда принтеры действительно служили для отображения пользовательского ввода. Линукс так же несет это строчно-ориентированное наследие в виде многочисленных терминальных приложений таких как Xterm и консоль KDE. Это позволяет совершать ввод в любой позиции окна: пользователь просто выбирает команду и пользуется мышью для выполнения. Как продвинутая оконная система, Rio создает интенсивную нагрузку на все доступные кнопки мыши. Программа Acme - это необычная комбинация оболочки, редактора и оконной системы. Acme следует принципу которого мы коснулись, но добавляет элементарные меню в терминальные окна и перенаправляет вывод в новые под-окна (Рис. 2). В X11 реализация Acme продублирована Wily, основанного на библиотеке 9lib [6]. Несмотря на почтенный возраст, Rio может обслуживать много-язычные программы, поскольку основан на наборе символов Unicode. Plan 9 использует кодировку UTF-8, созданную командой программистов Plan 9 под руководством Роба Пайка.

Безопасность Править

В Plan 9 не существует супер-пользователя root, и поэтому там нет SUID-программ служащих причиной бесконечных проблем с безопасностью в UNIX. Следуя подобному подходу Kerberos, распределенная система Plan 9 не передает по сети пароли, используя вместо этого зашифрованные тикеты. Один из способов создания пользовательского аккаунта это запуск файлового сервера fossil путем набора con /srv/fscons и ввода команды uname user user. Новые пользователи могут инициализировать свое окружение при первом логине командой /sys/lib/newuser. Конечно, в Plan 9 есть средства разработчика для языка C. Компилятор для архитектуры x86 назван 8с, линкер 8l, а программа-сборщик mk. Для того чтобы скомпилировать новое ядро этими инструментами, администратор системы переходит в каталог /sys/src/9/pc и редактирует соответствующий конфигурационный файл, который называется по-разному в зависимости от окружения: в простейшем случае это pc; pcauth в случае сервера авторизации; pcf в случае fossil сервера и т.д. После конфигурирования ядра, администратор может его компилировать и установить дав команду mk CONF=pcf install. Ядро находится на в загрузочном разделе 9fat, доступ к которой дается командой 9fat:. Там же находится и конфигурационный файл plan9.ini.

Не более чем безделушка Править

Man-страницы предоставляют документацию об инструментарии и обзор; они доступны в онлайне и на страницах Plan 9 Wiki. К несчастью, множество изменений было в «4-й редакции», что делает часть информации устаревшей; так что убедитесь в совпадении версий. Несмотря на фантастический дизайн, Plan 9 не совершенен. Например, окно 9term в Rio часто неправильно скроллируется и не показывает текстовое сообщение в котором вы нуждаетесь. Acme менее глючен. Большая часть системы основана на GUI десктопе, и многие функции не доступны в текстовой консоли: например невозможно убить процесс нажав клавишу [Del]. Другая проблема - очень маленькое сообщество, Comp.os.Plan9, которое продолжает разрабатывать Plan 9 , сражаясь с постоянной нехваткой ресурсов. Факт в том, что Plan 9 не широко распространенный дистрибутив, из-за предыдущей политики лицензирования, препятствовавшей беспрепятственному распространению. Сегодня, Plan 9 значительно менее интересен разработчикам свободного программного обеспечения, нежели Linux дающий им хорошо работающую операционную систему, несмотря на весь тот балласт от UNIX вокруг него [7].