Carbon(カーボン)は、Classic Mac OSのToolbox API (Application Programming Interface) をMac OS X用に整理・移植したAPIであり、Classic Mac OS用アプリケーションをMac OS X向けに移植しやすくするために開発された。
概要
QuickTimeチームがAPIをMac OS Xに移植するために互換レイヤーを作成したものが元型となっている。それがスティーブ・ジョブズの目に留まり、汎用の互換フレームワークのアイディアとして採用された。Toolbox APIの中で明らかにレガシーなもの、あまり使われていないものを廃し、また内部構造が32ビットを前提として再設計されている(Toolboxは16ビットコードで、PowerPCの性能の足枷となっていた)。
Carbon APIを利用したアプリケーションのことをCarbonアプリケーションと呼ぶ。Cocoaは同じ Mac OS Xに搭載されているほぼ等価な機能をもつ API であるが、Cocoa APIを使うためにはObjective-Cのコードを書かなければならないのに対して、Carbon API は旧来のインターフェイスを持っておりC/C++からも使うことができる。基本的にToolboxとソースコード互換を目指しており、単に移植を行なうだけであれば、それほど大きな設計変更は必要ない。
Carbonアプリケーションには、
一つのバイナリでMac OS XでもClassic Mac OSでも実行できる『PEF Carbon』
Mac OS X専用の『Mach-O Carbon』の2種類が存在する。
PEFとはPreferred Executable Formatのこと。CFM(Code Fragment Manager) Carbonともいう。PEFは従来から使用されてきたフォーマットであるため、新旧両方のMac OSで動かせる。
Mach-O CarbonはMac OS X用に最適化されているのでCFM Carbonより幾分高速に動作する 。また、QuartzをはじめとするMac OS X特有のAPIを利用するためには、Mach-O形式が最も適する。このフォーマットはdyldとも呼ばれる。
Mac OS Xが普及してしばらくはCFM Carbonが大半だったが、開発環境が最適化されていくにつれてMach-O Carbonがほとんどとなってきた…