[linux-l] Alles ist eine Datei?... (was: Platte als Image sichern)

olafBuddenhagen at gmx.net olafBuddenhagen at gmx.net
So Mär 16 09:56:01 CET 2008


Hallo,

On Tue, Mar 11, 2008 at 03:18:45AM +0100, Volker Grabsch wrote:
> On Mon, Mar 10, 2008 at 11:35:41PM +0100, Steffen Dettmer wrote:

> > Letztes sollte `eigentlich' durch die Abstraktion `alles sind Files'
> > ja theoretisch funktionieren. Meine Vermutung ist, dass es praktisch
> > bei Linux aber nicht funktioniert (weil `alles sind Files' ein -
> > sagen wir mal - Ideal ist).
> 
> Kein Unix-System setzt das konsequent um. Das merkt man auch daran,
> dass du z.B. keinen Prozess killen kannst, indem du eine Spezial-
> Datei löschst. Und TCP/IP-Verbindungen werden auch nicht durch das
> Öffnen spezieller Dateien erzeugt.
> 
> Um dichter an das Ideal zu kommen, wurde Plan9 entwickelt. Das ist
> AFAIK das einzige OS, das /richtig/ nah an diesem Ideal ist.

Auch bei Plan9 kann man meines Wissens keine Prozesse mit rm killen.
Zumindest habe ich mal gelesen dass ganz bewusst auf sowas verzichtet
wurde -- irgendwo hat die Abstraktion auch Grenzen...

Auch bei TCP/IP ist das mit dem Ideal wohl recht umstritten. Habe mal
gelesen dass die allererste TCP-Implementierung fuer UNIX tatsaechlich
pseudo-Dateien und viele viele ioctl()s benutzt hat -- was sich aber
nicht als zweckmaeszig erwiesen hat, weshalb man die Berkley-Gruppe mit
der Entwicklung des graesslichen Socket-Interfaces beauftragt hat...

Bei Plan9 wird TCP/IP aber trotzdem ueber Dateien implementiert. Wobei
es da aber etwas anders funktioniert -- der Gedanke ist wohl dass
Dateien nicht an sich unzweckmaeszig waren, sondern der Ansatz bei der
ersten TCP-Implementierung fuer UNIX schlicht falsch. Plan9 hat ja
sowieso keine ioctl()s, sondern macht alles ueber zusaetzliche
Steuerdateien...

Ich kann das nicht wirklich beurteilen. Intuitiv *tendiere* ich zu der
Ansicht, dass es mit Dateien besser gehen sollte als mit Sockets. Ich
persoenlich finde es schade, dass in Hurd zum Beispiel relativ wenige
Sachen ueber Datei-Schnittstellen gemacht werden, obwohl die
Vorraussetzungen vorhanden sind. Leider sind recht viele Hurd-Entwickler
solchen Schnittstellen gegenueber ziemlich skeptisch :-( Es gibt
standardmaeszig nichtmal ein procfs, was selbst traditionelle
UNIX-Systeme heutzutage meistens haben...

-Olaf-



Mehr Informationen über die Mailingliste linux-l