You are on page 1of 12

SOLARIS 2.

0
September 21, 1992

惑星ソラリス

フジエカズヒロ
Kazuhiro Fujie

「今度の OS は、ソラリスという形で提供されるらしいよ。」
こういう話を聞いたのが、今年の春頃だったでしょうか。
そのとき“ソラリス”という言葉を聞いてわたしは、アンドレイ・タルコフスキーの「惑星
ソラリス」を思い出していたのでした。

・・・ 「惑星ソラリス。プラズマ状の海に包まれ地球よりやや大きい惑星ソラリスは、
発見されて百年以上の歳月が経ち、そして数十年に及ぶソラリス研究家達の接触にも関わ
らずその実体が論証されず資料だけが図書室の本棚を埋め尽くしていた。
  宇宙飛行士の見た怪奇な現象も幾多の仮説が科学者達の論議を呼び、そして新たな仮
説が組み立てられた。しかしそのどれもがあの不思議なソラリスの本質を解明する事は出
来なかった。
  ただ1つだけソラリスの海は、思考を持った怪物であり惑星の殆んど全体を覆ってい
るプラズマ状の海はそれ全体が1つの脳であってその脳はこの世に存在する全ての物の本
質について思いも寄らない程の洞察力を持っていることだけが分かっている。
  とても人知の及ぶはずのない怪奇な惑星ソラリス。
  明日、私はそのソラリスに向かうのだ。」 ・・・

Solaris 2.0, System V Release 4 をベースにその進化した OS とユーティリティパ


ッケージには新たな機能が盛り込まれています。
OpenWindows V3, マ ル チ ス レ ッ ド 、 リ ア ル タ イ ム 処 理 、 国 際 化 対 応 機 能 (MNLS:
Multi-National Language Supplements)、ネットワークに依存しないリモートプ
ロ シ ー ジ ャ コ ー ル (TI-RPC: Transport Independent Remote Procedure
Call)、セキュリティの強化 (ASET: Automated Security Enhancement Tool)、
新しいネーミングサービス(NIS+: Network Information Service Plus)、ローダ
ブルなカーネルモジュール、などなどです。

・・・ (主人公)クリス・ケルヴィンは、ソラリス軌道上にある宇宙ステーションに着
いた時、編み上げ靴を履いているのですが、靴紐がほどけて転んでしまいます。 ・・・
これからの事を暗示するかのように。 ・・・

それはわたしの事でもありました。

1
惑星ソラリス
SOLARIS 2.0
September 21, 1992

今までとは立ち上げの過程が、大きく変わっていたのです。
init プロセスは/etc/inittab に書いてあることを実行していきます。
エントリは、:(コロン)で区切られた 4 つのフィールドで構成されています。

id:rstate:action:process

Action のフィールドで、「initdefault」と書いてあるエントリのランラベル(もしく
はランステート)まで立ち上がります。ですから初期状態では、ランレベル 3 まで立ち上
がります。

ap::sysinit:/sbin/autopush –f /etc/iu.ap

fs::sysinit:/sbin/bcheckrc

is:3:initdefault:

p3:s1234:powerfail:/sbin/shutdown –y –i0 –g0 >/dev/console 2>&1

s0:0:wait:/sbin/rc0 off >/dev/console 2>&1 </dev/console

s1:1:wait: /sbin/shutdown –y –iS –g0 >/dev/console 2>&1 </dev/console

s2:23:wait:/sbin/rc2 >/dev/console 2>&1 </dev/console

s3:3:wait:/sbin/rc3 >/dev/console 2>&1 </dev/console

s5:5:wait:/sbin/rc5 ask >/dev/console 2>&1 </dev/console

s6:6:wait:/sbin/rc6 reboot >/dev/console 2>&1 </dev/console

of:0:wait:/sbin/uadmin 2 0 >/dev/console 2>&1 </dev/console

fw:0:wait: /sbin/uadmin 2 2 >/dev/console 2>&1 </dev/console

RB:0:wait:/sbin/sh –c ‘echo “\nThe system is being restarted.”’ >/dev/console 2>&1

rb:6:wait: /sbin/uadmin 2 1 >/dev/console 2>&1 </dev/console

sc:234:respawn:/usr/lib/saf/sac -t 300

co:234:respawn:/usr/lib/saf/ttymon –g –h –p “`uname –n` console login: “ –T sun –d

/dev/console –l console –m ldterm,ttcompat

今までは、シングルユーザかマルチユーザの 2 種類でしたが、Solaris2.0 では、ランレ


ベルという名前でもう少し細かくシステムの環境を変更できるようになっています。ラン
レベルを変更するには、「init」もしくは(新しい)「shutdown」コマンドをつかいま

#/sbin/init 2 システムをランレベル 2 に変更する。


#/sbin/shutdown –g0 –i0 システムをすぐに停止する。

2
惑星ソラリス
SOLARIS 2.0
September 21, 1992

す。
今 ま で の 「 shutdown 」 や 「 halt 」 と い っ た よ う な コ マ ン ド も /usr/ucb も し く は
/usr/sbin の下に用意されています。
デフォルトの ランレベル

0 電源を切れるようにマシンをダウンする。
1 システム管理者モードになる。(シングルユーザモード)
2 マルチユーザモード その 1。(NFS のサーバになれない。)
3 マルチユーザモード その 2。(NFS のサーバになれる。)
4 使われていない。(自分で定義できる。)
5 対話モードでリブートする。(boot -a)
6 リブートする。
S または s システム管理者モードになる。(シングルユーザモード)

実 際 に は inittab の 記 述 に あ る よ う に 、 ま ず /sbin/bcheckrc を 実 行 し 次 に 、
/sbin/rc2, /sbin/rc3 というシェルスクリプトが、 /etc のディレクトリにある
rc2.d あるいは rc3.d ディレクトリの下にあるシェルスクリプトを起動することによっ
てそれぞれの環境を設定しています。
つまりこれらが今までの Run Command のスクリプト(rc.local など)に相当します。
これは、スクリプトがディレクトリの下に“何をするか”によって別けられていてさらにフ
ァイル名前に規則があるので管理しやすいようになっています。
ファイル名の最初の文字は、S か K です(これは、多分 Start と Kill の意味だと思いま
す)。
S はそのランレベルになると起動されるサービスで、K は違うランレベルに移るときに終
了されるサービスを意味します。
その次についている 2 文字の数字は実行される順番を意味し最後にサービス名がついてい
ます。ですから、そのランレベルになった時実行させたいサービスがあるときは、こうい
う名前のスクリプトをリンクすればよいわけです(やめる時は、もちろんアンリンクすれ
ばよいわけです)。

#ln /etc/init.d/acct /etc/rc2.d/S22acct


#ln /etc/init.d/acct /etc/rc2.d/K22acct
そしてコンソールには、

spock console login:

と出てくるわけですが、ログインプロンプトは inittab にあるように、getty ではなく


3
惑星ソラリス
SOLARIS 2.0
September 21, 1992

て ttymon なるものがサービスしてくれます(getty は/etc の下にありますが、ttymon


へのシンボリックリンクです)。 ttymon は、ポートモニターサービスなるものでログ
インサービスは、SAF(サービスアクセスファシリティ)と呼ばれる機能で提供されるも
のです。

更に root でログインするとどうでしょう?B シェルではありませんか?


今更ながらに B シェルは勉強しなければ、と思ったしだいです。
しかし、ユーザの環境としては sh, csh または ksh のいずれかを選択できるのはうれし
いです。
ksh (Korn shell)は、sh の拡張版で sh の機能プラス、ヒストリ機能やジョブコント
ロールができるようです。なんといってもヒストリを、コマンドラインで編集してそのま
ま実行できるのは、ものぐさなわたしにはうれしいです。
ヒストリは、指定しなければホームディレクトリの下の「 .sh_history」というファイ
ルに 128 個分記録されます。
ファイルとヒストリサイズを指定するときは、

$HISTFILE=$HOME/.report
$HISTSIZE=256
$export HISTFILE HISTSIZE

などとすればよいわけです。
同様に vi モードによるコマンド編集機能を使うには、

$EDITOR=vi
$export EDITOR

とします。
そしてコマンドを打ち間違えてしまったときなどは、ESC キーを押せば編集モードに入る
ことができますので、vi と同じように「k」を押せば以前にタイプしたものが復活します
ので変更しなおしたものを実行させることができます。
皆さんは(わたしも)、csh を使っていると思いますのでそのうち tcsh も標準でバンド
ルされればいいなと思います。(よくばりかな?)

一般ユーザの環境としては、今までとあまり変わりなく使えます。今までのコマンド群は
多くのものが、/usr/bin から/usr/ucb に移されていて/usr/5bin にあったものが、
/usr/bin に移ってメインになっています。が、path を切り換える事により今までと同
じように使うこともできます。
更に OpenWindows を立ち上げると違和感は、ほとんどありません。
4
惑星ソラリス
SOLARIS 2.0
September 21, 1992

しかし管理者の方は、多少違和感を覚えるかもしれません。
今度からは基本的には、ファイルを編集しアップデートする事により管理するというやり
方ではなく、シェルコマンドや管理ツールによって登録、変更するというやり方になりま
す。

初めに行うこととしてユーザの登録がありますが、「 useradd, userdel, usermod」


な ど の 管 理 コ マ ン ド が 用 意 さ れ て い ま す 。 グ ル ー プ に 関 し て は 、 「 groupadd,
groupdel, groupmod」です。
ユーザの登録方法は、

#useradd –m hiroko

hiroko というユーザをデフォルト値で登録しホームディレクトリを作成してくれます。
ユーザ ID は現在のユーザ ID の最大値に 1 を足した値が自動的につきます。
デフォルト値は、

#useradd –D
で見ることができます。例えばグループを変更するときは、

#useradd –D –g staff

とすると登録されるグループのデフォルト値を staff にできます。また、デフォルト値

#useradd –u 1001 –g 10 –G 100 –c “Kazuko Fujishiro, 3419-xxxx, edu CTCS”


–s /usr/bin/ksh –d /home2/kazuko –m kazuko

を無視して次のように指定することもできます。
また、削除するときには、
とするとホームディレクトリも一緒に削除してくれます。group に関しても同じようにし
ます。

#userdel –r kazuko

ユーザは、必ず 6 文字以上で数字やアンダースコアなどをまぜたパスワードをつけること
になります(変更はできます)。パスワードに関してもいろいろできるようになっていま

5
惑星ソラリス
SOLARIS 2.0
September 21, 1992

す。
例えばパスワードをロックしてアカウントを使えなくする、パスワードの使用期限に制限
を加る、などができるようになりました。
パスワードに関しての情報を得たい時は、

#passwd –as
とします。

一番楽になったのが、ソフトウェアの管理です。
今までは、extract_files や add_services とか cdm などコマンドはまちまちで、
削除するにも何処の何を消していいのか?分からず困りましたが、これからは「 pkgadd,
pkgrm, pkginfo」で行えます。

6
惑星ソラリス
SOLARIS 2.0
September 21, 1992

私達はもしテープドライブを使いたければ、マシンをシャットダウンして接続が終わった
らテープドライブの事を考えて待てば良いのです。

#shutdown –g0 –i0


>

・・・この間にテープドライブを接続しドライブの電源を入れて、次にマシンの電源
を入れます。
立ち上がるときに次の指定を行います。・・・

>b –r リコンフィグします。
・・・立ち上がったらログインして確かめましょう。・・・
#prtconf
System Configuration: Sun Microsystems sun4c
Memory size: 16 Megabytes
System Peripherals (Software Nodes):
……
sbus, unit #0
dma, unit #0
esp, unit #0
sd, unit #1
sd, unit #2
sd, unit #3
sd, unit #6
st, unit #0 →テープのドライバが組み込まれている。
le, unit #0
bwtwo, unit #-1 (No driver.)

・・・ 「教えてくれスナウト、ソラリスはどうして我々をこんなに苦しめるんだ。」
「それは多分我々の方に問題があるのだろう。昔はもっと違っていた。
昔の人は何故かという論争は決してやらなかった。」 ・・・

NFS についても少しお話したいと思います。コマンドやファイルが若干変更されていて、
例えば NFS サーバ側で資源の共有を許可する場合は、exportfs というコマンドをつかい
ましたが、今度は「share」というコマンドをつかいます。

7
惑星ソラリス
SOLARIS 2.0
September 21, 1992

exportfs → share
exportfs –u → unshare
exportfs –a → shareall
showmount –d → dfmounts
showmount –e → dfshares
mount –u → mount
mount –a → mountall
umount → umount
umount –a → umountall
/etc/exports → /etc/dfs/dfstab
/etc/fstab → /etc/vfstab
/etc/mtab → /etc/mnttab
/etc/xtab → /etc/dfs/sharetab

mount –a は 、 「 mountall 」 と い う シ ェ ル ス ク リ プ ト に 置 き 換 わ っ て い て
/etc/vfstab の mount at boot のエントリを参照して yes にセットされていれば立
ち上げ時にマウントします。

Solaris 2.0 で は 、 OpenWindows 上 で の ネ ッ ト ワ ー ク 対 応 の 管 理 ツ ー ル で あ る


「Administration Tool」を提供します。マウスの操作によって簡単に管理ができます。
現時点では、全ての事をここではできませんが、将来的にはプリンタなどの面倒な設定も
ウィンドウ上で視覚的に管理ができるようになる事でしょう。
Administration Tool を起動するには、OpenWindows 上で

#admintool&
とすると起動することができます。

・・・ ステーションに着くと親友ギバリャンは既に死んでいました。
彼へのメッセージをビデオテープに残して自殺していたのです。
クリスは不安と恐怖の中、深い眠りに堕ちていきます。
目が醒めるとそこには 10 年前に死んだ筈の彼の妻ハリーが居るではありませんか!
ソラリスの海は、人間の脳の中に在る潜在的な記憶を実体化させているのでした。
恐怖かまたは罪の意識からか、
クリスはステーションのロケットでハリーを打ち上げてしまいます。
しかし翌朝、ハリーが彼の部屋にいます。

8
惑星ソラリス
SOLARIS 2.0
September 21, 1992

ハリー 2 号です。
スナウトは、彼女達のことを「御客」と呼びました。・・・

9
惑星ソラリス
SOLARIS 2.0
September 21, 1992

Solaris 2.0 のカーネルは、ソラリスの海と同じ様に思考します。


そして「御客」を送り込んで来るのです。

今迄のカーネル(/vmunix)は、スタティックなカーネルとして存在していて、もしデバ
イスドライバやカーネルオプションを変更したい時には、リコンフィグレーションが必要
でしたが、新しいカーネル(/kernel/unix)は、その必要がありません。
カーネルは、立ち上がってすぐの時は最小の状態でいてくれて必要になった時に初めて自
動的にデバイスドライバを組み込んでくれるのです。ですからいつもはメモリを圧迫せず
にいてくれて、しかも必要なときにはリコンフィグレーションという作業なしに組み込ん
で く れ る の で す 。 更 に 強 制 的 に 外 し た り 、 組 み 込 ん だ り (modload, modunload,
modinfo)、カスタマイズもできるようになっています。(詳しくは前号、CTC SUN イ
ンフォメーション vol.17 の大竹さんの記事をご参照下さい。)
そしてスペシャルファイルまで作ってくれます。
スペシャルファイルは/devices の下に実体ができますが、/dev の下にもシンボリック
リンクを貼ってくれますので、今までどおりにアクセスすることもできます。

hal9000% ls –l /dev/sd0a

lrwxrwxrwx 1 root root 12 Sep 28 16:26 /dev/sd0a -> dsk/c0t3d0s0

hal9000% ls –l /dev/dsk/c0t3d0s0

lrwxrwxrwx 1 root root 51 Sep 21 16:38 /dev/dsk/c0t3d0s0 -> ../..

/devices/sbus@1,f8000000/esp@0,800000/sd@3,0:a

hal9000%

■突然ですが、メインテナンスコマンドのマニュアルは今まで 8 章にありましたが、今度
からは 1M という章に移りましたのでマニュアルを見る際には注意して下さい。あと
「man」コマンドで章を指定する場合には「-s」というオプションを使います。

#man –s 1m init

特に/etc/vfstab のフォーマットは変わっていますので、今までみたいに、

#mount –p > /etc/vfstab


みたいなことは、やめましょう。

10
惑星ソラリス
SOLARIS 2.0
September 21, 1992

/etc/vfstab

#device device mount FS fsck mount mount

#to mount to fsck point type pass at boot options

#/dev/dsk/c1d0s2 /dev/rdsk/c1d0s2 /usr ufs 1 yes -

/proc - /proc proc - no -

fd - /dev/fd fd - no -

swap - /tmp tmpfs - yes -

/dev/dsk/c0t1d0s0 /dev/rdsk/c0t1d0s0 / ufs 1 no -

/dev/dsk/c0t3d0s7 /dev/rdsk/c0t3d0s7 /usr ufs 2 no -

/dev/dsk/c0t1d0s7 /dev/rdsk/c0t1d0s7 /export/home ufs 3 yes -

/dev/dsk/c0t2d0s0 /dev/rdsk/c0t2d0s0 /usr/man ufs 4 yes -

/dev/dsk/c0t1d0s1 - - swap - no -

ファイルシステムに関してですが、基本的には変わっていないようです。
今までと同じ UFS(VTOC なるものが追加されていますが。)が使えます。S5 は使えませ
ん。
その他のファイルシステムの多くのものはサポートされています。hsfs, pcfs, nfs,
rfs, tmpfs 等です。
新しく追加されているものは、「swapfs」です。スワップをメモリファイルシステムで
行うらしいのですが、どういう動きをしているのか私にはよくわかりません。かなりのす
ぐれものみたいです。

・・・ そしてクリスの脳電図をソラリスに放射する事によって異変が起こります。
惑星の表面に島が出来始めたのです。

クリスは地球に戻る事を勧められます。・・・

「私は再び地球に戻ってきた。
何時戻れるか分からないと思っていたこの地球に。
森も池も流れもあの時と同じだ。あの時と同じ静けさの中にいる。
ただ私だけが. . . でも多分何もかも徐々に元に戻るに違いない。
多分. . .」

11
惑星ソラリス
SOLARIS 2.0
September 21, 1992

■参考文献
「Solaris システム管理 for Release 2.0」
伊藤忠テクノサイエンス 井澤信悦/藤城和子/藤江一博

CTC SUN インフォメーション 1992.9 vol. 17


「Solaris ダイナミックコンフィグレーション機能」
伊藤忠テクノサイエンス 大竹龍史

「Solaris システムアドミニストレーショントレーニング資料」
伊藤忠テクノサイエンス 大竹龍史/相川靖/酒井敏和

12
惑星ソラリス