第5版で予想される fossil の姿
目次- 1.0.0 カーネルの作成
- 2.0.0 PLAN9.INI
- 3.0.0 fossil の編成情報
- 4.0.0 Venti を使いたいときには
- 5.0.0 ブートマネージャ
- 6.0.0 日本語キーボードの設定
- 7.0.0 ホスト環境とのインターフェース
2004/09/17 作成
2004/10/16 更新
2004/09 現在で kfs に依存せず fossil だけで動く Plan 9 端末が動作可能になっている。venti も必ずしも必要ではない。このような端末は将来の版(第5版)において Plan9 のシステム構築の基礎になるはずである。筆者は Mac OSX のノートパソコンで fossil ベースのシステムを作ってみたので、それを基にシステム設定などについて解説したい。読者は既にディスクレスの Plan 9 端末を作り、その下で fossil ファイルシステムを構築できることを仮定している。
注意: Mac OSX では Virtual PC を使用する。VGA は S3 Trio32/64、イーサネットコントローラは Intel 21041 である。これらのドライバは
/sys/src/9/pc
では標準的に含まれている。21041 は 10Mbps で遅いのが問題ではある。カーネルの作成
Plan 9 にとって fossil は venti に対するローカルキャッシュであるが、単独のファイルシステムとしても機能する。ノートパソコンではその方が使いやすいと思われる。fossil ベースのファイルシステムはノートパソコンをディスクレスの Plan 9 端末にし、その下で /dev/sdC0/fossil を作成し、サーバのファイルをコピーすればよい。
fossil ベースのカーネルの推奨名称は 9pcf である。9pcf の標準的な構成は /sys/src/9/pc/pcf
で与えられている。この内容を見ると、最後の部分は
bootdir bootpcf.out boot /386/bin/ip/ipconfig /386/bin/disk/kfs /386/bin/auth/factotum /386/bin/fossil/fossil /386/bin/venti/ventiとなっている。これはカーネルに含めるべきプログラムを表している。kfs を使わない場合には
/386/bin/disk/kfs
を外してよい。/386/bin/venti/venti
も外して良さそうに思うのだが、システムパニックに陥る。この問題はそのうち改善されるであろう。なおブート時に
venti, ... /net/net/clone file does not existのメーセージが出るが、気にしなくてもよい。
PLAN9.INI
カーネルをコンパイルし 9pcf を作成し、それを/n/9fat
にコピーする。plan9.ini
の bootfile
と bootargs
はbootfile=sdC0!9fat!9pcf bootargs=local!#S/sdC0/fossilとする。(
fs
の指定はいざと言う時のために残しておいた方が良いであろう。)
fossil の編成情報
fossil が立ち上がるときに fossil は編成情報(flconf)を読む必要がある。筆者のは次のようになっている。このファイル名をflconf
とする。# # flproto after installation # fsys main config /dev/sdC0/fossil fsys main open -AW fsys main # users -r /active/adm/users # srv -p fscons srv fossil
#
でコメントアウトした行は fossil を最初に立ち上げるのに使用されていた部分であり、ここでは不要である。さてカーネルが立ち上がるときにカーネルは fossil の編成情報を見る必要がある。この段階ではカーネルは DOS の 12bit/24bit FAT しか認識しない。つまり fossil の編成情報(flconf)を fossil のファイルとして持っていても、それを見る手段は無いわけである。従って 9fat の中にこの編成情報を置くのは一つの考え方ではあるが、現在の配布では別の方法をとっている。それは fossil ファイルシステムの空きスペースの特定の位置にこの fossil の編成情報を置くのである。この位置に編成情報を書き込むために
fossil/conf -w /dev/sdC0/fossil flconfを実行する。(
flconf
が置かれているデイレクトリで実行する。) 内容の確認にはfossil/conf /dev/sdC0/fossilを実行すればよい。
Venti を使いたいときには
2004/10/16 追加現在の fossil の仕様ではノートパソコンの場合には リモートのventi を使用する事はできない。なぜなら venti にバックアップをとったら、fossil からそれらのファイルが消えるからである。
固定端末であれば リモートの venti サーバを利用できる。その場合には flconf を次ぎようにすればよい。
# # flproto after installation # fsys main config /dev/sdC0/fossil fsys main venti tcp!192.168.1.2!17034 fsys main open -AW fsys main # users -r /active/adm/users # srv -p fscons srv fossil但し、ここで 192.168.1.2 は筆者の家庭での venti サーバの IP アドレスであるから、使用環境に応じた変更が必要である。
ノートパソコンでどうしても venti を使いたいなら venti を構築し plan9.ini で
venti=#S/sdC0/ventiのように指定する。
ブートマネージャ
筆者は MBM ( http://elm-chan.org/fsw/mbm/mbm.html )を愛用している。特に Virtual PC を使っている場合には FD boot の選択が容易なので重宝するかも知れない。
日本語キーボードの設定
Plan 9 の最近の配布ではキーボードの設定がとてもエレガントになった。/sys/lib/kbmap
には様々なキーボードの設定ファイルが置かれている。jp
が IBM-PC のための日本語キーボードである。/sys/lib/kbmap
に移動しcp jp '#κ/kbmap'を実行すれば日本語キーボードとして反応する。(この命令は
termrc
のどこかに置けばよいであろう。) ここに κ
はギリシャ文字のカッパーである。これを打ち込むには ALT + * を打ち続けて k を打つ。あるいはman kbmapを実行すると
κ
が表示されるのでそれをコピーしてもよい。Mac OSX では固有の問題が発生する。バックスラッシュ (
\
) の問題である。OSX はバックスラッシュと円マーク(¥
) を区別する。これは正しい方向であるが、バックスラッシュを出すには ALT キーを押しながら ¥ マークを打たなくてはならない( ALT + ¥ )。筆者はそのために大変不便な目に遭っている。(筆者には ¥ マークのニーズは全くないのである。) この動作が逆になっていた方が遥かにありがたいのであるが、それが可能なのかどうかが分からないのである。/sys/lib/kbmap/jp
は 109 キーボードに対応している。Mac OSX + VirtualPC + Plan9 では円マークは ¥ で、(バックスラッシュの表示は無いが) 109 キーボードと同様に「ろ」のキーを打てばバックスラッシュが打ち込める。日本語キーボートを使う場合にもう一つ戸惑うのは fscons の終わり方である。ASCII キーボードでは CTRL + | で
>>>
が表示された。日本語キーボードでは CTRL + ] である。日本語キーボードの ] の位置が ASCII キーボードの | なのである。キーボードに関する素晴らしいホームページに出会ったので紹介しておく。
ホスト環境とのインターフェース
Virtual PC を使用している場合にはどうしても Virtual PC が動いているホスト環境(すなわち OSX が動いているノートパソコンの環境)とファイルの交換をしたくなる。Cut&Paste もやれれば良いのであるが、それは Virtual PC 側のサポートと深く関わっているので望めない。Cut したデータはファイルを通じて Paste する事になる。ファイルの交換をするには u9fs を使う。OSX 側で u9fs を動かすのである。OSX が PowerBook で動いている場合にはそのままではネッワークサービスを行わない。つまり xinetd が動いていない。
OSX 10.3.5 に関して言えば、筆者はどのように xinetd を起動しているか仕組みを知らない。関連するファイルは
/System/Library/StartupItems/IPServices/IPServicesである。この内容は
#!/bin/sh ## # IP Services ## . /etc/rc.common StartService () { ## # Internet super-server. ## ConsoleMessage "Starting internet services" xinetd -inetd_compat -pidfile /var/run/xinetd.pid ## # Internet Address Sharing. ## if [ -a /etc/com.apple.named.conf.proxy ] then ConsoleMessage "Starting Internet address sharing" /usr/libexec/InternetSharing fi } 以下省略であり、ブート時に PowerMac はこれを実行し、PoweBook は実行しない。筆者はこのコントロールがどこで行われているかを知らないのである。もちろん PowerBook では他の Unix と同様に
/etc/rc
の中にxinetd -inetd_compat -pidfile /var/run/xinetd.pidを書き込んでもよいはずであるが、あまりにも安易に過ぎる。VirtualPC で Plan 9 環境を立ち上げたときに sudo でこれを実行するのが無難であろう。
VirtualPC のゲスト環境からホストの IP アドレスを自動的に読み取る仕組みはない。従って Plan 9 端末から 9fs を実行するときにはホストの IP アドレスは手作業で入力する事になる。ホストの IP アドレスは固定していないので
autofsを実行しておくと便利である[注1]。これを実行しておくとホストの IP が 192.168.1.100 の場合には
9fs 192.168.1.100を実行すると自動的に仮想ディレクトリ
/n/192.168.1.100が生成される。
注1:
autofs
は Fco. J. Ballesteros によるプログラムで、現在はこの機能は Plan 9 のリリースに mntgen
として含まれています。(2004/09/30 追加)