MacからIntelチップへの変更は、クロスプラットフォームのデータ配布用のバイナリリソースの数値を少し調整することで完了したことを意味しますか?
それがこの問題の最後ですか、それとも私が知らない他のプラットフォームがありますか?
MacからIntelチップへの変更は、クロスプラットフォームのデータ配布用のバイナリリソースの数値を少し調整することで完了したことを意味しますか?
それがこの問題の最後ですか、それとも私が知らない他のプラットフォームがありますか?
エンディアンがプロセッサ アーキテクチャを超えることを忘れているようです。特定のバイト順を必要とするアルゴリズムやプロトコルはたくさんあります。たとえば、私は MD5 ハッシュ アルゴリズムを機能させるために 2 週間を費やしましたが、Ronald Rivest が (RFC でそう述べずに) 実装者が Littleエンディアンのバイト順。
まあ、実際にはビッグエンディアンのCPUがたくさん残っています。
実際、PPC は死んでいません。あなたは、Xbox360 が PPC CPU を使用していることに気づいています (そして、これらの CPU が評判ほど悪くないことは良い例です。Xbox360 は決して遅いわけではありません)。わかりました、これは PC として数えられないかもしれません。
しかし、サーバーは PC としてカウントされますか? Sun の UltraSparc CPU を使用しているサーバーはまだたくさんありますが、それらは一般にビッグ エンディアンですが、最新のモデルはビッグ エンディアンまたはリトル エンディアンのいずれかです。両方をサポートすることで、ハードウェアとソフトウェアのベンダーにとって最大の柔軟性が追加されるため、どちらか一方の CPU が多数あります (たとえば、ARM は、携帯電話などの多くのデバイスでまだ使用されています)。IA64 CPU (Intel は、AMD が x86-64 を発明する前に x86 を置き換えることを意図していました。これは真の 64 ビットであり、両方である x86-64 とは異なり、32 ビットしかエミュレートできませんでした) でさえ、可能な CPU の 1 つです。ビッグエンディアンに変更。両方に対応できる CPU はバイエンディアンと呼ばれます。
実際、Intel (および互換性のある CPU) を少し無視すると、市場に出回っているほとんどの CPU はビッグ エンディアンまたは少なくともバイ エンディアンですが、私の知る限り、これらのほとんどは消費者向け PC では使用されていません。
しかし、多くのプログラマーが見ているようなエンディアンの問題は見当たりません。最近のすべての CPU は、ハードウェアでエンディアンをスワップできます。実際、リトル エンディアンの Intel CPU で、メモリから読み取ったすべての整数のエンディアンをスワップし、メモリに書き戻すときに再度エンディアンを交換するプログラムを作成すると、パフォーマンスがわずか 5% 低下する可能性があります。実際には、アプリケーション内でエンディアンはもちろん一定であるため、アプリケーションに出入りするデータのエンディアンを交換するだけで済みます。
また、注意: 私が知っているほとんどすべてのネットワーク プロトコルはバイト オーダーをビッグ エンディアンに指定しており、TCP/IP が最もよく知られているファミリです。そのため、下位のネットワーク レイヤーで作業する場合は、常にバイトのスワップを継続する必要があります。
私は同じ質問を考えていました: Mac は Intel になったので、エンディアンの問題は解決しましたか? いいえ。特定のスーパーコンピューター (私たち素人が対処する必要はありません) を除いて、ビッグエンディアン順序が使用される主要な領域が 1 つあります:ネットワーク プロトコル、特に: インターネット プロトコル (「IP」など) " TCP/IP の ")。
特にPocketPCなどの組み込みシステム向けに作成している場合は、これがこの問題の最後ではありません。MIPS、ARM、およびその他のアーキテクチャは、システムの起動時にエンディアンを選択できるバイエンディアンアーキテクチャをサポートしています。
バイト順序に依存するコードを記述している場合は、エンディアンに注意する必要があります。この「問題」がすぐになくなるとは思わないでください。
やっかいな x86 がセグメント ポインタでメモリ レジスタを汚している! ;)
PowerPC との下位互換性を避けているのであれば、PC と Mac の間で言葉を入れ替える必要はもうないと思います。
現在、これまで以上に、個人のメイン コンピューターが、汎用オペレーティング システムを実行するデスクトップ コンピューターである可能性は低くなりました。それはまだかなり一般的ですが、他の多くの人々は、専用のスマートフォンや umpc デバイスを使用しています。つまり、Web を閲覧するためです。これらのプラットフォームには、必ずしも x86 CPU が搭載されているわけではありません。多くの場合、特にスマートフォン デバイスでは、ビッグ エンディアンの ARM コアが使用されています。
PC の定義、PC とは何ですか?
現在、別のエンディアンに設定できる arm 9 プロセッサで実行されている Linux ディストリビューションからこれを入力していますが、デフォルトはビッグ エンディアンです。リトル エンディアンは、Intel、AMD、および Via (x86 互換) で使用されます。
インターネット プロトコルで指定されたエンディアンは実際にはビッグ エンディアンであるため、ネットワーク経由で何かを送信するときはいつでも、正しいエンディアンであることを確認する必要があります。
詳細については、エンディアンに関するウィキペディアの記事を参照してください。