プログラミングインタフェース

Solaris ABI とは ?

Solaris ABI とは、アプリケーションが Solaris オペレーティングシステムで利用できる (つまり、サポートされる) 実行時インタフェースセットのことです。ABI の最も重要な構成要素は次のとおりです。

Solaris ABI の中心となる構成要素はシステムライブラリインタフェースセットです。この章では、「ABI」という用語はこのような構成要素だけを指します。Solaris オペレーティングシステムがインタフェースを提供するのは C 言語だけであるので、この ABI が持っているのも C 言語用のインタフェースだけです。

Solaris API (Application Programming Interface) 向けに作成された C ソースコードは C コンパイラによってバイナリに変換されます。このとき、バイナリはプラットフォームによって、3 つの ABI バージョン (32 ビット SPARC、64 ビットSPARC、または 32 ビットIntel) のうちの1 つになります。ABI は API とよく似ていますが、ソースをコンパイルするプロセスにいくつかの違いがあります。次に、違いについて説明します。

このような理由のため、異なる Solaris リリースでコンパイルした場合、ソースレベル (API) では互換性があっても、バイナリレベルでは十分な互換性を得られません。

Solaris ABI は、オペレーティングシステムが提供する、サポートされるインタフェースから構成されます。システムで利用できるインタフェースの中には、オペレーティングシステムが排他的に使用することを目的としているインタフェースもあります。このような排他的なインタフェースは、アプリケーションでは使用できません。SunOS 5.6 より前のリリースでは、アプリケーション開発者は Solaris ライブラリのすべてのインタフェースを利用できていました。Solaris リンクエディタのライブラリシンボル有効範囲の手法を使用すると、ライブラリの外では使用する予定がないインタフェースの有効範囲をライブラリのローカルだけに縮小できます。詳細については、『リンカーとライブラリ』 を参照してください。ただし、システム要件のため、必ずしもすべての非公開インタフェースがこのように有効範囲を縮小できるわけではありません。このようなインタフェースには「private」というラベルが付いてあり、Solaris ABI には含まれていません。