Plan9
Материал из Викиучебника
С момента изобретения 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].