追補のパート II では、プログラミング環境を SunOS リリース 4 からリリース 5.8 へ移行する場合の、開発者向けの最新情報を検索できます。
この章では、コンパイラ、リンカー、デバッガに関する 『Solaris 移行ガイド』の情報を更新します。
この章の内容は以下の通りです。
このリリースで追加された機能は以下の通りです。
実行時のリンク監査に対する拡張機能。詳細については 「リンカー」を参照してください。
/usr/lib から /usr/lib/secure へセキュリティ保護されたパス名の変更。詳細については 「リンカー」を参照してください。
$ISALIST トークンのサポート。詳細については 「リンカー」を参照してください。
coreadm コマンドによるコアファイル管理とデバッグ。詳細については 「デバッガ」を参照してください。
新しいアプリケーションデバッグツールの apptrace ユーティリティ。詳細については、「デバッガ」を参照してください。
今までのコンパイラ関連の変更については、『Solaris 移行ガイド』を参照してください。
http://www.sun.com で、Sun WorkShopTM と Sun Visual WorkShopTM のコンパイラ製品に関する最新情報を参照してください。
リンクエディタや実行可能なリンク形式 (ELF) に関する以前の情報については、『Solaris 移行ガイド』を参照してください。
Solaris 8 オペレーティング環境に追加されたリンカー関連の新しい機能は以下の通りです。
実行時リンク監査に対する拡張機能。実行時リンク監査ライブラリを起動するための補助手段は、リンクエディタのオプション -p と -P によって実行できます。実行時リンク監査の補助インタフェースの la_activity() と la_objsearch() も追加されました。詳細については、『リンカーとライブラリ』を参照してください。
セキュリティ保護されたパス名を /usr/lib から /usr/lib/secure へ変更。ファイルを読み込んでおくことができるセキュリティ保護されたディレクトリは現在、32 ビットオブジェクトについては /usr/lib/secure、64 ビット SPARCV9 オブジェクトについては /usr/lib/secure/sparcv9 です。詳細については、『リンカーとライブラリ』を参照してください。
$ISALIST トークンのサポート。新しい $ISALIST 動的文字列トークンによって、命令セット固有の依存をより柔軟に確立できます。詳細については、『リンカーとライブラリ』を参照してください。
SunOS リリース 4 と SunOS リリース 5.7 の ld オプションの比較については、『Solaris 移行ガイド』を参照してください。
リンクエディタの最新情報については、『リンカーとライブラリ』の「リンカー」を参照してください。
『Solaris 移行ガイド』または共用ライブラリに対する今までの変更についての情報を参照してください。
最新情報については、『リンカーとライブラリ』の「リンカーのクイックリファレンス」にある共用ライブラリの構築に関する節を参照してください。
動的実行可能ファイルと静的実行可能ファイルの作成に関する情報については、『Solaris 移行ガイド』を参照してください。例を使って、実行可能ファイル作成時の SunOS リリース 4 の -Bdynamic オプションおよび -Bstatic オプションの動作と、SunOS リリース 5 の -dy オプションおよび -dn オプションの動作とを比較します。
最新情報については、『リンカーとライブラリ』の「リンカーのクイックリファレンス」にある共用ライブラリの構築に関する節を参照してください。
SunOS リリース 5.7 ライブラリ検索パスの変更とバージョン番号付けに関する情報は、『Solaris 移行ガイド』を参照してください。
Solaris 8 オペレーティング環境には以下のものが採用されています。
柔軟なコアファイル命名規則と改良されたコアファイル保存を実現する coreadm コマンド。この coreadm コマンドを使うと、たとえばすべてのプロセスコアファイルを単一のディレクトリに配置するようなシステムを構成できます。特定のディレクトリにあるコアファイルは、Solaris のプロセスまたはデーモンが異常終了した場合でも実行できます。coreadm(1M) のマニュアルページを参照してください。
実行可能オブジェクトからユーティリティが依存する共用ライブラリへの直接の呼び出しを監視することで、アプリケーションとシステムのレベルでのデバッグを可能にする apptrace ユーティリティ。apptrace が実現する呼び出しの監視は、今まで使用されていた sotruss コマンドよりも信頼できます。apptrace(1) のマニュアルページを参照してください。
デバッグの最新情報については、『Solaris のシステム管理 (第 2 巻)』の「Solaris ソフトウェアで発生する問題の解決」を参照してください。
この章は、開発環境用のツールとリソースに対する変更について、『Solaris 移行ガイド』の情報を更新します。
この節では、『Solaris 移行ガイド』の ioctl に関する情報を更新します。
filio、sockio、streamio、termio、termios、mtio、および dkio に関するすべての ioctl と、旧バージョン 7 や 4BSD 端末ドライバがサポートする ioctl の両方がサポートされています。それ以外の場合は、Solaris 8 プラットフォームの標準デバイスに関する ioctl だけが提供されます。この 2 種類のバージョンでサポートされている ioctl に関する ioctl 番号の不一致は、透過的に処理されます。この ioctl のパラメータは必要に応じてマップされます。
Solaris 8 オペレーティング環境での使用をサポートされていない SunOS リリース 4 の ioctl を、表 16-1 に示します。
表 16-1 Solaris 8 オペレーティング環境でサポートされていない ioctl
ioctl() |
解説 |
---|---|
/usr/lib/libc。この ioctl は、このリリースでは使用できませんが、バイナリ互換パッケージでサポートされています。この ioctl は DKIOCINFO と置き換えることができます。この DKIOCINFO には、SunOS リリース 4 の DKIOCGONF と DKIOCINFO の構造体に関する連結した情報が含まれています。 |
|
この ioctl は Solaris 8 ではサポートされていません。バイナリ互換パッケージを使うと、この ioctl は EINVAL を返します。 |
|
SunOS リリース 4 では、この ioctl はフロッピーディスク装置の書き込みチェックを切り替えます。バイナリ互換パッケージを使うと、この ioctl はフロッピーディスク装置の書き込みチェックを切り替えずに、正常終了を返します。 |
|
この ioctl は、xd(7)、xy(7)、および ipi(7) のデバイスについてのみ利用できます。この ioctl は SCSI デバイスでは障害が発生します。これらのデバイスについては USCSI ioctl を使用してください。 |
|
この ioctl は旧式であり、Solaris 8 リリースまたはこのパッケージではサポートされていません。 |
|
この ioctl は旧式であり、Solaris 8 リリースまたはこのパッケージではサポートされていません。 |
|
この ioctl は旧式であり、Solaris 8 リリースまたはこのパッケージではサポートされていません。 |
|
この ioctl は旧式であり、Solaris 8 リリースまたはこのパッケージではサポートされていません。 |
ptrace() 要求値と SunOS リリース 5 についての記号定数に対する変更の情報は、『Solaris 移行ガイド』を参照してください。
最新情報については、『バイナリ互換性ガイド』を参照してください。
SunOS リリース 5 におけるライブラリと動的に割り当てられたリソースの情報は、『Solaris 移行ガイド』を参照してください。
SunOS リリース 5 の環境で利用できる新しい make ユーティリティの情報は、『Solaris 移行ガイド』を参照してください。
SunOS リリース 5 のソースコード管理システム (SCCS) における相違点の情報は、『Solaris 移行ガイド』を参照してください。
バイナリ互換パッケージの使用に関する情報は、『Solaris 移行ガイド』を参照してください。
アプリケーションパッケージ作成の情報は、『Solaris 移行ガイド』を参照してください。
パッケージ作成ユーティリティの情報は、『Solaris 移行ガイド』を参照してください。
OPEN LOOKTM Intrinsics Toolkit (OLIT) と XViewTM の情報は、『Solaris 移行ガイド』を参照してください。
SunOS リリース 4 とSunOS リリース 5 のプログラミングツールを検索する場所の情報は、『Solaris 移行ガイド』を参照してください。
この章では、プログラミング環境に関するネットワーク機能についての 『Solaris 移行ガイド』の情報を更新します。また、改良された国際化機能についても説明します。
Native LDAP (Lightweight Directory Access Protocol) によって、LDAP ベースのディレクトリサービスをネームサービススイッチのバックエンドでサポートできます。詳細については、『Solaris ネーミングの管理』の「ネームサービススイッチ」を参照してください。
ドメインネームシステム (DNS) は、システム識別ユーティリティを使って設定できるネームサービスのリストに追加されました。詳細については、「DNS」を参照してください。
Solaris 8 オペレーティング環境は、90 を超えるロケール、言語インストールの新しく直観的なインタフェース、拡張された Unicode のサポート、改良されたデータの相互運用性ユーティリティをサポートします。「国際化」を参照してください。
Solaris 8 オペレーティング環境は、LDAP とDNS のサポートに加えて、以下の節で説明するネットワーク機能も提供し続けています。
詳細については、『NIS+ への移行』を参照してください。
Solaris 8 オペレーティング環境は、ネットワーク情報サービス (NIS)、SunOS リリース 4 のネームサービス、ネットワーク情報サービスプラス (NIS+) の異機種分散システムに関する企業ネームサービスをサポートしています。
NIS+ の最新情報については、『Solaris ネーミングの管理』の「NIS+ の紹介」を参照してください。
NIS と NIS+ の比較については、『Solaris ネーミングの管理』の「NIS+ と NIS の違い」を参照してください。
最新情報については、『Solaris ネーミングの管理』の「ネームサービススイッチ」を参照してください。
SunOS リリース 5 ではもう必要ありませんが、Network Interface Tap (NIT) のバックグラウンド情報については、『Solaris 移行ガイド』を参照してください。
直接開いて通信できる STREAMS ドライバの最新情報については、『STREAMS Programming Guide』を参照してください。
この節では、『Solaris 移行ガイド』のソケットに関する情報を更新します。
バイナリ互換パッケージによって、SunOS リリース 5.8 システムで、SunOS リリース 4 の動的にリンクされたソケットアプリケーションを実行できます。その実行は、以下のようにします。
-lsocket または -libsocket のソケットライブラリをコンパイル行で明示的に指定する必要があります。
また、libnsl とリンクする必要もあります。-lnsl -lsocket ではなく、-lsocket -lnsl を使います。
ソケットライブラリを SunOS リリース 5.8 で実行できるようにするために、すべての SunOS リリース 4 のソケットベースのアプリケーションを再コンパイルする必要があります。
国際化に関する SunOS リリース 4 から SunOS リリース 5.7 への変更点については、『Solaris 移行ガイド』を参照してください。
Solaris 8 の国際化サポートに関する現在の完全な情報は、『国際化対応言語環境の利用ガイド』を参照してください。
SunOS リリース 4 のソフトウェアは、非 ASCII 文字のシングルバイト表現をサポートしていました。Solaris 8 のオペレーティング環境は、以下の内容をサポートしています。
複数バイトサポート環境 (Multibyte Support Environment、MSE) プログラミングモデル。これによって、中国語、日本語、または韓国語の文字のような複数バイト文字を論理ユニットとして読み込み、ワイド文字として内部に格納できます。これらのワイド文字はシングルバイトで格納することはできませんが、正当な要求を持つ論理エンティティとしてプログラムが処理できます。最後に、これらのワイド文字は、適切な変換後に論理ユニットとして書き出すことができます。この MSE によって、シングルバイト文字用のものと同一のプログラミングモデルを使って複数バイト文字を処理できるように、プログラムを書き出すことができます。
コードセットの独立性 (Code Set Independence、CSI)。これは、特定のコードセットへの EUC の依存またはメソッドの符号化を、Solaris OS のライブラリとコマンドから取り除きます。この CSI アーキテクチャによって Solaris のオペレーティング環境は、すべての UNIX ファイルシステムの安全な符号化をサポートできます。CSI は、UTF-8、PC-Kanji、Big-5 のような多数の新しいコードセットをサポートしています。
拡張 Unicode のサポート。これは、簡体字中国語と繁体字中国語に関する新しい Unicode (UTF-8) のロケールを追加します。en_US.UTF-8 ロケールでアラビア語、ヘブライ語、タイ語のような複合テキスト配置 (Complex Text Layout、CTL) スクリプトについて、双方向テキストとコンテキスト文字の適切な印刷が、完全にサポートされています。
詳細については、『国際化対応言語環境の利用ガイド』を参照してください。
メッセージカタログの作成に関する簡単な要約については、『Solaris 移行ガイド』を参照してください。
詳細については、『国際化対応言語環境の利用ガイド』を参照してください。
Solaris 8 オペレーティング環境は、90 を超えるロケールをサポートします。
詳細については、『国際化対応言語環境の利用ガイド』を参照してください。
SunOS リリース 4 のコマンドへの変更点については、『Solaris 移行ガイド』を参照してください。
SunOS リリース 5 の国際化ライブラリへの変更点については、『Solaris 移行ガイド』を参照してください。
Solaris 8 libc (/usr/lib/libc.so) のほとんどすべての機能は CSI に対応しています。しかし、libc の以下の機能は EUC に依存した機能なので、CSI には対応していません。
csetcol() csetlen() euccol()
euclen() eucscol() getwidth()
以下のマクロは EUC に依存しているので、CSI には対応していません。
csetno() wcsetno() euccol()
Solaris 8 製品では、libgen (/usr/ccs/lib/libgen.a) は国際化されていますが、CSI には対応していません。
Solaris 8 製品では、libcurses (/usr/ccs/lib/libcurses.a) は国際化されていますが、CSI には対応していません。
以下の場所に 5 個の成果物があります。
ユーティリティ(32 ビットアプリケーション) : /usr/bin/geniconvtbl
32 ビットと 64 ビットの特別な iconv 共用オブジェクトは以下の通りです。
/usr/lib/iconv/geniconvtbl.so
/usr/lib/iconv/sparcv9/geniconvtbl.so
サンプルの geniconvtbl(1) 入力ソースファイルと、32 ビットと 64 ビットの両方の Solaris プラットフォーム用としてシステムが用意したバイナリテーブルファイルは以下の通りです。
/usr/lib/iconv/geniconvtbl/srcs/
ISO8859-1_to_ISO646.txt
ISO646_to_ISO8859-1.txt
ISO8859-1_to_UTF-8.txt
UTF-8_to_ISO8859-1.txt
ShiftJIS_to_eucJP.txt
eucJP_to_ShiftJIS.txt
/usr/lib/iconv/geniconvtbl/binarytables/
ISO8859-1%ISO646.bt
ISO646%ISO8859-1.bt
32 ビットと 64 ビットの libc.so.1s にある変更された iconv_open(3) は以下の通りです。
/usr/lib/libc.so.1
/usr/lib/sparcv9/libc.so.1 (sparcv9 のサンプル)
マニュアルページは以下の通りです。
/usr/share/man/sman1/geniconvtbl.1
/usr/share/man/sman4/geniconvtbl.4
この章では、カーネルおよびシステム開発者に影響する Solaris オペレーティング環境の変更についての、『Solaris 移行ガイド』の情報を更新します。
この章の内容は以下の通りです。
devfsadm コマンドによって、特殊デバイスファイルを管理するメカニズムが改良できます。詳細については、「開発者に関係するデバイスの命名規則」を参照してください。
システム構成に関する SunOS リリース 5 の変更点には、動的にロード可能なカーネルとカーネルの配置、config と boot のコマンド、/etc/system ファイルなどがあります。
動的にロードされるカーネルと、modload(1M) および modunload(1M) コマンドに対する変更点については、『Solaris 移行ガイド』を参照してください。
modload(1M) および modunload(1M) コマンドの使用に関する最新情報は、『Writing Device Drivers』の「Loading and Unloading Drivers」を参照してください。
最新情報については、『Writing Device Drivers』の「SunOS Kernel and Device Tree」を参照してください。
SunOS リリース 5 の再構成ブートの情報については 『Solaris 移行ガイド』を参照してください。
『Solaris 移行ガイド』で記述されている再構成ブートの boot -r コマンドは、現在、システムから物理的に削除されたデバイスのファイルシステムエントリを削除しません。詳細については、boot(1M) を参照してください。
この節は、『Solaris 移行ガイド』の「開発者に関係するデバイスの命名規則」を更新します。この節では、動的再構成イベントのサポートも含めて、/dev と /devices のディレクトリにある特殊デバイスファイルを管理するメカニズムを改良できる、SunOS 5.8 の devfsadm コマンドに焦点を当てます。
初期の SunOS 5 リリースでは、デバイス構成は drvconfig と 5 つのリンクジェネレータ (devlinks、disks、tapes、ports、audlinks) が処理していました。drvconfig は、/devices ディレクトリにある物理デバイスエントリを管理しました。リンクジェネレータは /dev ディレクトリにある論理デバイスエントリを管理しました。互換性のために、drvconfig と 5 つのリンクジェネレータは、devfsadm ユーティリティへのシンボリックリンクとなっています。
再構成ブート処理と、動的再構成イベントに応じた /dev および /device のディレクトリの更新は両方とも、devfsadm コマンドのデーモンバージョンである devfsadmd が処理します。このデーモンは、システムが起動されると /etc/rc* スクリプトから開始されます。
devfsadm のデーモンである devfsadmd は、すべての再構成イベントが生成するデバイス構成の変更を自動的に検出するので、このコマンドを対話式で実行する必要はありません。
詳細については、『Solaris のシステム管理 (第 1 巻)』の「ディスクの管理 (概要)」を参照してください。
この章では、デバイスドライバと STREAMS に関する 『Solaris 移行ガイド』の情報を更新します。
SunOS リリース 5 デバイスドライバのインタフェース、devinfo コマンド、移植に関する考慮事項、Solaris ドライバアーキテクチャの情報については、『Solaris 移行ガイド』を参照してください。
STREAMS モジュールについて変更された部分には、透過的な入出力制御、新しいメッセージタイプ、モジュールのリスト (/etc/iu.ap) をストリーム上に自動的にプッシュする autopush(1M) 機能があります。これらの機能の最新情報については、『STREAMS Programming Guide』の以下のトピックにある節を参照してください。
Module and Driver ioctl 2
Kernel Level Messages
autopush Facility
SunOS リリース 4 の ioctl() 要求に関する情報は 『Solaris 移行ガイド』を参照してください。
最新情報については、『STREAMS Programming Guide』を参照してください。
関連情報に関する今回の更新については、「ioctl() 要求」を参照してください。
SunOS リリース 5 の autopush() コマンドに関する情報は 『Solaris 移行ガイド』を参照してください。
STREAMS モジュールのプッシュに関する最新情報については、『STREAMS Programming Guide』を参照してください。