Обзор
Почему Plan 9?
Итак, почему именно Plan 9? Может быть Plan 9 просто еще один клон Unix? Кому все это нужно?
Первое, что сразу бросается в глаза при взгляде на ОС, — это последовательный и легкий в использовании интерфейс. После того как я перешел с Windows 3.1 на Linux, я обратил внимание на то, что всевозможные противоречия Windows отсутствуют в Linux, в свою очередь, переход с Linux на Plan 9 показал, что всевозможные противоречия Linux отсутствуют в Plan 9.
Одна из главных причин успеха Plan 9 заключается в том, что она с рождения использовалась в каждодневной работе Bell Labs. Активное использование вынуждало разрешения проблем по мере их возникновения и адаптации системы к решению наших задач. Благодаря этому процессу, Plan 9 стала удобной, продуктивной программной средой, а также средством для дальнейших системных исследований. Например, в ядре реально отсутствует «драйвер tty», он является результатом работы оконной системы.
Таким образом, если бы Plan 9 была всего-лишь еще одним клоном Unix, то в пригодность его использования поверить довольно таки трудно. Интересные вещи начинают происходить с файловыми серверами пользовательского уровня и пространствами имен процессов. Что же касается Unix, то /dev/tty имеет отношение к устройству вывода текущего окна и представляет разные ресурсы разным процессам. /dev/cons в Plan 9 также имеет отношение только к устройству вывода текущего окна и представляет разные ресурсы разным процессам, но, при этом оконная система (или telnet, или ssh, или какой-нибудь другой демон) выполняет размещение файлов такого рода, и делает то же самое для /dev/mouse, /dev/text (содержимого текущего окна), и т.п.
Поскольку за составляющие файлового дерева отвечают серверы пользовательского уровня, ядру даже не нужно знать про такие вещи как файловая система 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 лишь для аудио или данных? Удалите один из каталогов.
И напоследок, стоит отметить ориентацию Plan 9 на сетевую среду. Поскольку файловые или каталоговые деревья могут импортироваться из других машин, и все ресурсы — это файлы и каталоги, их легко распространять. Хотите использовать звуковую карту другой машины? Импортируйте ее файл /dev/audio. Хотите отлаживать процессы, которые запущены на другой машине? Импортируйте ее каталог /proc. Хотите использовать сетевой интерфейс другой машины? Импортируйте ее /net каталог. И т.д. и т.п.
Copyright © 2003 Перевод Андрей С. Кухар. Последняя модификация 22.08.2003