osx - zurücksetzen - macbook a1278 neu installieren




endian-ness neuer macs-sind alle pc-plattformen jetzt gleich? (5)

Bedeutet der Wechsel von Macs zu Intel-Chips, dass wir mit dem Twiddling von Zahlen in Binärressourcen für plattformübergreifende Datenverteilungen fertig sind? Ist das das letzte Problem oder gibt es andere Plattformen, die mir nicht bekannt sind?


Definieren Sie PC, was halten Sie von einem PC?

Ich tippe gerade eine Linux-Distribution ein, die auf einem Arm-9-Prozessor läuft, der auf verschiedene Endian-Werte eingestellt werden kann, aber der Standard ist big endian. Little Endian wird von Intel, AMD und Via (x86 kompatibel) verwendet.

Endian-Ness wird nicht bald verschwinden, wenn Sie irgendetwas über das Netzwerk übertragen, müssen Sie sicherstellen, dass es in der richtigen Endianness ist, da der Endian, der durch Internet Protocol spezifiziert wird, tatsächlich Big Endian ist.

Weitere Informationen finden Sie im Wikipedia-Artikel über Endianness .


Dies ist sicherlich nicht das letzte dieser Probleme, insbesondere wenn Sie für eingebettete Systeme schreiben, einschließlich Pocket PCs usw. MIPS, ARM und andere Architekturen unterstützen Bi-Endian-Architekturen, die ihre Endian-Ness beim Systemstart auswählen können.

Wenn Sie Code schreiben, der von der Bytereihenfolge abhängt, müssen Sie sich um Endian-ness kümmern. Erwarten Sie nicht, dass dieses "Problem" bald verschwindet.


Pesky x86 beschmutzt meinen Speicher mit ihren Segmentzeigern! ;)

Ich glaube, dass Sie keine Wörter mehr zwischen PCs und Macs umdrehen müssen, vorausgesetzt, Sie vermeiden die Abwärtskompatibilität mit PowerPC.


Sie scheinen zu vergessen, die Endianität transzendiert Prozessorarchitekturen. Es gibt viele Algorithmen und Protokolle, die eine bestimmte Byte-Reihenfolge erfordern. Zum Beispiel verbrachte ich zwei Wochen damit, einen MD5-Hash-Algorithmus zum Laufen zu bringen, nur um zu erkennen, dass ich die Netzwerk-Bytereihenfolge (Big Endian) angenommen hatte, während Ronald Rivest angenommen hatte (ohne dies im RFC anzugeben), dass der Implementierer Little verwenden würde. Endian-Byte-Reihenfolge.

Erinnere mich daran, diesen Mann irgendwann zu verletzen. :-P


Mehr denn je ist der Hauptcomputer einer Person weniger wahrscheinlich ein Desktopcomputer mit einem Allzweckbetriebssystem. Obwohl das immer noch recht häufig ist, verwenden viele andere Leute Smartphones oder UMP-Geräte, die speziell für das Surfen im Internet entwickelt wurden. Diese Plattformen haben nicht notwendigerweise x86 CPUs. Häufiger, vor allem mit Smartphone-Geräten, verwenden sie einen ARM-Kern, der Big Endian ist.