Plan9 HDインストール環境
2002年4月にPlan 9 の第4版がリリースされました(Plan 9 4th Ed.版)。
Plan9はベル研で研究されているオープンソースの分散OSです。
Plan9にはCPUサーバ、ファイルサーバ、名前空間など独特のアーキテクチャがあります。
ここでは一つのPCで動作する「単体版のPlan9(ftp版)」をインストールして使う環境を簡単に紹介します。
(1)CD-ROMイメージの入手とCD-ROMの作成
http://plan9.bell-labs.com/plan9dist/download.htmlから「plan9.iso.bz2」という圧縮ファイル(約64MB)をダウンロードします。
このファイルを解凍(Linux環境の場合:「bunzip2 -k plan9.iso.bz2」)して「plan.iso」というCD-ROMイメージファイル(212,635,648バイト)を得ます。
このCD-ROMイメージファイルをCD-Rに書き込むとブータブルCD-ROMが出来上がります。
本ブータブルCD-ROMからマシンをブートすると次のスタートアップメニューが表示されます。
ブータブルCD-ROMからブートしてインストールする方法の他に、インストール用FDを準備してFDからインストーラを起動する方法もあります。
今回はインストール用FDを使う方法を紹介します。
(2)インストール用FDの準備
http://plan9.bell-labs.com/plan9dist/download.htmlからインストール環境に合わせたインストール用FDイメージ(9disk.flp)をダウンロードし、FDに書き込みます(Linuxの場合:cat 9disk.flp > /dev/fd0)。
(3)インストール手順
- インストール用FDからブート
- ネットワークカードが認識されます。
- GUI形式のインストーラが起動されます。
GUI形式のインストーラが起動できない場合は、「inst/textonly」コマンドによるコンソールモードでのインストール方法もあります(詳細略)。
- インストールステップ
インストールの各ステップはタスクと呼ばれ、次のタスクの流れとなります。
HDには300MB以上の空きがあればインストールウィザードの指示に従うだけで簡単にインストールが完了します(ほとんどデフォルトでOK)。
- partdisk
Plan9パーティションを作成するためのパーティションテーブル編集です。
インストーラが自動割当した内容で問題なければ、
>>>w
>>>q
でパーティションテーブル編集を完了させます(通常sdC0ドライブにパーティションを作成)。
- prepdisk
Plan9パーティションを更に分割するための設定です(Plan9パーティションテーブル作成)。
インストーラが自動割当した内容(ファイルシステム領域サイズやスワップ領域サイズ等)で問題なければ、
>>>w
>>>q
でPlan9パーティションテーブル作成を完了させます。
- mountfs
ファイルシステムの選択とマウントです。
kfsファイルサーバが内部起動され、kfsファイルシステムの作成とマウントが行われます。
- configdisk
ディストリビューションアーカイブの所在選択です。
ここでは「local」を選択しCD-ROMをセットします。
- mountdisk
ディストリビューションの位置付けとマウントです。
「Distribution disk [no default]:」に対してはCD-ROMを表す「/dev/sdD0/data」を指定します。
また、「Location of archives [browse]:」に対しては「/」を指定します。
これにより9660srvサービスが内部起動され、CD-ROMがマウントされます(mount /srv/9660 /n/distmedia /dev/sdD0/dataの内部実行)。
- copydist
Plan9ファイルシステムへのディストリビューションのコピーです。
画面中央にコピーの進捗を視覚的に示す小さなウィンドウが表示されます。
- bootsetup
Plan9ブートFDの作成またはPlan9ブート用HDの構成設定です。
最初はFDにPlan9ローダを入れる方が無難かも知れません。
- finish
インストール用FDに現在のインストールステータスを書き込みます。
リブートし、glenda(パスワードなし)でログインすればデスクトップ画面が表示されます。
(4)Plan9標準Webサーバの起動
Plan9にはWebサーバが付属しています(ftpサーバ,telnetサーバも付属)。
Webサーバを起動するには以下のようなコマンドを実行します。
ip/httpd/httpd -w /sys/doc
(-wオプションはwwwrootへのパスを指定するものです)
WindowsからアクセスしたPlan9 Webサーバのページ例。
Plan9のWebサーバのHTTPヘッダ情報を見ると次のようになっています。
HTTPServerの値:"Plan9" (Apacheでは通常"Apache/1.3.9 (Unix)"などと入っています)
HTTPStatusの値:"200"
(5)システムの停止
システムの停止は「disk/kfscmd halt」コマンドで行います。
本コマンドを実行するとkfs(ローカルユーザレベルのファイルサーバ)が停止し、「kfs : file system halt」と表示されます。
(6)CD-ROMのマウント
CD-ROMのマウントは以下のコマンドで行えます。
disk/kfscmd allow(次のmkdirでのアクセス許可エラーの防止用)
mkdir /n/cdrom
9660srv
mount /srv/9660 /n/cdrom /dev/sdD0/data(CD-ROMがIDEセカンダリのマスタ接続の場合)
ここで「data」を入れ忘れると「attach name not a plain file」エラーとなります。
(7)Webブラウザ(Charon)について
「単体版のPlan9(ftp版)」にはWebブラウザが付属していません。
しかしPlan9用のInfernoエミュレータを導入することによりそのInferno上でCharonというWebブラウザを使うことができるようになります。
- Plan9へのInferno(エミュレータ)のインストール
入手したInfernoのインストーラ(Plan9.rc)を起動するだけで特別な設定なしでInfernoがインストールされます。
Plan9.rcの引数にはInfernoルートディレクトリ(通常は/usr/inferno)を指定します。
- Charonの利用
ここではInfernoのインストール先(Infernoのルートディレクトリ)が「/usr/myinferno」だと仮定します。
- Infernoエミュレータの起動
次のコマンドでInfernoエミュレータを起動します。
cd /usr/myinferno
「Plan9/386/bin/emu -gmmmxnnn -r.」(または「Plan9/386/bin/emu -gmmmxnnn -r/usr/myinferno」)
mmmとnnnはInfernoエミュレータ画面の大きさを表します。
もし640x480なら「-g640x480」と指定します。
「;」プロンプトが出ますのでウィンドウマネジャを起動するためにwm/wmと打ち込みます。
これでInfernoエミュレータのデスクトップ画面が表示されます。
- Charonの起動
Infernoエミュレータのデスクトップ画面のメニューから「Charon」を起動します。
URLを入力してEnterを押すとWebページが表示されます。
下の画面例はwww.yahoo.co.jpをアクセスした画面です。
DNSの設定をしていなためURLには「www.yahoo.co.jp」のIPアドレスを直接指定しています。
(Infernoの設定は特にしていません:日本語表示はされますが画像が表示されなかったり、文字も正しく表示されなかったりしています)
拡大画像はこちらです。
- Infernoデスクトップの終了
Shellメニューを起動し、「shutdown -h」でInfernoデスクトップ画面が消えます。
- Infernoエミュレータプロンプトからの抜け出し
「;」プロンプトに対してexitと打ち込めばInfernoエミュレータは終了します。
(8)コマンドのカスタマイズ
/sys/src/cmd下にはコマンドのソースファイルとmkfileが存在します。
自分の好みに合わせてコマンドをカスタマイズすることもできます。
ここではvncsとvncvをカスタマイズするものとします。
cd /sys/src/cmd/vnc
sam vncs.c ※samエディタでソース変更
sam vncv.c ※samエディタでソース変更
mk all ※mkはmkfileの処理です(処理結果)
(9)ネットワークの設定
ここではDHCP機能を使用しないでPlan9マシンに固定IPアドレスを割り当て、更にインターネットのドメインネームサーバも使えるようにする例を紹介します。
【前提条件】
IPアドレス:192.168.0.2
サブネットマスク:255.255.255.0
デフォルトゲートウェイアドレス:192.168.0.1
DNSサーバアドレス:200.200.20.1
ネットワークカードのMACアドレス:0002b1234567
【/bin/termrcの編集】
/bin/termrcにおけるip構成部分を次のようにします。
ip/ipconfig -g 192.168.0.1 ether /net/ether0 add 192.168.0.2 255.255.255.0
【/lib/ndb/localの編集】
次の定義を追加します。
ipnet=mynet ip=192.168.0.0 ipmask=255.255.255.0 ipgw=192.168.0.1
ip=192.168.0.2 ether=0002b1234567 sys=myhost
dom=
ns=dns.yugurenet.com(DNSを使う場合ns属性の定義は必須です)
dom=dns.yugurenet.com ip=200.200.20.1
これらの設定を行いリブートすると(ip/ipconfigの実行は不要)、WebブラウザCharonでhttp://www.hogehoge.co.jpのようなURL指定でWebページ表示ができるようになります。
Lotusのホームページ表示例はこちらです。
(10)その他
- unameコマンドについて
「単体版のPlan9(ftp版)」にはunameコマンドはありません。
APE(ANSI/POSIX環境)を導入することによりunameコマンドが使用できるようになります。
<例>
ape/uname -a
「Plan9 1 0 generic pcdisk」と表示されます。
- plan9.iniファイルについて
plan9.iniファイルは/dev/sdC0/9fatパーティションにあります。
次のコマンドを実行すると「sam /n/9fat/plan9.ini」が使えるようになります。
mount /srv/dos /n/9fat /dev/sdC0/9fat
尚、「9fat:」コマンド(シェルスクリプト)を使うと/n/9fatと/n/9の両方にマウントされます。
- InfernoのWebサーバ
InfernoにはWebサーバが付属しています。
まず、InfernoのWebサーバ用ドキュメントルートディレクトリを作成します。
cd /usr/myinferno
mkdir services/httpd/root
次に適当なhtmlファイルをドキュメントルートにコピーします。
cp services/webget/help.html services/httpd/root
InfernoのWebサーバを起動するためにInfernoのウィンドウマネジャを起動しshell画面から次のコマンドを実行します。
% dis/svc/httpd/httpd.dis &
httpd起動結果。
- Plan9パーティションの見え方
Windows 2000からPlan9パーティションを見るとFAT扱いになります。
しかしドライブ割り当てはなされず、Windows 2000からPlan9パーティションをアクセスすることはできないようです。