Solaris 2.6 情報ライブラリ (SPARC 版)

耐久性に富んだソフトウェア開発環境

Solaris オペレーティング環境は、Solaris 実行環境で使用するソフトウェアアプリケーションの開発に必要なマニュアル、開発用ソフトウェアライブラリ、生産性向上ツール、サンプルコード、およびテスト用ツールを提供します。この節では、大規模ファイル (2G バイトを超えるもの)、マルチスレッドアプリケーション、および X サーバーとライブラリを扱うための新機能について説明します。

大規模ファイル

2G バイト以上の大規模ファイルをサポートします。UFS、NFS、および CacheFS の各ファイルシステムで大規模ファイルに対応するセマンティクスをサポートします。アプリケーションから作成したりアクセスしたりできるファイルの最大サイズは、次のとおりです。

既存の入出力インタフェースが変更されて、大規模ファイルを扱うときのエラーを検出できるようになりました。新しいデータ型 (通常、接尾辞として 64 または 64_t が付く) と新しいインタフェース (通常、接尾辞として 64 が付く) が、大規模ファイル用に追加されています。

Solaris 2.x ソフトウェア上で実行する既存アプリケーションの場合、次の点について調べる必要があります。

詳細については、NFS の管理Solaris のシステム管理を参照してください。

バージョン管理とスコープライブラリ

Solaris オペレーティング環境のリンカーに関連する拡張機能として、バージョン管理とスコープ管理が追加されました。動的オブジェクトの開発者は、これらの機能を使って動的オブジェクトのバイナリインタフェースについて一連のバージョン更新をオブジェクト内部で定義し、グローバルシンボルをローカルスコープに落とすことができます。この機能によって、異なるソフトウェアリリースにまたがってインタフェースの進化を管理できるほか、前バージョンのグローバルシンボルの継承、バージョン依存関係の記録、および内部の実装変更の記述を行うことができます。

バージョン管理とスコープ管理によって、開発者はプログラム開発のための安定したインタフェースを提供できるほか、標準に準拠し、バグ修正などの実装変更をオブジェクトのパブリックインタフェースから保護することができます。このほかにも、オブジェクトサイズを縮小し、実行時再配置に必要なコストを節約してアプリケーションの実行時性能を向上できるなどの利点が得られます。

Solaris 2.6 オペレーティング環境では、システムライブラリでこの技術を利用し、バージョン管理とスコープ管理の両方を適用しています。

詳細については、Linker and Libraries Guideを参照してください。

スケジューラの起動機能

スケジューラの起動機能によって、マルチスレッドアプリケーションのための新しいカーネルスケジューリングがサポートされます。この機能は、カーネルと libthread ライブラリ (または、libpthread) の間の専用インタフェースとして実装されるので、libthread (libpthread) インタフェースを変更しません。また、これによりスレッドライブラリは状況判断型の相互排他ロック (mutex ロック) を実装できるようになります。状況判断型の相互排他ロックの場合、現在ロックを保持しているスレッドがプロセッサ上で実行中であれば、ロックスピンを獲得しようとするスレッドをロックしますが、実行中でなければブロックします。

詳細については、libsched(3X) のマニュアルページを参照してください。

先取りの制御

先取りの制御機能によって、アプリケーションはカーネルにスケジューリングのヒントを与えることができます。これによって、短期間の先取りを防ぐことができるので、データベースサーバーなどの特定のクラスのアプリケーションで性能が向上します。

/proc ファイルシステムとウォッチポイント

従来の /proc ファイルシステムがディレクトリ階層構造に再構築されて、状態情報や制御用の関数を格納するサブディレクトリを含むようになりました。また、ウォッチポイント機能を提供して、プロセスのアドレス空間にあるデータにアクセスしたりデータを変更したりすることを監視できるようにしています。この新しい /proc ファイル構造は、従来の /proc インタフェースとバイナリレベルで完全に互換です。

新しい /proc ウォッチポイント機能が使えるように、adb(1) コマンドが変更されました。adb コマンドは、新たにデータのブレイクポイントを提供します。データのブレイクポイントを挿入すると、対象となるプロセスは指定の変数にアクセスしたところで停止します。

詳細については、adb(1) のマニュアルページを参照してください。

フェデレーテッド・ネーミング・サービス (FNS)

FNS が、X/Open XFN CAE の定義に準拠しました。また、FNS の機能を拡張して、Lightweight Directory Access Protocol (LDAP) のサポートを追加したほか、ファイルと NIS バックエンドに対するサポートも強化しています。

詳細については、Federated Naming Service Programming GuideSolaris ネーミングの管理Solaris ネーミングの設定と構成を参照してください。

テープデバイス用非同期 I/O

非同期 I/O をサポートするテープ用インタフェースによって、高性能テープデバイスの性能が向上しました。また、この機能では要求をキューに入れられるので、入出力スループットが大幅に向上しています。

Solaris ソフトウェア開発キット (SDK)

SDK ソフトウェアが Solaris 環境に組み込まれて、別売製品ではなくなりました。一般ユーザー用 Solaris 実行環境で使用するアプリケーションやグラフィックスハンドラの作成に必要なすべての情報が Solaris ソフトウェアに用意されています。

グラフィックス

Solaris VISUALTM ソフトウェアには、グラフィックスおよびマルチメディアのソフトウェア開発に必要な複数の基本ライブラリが含まれています。基本ライブラリは、 Solaris ソフトウェアでは最も低レベルの、デバイスから独立した層に属します。このような低レベルインタフェースは、広範囲のさまざまな共通機能をサポートするように設計されています。たとえば、基本ライブラリをベースにしてより高いレベルのライブラリを構築したり、アプリケーションで基本ライブラリをそのまま使用したりできます。基本ライブラリを使って、2 次元および 3 次元のグラフィックス、画像、またはデジタルビデオを取り込んだアプリケーションを開発できます。基本ライブラリは、XGL グラフィックスライブラリと XIL 画像ライブラリから構成されます。XGL グラフィックスライブラリは、Solaris PEX ソフトウェアの基本ライブラリとして機能します。

PEX 3.0.2 実行環境

PEX 3.0.2 実行環境は、PEX クライアント側実行時ライブラリ (PEXlib) と PEX サーバー共用オブジェクトファイル拡張機能 (Solaris PEX サーバー) から構成されます。Xlib がコア X プロトコルの API であるように、PEXlib は PEX プロトコルの API です。PEXlib は異なるハードウェアプラットフォーム間でのアプリケーションの移植性を提供するほか、ローカルとリモートのディスプレイで 3 次元グラフィックスの描画を可能にします。PEX クライアントから PEX 要求を受け取ると、OpenWindows Version 3.6 の X11 サーバーは PEX 共用オブジェクト拡張機能を自動的に読み込みます。

PEXlib の Solaris 2.6 への実装は、マサチューセッツ工科大が提供している『PEXlib - Specification and C Language Binding: Version 5.1』に基づいています。また、PEX サーバー拡張機能は、『PEX Protocol Specification, Version 5.1』に基づいています。

PEX 3.0.2 実行環境は、Solaris 2.6 に含まれています。次の場合に、PEX 3.0.2 実行環境をインストールしてください。

PEX をインストールするには、Solaris 2.6 ソフトウェアのインストール時にソフトウェアグループ全体を選択します。

PEX についての詳細は、次のマニュアルを参照してください。

また、書店で次の本を求めることができます。

XGL 3.3 実行環境

XGL ライブラリは、2 次元画像および 3 次元画像の即時モード API です。この API は、異なるハードウェアプラットフォーム間のアプリケーションの移植性と、グラフィックスアクセラレータを利用してグラフィックスアプリケーション性能の最適化を行います。このほか、XGL Version 3.3 ライブラリを使って、アプリケーションは透過性のサポートレベルを判断できます。XGL Version 3.3 ライブラリには、エッジオフセットのユーザー制御を可能にする新しい属性が含まれます。

XGL 3.3 実行環境 (RTE) は、Solaris 2.6 に含まれています。グラフィックスアプリケーションを使用するサイトでは XGL RTE をインストールする必要があります。あるアプリケーションが XGL RTE を必要とするかどうかは必ずしも明確ではありません。したがって、CDE または OpenWindows のアプリケーションソフトウェアをインストールする場合は、そのアプリケーションが XGL ライブラリを参照することを考えて XGL RTE もインストールしておく必要があります。

XGL の詳細については、『XGL Programmer's Guide』または『XGL Reference Manual』を参照してください。

XIL 1.3 実行環境

画像処理用 API である XIL ライブラリは、画像アプリケーションやビデオアプリケーションに基本関数を提供します。API 開発者はこのライブラリを利用して書いたコードを基本ライブラリ (低レベルのソフトウェアインタフェース) として提供できるようになります。

XIL 1.3 実行環境 (RTE) は、Solaris 2.6 に含まれています。画像アプリケーションを使用するサイトではインストールする必要があります。あるアプリケーションが XIL RTE を必要とするかどうかは必ずしも明確ではありません。したがって、CDE または OpenWindows のアプリケーションソフトウェアをインストールする場合は、そのアプリケーションが XIL ライブラリを参照することを考えて XGL RTE もインストールしておく必要があります。

下位互換

XIL 1.3 ライブラリ API は、すべての点で下位互換です。既存アプリケーションは、修正または再コンパイルしないで実行することができます。

マルチスレッド対応

XIL 1.3 ライブラリ API は、マルチスレッド対応です。開発者は、XIL 関数にロックをかけないでマルチスレッドアプリケーションを書くことができます。API の複数のスレッドは、同じ画像からデータを要求しない限り確実に実行されます。ライブラリ自体もマルチスレッド対応なので、アプリケーションの書き直しをしなくてもマルチプロセッサシステムの利点を活用できます。

タイル記憶領域

XIL 1.3 ライブラリでは、特に大きな画像をタイルと呼ばれるメモリーバッファー領域に格納します。特定のタイルに含まれる画像の一部が必要な場合は、そのタイルをメモリーに読み込むだけで済むので性能が向上します。

XIL 1.3 ライブラリには、従来の連続した記憶領域だけでなく、XIL 画像のためのタイル記憶領域やストリップ記憶領域をサポートする新しい記憶領域オブジェクトが含まれています。この記憶領域オブジェクトは、走査線、ピクセル幅、データポインタなどの画像属性を格納するコンテナとして機能します。画像をエクスポートするか、あるいは直接修正するときまで、画像に記憶領域は割り当てられません。その分、メモリー消費を節約できます。

新しいデータ型

XIL 1.3 ライブラリでは、新たに 32 ビット単精度の IEEE 浮動小数点データ型をサポートします。このデータ型を使って、高度に洗練された科学分野の画像アプリケーションを開発することができます。

一時画像

XIL 1.3 ライブラリでは、一時画像をサポートします。この一時画像は、続けて作成する画像の中間的なステップとして使用されます。また、この画像を読み込んだり書き込んだりできるのは一回限りです。一時画像に使われる記憶領域は必要がなくなれば XIL が解放できるので、大きな画像を扱う場合は特に有利です。

XIL_GENERAL 記憶領域形式

XIL 1.3 ライブラリでは、新しく XIL_GENERAL 記憶領域形式をサポートします。この形式では、複数の帯域を持つそれぞれの帯域を別々のメモリーバッファーとして指定できるので、画像を柔軟に取り扱えます。さらに、帯域ごとに走査線とピクセル幅を持たせることができます。

XIL_BAND_SEQUENTIAL 記憶領域形式

XIL 1.3 ライブラリでは、XIL_BIT 画像だけでなくすべてのデータ型で XIL_BAND_SEQUENTIAL 記憶領域形式をサポートするようになりました。

KCMS の統合

XIL 1.3 ライブラリでは、Kodak Color Management System (KCMS) をサポートします。これによって、ディスプレイ上の画像と実際に格納される画像との間で非常に高いカラー対応を実現します。

KCMS のマルチスレッドプログラミング

Kodak Color Management System (KCMS) は、入力デバイスから出力デバイスまでの一貫したカラー表現を保証するカラー管理用ソフトウェア製品です。KCMS は、SunSoft が開発にかかわり、Eastman Kodak からライセンス供与されている技術です。

KCMS は、マルチスレッドプログラムをサポートし、マルチスレッドでの安全な動作を保証します (MT-安全)。KCMS アプリケーションでマルチスレッド機能を使う場合、KCMS ライブラリコールにロックをかける必要はありません。

詳細については、『KCMS Application Developer's Guide』を参照してください。

X11R6 Base Window System

X11R6 Base Window System には、X コンソーシアムから提供された最新の修正やパッチが含まれます。

詳細については、X/Open の Web サイト http://www.xopen.org を参照してください。

X11 Double Buffer Extension

X11 Double Buffer Extension (DBE) は、X Window System の枠組みの中でダブルバッファリングを使用する標準の方法です。ダブルバッファリングでは、「フロント」と「バック」の 2 種類のバッファーを使用して画像を保持します。フロントバッファーはユーザーにとって可視ですが、バックバッファーは可視ではありません。DBE の仕様に関する詳細な情報は、次の ftp://ftp.x.org/pub/DOCS/DBE/ サイトにあります。インターネットブラウザを使ってダウンロードできます。

詳細については、X/Open の Web サイト http://www.xopen.org を参照してください。