[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: 64-Bit-Kernel mit gemischtem Userland?



Hallo,

Michael Schuerig <michael@schuerig.de>:

>Ich würde gerne auf meinem System (Dell 
>Latitude D820 mit Core 2 Duo, 3GB RAM, NVidia-Grafik) einen 
>64-Bit-Kernel mit 32- *und* 64-Bit-Userland betreiben.

Soweit prinzipiell machbar...

>Mein Verständnis ist, dass ein gemischtes Userland grundsätzlich möglich 
>ist.

...aber "gemischt" geht nicht, jedenfalls nicht Debian-konform.

>Wie erkläre ich apt-get und Konsorten, 
>welche Architektur ich bevorzuge?

Die Architektur ist in dpkg fest eincompiliert. Siehe
dpkg --print-architecture

Das heisst, du bestimmst zum Zeitpunkt der Systeminstallation, welche
Architektur du vom Debian Paketsystem verwaltet haben möchtest. Für
die jeweils andere gibt es nur rudimentären Support:

Debian/i386 enthält einige Pakete namens lib64* und amd64-libs
und natürlich den amd64 Kernel.
Debian/amd64 bietet etwas mehr 32-Bit Support in Form der Pakete
ia32-libs und lib32* . Die Auswahl an Bibliotheken reicht für
normale Konsolen- und einfache X11 Programme, aber sobald komplexere
graphische Bibliotheken gefragt sind, hört die Unterstützung sehr
schnell auf.

Ein Mischbetrieb aus i386 und amd64 ist nicht möglich. Die Pakete
haben i.d.R. in beiden Architekturen die selbe Versionsbezeichnung
und wären daher von dpkg/APT gar nicht unterscheidbar.

Wenn man wirklich beide Architekturen vollwertig und Debian-konform
nutzen möchte, bleibt nur der Umweg über eine chroot-Umgebung, einen
Linux-Vserver oder eine Xen Domain mit der jeweils anderen Architektur.

>Wäre es sinnvoll(er), komplett auf 64-Bit zu wechseln? Für bestimmte 
>Packages? Ich erwarte, dass 64-Bit-Programme tendenziell mehr 
>Hauptspeicher brauchen

Das ist tendenziell richtig.

> und die Prozessorcaches schlechter nutzen. 

Das kann man nicht so pauschal sagen. Es hängt stark davon ab, wie die
Anwendungen programmiert sind und wie exzessiv sie von Pointern Gebrauch
machen.

Viele Applikationen laufen als 64-Bit Compilat schneller als in der
32-Bit Version, weil sie von den zusätzlichen Registern der AMD64
CPU Architektur profitieren. Andererseits kann die exzessive Verwendung
von Pointern ein Bremsklotz sein. Es hängt wirklich sehr vom Einzelfall
ab.

Ein interessanter Artikel zu diesem Thema ist
http://www.cs.ucf.edu/~wspires/32bit_versus_64bit_amd64.pdf
Er zeigt auch, dass die Performanceunterschiede in den meisten Fällen sehr
gering sind.

Ob man 64 Bit möchte, hängt daher von anderen Faktoren ab. Hier steht
an erster Stelle die Speichergröße. Auf einem 32 Bit System kann ein
einzelner Prozess nur maximal 2 GB ansprechen. Somit ist auf einem
großen MySQL-, Tomcat- oder oder Apache2-Worker Server 64 Bit Pflicht,
da sonst der restliche Speicher brach liegen würde.

>Stimmt das und hat es praktische Auswirkungen? Wie kann ich
>herausfinden, welche Packages es nicht in einer 64-Bit-Version gibt?

Bei Debian sind die Architekturen i386 und amd64 weitgehend identisch.
Die größten Unterschiede gibt es bei unfreien Sachen, vor allem im
Multimedia Bereich. Flashplayer, Java, Real Player... wobei hier zur
Zeit vieles in Bewegung ist. Und bei proprietären Kernelmodulen.

Meine Empfehlung ist daher in der Regel:

Desktop-System -> 32 Bit
Server oder Entwicklungssystem mit >2 GB -> 64 Bit
und bei Bedarf das jeweils andere in einer chroot- oder VServer-
Umgebung.

Gruß, Harald


Reply to: