Jakie aspekty Planu 9 trafiły do ​​Uniksa?

28

Plan 9 został opracowany przez Bell Labs jako następca Uniksa. Chociaż z różnych powodów nigdy się tak nie zmaterializował, znaczna część rozwoju została wprowadzona w planie 9.

Moje pytanie brzmi: co - jeśli w ogóle - z Plan 9 trafiło do współczesnego Uniksa?

Justin Ethier
źródło
1
z gazety: „najbardziej niebezpiecznym wrogiem lepszego rozwiązania jest istniejąca baza kodów, która jest wystarczająco dobra”.
rahmu

Odpowiedzi:

18

cloneWywołanie systemowe (2) w Linux powiedział były wzorowane Plan 9-tych rfork(). (Osobiście nie widzę, jak działa czas.)

Artykuł ten twierdzi, że Plan 9 zainspirował „przestrzeń nazw montowania / systemu plików”.

/procPlików wydaje się przyjść do Planu 9 z 8th Edition Unix, a nie na odwrót.

Bruce Ediger
źródło
Wydaje się, że przybywa coraz więcej elementów, ale nie wystarcza do przeniesienia natywnych aplikacji plan9 ze 100% oryginalną funkcjonalnością.
Joe,
17

Oczywistym jest prawdopodobnie UTF-8. Ale to chyba zbyt oczywiste.

Wielka re-architektura architektury systemu Linux VFS przez Al Viro jest mocno zainspirowana przez Plan9. Zwłaszcza przejście z „Everything Is A File” do „… A Every File Is A Mount Point”.

Jörg W Mittag
źródło
4
Czy mógłbyś krótko wyjaśnić (lub wskazać mi zasób, który wyjaśnia), co należy rozumieć przez „... a każdy plik jest punktem podłączenia”?
Pan Shickadance
3
@Pan. Shickadance: Tradycyjnie można montować tylko systemy plików i montować je tylko w katalogach. W systemie Linux można także montować katalogi w katalogach i pliki w plikach. W pewnym sensie każdy katalog i każdy plik jest systemem plików, a każdy plik (a nie tylko każdy katalog) jest punktem montowania. Przykład:cd /tmp; echo a > a; echo b > b; sudo mount --bind a b; cat b # => a
Jörg W Mittag
8

Systemy plików Unii, takie jak unionfs i aufs , zostały zainspirowane montowaniem katalogów unii Plan9 .

Na przykład są one używane na żywych płytach CD do łączenia się /usr/binz płytą CD z zapisywalnym systemem plików, dzięki czemu można wprowadzać zmiany /usr/bin, nawet jeśli płyta CD jest tylko do odczytu.

Systemy plików Unii: Implementacje, część I na lwn.net

Na przykład, jeśli dobrze rozumiem dokumenty, na Plan9 możesz wykonać:

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

I wszystkie pliki we wszystkich trzech katalogach pojawią się w /bin(w przypadku zduplikowanych nazw, wygrywa ten z ostatniego określonego katalogu, z powodu -bopcji).

Nie jestem pewien, czy to właśnie Bruce rozumie przez „przestrzeń nazw montowania / systemu plików”, czy może coś innego.


Prawdopodobnie można również powiedzieć, że sshfs został zainspirowany ftpfs z Plan9 .

Mikel
źródło
3

W planie 9 każdy „system plików” jest implementowany przez demona przestrzeni użytkownika. (Pomyśl BEZPIECZNIK.) Wszystkie te demony mówią o 9P (konkretnie 9P2000, druga wersja protokołu). 9P jest zasadniczo tym, co łączy różne części systemu.

Projekt v9fs implementuje sterownik jądra Linux dla protokołu 9P. Według strony wiki Plan 9 na nim znajduje się w jądrze głównym od jądra 2.6.14.

strugee
źródło