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






