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

Re: 64-Bit-Kernel und 32-Bit-Userland: Pros und Kontras



Hallo Gerald,

> Quoting Dieter Rohlfing <dr-erc@gmx.net>:
> 
> > Im Kernel-Code stecken aber jede Menge Funktionen (z.B. strcpy,
> > strcmp, strlen),
> > die im Kernel-Code nicht auscodiert sind, sondern eben beim Linken aus den
> > einschlägigen Libraries hinzugefügt werden. Und genau diese Libraries müssen
> > eben 64bit sein, wenn der erzeugte Kernel ebenfalls 64bit ist. Ist
> 
> Als ich das las, bin ich erstmal vom Glauben abgefallen, aber ein Blick
> in include/asm/string.h hat mich erstmal wieder versöhnt. Da dort die
> Funktionen strcpy, strcmp und strlen in Assembler implementiert sind,
> zweifele ich die Aussage an, dass Code aus den Libraries dazugelinkt wird.
> Zumindest steht ein Beweis noch aus.

Das ist korrekt, was Du schreibst. Neben "include/asm/string.h" gibt es auch
noch "include/linux/string.h". In den meisten Kernel-Dateien, die zum Muster *.c
gehören, wird auch eine dieser beiden Dateien included. Aber eben nicht in
allen! Das gleiche gilt auch für die Include-Dateien stdio.h und stdlib.h.

Wenn eine dieser drei Dateien über die Anweisung "#include <include-file.h>"
inkludiert wird, dann wird sie meines Wissens im Standard-Verzeichnis
/usr/include gesucht. Die Datei stdio.h zum Beispiel gibt es im Source-Tree zu
linux-2.6-2.6.18.dfsg.1 (Standard-Kernel von etch) nur ein einziges Mal, nämlich
in arch/powerpc/boot/stdio.h. stdio.h wird aber auch in vielen Dateien außerhalb
der powerpc-Architektur inkludiert, und dann nämlich aus /usr/include. Die
Dateien in diesem Verzeichnis sind jedoch alle architektur-spezifisch. So weit
ich weiß. Sollte ich da falsch liegen, dann lasse ich mich gerne eines Besseren
belehren. Man lernt ja bekanntlich nie aus. :-))

Das paßt auch zu den Auskünften auf debian-amd64, wo ich eine ähnliche Anfrage
gestellt habe. Dort wurde mir von jedem bestätigt, daß man entweder
- in einem 32-bit-System 64-bit-Libraries/Headers braucht oder
- von einem 32-bit-System ein chroot in ein 64-bit-System macht oder
- mit einem gebooteten 64-bit-System arbeitet

Dieter


-- 
Jede Mail, die nicht von dieser Mailing-Liste stammt, wird gelöscht.
Antworten bitte ausschließlich an diese Mailing-Liste senden.



Reply to: