Какие аспекты Plan 9 попали в Unix?

28

Plan 9 был разработан Bell Labs как преемник Unix. Хотя по разным причинам он так и не был реализован как таковой, значительная часть разработки все же вошла в План 9.

Мой вопрос заключается в том, что - если вообще что-нибудь - из Plan 9 пробилось в современный Unix?

Джастин этир
источник
1
из газеты: «самый опасный враг лучшего решения - это существующая кодовая база, которая достаточно хороша».
Рахму

Ответы:

18

clone(2) системный вызов в Linux как говорят , были смоделированы после Plan 9 rfork(). (Лично я не вижу, как работает время.)

В этой статье утверждается, что Plan 9 вдохновил «пространство имен mount / filesystem».

/procФайловая система , похоже, пришли к Plan 9 от 8 - го издания Unix, а не наоборот.

Брюс Эдигер
источник
Кажется, что все больше и больше штук продолжают появляться, но их недостаточно для переноса собственных приложений plan9 со 100% оригинальной функциональностью.
Джо
17

Очевидным, вероятно, является UTF-8. Но это, наверное, слишком очевидно.

Великая перестройка Аль Виро Linux VFS в значительной степени вдохновлена ​​Plan9. Особенно переход от «Все - файл» к «… И каждый файл - точка монтирования».

Йорг Миттаг
источник
4
Не могли бы вы вкратце объяснить (или указать мне ресурс, который объясняет), что означает «... и каждый файл является точкой монтирования»?
Мистер Шикаданс
3
@Мистер. Shickadance: Традиционно вы можете монтировать только файловые системы и монтировать их только в каталогах. В Linux вы также можете монтировать каталоги в каталогах и файлы в файлах. Таким образом, в некотором смысле каждый каталог и каждый файл являются файловой системой, а каждый файл (и не только каждый каталог) является точкой монтирования. Пример:cd /tmp; echo a > a; echo b > b; sudo mount --bind a b; cat b # => a
Йорг Миттаг
8

Файловые системы Union, такие как unionfs и aufs , были вдохновлены монтированием Plan9 union .

Например, они используются на живых компакт-дисках для слияния /usr/binс компакт-диска с записываемой файловой системой, так что вы можете вносить изменения /usr/bin, даже если компакт- диск доступен только для чтения.

Объединение файловых систем: реализации, часть I на lwn.net

Например, если я правильно понимаю документы, на Plan9 вы могли бы сделать:

bind -b /usr/bin /bin
bind -b /usr/local/bin /bin
bind -b /home/username/bin /bin

И все файлы во всех трех каталогах будут отображаться в /bin(в случае дублированных имен, тот, который находится в последнем указанном каталоге, выигрывает из-за -bопции).

Я не уверен, что это то, что Брюс имеет в виду под "пространством имен mount / filesystem", или это что-то другое.


Вы также можете сказать, что sshfs был вдохновлен ftpfs Plan9 .

Mikel
источник
3

В Plan 9 каждая «файловая система» реализована демоном пространства пользователя. (Подумайте FUSE.) Все эти демоны говорят о 9P (в частности, 9P2000, вторая версия протокола). 9P - это то, что объединяет различные части системы.

Проект v9fs реализует драйвер ядра Linux для протокола 9P. Согласно вики-странице Plan 9 , она находится в основном ядре ядра 2.6.14.

strugee
источник