Plan 9 —
независимая операционная система. Она написана с нуля и не включает
исходный код других разработчиков. Хотя интерфейс приложений этой ОС схож с
интерфейсом Unix, Plan 9 — не альтернатива и не замена Unix, это новый проект со своей
конструкцией, идеями и применением.
Работы над Plan 9 начались в конце 80-х годов. При этом преследовались две цели:
система, построенная из дешевых современных компьютеров, должна была управляться
централизованно и при этом быть недорогой. Она создавалась в научно-исследовательском центре вычислительной техники Bell Labs корпорации AT&T той же
группой разработчиков, которой принадлежит создание ОС Unix, языков
программирования C и C++.
К 1989 году система стала настолько устойчивой, что ее начали использовать в качестве
единственной среды вычислений Bell Labs.
Официальная первая версия Plan 9 была выпущена в 1993 году, ее «попробовать» могли лишь высшие учебные заведения США.
Вторая версия вышла в 1995 году и была доступна для общественного использования, она
распространялась в двух вариантах: 1) коробочная версия (две книги-руководства и
компакт-диск с дистрибутивом системы со всеми исходными тестами) за 350$ и 2)
бесплатный дистрибутив системы на четырех дискетах, но без исходных текстов и
интерактивной документации (она была доступна в онлайне). Третья версия вышла в июне
2000 года под open source лицензией. И наконец, текущая, четвертая версия Plan 9 вышла
в апреле 2002 года под той же лицензией, что и третья.
Plan 9 основана на трех концепциях: первая заключается в том, что все системные
объекты и физические устройства представлены в виде файлов; вторая состоит в том, что
эти файлы могут присутствовать в системе как локально, так и удаленно, посредством
стандартного протокола 9P; и наконец, третья концепция, файловая система пространства
имен - набор объектов, видимых программой, динамически и индивидуально
регулируется для каждой программы, работающей на конкретной машине. Первые две
идеи были предвещены Unix а также другими системами, третья же является совершенно
новой, она решает проблемы проектирования распределенных вычислений и графики.
Метод Plan 9 состоит в том, что теперь приложениям не обязательно знать, где они
запущены и работают, какие архитектура и тип машины (машин); клиент может
использовать несколько программ, работающих на разных, географически разнесенных
компьютерах во время одного сеанса, не заботясь о деталях.
Plan 9 улучшает общность и модульность прикладного проекта,
помогая серверам представлять любой тип информации в виде набора обычных файлов.
Например, каждая сеть представлена набором файлов для создания соединения, ввода/вывода и управления.
Общая семантическая сердцевина для операций согласована вместе с общим сервером для
перевода удобочитаемых адресов в специфические сетевые. В результате,
приложениям все равно какой тип сети (TCP/IP, ISDN, модем) они используют.
Фактически, приложениям не известно даже какие сети они используют для физического
соединения машин: файлы сетевого интерфейса могут импортироваться с других машин.
Ядро и приложения Plan 9 — высоко портабельны. Plan 9 является одной из наиболее
портабельных операционных систем в мире. ОС работает на четырех основных
аппаратных архитектурах: x86, MIPS, DEC Alpha и Power PC. Структуры данных и
протоколы разработаны для распределенных вычислений на машинах различных типов.
Существует единый исходный код для всех архитектур, за исключением обязательных
машинно-зависимых частей ядра, компиляторов и нескольких библиотек. Система и
основные приложения могут комфортно чувствовать себя на машине-терминале вроде
Pentium MMX с 32 MB оперативной памяти и 500 MB дискового пространства. Узким
местом в выборе поддерживаемых аппаратных средств являются видеокарты и ide
контроллеры (особенно внешние).
Plan 9 имеет оконную систему, названную 8 1/2. После того, как система загрузилась, она
спрашивает, хочешь ли ты загрузить оконную систему. Если
ты выбираешь эту опцию, появляется 8 1/2. На первый взгляд 8 1/2 выглядит чрезвычайно элементарной. Открывающийся экран представляет одно окно терминала и часы. Навигация
производится в значительной степени мышью. Даже на машине с 8МБ ОЗУ 8 1/2 отвечает
очень быстро. 8 1/2 более динамична, чем большинство других систем управления окнами.
Ты можешь захватывать любой текст в любом месте и использовать его как команду. В этом
отношении 8 1/2 может быть названа завершенной системой "вырезать и вставить".
Объекты, идентифицирующие текст, могут быть захвачены в любой точке и брошены в
любой другой части 8 1/2. Изучение 8 1/2
занимает день или самое большее два.
Если ты программист и ищешь новую и захватывающую операционную систему для
разработки, Plan 9 как раз для тебя. Она интересна, прежде всего, своим необычным дизайном. И
хотя она не UNIX, но имеет достаточно UNIXизма, который пользователи UNIX оценят
по достоинству. Кроме того, уникальные возможности организации сети Plan 9
представляют программистам новые возможности. Программирование в Plan 9 не
ограничено C, хотя реальный дистрибутив Plan 9 поступает с родным компилятором C.
Этот компилятор разработан для генерации кодов для всех поддерживаемых
архитектур. Так же в этой ОС широко используется относительно новый язык Alef.
Разнообразное одноразовое программирование может также быть произведено в rc, среде
оболочки Plan 9. Законченный дистрибутив Plan 9 поступает с обширными библиотеками,
включая одну для разработки оконных приложений, выполняющихся в 8 1/2. Помимо
этого, успешно портированы Perl, Python, Scheme, noweb, Haskell, newsqueak и MosML, но
они не входят в дистрибутив системы. Plan 9 очень богатая среда разработки. Одна вещь,
которая делает её особенно восхитительной, состоит в том, что поле для деятельности
широко открыто. Это целая новая операционная система, только
и ожидающая новые и полезные приложения, которые будут написаны для нее.
И так, каковы основные области применения Plan 9? Plan 9 – это прежде всего система
серверов работающих на разных уровнях. За составляющие файлового дерева отвечают
серверы пользовательского уровня, ядру даже не нужно знать про такие вещи как
файловая система FAT (DOS) или EXT2 (Linux) или NFS и т.д. Взамен, серверы
пользовательского уровня обеспечивают такую функциональность, когда это необходимо.
В Plan 9 даже FTP представлен как файловый сервер: вы запускаете ftpfs, при этом
файлы сервера появляются в каталоге /n/ftp вашей машины. Другие файловые серверы
синтезируют файлы, которые представляют другие типы ресурсов. Например, почтовый
клиент upas/fs представляет ваш почтовый ящик как файловое дерево /mail/fs/mbox, он
также особенно хорошо моделирует рекурсивную структуру MIME сообщений. Другой
пример, сервер cdfs представляет Audio CD или CD с данными в виде файловых систем,
по одному файлу на дорожку. При использовании привода CD-RW, копирование новых
файлов в каталог /mnt/cd/wa или /mnt/cd/wd создает новые дорожки аудио или данных.
Хотите сделать CD лишь для аудио или данных? Удалите один из каталогов.
Поскольку файловые или каталоговые деревья могут импортироваться из других машин, и
все ресурсы — это файлы и каталоги, их легко распространять. Хотите использовать
звуковую карту другой машины? Импортируйте ее файл /dev/audio. Хотите отлаживать
процессы, которые запущены на другой машине? Импортируйте ее каталог /proc. Хотите
использовать сетевой интерфейс другой машины? Импортируйте ее /net каталог.
Очевидно, что Plan 9 умеет эффективно работать с различными сетевыми протоколами.
На базе ОС можно поднять DNS сервер, HTTP сервер, pop3 и imap серверы. Так же
имеется dhcp и ppp сервера. Вообще говоря, хотя Plan 9 и может решать не только сетевые
задачи, без сети ее использование не имеет особого смысла. Зато в сети ОС проявляет себя
на все 100%, давая много удобных интерфейсов для реализации самых разных задач
(отмечу, что именно на Plan 9 работает всеми
нами любимый Google, стоит ли эта ОС еще каких-либо
комментариев? :).
Plan 9 снабжена утилитами позволяющими решать большой круг задач. Более полную
информацию о командах и приложениях можно получить на официальном сайте проекта
http://cm.bell-labs.com/plan9dist. Здесь же можно скачать дистрибутив и узнать о том как
проинсталлировать ОС на свой компьютер. Есть у проекта и русскоязычная страница,
сделанная энтузиастом http://ask.km.ru/plan9. Ресурс содержит много различной
информации на русском языке и является наиболее полным. Используя эти источники
можно установить Plan 9, и настроить ее для эффективного решения самых разных задач.