PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : verständnissfrage 64bit<->32bit



tenim
07.02.07, 19:51
hab mir fedora core 6 64bit installiert und jetzt doch einige grundsatzfragen zum thema 64bit (bitte korrigieren wenn falsch):

* in meinem system sind viele(nicht alle) bibliotheken und programme speziell für 64bit neukompiliert und installiert worden, um dessen vorteile nutzen zu können.

* die kernelsourcen liegen aber nachwievor immer als 32bit version vor und fedora kompiliert seine kernel für 64bit-systeme nur mit der kompileroption "64bit".

* es ist auch jedes 32bit programm/bibliothek unter 64bit lauffähig, da der prozessor auch 32bit-anwendungen ohne anpassungen ausführen kann.

* ich kann jeden vorliegenden 32bit-quellcode mit 64bit-option kompilieren
und habe dann unter umständen eine leicht bessere/schnellere programmversion, da dann ja der compiler mehr optimierungsmöglichkeiten für den code hat.

stimmt das so?:)

buffoon
08.02.07, 04:41
hab mir fedora core 6 64bit installiert und jetzt doch einige grundsatzfragen zum thema 64bit (bitte korrigieren wenn falsch):

* in meinem system sind viele(nicht alle) bibliotheken und programme speziell für 64bit neukompiliert und installiert worden, um dessen vorteile nutzen zu können.

Ist soweit richtig


* die kernelsourcen liegen aber nachwievor immer als 32bit version vor und fedora kompiliert seine kernel für 64bit-systeme nur mit der kompileroption "64bit".

Die Kernelsourcen sind immer die gleichen (Ausser sie werden vom Distributor unterschiedlich gepatcht). Man kann ihn mit 32bit oder 64bit oder PowerPC oder Sparc usw kompilieren. Wichtig dabei ist dass man die richtigen Bibliotheken installiert hat, die dazu noetig sind...


* es ist auch jedes 32bit programm/bibliothek unter 64bit lauffähig, da der prozessor auch 32bit-anwendungen ohne anpassungen ausführen kann.[QUOTE]

Ja, wichtig ist nur zu wissen dass ein 32bit Programm auch die zugehoerigen 32bit bibliotheken hat... Die 64bit Bibliotheken koennen nicht in 32bit Programmen genutzt werden...

[QUOTE]* ich kann jeden vorliegenden 32bit-quellcode mit 64bit-option kompilieren
und habe dann unter umständen eine leicht bessere/schnellere programmversion, da dann ja der compiler mehr optimierungsmöglichkeiten für den code hat.

stimmt das so?:)

Der Quellcode ist Quellcode... erst nach dem Kompilieren kommt dann ein 32bit oder 64bit binary raus. Sollte keinen Unterschied machen. Je nach Umfang kann es aber auch sein, dass du ein Programm mit 32bit kompilieren kannst, doch mit 64bit geht das nicht. OpenOffice.org hatte zb lange Zeit probleme auf einer 64bit Plattform gemacht... Ein aktuelles Programm ist meines wissens auch der Flash Player von Macromedia (Laut ihren offiziellen Aussagen)

Ich bin bei diesem Post jetzt immer davon ausgegangen dass wir von der AMD64/EMT64 Architektur reden... Es gibt bestimmt auch andere Plattformen, die mit 64bit arbeiten, jedoch voellig unterschiedliche Befehlsaetze verwenden bzw die der i686 Architektur nicht verstehen...

Ich hoffe ich konnte dir weiter helfen...

carstenj
08.02.07, 08:15
Hi,

Der Quellcode ist Quellcode.
das ist leider so nicht ganz korrekt, denn es kommt drauf an, wie sauber programiert wurde und welche Annahmen gemacht worden sind. Auf 32Bit System ist die Größe eines Zeigers = einem Integer, was auf einem 64Bit System nicht so sein muss. Wenn der Quellcode darauf basiert, wird das Programm, wenn überhaupt, möglicherweise fehlerhaft laufen.

http://www.unix.org/whitepapers/64bit.html

tenim
08.02.07, 09:13
danke für die antwort. hat mir sehr geholfen.
und ja, es geht um einen amd prozessor(athlon64 x2).

HEMIcuda
08.02.07, 18:55
Ja, wichtig ist nur zu wissen dass ein 32bit Programm auch die zugehoerigen 32bit bibliotheken hat... Die 64bit Bibliotheken koennen nicht in 32bit Programmen genutzt werden...
So nicht ganz richtig, da 32bit und 64bit zwei verschiedene Modi fuer die CPU sind. x86-64 sind per se (hardwaremaessig) nicht in der Lage, im 64bit-Modus 32bit-Software auszufuehren.

'cuda

MiGo
08.02.07, 23:53
* ich kann jeden vorliegenden 32bit-quellcode mit 64bit-option kompilieren
und habe dann unter umständen eine leicht bessere/schnellere programmversion, da dann ja der compiler mehr optimierungsmöglichkeiten für den code hat.
Besser wird's nicht - schliesslich ist es das gleiche Programm :)
Und auch das schneller kannst du in der Regel vergessen - der Geschwindigkeitsunterschied ist nicht fühlbar.

Es gibt sicher Fälle, in denen die Verwendung von 64 Bit Geschwindigkeitsvorteile bringt - allerdings muss die entsprechende Anwendung extra dafür ausgelegt sein. Mir wäre kein solcher Fall bekannt.