• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

leopard mit 64bit auf dem macbook.?!??

Hobbes_

Gast
Fat binaries "Universal" können den Code für PPC/x86/32bit/64bit enthalten. Die Libraries liegen in der Regel als 32- und als 64-Bit-Version vor. OS X unterstützt daher zeitgleich 32 und 64 Bit. Und das ist gut so, denn auf Deiner 64-Bit-Hardware laufen auch noch viele 32-Bit-Programme.

Du brauchst Dich in der Regel bei Programmen nicht darum kümmern, da sie Binaries für diverse CPUs enthalten.

MacMark hat Recht. Ein Universal Binary kann theoretisch beliebig viele Architekturen enthalten, wobei ich hier mit Architektur z.B. PPC/32bit oder Intel/64bit meine. (Denn x86_64 ist technisch gesehen eine andere Architektur als x86_32, nur eben abwärtskompatibel.) Die Entwickler entscheiden dann vor dem Übersetzen ihres Programmcodes, ob sie für PPC oder Intel oder beides bzw. für 32 bit oder 64 bit oder beides übersetzen wollen. So kann das fertige Programmpaket vier mal verschiedenen Binärcode enthalten und damit auf allen Kombinationen nativ laufen. Es wird also dann nur eine Version des Programms geben und OSX entscheidet selbst, welche Variante es lädt. Ein reines 64bit-Programm lässt sich dann auf einer 32-bit-CPU freilich nicht ausführen.

Vielen Dank für die Infos. Das ist interessant: Bis zu 4 verschiedene Programmcodes in einem binary. Zum Glück werden die HDs immer grösser, so dass ich mir diesbezüglich keine Sorgen machen brauch.

Ich gehe nun mal davon aus, dass die üblichen Programmhersteller immer 32 und 64 bit bündeln werden, so dass ich auch mit meinem älteren Core Duo (wobei: sooo alt ist der ja auch wieder nicht...) keine Probleme haben werde.

Jetzt verstehe ich allgemein besser, wie das in der Werbung gemeint war mit 32 und 64 laufen beide parallel ohne dass eines von beiden emuliert werde... Apple lässt mal wieder (wohl auf sehr tiefer Ebene verknüpft) zwei Systeme parallel laufen...
 

MacMark

Jakob Lebel
Registriert
01.01.05
Beiträge
4.874
Da laufen keine Systeme parallel. Es werden die benötigten Libraries jeweils in der passenden Version geladen: 32 und oder oder 64.
 

mgrasek100

Prinzenapfel
Registriert
07.04.06
Beiträge
543
Hallo,

ich hab über die suchfunktion leide rnix gefunden.

Ich habe heute leopard auf meinem macbook mit core 2 duo 2Ghz installed.


ist ja ein 64bit Prozessor, und leopard ist auch 64bit.

ABER, bei der Installation wude nichts angezeigt wegen 64 oder 32bit.

und bei Systeminformationen kann ich auch nichts entnehmen was auf 32 oder 64 bit schließen lässt.

uname -a in der Konsole gibt folgendes aus:

-macbook 9.0.0 Darwin Kernel Version 9.0.0: Tue Oct 9 21:35:55 PDT 2007; root:xnu-1228~1/RELEASE_I386 i386 i386



das heißt doch 32bit oder?

Vielen Dank,

Benny

Meines Wissens ist der C2D ein aufgesetzer 64 Bit abwärtskompatibler Prozessor.
 

Hobbes_

Gast
Da laufen keine Systeme parallel. Es werden die benötigten Libraries jeweils in der passenden Version geladen: 32 und oder oder 64.

Wenn ich auf einem Computer mit 64 bit Prozessor gleichzeitig 32 bit und 64 bit Programme laufen lasse, dann wird eine bestimmte Library wohl dennoch einmal als 64 bit und einmal als 32 bit Version geladen sein, oder nicht? Ausser natürlich die 64 bit Version arbeitet auch problemlos mit 32 bit Programmen zusammen, was jedoch bedeuten würde, dass intern die 32 bit Programme nach 64 bit konvertiert würden...

Interessant so Systeminternas (v.a. wenn man offensichtlich keine Ahnung hat, so wie ich :))
 

Hobbes_

Gast

Also eben doch parallel im Computer laufend, wenn 32bit und 64bit Programme gleichzeitig ausgeführt werden...

In diesem Kontext überlegte ich mir gerade, wie denn gewisse globale Parameter einer Library synchronisiert werden, wenn sie in zwei Versionen parallel betrieben wird - doch dann erinnerte ich mich, dass solche globale Paraeter eh ja nicht mehr state of the art sind und dass der Mac ja ein ausgeklügeltes Nachrichtensystem à la Smalltalk zur Kommunikation zwischen den Libraries hat.

Mit etwas freier Zeit werde ich mich doch mal etwas mit den Internas des Leo beschäftigen...
 

tjp

Altgelds Küchenapfel
Registriert
07.07.04
Beiträge
4.059
Ich gehe nun mal davon aus, dass die üblichen Programmhersteller immer 32 und 64 bit bündeln werden, so dass ich auch mit meinem älteren Core Duo (wobei: sooo alt ist der ja auch wieder nicht...) keine Probleme haben werde.
Davon würde ich nicht ausgehen. Jede zusätzliche Version muß getestet und gewartet werden, was zusätzliche Kosten bedeutet. Die Hersteller werden wahrscheinlich bald nur noch eine Version (64Bit x86-64) anbieten. In der Vergangenheit beim Umstieg von 68k CPUs auf PowerPC und von MacOS 9.x zu MacOS X war das auch schon so. Maximal eine Version wurde parallel für zwei Plattformen angeboten und danach gab es nur noch eine Version für die neue Plattform.
 

MacMark

Jakob Lebel
Registriert
01.01.05
Beiträge
4.874
Die ersten Intel-Macs hatten nur eine 32-bittige CPU.
 

tjp

Altgelds Küchenapfel
Registriert
07.07.04
Beiträge
4.059
Die ersten Intel-Macs hatten nur eine 32-bittige CPU.
Die alle gesockelt sind und sich austauschen lassen. Übrigens einer der Gründe warum der Switch einige Monate zu früh kam. Apple hatte auf den Core2 warten sollen. Wer einen Core Solo oder Duo hat und möglicherweise in die Röhre schaut, der war vorgewarnt. Die Problematik war schon bei der Ankündigung des Switchs bekannt.
 

tjp

Altgelds Küchenapfel
Registriert
07.07.04
Beiträge
4.059
Wovon war die Rede?
Es gibt Intel Macs auf denen kein 64Bit Programmcode läuft. Das hätte man vermeiden können. So muß der Kunde selbst nachrüsten.
 

MacMark

Jakob Lebel
Registriert
01.01.05
Beiträge
4.874
Welches Programm liegt denn nicht 32-bittig vor?
 

MacMark

Jakob Lebel
Registriert
01.01.05
Beiträge
4.874
... und danach gab es nur noch eine Version für die neue Plattform.

... Wer einen Core Solo oder Duo hat und möglicherweise in die Röhre schaut, d...

Was ist denn so schwer daran, beim gcc die passenden Optionen dranzuhängen:
gcc -arch ppc -arch ppc64 -arch i386 -arch x86_64

Oder mit Xcode:
xcodebuild ARCHS="ppc ppc64 i386 x86_64"

Und schon hat man ein Programm, das 32 und 64 Bit-CPUs unterstützt für PPCs und Intel. Es ist _so_ leicht.
 

Bier

Pomme au Mors
Registriert
24.08.07
Beiträge
867
MacMark... das fragt der gentoo User auch. Das Portsystem z. B. unterstützt das so nicht, bei MacPorts oder fink.
 

MacApple

Schöner von Bath
Registriert
05.01.04
Beiträge
3.652
Da musst Du die Glaskugel fragen! Evtl. kann man die Software in Xcode auf für beide System kompilieren.

Die läuft eben nur mit 64bit und damit offensichtlich nicht auf meinem Computer :(
Doch Xcode läuft auch auf Deinem Computer:
Code:
$ lipo -info /Developer/Applications/Xcode.app/Contents/MacOS/Xcode
Architectures in the fat file: /Developer/Applications/Xcode.app/Contents/MacOS/Xcode are: ppc7400 ppc64 i386 x86_64
Xcode hat also Binaries für 32Bit PPC, 64Bit PPC, 32Bit Intel und 64Bit Intel. Man kann übrigens, wenn man einen 64Bit-Rechner hat, über die Informationen im Finder festlegen, ob ein Programm trotzdem im 32Bit-Modus starten soll, auch wenn 64Bit-Code vorhanden ist.
Der Interface Builder hat interessanter Weise nur 32Bit Code:
Code:
$ lipo -info /Developer/Applications/Interface\ Builder.app/Contents/MacOS/Interface\ Builder
Architectures in the fat file: /Developer/Applications/Interface Builder.app/Contents/MacOS/Interface Builder are: i386 ppc7400
MacApple
 

tjp

Altgelds Küchenapfel
Registriert
07.07.04
Beiträge
4.059
Und schon hat man ein Programm, das 32 und 64 Bit-CPUs unterstützt für PPCs und Intel. Es ist _so_ leicht.
Aber jede Variante muß getestet und unterstützt werden! Das kostet Geld, welches jeder bei einem kommerziellen Produkt einsparen will. Wozu soll man vier Versionen anbieten, wenn man mit einer Version 90% erreichen kann? So wird es wieder ablaufen, so lief das schon immer ab. Beispiel dafür habe ich bereits angeführt.

PPC Versionen würden nur dann weiterhin angeboten, wenn Apple auch weiterhin PPCs verkaufen würde. So, wird es bald keine PPC Versionen mehr geben. Analog verhält sich das mit x86 und x86_64.
 

MacMark

Jakob Lebel
Registriert
01.01.05
Beiträge
4.874
Hausaufgabe: Wir schreiben ein Programm und compilieren es in eine einzige Datei, die dann von PPC, PPC-64, Intel und Intel-64 nativ ausgeführt werden kann. Ich habe da mal etwas vorbereitet:

Code:
KeyWest:~ macmark$ cat hello.c
/* Hello World program */

#include<stdio.h>

main()
{
    printf("Hello World");

}
KeyWest:~ macmark$ gcc -arch ppc -arch ppc64 -arch i386 -arch x86_64 -c hello.c
KeyWest:~ macmark$ file hello.o
hello.o: Mach-O universal binary with 4 architectures
hello.o (for architecture ppc7400):	Mach-O object ppc
hello.o (for architecture ppc64):	Mach-O 64-bit object ppc64
hello.o (for architecture i386):	Mach-O object i386
hello.o (for architecture x86_64):	Mach-O 64-bit object x86_64
KeyWest:~ macmark$ lipo -detailed_info hello.o
Fat header in: hello.o
fat_magic 0xcafebabe
nfat_arch 4
architecture ppc7400
    cputype CPU_TYPE_POWERPC
    cpusubtype CPU_SUBTYPE_POWERPC_7400
    offset 4096
    size 744
    align 2^12 (4096)
architecture ppc64
    cputype CPU_TYPE_POWERPC64
    cpusubtype CPU_SUBTYPE_POWERPC_ALL
    offset 8192
    size 852
    align 2^12 (4096)
architecture i386
    cputype CPU_TYPE_I386
    cpusubtype CPU_SUBTYPE_I386_ALL
    offset 12288
    size 512
    align 2^12 (4096)
architecture x86_64
    cputype CPU_TYPE_X86_64
    cpusubtype CPU_SUBTYPE_X86_64_ALL
    offset 16384
    size 728
    align 2^12 (4096)