Mach-O

普段MacOSXを利用しているにも関わらず、あまり気にならないところがありました。Mach-Oというファイルフォーマット形式です。
http://ja.wikipedia.org/wiki/Mach-O

今はユニバーサルバイナリと呼ばれているものですが、複数のアーキテクチャのバイナリを保持することができる形式です(MAB)。例えば

% file `which Emacs` <= Carbon Emacsのバイナリファイルを指定する。
/usr/bin/Emacs: Mach-O universal binary with 2 architectures
/usr/bin/Emacs (for architecture i386): Mach-O executable i386
/usr/bin/Emacs (for architecture ppc): Mach-O executable ppc

i386(IA32), ppcに対応している事が分かります。
普段利用しているLinuxであればバイナリファイルはこんな感じに出力されています。

test.o: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped


Intel CPUにチェンジしたAppleには無くてはならない技術ですね。実はNEXTSTEPというOSで既に実現されていた様ですが。

http://journal.mycom.co.jp/column/osx/138/

MacOSXはNEXTSTEPの技術を採用している様です。その他にもNetinfoもNEXTSTEPが元です。

Comments

Popular posts from this blog

MeeGo 1.1 for NexusOne status part2 and how to work(Using microSD and No fastboot! You can also dualboot both of MeeGo and Android).

MeeGo 1.0 for N900 status