インターフェイスの街角 (19)PocketBSD
増井俊之

図 1 Mobile Gear MC-MK12

PocketBSD とは
PocketBSD とは、日本電気が販売している携帯端末「 Mobile Gear 」（図 1 ）で動く FreeBSD システムです。現在、Mobile Gear という製品名で 2 系統の製品が販売されています1 。外見や内蔵ソフトは似ていますが、2年ほど前に発売された初代の Mobile Gear（ MC-MK12や MC-MK32 など）は 486 CPU の DOS に PDA 的な皮をかぶせた製品、昨年から今年にかけて発売された新版の Mobile Gear（ MC-R500 や MC-R700 など）はMIPS CPU 上に Windows CE を載せた製品で、中身のハードウェアやソフトウェアはかなり違います。初代のMobile Gear は、軽くて手頃な DOS マシンとして一部下、 ``PB インストール・キット´´ ）が出版され、手軽にインストールできるようになりました。
この本に従って PocketBSD を Mobile Gear にインストールし、1 カ月ほど使用したところですが、たいへん快適に携帯 UNIX が使えることに満足しています。デ ィ

で人気が高いようですが 2 、たけむらさんという方がこれスク容量が足りなかったり、X ウィンドウや PC カードに FreeBSD を載せたものが PocketBSD です3 。Mo-が使えないといった制約はありますが、ほぼ普通の UNIXbile Gear にはハードディスクはありませんし、メモリもとして利用できます。

MK12 は 4MB 、MK32 は 8MB です。しかし、PC カー
ドのフラッシュメモリをディスクとして使い、FreeBSDインストールを動かしています。

PocketBSD は、電池で動く UNIX という点で魅力的ですが、FreeBSD 2.2.5 の動いているノート PC を経由して PC カードにシステムを構築しなければならないな
ど、インストールに手間がかかる（ような印象があった）ため、導入をためらっていました。しかし、『いつでもどこでも UNIX! PocketBSD インストールキット』[1]（以インストール方法は PB インストール・キットに詳しく書かれていますが、インストーラがよくできているためごく簡単です。DOS フォーマットのフラッシュメモリ・カー
ド上に PocketBSD のインストーラをコピーし、それをMobile Gear の外部ソフトとして起動すると、インストーラはメモリカード上にファイルシステムを新たに作り、必要なファイルをすべて生成します。フラッシュメモリ・

1 http://www.pc98.nec.co.jp/Product/mg/lineup.htm
2 「とことん使おう Mobile Gear 」(http://www02.so-net.ne.jp/
˜suzuden/) や「時計じかけ別館 MobileGear 」(http://www.
asahi-net.or.jp/˜bx6y-asi/aki/mg/index.htm) などに詳しい情報があります。
3 http://www02.u-page.so-net.ne.jp/ca2/takemura/1

カードにインストーラをコピーできれば、あとは Mobile

Gear 本体だけあればいいので、手許に Windows 95 のノート PC しかなくても PocketBSD をインストールできます。

UNIX MAGAZINE 1999.6

インストーラでは最小限のファイルしか Mobile Gearにコピーされないので、PocketBSD を使うときに必要なMule や PPP などは pkg add で追加インストールしなければなりません。フラッシュメモリ・カードの一部

どと異なり、PocketBSD ではコンソールに直接日本語を表示できるので扱いも簡単です。

プログラム開発を DOS 領域として残しておき、その領域を使ってノート

PocketBSD では、GCC や Perl などを用いてプログ

PC の CD-ROM からパッケージを PocketBSD に移しラム開発ができるのも嬉しいところです。電車のなかや公てこれらをインストールします。

園などでプログラムをデバッグしたり、思いついたアルゴリズムを実験したりできるのは気持ちがよいものです5 。

おもな用途

ちょっとしたシステムのプロトタイプを作成する場合など、端末シーケンスや curses で作るようにしておけば、文書の作成
PocketBSD でもっとも嬉しいことの 1 つは、デスクトップの UNIX マシンと同じ環境で文章やメールが書ける点です。ふだん、私は Mule と SKK を利用していますが、それ以外の環境では文章をあまり速く書けません。

Windows 95 のノート PC なら Mule for Windows がありますが、Windows CE マシンや PDA では Mule が使えないのが問題でした。Mobile Gear には、もともと``MG エディタ´´というエディタが付属しています。さいわい、MG エディタではキー割当てをカスタマイズできるので、カーソルの右移動に Ctrl-F を割り当てるなどしてなんとか Mule ふうに使っていましたが、文章のカット&ペーストや日本語入力の方式などはまったく異なります
し、複雑な Emacs コマンドはもちろん使えません。そんなわけで、私の場合は Mule を使うときとくらべてどうしても効率が悪くなっていました。しかし、PocketBSD のMule を利用すれば、画面サイズ以外は完全にデスクトップと同じ環境で文章が書けるので、外出中でも、寝ころがりながらでも、快調に書けるようになりました。

PocketBSD では TEX も利用できます。DVI ファイルを PocketBSD 上で閲覧するツールはまだ揃っていませんが、dvi2tty を使っておよその結果を見ることはできます。Mobile Gear 用の dviout4を使うか、Ghostscriptの PocketBSD 用ドライバを作成すれば、プレビューもうまくできるようになるでしょう。

PocketBSD では、普通の FreeBSD と同様に Cannaデモ用マシンとしても使えます。おかげで、UNIX 端末で動くプログラムのデモが気軽にできるようになりました。

通信
外部とデータをやりとりするために、Mobile Gear には PC カードスロット、モデムポート、シリアルポート、赤外線ポートがあります。残念ながら、PocketBSD では

PC カードスロットのフラッシュメモリが外せず、赤外線ポートには現時点では対応していません。通常の通信には、シリアルポートか内蔵モデムを利用します。
モデムやシリアルケーブル経由での接続には、以前はtip や cu 、kermit などのコマンドがよく使われていましたが、最近は PPP による IP 接続が一般的なようです。

PocketBSD では、IIJ-PPP パッケージを用いてプロバイダや別の UNIX システムに比較的簡単に接続できます。

Mobile Gear の内蔵モデムは最大 9,600bps で、PPP接続はあまり快適とはいえません。しかし、シリアルケーブル経由で別の UNIX システム、あるいは MN-128

SOHO や RT50i などのダイヤルアップ・ルータに PPP接続する場合は 38,400bps まで使えるため、通信もかなり快適になります。ただし、数 MB 以上のデータを転送する場合は、シリアル経由よりも PC カードで受渡しをするほうが現実的でしょう。

メールと Web
PPP で接続すれば、電子メールや WWW が利用できるようになります。従来のデスクトップ UNIX マシンのや SKK のような日本語入力システムが使えます。通常のDOS/V マシンに FreeBSD をインストールした場合な
4 http://www.t3.rim.or.jp/˜patakuti/mg/dviout/

UNIX MAGAZINE 1999.6

5 昨年の夏、Windows PC で「海辺でプログラミング」に挑戦したのですが、明るい陽光の下では画面が見えませんし、電池の残量も気になって、とても快適とはいえませんでした。その点、PocketBSD なら大丈夫そうな気がします。

2

図 2 NetFront

ウザで閲覧することもできます。メモや住所録などのデータは、通常の UNIX ファイルとしてデスクトップの場合と同様に管理しておけばいいでしょう。
携帯端末では、辞書機能が必要とされることも多いようです。Mobile Gear は英和辞書や国語辞書を内蔵 ROM内にもっているので、これらを PocketBSD でも使えれば多くは常時 LAN に接続されており、メールの返事を書い便利です。残念ながら、PB インストール・キットで配布さているあいだもネットワークにつながっているのが普通でれているバージョンの PocketBSD では UNIX プログラしたから、メールの送受信時だけネットワークに接続するムから内蔵 ROM の辞書に直接アクセスすることはできといった ``貧乏な使い方´´はあまり想定されていなかったません。しかし、新しいバージョンの PocketBSD ではようです。モバイル環境で UNIX を使うときは、PDAこれができるようになる可能性もあります。現状の Pock-や Windows PC などと同じようにメールの送受信時だ

etBSD でも、ROM 内の辞書をいったん DOS 上で読け接続し、返事を書くあいだはオフラインにしておきたい

み出して PocketBSD のファイルとしてコピーしておけものです。

ば、（そのぶんフラッシュメモリを消費しますが）Mobile

PB インストール・キットでは、オフラインでのメール

Gear の辞書を PocketBSD でも利用できるようになりまの読み書きに popclient と gnspool の利用を推奨していす。このためのツールとして、mgedic8 、dictmg9などがます。popclient はメールサーバーに POP で接続して未開発されています。

読メールを読み出し、指定したファイルに格納します。その後、接続を切って MH の show や comp などでメールほかのシステムとの同期の読み書きをおこない、今度は gnspool を使って SMTPでメールを送るという手順になります。この手法の場合、PDA とデスクトップ PC を併用している場合、データ接続先を複数指定できないといった制約はありますが、との整合性を保つ方法が大きな問題になります。PalmPilot

りあえず使いたいときには設定が簡単で便利です。
6

PB インストール・キットにはアクセス の開発したWeb ブラウザ「 NetFront 」の試用版が付属しています。NetFront はサイズが小さいわりには高性能なブ（図 2 ）
ラウザで、各種の携帯端末で採用されています。

NetFront よりも手軽な Web ブラウザとしては、テキストベースの Lynx や伊藤彰則さんの開発した w3m7などがあります。

や Windows CE などでは、そのための各種のハードウェアやソフトウェアが作られています。しかし、デスクトッ
プ・マシン上のシステムの数× PDA の種類だけ同期/データ変換システムを用意しなければならないのでは大変で「 PDA のす。事実、PDA 関連のメーリングリストでは、○○とソフトウェア△△とを同期させるにはどうすればいいか ? 」といった質問が飛びかっているようです。
一方、デスクトップ・マシンでも PDA でも UNIX を使っていれば、データの整合性を保つのも簡単です。デー

携帯端末としての使用

タの変換は不要なので、ファイルシステムを比較し、両者が同じになるようにするだけです。

前回は UNIX 上での個人情報管理の手法を紹介しまし複数の UNIX システム間でファイルの整合性をとるにたが、同じ方法を PocketBSD に適用すれば PDA のよは、Syncdir10や rsync11など、各種のツールが利用できうな使い方ができます。

ます。rsync は rcp を拡張したもので、ローカルマシン

前回紹介したような方法でスケジュールなどを HTML文書にしておけば、NetFront や w3m などの Web ブラ
6 http://www.access.co.jp/
7 http://ei5nazha.yz.yamagata-u.ac.jp/

3

8 http://www.asahi-net.or.jp/˜km5n-tkhs/
9 http://www.ss.iij4u.or.jp/˜you/pbsd/intro/note09dictmg.html
10 http://www.etl.go.jp/˜tatebe/software/syncdir/
11 http://samba.anu.edu.au/rsync/

UNIX MAGAZINE 1999.6

のファイルとリモートマシンのファイルとを比較し、新し

図 3 8 ド ットフォントを使用した mgterm

く生成されたものだけをコピーするといった指定が可能です。たとえば、PocketBSD の Memo というディレクト
リに下記のような Makefile を置いておき、適宜 make を起動すれば、リモートマシン ``bird´´の同名のデ ィレクトリの内容と整合性を保つことができます。
#
#
#
#
#
#

rsyncでリモート マシンとディレクト リの同期をとる

if(mem == MAP_FAILED) exit(1);-a : (アーカイブ )ファイルの属性を揃える-v : verbose-u : 新しいもののみコピー-z : 転送に圧縮を使うか ?

printf("P2\n640 240\n255\n"); // PGM header
for(y=0;y<240;y++){for(i=0;i<40;i++){for(j=0;j<4;j++){for(b=0;b<4;b++){val = (mem[y*0x100+i*4+j]>>(b*2)) ⇒&0x03;
strcpy(buf+(j*4+b)*4,intensity[val]);}}strcpy(buf+64,"\n");fwrite(buf,1,65,stdout);}}

RSYNC=/usr/local/bin/rsync
REMOTEDIR=bird:/user/masui/DOC/Memo/
EXCLUDE = --exclude RCS \--exclude ’*~’ \--exclude ’\#*’
sync: put get
put:$(RSYNC) -avuz $(EXCLUDE) . $(REMOTEDIR)
get:$(RSYNC) -avuz $(EXCLUDE) $(REMOTEDIR) .

}鈴木康司さんは、この機能を用いて PocketBSD 画面

グラフィックスとウィンドウ
PocketBSD では、mmap() でコンソールをメモリにマップして画面を直接読み書きすることができます。たとえば、下記のようなプログラム12を作れば、PGM 形式で画面のスクリーンダンプが撮れます（誌面の都合上、⇒ で折り返しています）。
#include <stdio.h>#include <sys/mman.h>const unsigned char *intensity[4] ={"240 ","180 ","120 ","0"};char buf[100];main(){char *mem;
int i,j,b,y,val;
mem = mmap(0,0x10000,PROT_READ, ⇒MAP_PRIVATE,0,0);
12 PocketBSD 開発者のたけむらさんがメーリングリストに投稿した記事 (pbsd-dev:01721) (ftp://bronze.is.titech.ac.jp/pub/PocketBSD/ml/pbsd-dev/pbsd-dev.01700.tgz) をもとにしています。

UNIX MAGAZINE 1999.6

上にグラフィックスを表示するためのライブラリ「 MGL 」を開発しています13 。MGL は、直線や矩形などを描画する出力関数とキー入力を取得する入力関数から構成されています。ポインティング・デバイスは利用できないものの、MGL を使えば PocketBSD 上で比較的容易にグラフィカルなアプリケーションが作成できます。

MGL の配布パッケージには、やはり鈴木さんが開発した MGL を利用した端末エミュレータ「 mgterm 」も含まれています。mgterm は、Linux のコンソールで漢字を表示するために使われている VT100 エミュレータ「 kon 」をもとに PocketBSD+MGL 用に開発された端末エミュレータです。8 ドットから 24 ドットまでのいろ
いろな大きさのフォントが表示できます。8 ドットフォン
トであれば、Mobile Gear の小さな画面でもかなりの量の文字を表示することができます（図 3 ）。
「かたむきモバ」のページを運営している古川 陽さんは、MGL をもとにしたウィンドウ・ライブラリ「 MNW 」を配布しています14 。MNW は PocketBSD 上でイベント
13 http://www.kt.rim.or.jp/˜suz/pbsd/
14 http://www.ss.iij4u.or.jp/˜you/pbsd/task/mnwapi.
html4

図 4 スケジュール管理ソフト「タスク」

図 5 MGTreemap

駆動スタイルのウィンドウ・プログラミングを支援する

図 6 mkobo（ MobileGear 版 xkobo ）ためのライブラリで、立体表示文字枠、ボタン、編集枠などのツールが用意されています。古川さんはこのほかにも

Mobile Gear の内蔵辞書を検索する「辞書」やスケジュール管理用の「タスク」（図 4 ）など、MNW を用いた多数のグラフィカル・アプリケーションを公開しています。
佐野さんの開発した X ウィンドウ・システム上で動くディスク使用量の視覚化

MGL 互換ライブラリ15を利用すれば、MGL を用いたPocketBSD では、PC カードのフラッシュメモリをPocketBSD プログラムを普通のデスクトップ・マシンでディスクとして使うため、ディスクの無駄遣いはしたくあ開発できるようになります。アーキテクチャが異なる携帯りません。そこで、MGL を用いてディスクの使用状況をマシンとデスクトップ・マシンで同じプログラムを動かす表示するツール「 MGTreemap 」を作ってみました20 。のには苦労しますが16、UNIX で MGL を使うかぎり、このプログラムで使っている Treemap [2] は、メリーランド大学にいた Brian Johnson 氏らが開発した情報視そのような心配はなくなります。

覚化手法で、大きな階層情報を小さな矩形領域内に表示すその他のユーティリティるものです。ファイルやディレクトリの大きさに応じて矩形を再帰的に縦横に分割していき、図 5 のように、各フ図形エディタ

ァイルの占める大きさが分かるようになっています。図 5Mobile Gear にも図形エデ ィタが付属していますが、PocketBSD 上でも絵を描けるようにしようという試みがは /usr/local 以下のファイルの大きさを mgtreemap コ
マンドで表示したところですが、/usr/local/bin がもっあります。
「機動歯車」のページ を運営している中馬さとも大きな領域を占めており、なかでも mule や nemacs

んは、MGL と MNW を利用した PocketBSD 上のビッが大きな場所をとっていることが一目で分かります。

1718

トマップ・エディタ「うどん」を公開しています 。ポインティング・デバイスが利用できないマシンで図形エディタが実用になるかは難しいところです。数年前、筑波大学の久野 靖さんがキーボードだけで編集操作ができる X 上の図形エディタ「 k2d 」19を提唱していましたが、このような手法を使えば PocketBSD でも無理なく絵が描けるようになるかもしれません。
15 http://www.yk.rim.or.jp/˜yukihiko/pbsd/
16 Windows と UNIX で同じプログラムを利用するには、OpenGL/GLUT 、あるいは Java を使ったりと、いろいろな工夫が必要で困りものです。
17 http://ha3.seikyou.ne.jp/home/Chum/
18 http://ha3.seikyou.ne.jp/home/Chum/devel/myworks.
html
19 キーボードだけを使う kdraw という意味です。

5

ゲーム
PocketBSD では、nethack のような端末ベースのゲームはもちろん、四川省や xkobo（図 6 ）などのグラフィカルなゲームも移植されています21 。

注意点など
PocketBSD にはかなり満足していますが、問題がないわけではありません。以下、思いつくままにいくつか挙げてみます。
20 http://www.csl.sony.co.jp/person/masui/PocketBSD/
mgtreemap.html
21 http://www.asahi-net.or.jp/˜km5n-tkhs/

UNIX MAGAZINE 1999.6

• 通信が遅い

今回の記事は、ほとんど PocketBSD 上の Mule で書本体の処理速度にはそれほど問題を感じませんが、Webきました。キーボードと画面が小さいぶん、書く速度はデページの閲覧やメールの送受信の通信はほかの PDA にスクトップ・マシンの場合とくらべてやや遅くなりますが、くらべてもかなり遅く感じます。

どこにいても慣れた環境で文章を書けるのは嬉しいかぎり• 電池の持続時間です。

おそらく省電力の工夫がされていないためか、DOS 版

PocketBSD を利用し始めるまで、本当に使いものになの Mobile Gear にくらべて電池がかなり速く減ってるのかなとか、軽いノート PC のほうがいいのではと思っいきます。通常の単 3 電池が使えるので気分的には安ていましたが、実際に手にしてみると電池や振動を気にし心ですが、携帯端末なのに電池の残量を気にしなければながらノート PC を持ち歩くのにくらべると圧倒的に気ならないのはちょっと残念です。いまのところはニッケ楽です。機能の面ではギガバイト級のハードディスクと大ル水素電池を本体でちょくちょく充電しながら利用してきなカラー液晶画面をもつノート PC のほうがはるかに有いますが、長時間、屋外で使うようなときは電池を別途利ですし、大きさも極端に違うわけではありません。しか用意しなければならないかもしれません。

し、ディスクを内蔵せず単 3 電池で動く点は精神的にも• レジューム時のハングアップ

楽な気がします。ノート PC を自転車のカゴに放り込んスリープ状態からレジュームするとき、フラッシュメで移動するのは度胸が要りますが、PocketBSD ならば大モリの立ち上がりが遅いせいか、ときどきキーを受け付丈夫そうです。現在のノート PC の多くは、明るい場所けなくなることがあります。電源キーを押してレジューでカラー液晶画面が見にくいのですが、その点、Mobileムしたあと、時間をおいて操作すれば大丈夫かもしれま

Gear の反射型液晶なら大丈夫です。野山に出て、思うぞせん。

んぶん文章を書いたりプログラムを作ったりすることもで• PPP の相性きるでしょう。私の場合、動画を見たりプレゼンテーショ

PocketBSD をほかのマシンに PPP 接続しようとしたン資料を作ったりグラフィカルなプログラムを開発する場

ところ、シリアルによる通信がオーバーフローしてうま合を除けば、ほとんどの仕事は PocketBSD で十分なのくいかない場合がありました。

で、短期間の出張や外出には手放せないものになりそうで• 立って使うときのキー入力

す。ポケットボード並みに流行してほしいものです。

Mobile Gear のキーボードは PDA としては大きいの

日本電気は DOS 版の Mobile Gear の生産を続けるそで、机などの上に置いて使う場合はいいとしても、電車うですし、Windows CE 版の Mobile Gear に UNIX をのなかなどで立っているときにはややおっくうです。と移植しようとしている人もいるようです。携帯端末の OS

くに Mule などを利用する場合、立ったまま Ctrl キーとしての UNIX の今後に期待したいところです。
（ますい・としゆき ソニー CSL ）と別のキーを押したりするのはかなり困難です。片手でも使えるような操作体系を考える必要があるかもしれません。

おわりにまだ新しいシステムのせいか、上記のような問題は残っていますが、UNIX が PDA で使える PocketBSD は[参考文献][1] 榊 隆『いつでもどこでも UNIX! PocketBSD インストールキット』、アスキー、1999 年[2] Brian Johnson and Ben Shneiderman, Treemaps: A
space-filling approach to the visualization of hierarchical information structures, Proceedings of the
2nd International IEEE Visualization Conference,
pp.284–291, San Diego, October 1991

たいへん魅力的です。現在、PDA の OS の主導権を握るために各社が熾烈な競争を繰りひろげています。私としては、ぜひとも UNIX に PDA 用 OS の本命になってもらいたいと思っています。

UNIX MAGAZINE 1999.6

6