/sys/doc/ Documentation archive

Обзор

Почему 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