Solaris 9 4/03 オペレーティング環境の概要

ソフトウェア開発者向けの Solaris 9 の機能

開発ツール

説明 

Solaris と Linux のアプリケーションプログラミングインタフェースの互換性

以前は Solaris 8 ソフトウェア付属の CD から入手できたいくつかのフリーウェアが、現在は Solaris 9 オペレーティング環境に統合されています。この結果、ソフトウェアアプリケーションの開発者が Solaris オペレーティング環境で、より簡単にフリーウェアアプリケーションを開発およびコンパイルできるようになりました。フリーウェアライブラリには、以下が含まれます。

  • glib

  • GTK+

  • Jpeg

  • libpng

  • Tcl/Tk

  • libtif

  • libxm12

Solaris のメディアで利用できるフリーウェアの詳細は、フリーウェアを参照してください。

Live Upgrade メッセージの XML 出力の選択

Solaris Live Upgrade をコマンド行で使用するときに、-X オプションを使用して XML 出力を選択できるようになりました。このオプションは、Solaris Live Upgrade をツールとして使用するプログラムまたはシェルスクリプトのプログミングの際に使用するものです。デフォルトの出力はテキスト出力ですが、-X オプションを使用すれば、マシンの構文解析と解釈に適した XML が作成されます。-X オプションを指定すると、エラー、警告、通知、一般などのすべてのメッセージで、出力は XML となります。

lucreate(1M) のマニュアルページを参照してください。

SPARC: Multiple Page Size Support

Multiple Page Size Support (MPSS) により、プログラムはハードウェアがサポートする任意のページサイズを使用して仮想メモリーの各部にアクセスできます。 以前のリリースでは、プログラムのスタック、ヒープ、または mmap() で割り当てられた Anonymous Memory に 8K バイトのページしか利用できませんでした。

メモリーを多く消費するアプリケーションが任意のページサイズを使用するように、パフォーマンスを調整できます。スタック、ヒープ、または mmap() 関数で割り当てられた /dev/zero プライベートメモリー用にハードウェアでサポートされている任意のページサイズを使用できます。 メモリーを多く消費するプログラムでは、大きなページサイズを使用することでパフォーマンスが著しく向上する場合があります。

詳細は、pagesize(1)mpss.so.1(1)ppgsz(1)memcntl(2)mmap(2)、および getpagesizes(3C) のマニュアルページを参照してください。

マルチスレッドライブラリの向上

Solaris 9 リリースではマルチスレッドライブラリが改良され、高速になりました。このライブラリは、以前の Solaris ソフトウェアリリースでは libthread の代替として利用できました。

詳細は、『マルチスレッドのプログラミング』と threads(3THR) のマニュアルページを参照してください。

Perl バージョン 5.6.1

Solaris 9 リリースでは、新しいデフォルトバージョンの Perl (Practical Extraction and Report Language) を使用できます。新しいデフォルトバージョンの Perl は、バージョン 5.6.1 です。また、Solaris 9 リリースには、Solaris 8 リリースに含まれていた古いバージョンの Perl (バージョン 5.005_03) も含まれています。  

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

統一された diff 形式

diff コマンドと sccs-sccsdiff コマンドが更新され、GNU スタイルの統一された diff 形式がサポートされるようになりました。この形式では、コンテキスト行が差分リストに 1 回だけ出力されます。

これらのコマンドの詳細は、diff(1) および sccs-sccsdiff(1) のマニュアルページを参照してください。

Sysevent フレームワーク

sysevent フレームワークにより、カーネルレベルとユーザーレベルのシステムイベントを適切なアプリケーションに通知できるようになりました。イベントには、ハードウェアとソフトウェアの状態の変化、エラー、障害などがあります。

sysevent フレームワークのコンポーネントには以下のものがあります。

  • syseventd デーモン

  • syseventadm コマンド

  • イベントデータ抽出と sysevent 予約 (subscription) のためのライブラリ API

  • ドライバレベルのシステムイベント用インタフェース ddi_log_sysevent

syseventd デーモンは、カーネルからのシステムイベントバッファの配信を受け入れる、ユーザーレベルのデーモンです。イベントバッファが syseventd に配信されると、このデーモンは対象となるすべての終了イベントのサブスクライバにイベントを伝達します。

syseventadm コマンドを使用して、イベント指定を構成できます。構成したイベント指定は、システムイベントに応答するコマンド、アプリケーション、またはスクリプトの起動に使用されます。

sysevent カーネルおよびライブラリ API の詳細は、syseventadm(1M)syseventconfd(1M)、および syseventd(1M) のマニュアルページを参照してください。

ドライバレベルのイベント通知ロギングの詳細は、ddi_log_sysevent(9F) を参照してください。

Kernel Pseudo-Random Number Generator

Solaris Pseudo-Random Number Generator (PRNG) は /dev/random /dev/urandom デバイスから利用できます。PRNG は、暗号化操作、科学計算アプリケーション、およびシミュレーションツール用の擬似乱数にアクセスする標準インタフェースを備えた ISV を提供します。PRNG は Solaris カーネルで動作し、エントロピープールの内容を保護します。カーネルメモリーページからエントロピーデータを収集し、高水準な無作為性を常に維持します。

詳細は、random(7D) のマニュアルページを参照してください。

SPARC: クラスタ上の遠隔共用メモリーへのアプリケーションインタフェース

Sun Cluster 環境の使用を拡大するアプリケーションを開発する際は、このインタフェースを利用できます。 新しい Remote Shared Memory (RSM) API を使用すると、高速クラスタインターコネクトで渡されるメッセージの応答時間が短いアプリケーションをプログラミングすることができます。このように cluster-aware アプリケーションを設計すると、クラスタ化された構成でイベントへの応答に要する時間を大幅に減らすことができます。 

この API を使用するには、Sun Cluster 3.0 がインストールされている必要があります。新しいインタフェースを活用するためには、既存の Sun Cluster アプリケーションを変更する必要があります。 

詳細は、『プログラミングインタフェース』を参照してください。librsm(3LIB) のマニュアルページおよび『man pages section 3:Extended Library Functions』 (3RSM) のマニュアルページにも、RSMに関する記述が含まれています。

GNU 互換バージョンの gettext() API 関数

Solaris 9 リリースでは、GNU 互換バージョンの gettext() API 関数が追加されましたが、Solaris gettext() API 関数との下位互換性も維持しています。

  • libc 内の既存の関数は、Solaris と GNU 互換のメッセージファイルを両方とも処理できます。既存の関数には、以下が含まれます。

    • gettext()

    • dgettext()

    • dcgettext()

    • textdomain()

    • bindtextdomain()

  • libc 内の新しい GNU 互換の関数は、GNU 互換のメッセージファイルを処理できます。新しい関数には、以下が含まれます。

    • ngettext()

    • dngettext()

    • dcngettext()

    • bind_textdomain_codeset()

  • msgfmt ユーティリティと gettext ユーティリティは、Solaris と GNU 互換のメッセージファイルを両方とも処理できます。

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

拡張ファイル属性

UFS、NFS、および TMPFS ファイルシステムは、拡張ファイル属性を含むように機能拡張されました。拡張ファイル属性によりアプリケーション開発者は、ファイルに特定の属性を関連付けることができます。たとえば、ウィンドウシステム用のファイル管理アプリケーションの開発者が行う、表示アイコンとファイルとの関連付けです。 

詳細は、ファイルシステムの機能拡張を参照してください。

新しい固定優先順位 (Fixed-Priority、FX) スケジューリングクラス

FX スケジューラは、ユーザーまたはアプリケーションによるスケジューリング優先順位制御を必要とするプロセスに対して、スケジューリングポリシーを提供します。システムリソースの機能拡張を参照してください。

ダイナミックホスト構成プロトコル (DHCP)

ダイナミックホスト構成プロトコル (DHCP) サービスを使用すると、ホストシステムは、IP アドレスとネットワーク構成情報を受け取ることができます。この情報は、ブート時にネットワークサーバーから受信します。Solaris 8 7/01 より前のリリースでは DHCP 構成データはテキストファイルか NIS+ にしか保存できませんでしたが、現在の Solaris DHCP サービスでのデータアクセスは、モジュール方式のフレームワークを使用するように再設計されています。Solaris DHCP は、DHCP データの保存に任意のデータ格納装置をサポートする共有オブジェクトを作成できる API を提供します。  

Solaris DHCP サービス開発ガイド』には、Solaris DHCP が使用するデータアクセスフレームワークの概要と、開発者向けの一般的なガイドラインが記載されています。また、新しいデータストアをサポートするモジュールの記述に使用する API 機能の一覧も含まれます。

詳細については、『Solaris DHCP サービス開発ガイド』を参照してください。

Solaris Web Start Wizards SDK 3.0.1

Solaris Web Start Wizards は、ネイティブ Solaris アプリケーション、Java アプリケーション、および Java 以外のアプリケーションのインストール、設定、管理を簡単にします。Web Start Wizards を使用すると、開発者は Solaris 版のアプリケーションと Microsoft Windows 版のアプリケーションの両方をパッケージ化できます。このインストールウィザードは、プラットフォーム固有の処理を管理します。 

Web Start Wizards SDK 3.0.1 は現在 Solaris 9 リリースに付属しています。SDK 3.0.1 は、Solaris Web Start インストールプログラムを使用してインストールできます。 

モジューラデバッガ (mdb)

mdb は、稼働中のオペレーティングシステムの低レベルのデバッグおよび編集に利用できる拡張可能なユーティリティです。このユーティリティを使用して、システムのクラッシュダンプ、ユーザープロセス、ユーザープロセスのコアダンプ、およびオブジェクトファイルをデバッグすることもできます。Solaris 9 リリースでは、mdb は Solaris カーネル用の新しいシンボリックデバッグのサポート、および新しいカーネルデバッガコマンドを提供します。さらに mdb ユーティリティは、実行中のユーザープロセスの検査と制御を目的とした新機能、raw ディスクファイルおよび raw デバイスの検査機能なども提供します。

詳細は、『Solaris モジューラデバッガ』および mdb(1) のマニュアルページを参照してください。

オーディオの機能向上

Solaris 9 オペレーティング環境に、新しいオーディオディレクトリが追加されました。アプリケーションのオーディオヘッダーファイル用の新しいディレクトリは、/usr/include/audio です。このオーディオファイル形式には、新しいヘッダーファイル (/usr/include/audio/au.h) と au(4) のマニュアルページが含まれます。

その他のオーディオファイルの新しいデポジトリは、/usr/share/audio ディレクトリです。/usr/demo/SOUND/sounds ディレクトリ内のオーディオファイルは、ここへ移動しました。また、現在のアプリケーションとスクリプトがエラーを起こさずに動作するように、/usr/demo/SOUNDS/sounds から /usr/share/audio/samples/au へのシンボリックリンクが作成されています。

信頼性を向上するため、オーディオカーネルモジュールに多数のバグ修正が施されました。 

詳細は、『Solaris のシステム管理 (基本編)』を参照してください。

sendfile システムコールのベクトル版: sendfilev()

sendfile システムコールのベクトル版である sendfilev() を使用すると、アプリケーションのバッファやファイルからデータを送るときのパフォーマンスが向上します。たとえば、Web のパフォーマンスの場合、Web サーバーは、サーバーサイドに含まれるものだけでなく、ヘッダー、データ、トレイラも含めた HTTP 応答を 1 つのシステムコールで構築できます。 この機能により、Solaris Network Cache and Accelerator (NCA) のパフォーマンスを最適化できます。また、sendfilev() システムコールは、さまざまなファイルから複数のチャンクを応答として返すことができます。

詳細は、sendfilev(3EXT) および sendfile(3EXT) のマニュアルページを参照してください。

appcert ユーティリティによるファイル準拠の検証

appcert ユーティリティは、オブジェクトファイルの Solaris ABI への準拠を検証します。Solaris ABI に準拠していると、今後の Solaris ソフトウェアのリリースに対するアプリケーションの互換性が大幅に向上します。

詳細は、『プログラミングインタフェース』の「appcert の使用方法」を参照してください。

Generic Security Services Application Programming Interface (GSS-API)

GSS-API (Generic Security Services Application Programming Interface) は、セキュリティのフレームワークです。GSS-API を使用すると、アプリケーションは転送データを保護できます。 

セキュリティの機能拡張を参照してください。

Web-Based Enterprise Management ツール

説明 

Solaris WBEM サービス 2.5

Solaris WBEM サービス 2.5 は、Sun Microsystems の Web-Based Enterprise Management (WBEM) の実装です。WBEM は、企業のコンピューティング環境の管理方法を統一することを目的とした、管理およびインターネット関連のテクノロジです。 Distributed Management Task Force (DMTF) によって開発された WBEM を組織で使用することにより、World Wide Web テクノロジをサポートおよび向上させる規格ベースの管理ツールの統合セットを配信できます。 Solaris WBEM サービスは、Solaris 9 リリースではバージョン 2.5 に更新されました。 

WBEM の開発に関する情報は、『Solaris WBEM 開発ガイド』を参照してください。

新しい WBEM バッチ処理用 API の追加

Java Web-Based Enterprise Management (WBEM) クライアントのアプリケーションプログラミングインタフェース (API) は、クライアントによる複数の Common Interface Model (CIM) 操作を 1 つの「要求と応答」でバッチ処理できるようになりました。同様に、CIM オブジェクトマネージャが、バッチ処理されたこれらの要求を受け入れて処理するようになりました。この機能は、『Distributed Management Task Force (DMTF) Specification for CIM Operations Over HTTP』に定義されています。

結果として、クライアントが実行する必要がある遠隔呼び出しの数が減ります。 

詳細は、『Solaris WBEM 開発ガイド』を参照してください。

WBEM CIM WorkShop の拡張

CIM WorkShop は、WBEM 開発ツールのグラフィカルユーザーインタフェースを提供します。計器、システム、およびネットワークアプリケーションの開発者は、CIM WorkShop を使用して WBEM クラスおよび WBEM インスタンスを表示および作成できます。 

CIM WorkShop では、以下のことを実行することができます。 

  • 名前空間を表示および選択する

  • 名前空間を追加および削除する

  • クラスを表示、作成、変更、および削除する

  • プロパティ、修飾子、メソッドを新しいクラスに追加および削除する

  • インスタンスを表示、作成、および削除する

  • インスタンス値を表示、変更、および削除する

  • 関連の表示

  • メソッドの実行

  • コンテキストヘルプを表示する

CIM WorkShop で使用できる拡張機能と新機能は、以下のとおりです。 

  • 更新され修正されたコンテキストヘルプ

  • 関連付けのトラバース機能

  • 選択したクラスのイベントについての情報をサブスクライブし表示する機能。これにより、より簡単にイベントを使用するアプリケーションをデバッグできる。この機能は、RMI プロトコルを選択した場合のみ使用可能

  • WBEM 情報を検索および表示する WBEM Query Language (WQL) クエリを送信する機能

詳細は、『Solaris WBEM 開発ガイド』を参照してください。

追加された WBEM プロセス通知 (外部) イベントのサポート

現在は、WBEM イベントサービスを使用すると、該当の条件を満たすときにクライアントアプリケーションが非同期で指示を受信することができます。ただし、クラスのライフサイクルの指示 (インスタンスの変更、作成、および削除を示すもの) に属するのは、サポートされている指示だけです。 

この指示のクラスは非常にフレキシブルで広範に及びますが、計器がこのカテゴリに分類されない指示を発行しなければならない場合もあります。この要件を満たすため、DMTF は、現在の指示階層の拡張としてプロセス指示階層を導入しました。WBEM サービスのプロセス指示では、この拡張階層を処理できるようになりました。

WBEM サービスのプロセス指示は、イベントモデルのプロセス指示部の Sun Microsystems の実装です。このプロセス指示クラスは、計器が発行するすべての指示のスーパークラスです。このスーパークラスには、ライフサイクルの指示も含まれています。 

プロセス指示にサブスクライブするプロセスは、ライフサイクル指示にサブスクライブするプロセスと同じです。 

詳細は、『Solaris WBEM 開発ガイド』を参照してください。

WBEM mofcomp コマンドの拡張

Managed Object Format (MOF) コンパイラ (mofcomp) は、コマンド行で名前空間を指定できるようになりました。名前空間が存在しない場合は、新たに作成されます。

さらに、MOF コンパイラは Java インタフェースとクラスソースファイルを生成します。この機能により、CIM 構造とCIM オブジェクトモデルのアプリケーションプログラミングインタフェース (API) ではなく、標準の Java インタフェースを使用することが可能になります。 

CIMClass ごとにインタフェースとクラスファイルが生成されます。インタフェースは、相互運用性を維持しつつ、さまざまな実装を作成できるように生成されます。

詳細は、『Solaris WBEM 開発ガイド』を参照してください。

新しい Java WBEM SDK サンプルプログラムの追加

Java WBEM Software Developer's Kit (SDK) に新しい Java アプレットのサンプルとサンプルプログラムが組み込まれました。Java アプレットとサンプルプログラムは、/usr/demo/wbem にインストールされています。

Java WBEM SDK のサンプルプログラムは、イベント、クエリ、およびバッチ処理の方法を示しています。これらのサンプルは、独自のプログラムを開発するための叩き台として使用することができます。 

詳細は、『Solaris WBEM 開発ガイド』を参照してください。

Solaris WBEM Software Developer's Kit

Solaris Web-Based Enterprise Management (WBEM) Software Developer's Kit (SDK) には、開発者が WBEM アプリケーション作成に使用する API が含まれています。作成するアプリケーションは WBEM に基づくもので、Solaris オペレーティング環境でデータにアクセスし、リソースを管理できます。Solaris WBEM SDK には CIM WorkShop も含まれています。CIM WorkShop は、開発者が WBEM アプリケーションの作成に使用できる Java アプリケーションです。開発者は、CIM WorkShop を使用して、ソフトウェアに付属している WBEM クライアントおよびプロバイダのサンプルプログラムを表示できます。 

詳細は、『Solaris WBEM 開発ガイド』を参照してください。

新しい Solaris Provider

新しい Solaris Provider は、Common Information Model (CIM) 環境内の管理対象デバイスに関する情報の取得や設定を行うソフトウェアの開発に利用できます。Solaris Provider は、CIM オブジェクトマネージャに Solaris オペレーティング環境内の管理対象リソースのインスタンスを提供します。 

Solaris 9 ソフトウェアでは、次に示す 5 つの Solaris Provider が新しく追加されています。

  • Solaris デバイスおよび Solaris システム用 WBEM Performance Monitor – Solaris オペレーティング環境が実行されているシステムについてのさまざまな統計情報を提供する

  • WBEM Product Registry – 新しい製品の追加や、システムにインストールされている既存の製品の削除、変更などが行える

  • WBEM SNMP Provider – WBEM サービスで、ネットワーク管理用のインターネット参照モデルプロトコルである Simple Network Management Protocol (SNMP) を使用して情報を提供できる

  • WBEM EEprom Provider – EEPROM 内の構成情報の表示と変更に利用できる

  • Provider for WBEM System Availability – システムのリブート情報を提供する。アプリケーションは、この情報を利用してシステムの稼働時間の割合を計算できる。このプロバイダは、以下に示すような停止理由も示す

    • システムパニックが発生した

    • ユーザーがシステムを中断 (一時的に停止) した

    • ユーザーがシステムを停止した

詳細は、『Solaris WBEM 開発ガイド』を参照してください。

デバイスドライバの作成

説明 

フレームバッファ電源管理

テープドライブやフレームバッファなどのデバイスの中には、ドライバが切り離されたときに (電源の短時間でのオンオフでも) 電力供給が低下しないように設定しなければならないものがあります。新しいインタフェース ddi_removing_power は、ある処理が中断された場合に、デバイスへの電力供給が失われるかどうかを検査します。また、デバイスに新しいプロパティ no-involuntary-power-cycles を指定すると、そのデバイスへの電力供給が突然止まらないように設定できます。

詳細は、 ddi_removing_power(9F)no-involuntary-power-cycles(9P) のマニュアルページを参照してください。

SPARC: Sun StorEdge Traffic Manager

Sun StorEdge Traffic Manager は、ファイバチャネルにアクセス可能なストレージなどの入出力デバイスで、複数パスをサポートします。この機能は、複数のデバイス間で作業負荷のバランスを保ちます。Traffic Manager が障害の発生したインタフェースカードまたはストレージデバイスから、使用可能なカードまたはデバイスに要求をリダイレクトすることにより、信頼性が向上します。 

SPARC:ドライバフォルトインジェクタハーネス

ドライバフォルトインジェクタハーネス (Driver Fault Injector Harness) は、Solaris デバイスドライバの開発ツールです。開発中のドライバがハードウェアにアクセスするときに、このハーネスによってハードウェア障害のさまざまなシミュレーションが投入されます。このハーネスは、SPARC ベースのテスト障害状態をテストします。 

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

Generic LAN ドライバ

ドライバ開発者は、Generic LAN ドライバ (GLD) を使用できます。GLD は、Solaris ネットワークドライバに必要な STREAMS および Data Link Provider Interface (DLPI) 機能の大部分を実装します。Solaris 8 10/00 より前のリリースでは、GLD モジュールを利用できるのは、Solaris の x86 版ネットワークドライバに限定されていました。現在、GLD は Solaris の SPARC 版ネットワークドライバでも利用できます。

詳細は、『Writing Device Drivers』の「Drivers for Network Devices」を参照してください。

Java リリース

説明 

JavaHelp v. 1.1.2

JavaHelpTM v. 1.1.2 は、プラットフォームに依存しない、フル装備の拡張ヘルプシステムです。開発者および作成者は、このシステムを使用してアプレット、コンポーネント、アプリケーション、オペレーティングシステム、およびデバイスにオンラインヘルプを組み込むことができます。詳細は、以下の Web サイトを参照してください。

http://java.sun.com/products

Java 2 SDK, Standard Edition v. 1.4.0

Java 2 SDK Standard Edition v. 1.4.0 (J2SETM 1.4.0) は、Java 2 SDK のアップグレードリリースです。このアップグレードリリースには、新しいプラットフォーム機能、ツール、およびユーティリティなどが含まれます。

これらの拡張機能の詳細は、以下の Web サイトにある J2SE 1.4.0 プラットフォームのマニュアルを参照してください。 

http://java.sun.com/j2se/1.4/docs/relnotes/features.html

Apache Web サーバーにおける JSP 1.2 および Java Servlet 2.3 のサポート

Jakarta Tomcat 4.0.1 および mod_jserv モジュールが Apache Web サーバーに追加されました。このサーバーは、現在 JavaServer Pages (JSP Version 1.2)、Java Servlets Version 2.3 をサポートします。

/etc/apache には以下のファイルが含まれています。

  • tomcat.conf

  • README.Solaris

  • zone.properties

  • jserv.properties

  • jserv.conf

Tomcat サポートを有効にする方法については、README.Solaris ファイルを参照してください。構成情報については、http://jakarta.apache.org/tomcat/tomcat-4.0-doc/index.html も参照してください。

Tomcat および mod_jserv モジュールは、ほかの Apache ソフトウェアと同様に Sun 以外のグループによって管理されているオープンソースコードです。このグループは、以前のリリースと互換性を維持するように努力しています。