Solaris 移行ガイド

第 17 章 ネットワークと国際化機能

この章では、プログラミング環境に関連する Solaris 7 のネットワーク機能と、改善された国際化機能について説明します。

ネットワーク

Solaris 7 には、次のネットワーク機能があります。

これらのサービスについての詳細は、『NIS+ への移行』と『NFS の管理』を参照してください。

NIS と NIS+

Solaris 7 は、ネットワーク情報サービス (NIS)、SunOS 4.x のネームサービス、ネットワーク情報サービスプラス (NIS+)、異機種分散システムの企業ネームサービスをサポートしています。Solaris 7 で使用できる NIS サポートについての詳細は、「NIS+ 」 を参照してください。

NIS+ は、名前空間オブジェクトの詳細なモデル、改善されたセキュリティ、NIS より高速な更新処理などを提供します。

NIS+ のプログラマインタフェースについては、『SunOS Reference Manual 』のセクション 3N「Library Routines」を参照してください。

nsswitch.conf ファイル

nsswitch.conf ファイルは、ネームサービス管理を簡略化するために設計されました。アプリケーションは、nsswitch.conf ファイルを使用してネームサービスを選択できます。これにより、ネームサービス情報をネットワークサービス内で直接定義する必要がなくなりました。nsswitch.conf ファイルの書式についての詳細は、nsswitch.conf(4) のマニュアルページを参照してください。

Network Interface Tap

SunOS 4.x で提供されていた Network Interface Tap (NIT) は Solaris 7 では必要なくなりました。Solaris 7 では、イーサネットドライバが真の STREAMS ドライバに変更されたので、ドライバを直接オープンして通信できます。

pfmod(7M)bufmod(7M)dlpi(7P) のマニュアルページを参照してください。

Solaris 7 のイーサネットドライバとその他のデータリンクドライバは、コネクションレスの Data Link Provider Interface (DLPI) バージョン 2 をサポートしています。

ソケット

ソケットは Solaris 7 でサポートされています。SunOS 4.x と違って、ソケットはカーネルの中にはまったく実装されなくなり、ライブラリ libsocket として STREAMS 上に実装されています。

国際化

Solaris 7 での変更のほとんどは以前の国際化機能の改善です。国際化サポートに関する詳細な情報については、『プログラミングの国際化』を参照してください。

プログラムの国際化に関わるアプリケーション開発者は次のガイドラインに従ってください。

文字サポート

Solaris 7 環境は拡張 UNIX コード (EUC)、VTF8、PCK、V165 をサポートしています。これにより、1 つのシステムで複数バイトと複数のコードセットを利用できます。

SunOS 4.x は ASCII 以外の文字のシングルバイト表現をサポートしていました。Solaris 7 では、複数バイト表現がサポートされています。このサポートは数千文字もあるアジア系言語の文字セットに必要です。

libc に含まれる複数バイトライブラリには次のような機能があります。

Solaris 7 は複数バイトファイル名をサポートしていますが、ログイン名とマシン名は ASCII 文字に制限するようにしてください。

メッセージカタログ

SunOS 4.x のメッセージカタログのサポートは Solaris 7 で強化され、複数バイト文字を使ってメッセージカタログを作成できるようになりました。

メッセージカタログを使うと、アプリケーションはアプリケーションが実行された母国語で実行時のメッセージを表示できます。これらのメッセージカタログは、言語ロケールによって指定される母国語用にはじめに作成しなければなりません。

ロケールデータベース

SunOS リリース 5.6 のロケールデータベース (/usr/lib/locale/locale) は、SunOS 5.x のロケールデータベースとは全く異なります。ただし、ユーザ側からは違いは分かりません。

コマンド

Solaris 7 のほとんどのシステムコマンドはメッセージ化されました。これらコマンドの多くには複数バイト機能があります。つまり、複数バイト文字表現が可能になっています。より多くのコマンドがメッセージ化されたことにより、ローカリゼーションの労力は軽減されます。

installtxt(1) コマンドは msgfmt(1) に変更されました。メッセージを抽出するには新しい xgettext(1) コマンドを使用します。

strftime(3C) を変更すると、日付および時刻フォーマットに影響を与えます。date(1) コマンドの出力フォーマットに依存するシェルプログラムは、新しいフォーマットを処理できるように修正しなければなりません。

chrtbl(8)catdef(8) は、localedef(1) に置き換えられました。

ライブラリ

/usr/xpg2lib/libxpg2.a アーカイブライブラリは利用できません。これらのルーチンは、libc に入りました。

表 17-1 にこれらのインタフェースの新しい位置を示します。

表 17-1 xpg2lib ライブラリルーチンの位置

ルーチン 

Solaris 7 での位置 

bindtextdomain

/usr/lib/libc

chroot

/usr/lib/libc

catgets

/usr/lib/libc

dgettext

/usr/lib/libc

getcwd

/usr/lib/libc

getut

/usr/lib/libc

l3tol

未サポート 

logname

/usr/lib/libc

malloc

/usr/lib/libc

swab

/usr/lib/libc

langinfo

/usr/lib/libc

gettext

/usr/lib/libc

sbrk

/usr/lib/libc

textdomain

/usr/lib/libc

これらのルーチンを使用するプログラムは -lxpg2 を C コンパイラに渡す必要はありませんが、libintl.h を含む必要があるものが現在あります。(これらのルーチンについては、表 17-1 を参照してください)。

catgetmsg(3C) ルーチンは利用できません。

setlocale(3C) によって戻される文字列におけるロケールカテゴリの順位は、SunOS 4.x と Solaris 7 では異なります。この文字列は通常 setlocale(3C) への次の呼び出しによって使用され、順位は問題とされません。アプリケーションはロケールカテゴリの特定の順位に依存しないようにしてください。