システム構成の変更点には、動的にロード可能なカーネルとカーネルの配置、config コマンドと boot コマンド、/etc/system ファイルがあります。
以前の SunOS リリースと異なり、Solaris 2.6 のカーネルは動的に構成されます。現在のカーネルは小さな静的コアと動的にロードできる多くのカーネルモジュールで構成されます。ドライバ、ファイルシステム、STREAMS モジュール、またその他のモジュールは、ブート時または実行時に、必要に応じて自動的にロードされます。これらのモジュールは使用されなくなるとアンロードされます。モジュールは、そのメモリ領域が必要になるまで、メモリ内に維持されます。modinfo(1M) は、現在システムにロードされているモジュールに関する情報を提供します。
modload(1M) コマンドと modunload(1M) コマンドは、Solaris 2.6 ではまだ使用できますが、動作が異なります。Solaris 2.6 では、これらのコマンドの使用方法に制限があり、ロード可能なドライバをシステムに正しくインストールするには不十分です。modunload は現在アンロード可能な (ビジー状態ではない) モジュールをすべてアンロードする機能が含まれます。次のように modunload を使用してください。
# modunload -i 0 |
以前は 1 つのファイル /vmunix にあったカーネルの内容は、現在ではディレクトリ階層の複数のモジュールに別れています。デフォルトでは、ディレクトリ階層は /platform/'uname -i'/kernel、/kernel、/usr/kernel です。
モジュールに対するディレクトリ検索パスは、/etc/system ファイルの moddir
変数により設定できます。system(4) のマニュアルページを参照してください。通常、最初にロードされるのは /platform/'uname -i'/kernel/unix です。kernel(1M) のマニュアルページを参照してください。
SunOS 4.x リリースでは、config コマンドを使用して、/vmunix がオブジェクトファイルから再リンクできるようにシステム構成ファイルを生成しました。次の Solaris 2.6 の機能により、このコマンドは必要なくなります。
ロード可能モジュール
/etc/system ファイル (system(4) のマニュアルページを参照)
OpenBoot PROM (OBP) からのデバイスツリー情報
/kernel/drv と /usr/kernel/drv にある driver.confファイル
システム構成情報は、現在 /etc/system ファイルに設定されています。また、このファイルはロード可能なモジュールのカーネルの処理方法も変更します。このファイルには、次の形式のコマンドが含まれます。
set parameter=value
たとえば、SunOS 4.x ソフトウェアにおいて、MAXUSERS
は config(8) を使用して設定されました。Solaris 2.6 では、/etc/system ファイルの中の次のような行により設定されます。
set maxusers = number |
ロード可能なモジュールに影響を与えるコマンドは、次の形式になります。
set module:variable=value
/etc/system ファイルに対して行われた変更は、システムをリブートする際に影響を与えます (system(4) のマニュアルページを参照)。
Solaris 2.6 では、次のブートプログラムが使用できます。
ディスクからブートする場合、PROM は、一次ブートブロックがローカルディスクのブロック 1 から 15 にあるものと仮定とします。installboot(1M) を使用し、次のようにブートブロックを作成します。
# installboot /usr/platform/'uname -i'/lib/fs/ufs/bootblk ¥ /dev/rdsk/c0t3d0s0 |
システムファームウェアは、一次ブートストラップ (ブートブロック) プログラムをメモリにロードし、それを実行します。ブートブロックは、UFS ファイルシステムを読み取るプログラムで、二次ブートプログラム (/platform/'uname -i'/ufsboot) をメモリにロードします。
ufsboot は /kernel/unix をロードします。それから /kernel/unix は、ルートファイルシステムのマウントが可能となるまで、ufsboot を使って /kernel ディレクトリ階層からモジュールをロードします。
これらの動作の間、ブートブロックと ufsboot は、ファームウェアによって提供されるドライバを使用します。ufsboot またはブートブロックのいずれにも、ドライバコードはまったく含まれません。ufsboot が SBus カード PROM ドライバを使用するため、ufsboot コードを変更して新しいディスクタイプで新しい SBus カードを取り込む必要はありません。
ネットワークを通してブートする場合、ブートプログラムは SunOS 4.x ソフトウェアのディスクレスブートと同じように実行されます。ただし、現在、ブートプログラムは inetboot と呼ばれ、クライアントの vfstab ファイルエントリは異なります。ディスクレスのブート時の情報については、『Solaris のシステム管理』を参照してください。
表 18-1 には、SunOS 4.x と Solaris 2.6 とのブートシーケンスの相違点を要約します。
表 18-1 ブートの相違点の要約
SunOS 4.x |
Solaris 2.6 |
説明 |
---|---|---|
bootblk |
ディスクから ufsboot をロードする |
|
ufsboot |
ディスクから unix をロードする |
|
unix |
ブート可能なカーネルイメージ |
|
inetboot |
ネットワークから unix をマウントしてコピーする |
|
/etc/rcS |
/usr をマウントし、ファイルシステムをチェックする |
|
/etc/rc2, /etc/rc3, /etc/rc2.d, /etc/rc3.d |
システムの構成スクリプト |
|
modload, /etc/system, add_drv, rem_drv |
システムカーネルをカスタマイズし、必要なモジュールをロードする |
|
PROM モニタ、シングルユーザ、マルチユーザ |
実行レベル 0〜6、および S |