Welche Aspekte von Plan 9 haben ihren Weg in Unix gefunden?

28

Plan 9 wurde von Bell Labs als Nachfolger von Unix entwickelt. Obwohl es aus verschiedenen Gründen nie ganz als solches zustande kam, steckte noch einiges an Entwicklung in Plan 9.

Meine Frage ist, was - wenn überhaupt - aus Plan 9 in das moderne Unix Einzug gehalten hat.

Justin Ethier
quelle
1
Aus der Zeitung: "Der gefährlichste Feind einer besseren Lösung ist eine existierende Codebasis, die gerade gut genug ist."
Rahmu

Antworten:

18

Der clone(2) Systemaufruf in Linux soll nach Plan 9 modelliert worden sein rfork(). (Ich persönlich sehe nicht, wie das Timing funktioniert.)

In diesem Artikel wird behauptet, dass Plan 9 den "Mount / Dateisystem-Namespace" inspiriert hat.

Das /procDateisystem scheint von der 8. Edition von Unix zu Plan 9 gekommen zu sein, und nicht umgekehrt.

Bruce Ediger
quelle
Es scheint, dass immer mehr Teile rüberkommen, aber nicht genug, um native plan9-Anwendungen mit 100% Originalfunktionalität zu portieren.
Joe
17

Das offensichtliche ist wahrscheinlich UTF-8. Aber das ist wahrscheinlich zu offensichtlich.

Al Viros großartige Neuarchitektur des Linux-VFS ist stark von Plan9 inspiriert. Besonders die Verlagerung von "Alles ist eine Datei" zu "... und jede Datei ist ein Einhängepunkt".

Jörg W. Mittag
quelle
4
Könnten Sie kurz erklären (oder mich auf eine Ressource verweisen, die erklärt), was unter "... und jede Datei ist ein Einhängepunkt" zu verstehen ist?
Mr. Shickadance
3
@Herr. Shickadance: Traditionell können Sie Dateisysteme nur mounten und Sie können sie nur in Verzeichnissen mounten. Unter Linux können Sie auch Verzeichnisse in Verzeichnisse und Dateien in Dateien einbinden. In gewisser Weise ist also jedes Verzeichnis und jede Datei ein Dateisystem, und jede Datei (und nicht nur jedes Verzeichnis) ist ein Einhängepunkt. Beispiel:cd /tmp; echo a > a; echo b > b; sudo mount --bind a b; cat b # => a
Jörg W Mittag
8

Union-Dateisysteme wie unionfs und aufs wurden von Plan9- Union-Directory-Mounts inspiriert .

Beispielsweise werden sie auf Live-CDs verwendet, um /usr/bindie CD mit einem beschreibbaren Dateisystem zusammenzuführen, sodass Sie Änderungen vornehmen können /usr/bin, auch wenn die CD schreibgeschützt ist.

Union-Dateisysteme: Implementierungen, Teil I auf lwn.net

Wenn ich beispielsweise die Dokumente in Plan9 richtig verstehe, können Sie Folgendes tun:

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

Alle Dateien in allen drei Verzeichnissen werden in angezeigt /bin(bei doppelten Namen gewinnt der im zuletzt angegebenen Verzeichnis aufgrund der -bOption).

Ich bin mir nicht sicher, ob Bruce das mit "Mount / Dateisystem-Namespace" meint oder etwas anderes ist.


Man könnte wahrscheinlich auch sagen, dass sshfs von Plan9s ftpfs inspiriert wurde .

Mikel
quelle
3

In Plan 9 wird jedes "Dateisystem" von einem Userspace-Daemon implementiert. (Denken Sie an FUSE.) Diese Daemons sprechen alle 9P (insbesondere 9P2000, die zweite Version des Protokolls). 9P ist im Wesentlichen das, was die verschiedenen Teile des Systems zusammenhält.

Das v9fs- Projekt implementiert einen Linux- Kerneltreiber für das 9P-Protokoll. Laut der Wiki-Seite von Plan 9 befindet es sich ab Kernel 2.6.14 im Mainline-Kernel.

strugee
quelle