別名、「バイトオーダー」というらしい。
何者か?
端的に言うと、ビットの並び順が前からなのか。後ろからなのか。
というのを意味する用語。
ビッグエンディアンとリトルエンディアンがあるらしい。
そのどっちであるかが分からないと、データをどちらから読めばいいのかが判断できない。
故に、コンピュータシステム上かなり重要なファクターらしい。ふーん。
なんで、こういうことに興味持ったかと言うと、
今、MIPS版(CPUのアーキテクチャがMIPS)のLinux上で
JVMを動かして、その上でF-Orcを動作させようとしており、
で、MIPSっていうのが、ビッグエンディアンもリトルエンディアンも
サポートしてて、どっちのエンディアンでOSより上の層を組むかが
重要になってくる。
で、もちろんそれは、JVMの実装にも影響がある。
でまぁ、今回使用しているハード&Linux Debian OSはリトルエンディアンで
動いてることが分かり、それ用のJVMを使用して
無事F-Orcが動作した訳だが。
今回、色々調べていて、分かったことが、
へぇー、Windowsというかx86は、リトル。
PowerPCは、ビッグ。ネットワーク(TCP/IP)は、ビッグ。
って、決まってたんだね。
エンジニアとして、この辺りを知らなかったのは、失格か!?
と、自問自答しながら。。。
そういや、F-Orcの通信部分作るときも、ビッグエンディアンで
作ったなぁ。
その時は、これが当たり前だと思ってコーディングしてたが、なるほどぉ。
そういや、ちょっと前にMacがPowerPCからIntel x86系に乗り換えたと
大騒ぎしてたが、「ビッグエンディアンからリトルエンディアンへ」
という大きな変革が起こっていたのか。。。
なるほどぉ。
ずーっと、比較的上位層のソフトウェアばっかりいじってた者としては、勉強になります。
そういえば、何とかlittle indianっていう英語の童謡があったなぁ^_^;
one little, two little, three little indian
four little, five little, six little indian
seven little, eight little, nine little indian
ten little indian boys♪
3 件のコメント:
Solarisのこの思想が優れているかどうかは
別として、ポリシーを感じる。
優れた設計− Solaris オペレーティング環境
Solarisはエンディアンニュートラルということで。
なるほど。
このドキュメントを見て、Sorarisを愛する人が多い理由の一端を見た感じです。
はまってしまいそうです。
(多くの)PowerPCは、バイ・エンディアンですよ。Macは、その前に使っていた680x0がビック・エンディアンだったので、PowerPCでもビック・エンディアンで動かしていたわけです。
「エンディアン」の語源については、Wikipediaを参照してください。
ちなみに私は大昔、リトル・エンディアンとビック・エンディアンのMPUが混在した交換機のソフトを作っていたことがあります。MPU間の通信ではエンディアン変換が必須で、結構面倒でした。
コメントを投稿