[linux-l] Plan9-Konzepte (was: VCS)

Peter Ross Peter.Ross at alumni.tu-berlin.de
Mi Apr 26 16:39:32 CEST 2006


On Wed, 26 Apr 2006, Volker Grabsch wrote:

> Aktueller Vorgang:
>    * Serialisierung der Datenstruktur
>    * Memcopy
>    * Parsen
>
> Mein Vorschlag:
>    * Memcopy der Datenstruktur

Protokolle und Schnittstellen, die Datenstrukturen kopieren, gibt es doch 
eine ganze Menge.

Serialisieren muss ich doch nur, wenn ich ueber's Netz gehe (oder ganz 
unten im System ueber nicht unendlich breite Datenbusse). Da gibt's halt 
nur Datenstroeme.

Nebenbei: auf den meisten Computersystemen (zumindest im Serverbereich) 
gibt es nur ganz wenige Applikationen, die tatsaechlich dynamische 
Datenstrukturen benutzen, und daher von Beschreibungssprachen profitieren. 
Der Rest kommt mit Funktionen im klassischen C-Stil prima aus, meist in 
der Sorte Funktionscode, Parameterblocklaenge, Parameterblock. Ergebnis 
kommt in andere Speicherbloecke. Da wird nichts serialisiert.

> Und was "gethostbyname"... angeht: Klar sind das nette Funktionen,
> die man auch verwendet, aber nicht für alles. Du kannst doch nicht
> für jeden Eintrag in /proc einen neuen System-Call einführen, der
> Sinn und Zweck dieser "auch von menschen lesbaren" Formate ist doch,
> dass man darauf eben nicht angewiesen ist.

Es ist doch eigentlich eher andersrum. Lesen in /proc stellt Daten in 
Strings da, die zunaechst binaer in Kernelstrukturen vorliegen.

Da wird eher fuer jeden syscall ein /proc-Eintrag eingefuehrt als 
umgekehrt.

Alle Beteiligten eines Computersystems ausser dem davorsitzenden Menschen 
koennen sehr gut ohne Strings leben.

Moeglicherweise siehst Du in Deinem Arbeitsumfeld nur noch XML (?), aber 
damit fuetterst Du doch nur einen Prozess, der auf ein System aufsetzt, wo 
dreissig andere Prozesse voellig stringlos leben. Diese lesen Strings beim 
Starten - die Konfigfiles. Und das ist auch gut so, ich finde es nicht 
besonders intuitiv, mein ifconfig im Hexcode zu definieren;-)

Gruss
Peter


Mehr Informationen über die Mailingliste linux-l