最終更新: 1999.11.6
UNIXの使用経験のあるユーザー向けに、 UNIXとBeOSの類似点や相違点、UNIX的なカスタマイズ法などを解説します。 対象はBeOS R4/4.5.x(主にx86版)です。
独自のウィンドウシステム(GUI)と、UNIX風のコマンドライン(CUI)を備えています。 ただしCUIだけでシステムを起動することはできません。
シングルユーザーです。 ただし将来のマルチユーザー化への考慮がされています。
ユーザーインタフェースやファイルシステムはMacOS、UNIX、AmigaOSなどの影響を受けています。 x86版の起動のメカニズムはLinuxを参考にしています。
ファイルシステムはBFS(Be File System)、 HFS(MacOS Hierarchical File System)、CDFS(ISO 9660およびRockRidge)、 VFAT16/32がサポートされています。
BFSはBeOS独自の64ビットファイルシステムです。 他の一般的なファイルシステムと同じく、 サブディレクトリによる階層構造になっています。 また、UNIXファイルシステムのように、ファイルごとのパーミッションの情報をもっています (ただしBeOSは現在シングルユーザーなので所有者パーミッションしか意味がありません)。 シンボリックリンクをサポートしています。ハードリンクはありません。 ファイル名はUTF-8です。大文字と小文字は区別され、空白や記号も使えます。 UNIXファイルシステムにない機能として、 ファイルの属性情報や、 属性をキーとする簡易データベース機能があります。 また、ジャーナル化されており、障害に強くなっています。
属性とは、ファイルの付加情報で、属性名と属性値のペアを任意の数だけ保持できます。 属性名は任意で、属性値には型があります。 いくつかの代表的な属性名はシステムによって定義されています。
BEOS:TYPE MIMEファイルタイプ BEOS:APP_SIG アプリケーション署名 BEOS:APP_FLAGS アプリケーションフラグ BEOS:APP_VERSION アプリケーションバージョン BEOS:PREF_APP 優先アプリケーション BEOS:FILE_TYPES サポートファイルタイプ BEOS:M:STD_ICON 小アイコン BEOS:L:STD_ICON 大アイコン _trk/* Trackerの表示の設定
また、アプリケーションによっては属性を独自に活用しているものがあります。 たとえば、NetPositiveのブックマークは、 各エントリがそれぞれ1つのファイルに対応しますが、 URLやタイトルは属性として記録され、ファイル自体は空です。
ファイルのコピーや保存の際に属性を保存するにはzipやTrackerなどを使います。 cpやtarやgzip、パーティション越しのmvなどを使うと属性情報が失われるので注意が必要です。 また、BeOS用のzipアーカイブを他のOSで展開した場合にも属性は失われます。
BeOSのファイルシステムは、 BFSのようにディスク上に記録される永続的なファイルシステムの他に、 メモリ上にだけ展開されるものもあり、仮想ファイルシステムと呼ばれます。 ルートファイルシステム(rootfs)、デバイスファイルシステム(devfs)、 パイプファイルシステム(pipefs)、PnPファイルシステム(pnpfs、R3.xのみ)があります。
仮想ファイルシステムには、通常のファイルを作ることはできません。 ディレクトリやシンボリックリンクは作れますが、 再起動すると消えてしまいます。 また、仮想ファイルシステムはTrackerでは見えません。
rootfsは、マウントポイントやショートカットとして使われます。 Trackerでrootfsを見ようとすると、 マウントポイントだけが含まれたDisksフォルダとして表示されます。 その際、起動パーティションはボリューム名で表されます。
devfsは、システムに存在するデバイスに対応するデバイスファイルが起動時に自動的に作成されます。 似たような仕組みはFreeBSDやLinuxでも導入されつつあります。
pipefsはPOSIXのパイプの実装に使われているそうです。 pnpfsはR3.xでISA PnPデバイスの情報を取得するために用意されたもののようですが、 R4ではコンフィギュレーションマネージャーが整備されて不要になったのでなくなりました。
ディレクトリ構造は独自ですが、UNIXとの互換性などを考慮して一部UNIX風になっているところがあります。
ルートディレクトリの内容は以下のようになっています。 起動パーティションのボリューム名をBeOSとします。
/ ルートファイルシステム(rootfs) /boot 起動パーティション(BFS、ボリューム"BeOS") /dev デバイスファイルシステム(devfs) /pipe パイプファイルシステム(pipefs) /pnp PnPファイルシステム(pnpfs、R3.x) /BeOS → 起動パーティション(/boot)へのシンボリックリンク /bin → /boot/beos/binへのシンボリックリンク /etc → /boot/beos/etcへのシンボリックリンク /var → /boot/varへのシンボリックリンク /tmp → /boot/var/tmpへのシンボリックリンク /system → /boot/beos/systemへのシンボリックリンク
起動パーティションは/bootにマウントされ、 ボリューム名でシンボリックリンクが作られます。 他のパーティション(あれば)はボリューム名でマウントされます。
実際にファイルがある/boot下は下記のようになっています。
/boot/beos/apps GUIアプリケーション /boot/beos/bin 外部コマンド /boot/beos/documentation マニュアル類 /boot/beos/etc 設定ファイル、フォントなど /boot/beos/preferences 各種設定用GUIツール /boot/beos/system カーネル、サーバー、共有ライブラリ、アドオン /boot/apps /boot/beos/appsへのシンボリックリンク /boot/apps/Metrowerks BeIDE、CodeWarrior(R3.x) /boot/demos デモアプリケーション /boot/develop ヘッダファイル、ライブラリ、g++(R4.x) /boot/home ホームディレクトリ /boot/optional 実験的ドライバ、デモ用画像・音声ファイル、サンプルコードなど /boot/preferences /boot/beos/preferencesへのシンボリックリンク /boot/var ログファイル、スワップファイル、テンポラリファイル
/boot/varディレクトリは、Trackerでは表示されません。 スワップファイルは/boot/var/swapです。 /boot/var/tmpの内容は起動時に消去されますが、 .noeraseというファイルを置いておくと消去されません。
カーネルはUNIXでは通常ルートディレクトリにありますが、 BeOSでは/boot/beos/system/kernel_intelにあります。 なお、/boot/beos/system/zbeosというファイルがありますが、 R4ではこれをddでフロッピーの先頭から書き込むとインストールフロッピーと同じものができます。 R4.5.xではこのファイルは縮小されてローダーのみになっており、 フロッピーに書き込んでもインストールフロッピーにはなりません (ブートマネージャーが破損したときの緊急用起動フロッピーにはなります)。
/boot/beos/system/bootには、OSのインストールや起動をつかさどるシェルスクリプトがあります。 大変興味深いのでぜひ読むとよいでしょう。
なおこれ以降、/boot下のパス名は、 原則としてシンボリックリンクを利用した短いパス名で表記します(/etc、/systemなど)。
ホームディレクトリは/boot/homeです。以下~で表します。 インストール直後は以下のようなサブディレクトリがあります。
~/Desktop ~/SampleMedia ~/config
~/configは各種のカスタマイズに使われる非常に重要なディレクトリです。 カスタマイズについては後述します。
デフォルトでは/system/boot/SetupEnvironmentで以下のように設定されます。
. /boot/home/config/bin /bin /boot/apps /boot/preferences /boot/apps/Metrowerks/tools (R3.x) /boot/develop/tools/gnupro/bin (R4.x) /boot/beos/apps /boot/beos/preferences
/boot/appsと/boot/preferencesの内容のほとんどは、 /boot/beos/appsと/boot/beos/preferencesのファイルへのシンボリックリンクなので、 両方にパスを通す必要は必ずしもありません。
ボリューム(HDDパーティションやCD-ROM)はマウントしなければアクセスできません。 マウント/アンマウントは2通りの方法があります。
この方が簡単でわかりやすいのでお勧めです。 マウントポイントは、ルートディレクトリ直下に、 ボリューム名と同じサブディレクトリが自動的に作られます。 また、Disksフォルダやデスクトップにもボリュームが現れます。 アンマウントするとマウントポイントは消えます。
デバイスファイル名(後述)を指定する必要があるのでやや繁雑です。 マウントポイントは既存の任意のディレクトリが選べます。 ファイルシステムの種類は、bfs・hfs・iso9660・dosです。 マウントすると、ルートディレクトリにボリューム名でサブディレクトリが作られ、 ごみ箱ディレクトリ(BFSではTrash、FATではRECYCLED)ができます。 Trackerで見ると、マウントポイントはボリューム名として見えます。 また、Disksフォルダやデスクトップにもボリュームが現れます。
アンマウントは、MacOS風に、ボリュームアイコンをごみ箱(Trash)にドラッグ&ドロップしてもできます。
マウントを自動化することもできます。 デスクトップの何もないところで右クリックし、Mount | Settings...を選びます。 すると、自動マウント(Automatic Disk Mounting)の設定と、 起動時マウント(Disk Mouinting During Boot)の設定ができます。 自動マウントを"All Disks"にしておくと、 CD-ROMの出し入れの際に自動でマウント/アンマウントしてくれるので便利です。 ただし出すときにアンマウントしそこねることがありますので、 アンマウントはごみ箱を使ったほうが安全です。
なお、FATフォーマットのフロッピーをmtoolsで使うことができます。 この場合マウントの必要はありません。
デバイスファイルはサブディレクトリにより分類されています。 キャラクタデバイスとブロックデバイスの区別はありません。 以下にR4.xの例を示します。
/dev/disk/floppy/raw フロッピー /dev/disk/ide/ata/0/master/0/0_0 ATA HDD /dev/disk/ide/atapi/0/slave/0/raw ATAPI CD-ROM /dev/input/keyboard/at/0 AT(PS/2)キーボード /dev/input/mouse/ps2/0 PS/2マウス /dev/ports/serial1 シリアル(COM1) /dev/pt/?? pty /dev/tt/?? tty /dev/net/ether Ethernet(ISA NE2000)
UNIXと互換なデバイスファイル名としては、/dev/nullと/dev/zeroがあります。 /dev/ttyはありません。
BeOSではプロセスのことをチーム(team)といいます。 UNIXではプロセスが基本で、スレッドは後から導入された機能ですが、 BeOSは全面的にマルチスレッド化されているので、 スレッドが主体でチームはその集まりといったイメージがあります。 psコマンドでも各チームのスレッドの状態が表示され、 killコマンドの引数もチームIDではなくスレッドIDです。 チーム単位での情報を得たい場合はrosterコマンドがいいでしょう。 なお、GUIアプリケーション(Deskbarに現れるアプリケーション)を殺すには、 Vulcan Death Gripと呼ばれる方法(右Ctrl+Alt+Shiftを押しながらDeskbarの当該アプリを左クリック)が簡単です。 また、R4.5.xでは、WindowsのようにCtrl+Alt+Deleteでアプリの一覧を出して殺すこともできるようになりました (R4でCtrl+Alt+Deleteを押すと即座にシャットダウンしますので注意)。
TCP/IP(EthernetおよびPPP)とAppleTalkをサポートしています。 IP forwardingにより簡易ルーターとしても機能します(ただしNATは標準ではありません)。 R4.xではDHCPを正式サポートしています。 アプリケーションレベルでは、FTPクライアント/サーバー、 TELNETクライアント/サーバー、WWWブラウザ(NetPositive)/簡易サーバー(PoorMan)、 SMTP/POPメールクライアント(BeMail/E-Mail)が提供されます。 NFSは、BeWareでクライアントが提供されています(PowerPC用のサーバーもあります)。 SMB(マイクロソフトネットワーク)は、R4.5.xでクライアント(World O' Networking、WON)とサーバー(samba)が実験的に提供されています。 WONはそれなりに動きますが、sambaはまだ動作に問題があります。
文字端末関係の機能は、BSDのtermcapとPOSIXのtermiosをベースに、 UNIXに近いものが提供されています。 端末エミュレータTerminalはANSI端末と同等の機能を持ち、 /etc/termcapにbetermというエントリを持っています。 gettyがあり、シリアル端末からログインすることもできます。 cursesは標準ではありません。
UNIXではASCIIをベースにISO 8859・EUC・シフトJISなどがサポートされるのが普通ですが、 BeOSではカーネル内部からすべてUnicode(UTF-8)ベースになっています。 なおテキストファイルの改行コードはUNIX風のLFです。
NetPositiveは日本語(自動判別・シフトJIS・EUC)をサポートしています。 Terminalは日本語をサポートしていませんので、 標準ではコマンドラインやCUI(端末)アプリケーションで日本語を使うことはできません。 MuTerminalでは日本語を使うことができます。
テキストファイルの文字コードを変換するため、xtouコマンドが提供されています。 これは、UTF-8とJIS・EUC・シフトJIS・ISO 8859などとの相互変換を行います。
マニュアル・ドキュメントの類は/boot/beos/documentationにHTMLでおいてあります。Webにもあります。
UNIXのmanコマンドおよびmanページにあたるものはありませんが、 /boot/beos/documentation/Shell Toolsにmanページ風のコマンドマニュアルがHTML形式であります。 ただしここにあるのはごく一部のコマンドで、特にBeOS固有のコマンドはまったくありません。
なお、BeOSでは、GUIアプリについても一般にヘルプはありません。
PowerPC版では、MetrowerksのCodeWarriorが付属しています。 x86版R3.xにもCodeWarriorが付属していましたが、 CodeWarriorのx86最適化が弱いという理由で、 R4からは付属の開発環境がg++(egcs)になりました。 いずれも、統合環境(BeIDE)とコマンドラインの両方で使えます。 なお、x86版では開発環境の変更に伴ってバイナリの形式もPE(COFF)からELFに変更されたため、 R3.xとR4.xではバイナリ互換性はありません。
x86とPowerPCの間のクロス開発については、 R4.5でクロス開発ツール(x86で動きPowerPCバイナリを出力するCodeWarriorと、 PowerPCで動きx86バイナリを出力するg++)が提供されています。 ただし、ソースレベルの互換性を維持するには、 バイトオーダーやアラインメントに注意するのはもちろんですが、 両プラットフォームでコンパイラが異なることから、 ヘッダファイルやライブラリの相違にも注意が必要です。
C++による独自のフレームワーク型APIの他に、 UNIXと互換なAPIとしてPOSIX.1、 BSDソケット(インターネットドメインのみ)、termcapライブラリなどを提供しています。 これらを含むライブラリはlibroot.so、libnet.so、libtermcap.soです。
標準のコマンドシェルはbashです。ただしジョブ制御はできません。 外部コマンドとして、UNIX風の主要コマンドや、各種コマンドラインツールが提供されています。
[, awk, basename, bc, cal, cat, chgrp, chmod, chown, cksum, clear, cmp, comm, compress, cp, cut, date, dc, dd, df, diff, diff3, dirname, du, echo, egrep, env, expand, expr, false, fgrep, find, finger, fmt, fold, fortune, ftp, ftpd, getty, grep, groups, head, id, install, join, kill, ln, logger, login, logname, ls, mail, merge, mkdir, more, mount, mv, netstat, nl, od, paste, ping, pr, printenv, ps, pwd, rm, rmdir, sed, sh, shar, shutdown, sleep, sort, split, strings, stty, sum, sync, tail, tar, tee, telnet, telnetd, test, touch, tput, tr, true, tty, uname, unexpand, uniq, uudecode, uuencode, vi, view, wc, xargs, yes
以下のコマンドは注意が必要です。
BeOS ホスト名 4.0 1000009 BePC
以下の外部コマンドはありません。
arp, biff, catman, cc, chfn, chsh, cpio, cpp, crontab, csh, cu, dmesg, dump, ed, ex, file, from, fsck, halt, hostname, ifconfig, inetd, killall, last, lastcomm, ldconfig, limits, lint, lp, lpq, lpr, lprm, man, mesg, mkfifo, mknod, mt, nice, nohup, nroff, nslookup, passwd, perl, r系コマンド, reboot, renice, restore, route, script, sendmail, su, talk, time, tip, traceroute, troff, tset, uncompress, uptime, users, vipw, w, who, whoami, write
bison, csplit, ctags, flex, flex++, gawk, gunzip, gzexe, gzip, igawk, locate, m4, make, md5sum, pathchk, sdiff, tac, updatedb, vdir, zcat, zcmp, zdiff, zforce, zgrep, zmore, znew
--helpでヘルプが得られます。 ソースはCD-ROMの/BeOS_Tools/GNUにあります(R4.5.xの場合)。
addr2line, ar, as, c++, c++filt, cpp, g++, gasp, gcc, gcov, gperf, ld, nm, objcopy, objdump, protoize, ranlib, readelf, size, strings, strip, unprotoize
ci, co, ident, rcs, rcsclean, rcsdiff, rcsmerge, rlog
mattrib, mcd, mcopy, mdel, mdir, mformat, mkmanifest, mlabel, mmd, mrd, mread, mren, mtype, mwrite
a2ps, funzip, less, lesskey, printf, top, unshar, unzip, unzipsfx, vim, zipgrep, zipinfo
BeOS固有のコマンドには以下のようなものがあります。
alert, beep, chop, craw, eject, feedback, ffm, hd, print, screentoppm, sysinfo, translate, unchop, xtou
bootman, clockconfig, disktest, dumppt, fsh, installbootsector, iroster, isvolume, keymap, makebootable, mkbfs, mkdos, mountvolume, poke, prio, rescan, safemode, unmount, writembr
ali, dhcp_client, mail_parser
listarea, listport, listsem, release, roster, waitfor
addattr, catattr, copyattr, copyres, listattr, listres, lsindex, mimeset, mkindex, query, rmattr, rmindex, settype, setversion, stripres, updatetype, xres
parrot, pc, play, ve
asdbg, db, debug_glue, listimage, mwbres, profile
また、GUIアプリケーションやサーバーについても、コマンドラインから起動することができます。 とくに、Tracker(/system/Tracker)にディレクトリ名やファイル名を与えて起動すると、 ディレクトリの内容を表示したり、ファイルに関連づけられたアプリケーションを起動したりできます (WindowsのSTARTコマンドと似ています)。
~/config下にはサブディレクトリがあり、カスタマイズ項目の分類の役割を果たしています。 その多くは、システムディレクトリである/system(/boot/beos/system)や/etc(/boot/beos/etc)のサブディレクトリと対応しています。 カスタマイズの際は、これらシステムディレクトリを変更するのではなく、 ~/config下を変更することが推奨されています。
~/config/add-onsのサブディレクトリにコピーします。 通常、コピーしただけですぐに有効になります。 /system/add-onsに対応しています。
~/config/binにコピーします。 /binに対応しています。
Trackerの"Be"ボタンを押したときに出てくるメニューをカスタマイズするには、 ~/config/beにファイル・ディレクトリ・シンボリックリンクなどを作ります。 標準では、/boot/apps、/boot/demos、/boot/preferencesへのシンボリックリンクがあります。
~/Desktopにファイル・ディレクトリ・シンボリックリンクなどを作ります。 標準では、/boot/homeとWelcome_To_BeOS.htmlへのシンボリックリンクやTrashがあります。 なお、Disksアイコンあるいはドライブアイコンはこの内容には関係なく現れます。
いくつかのシェルスクリプトが用意されています。
なお、後の2つは、正規のシャットダウン手順 (DeskbarからRestartまたはShut Downを選ぶか、 shutdownコマンドを実行)の場合のみ実行されます。 Ctrl+Alt+Deleteによる強制シャットダウンでは実行されません。
TrueTypeフォントを~/config/fonts/ttfontsにコピーし、 preferences | FontsでRescan Foldersを実行します。 /etc/fonts/ttfontsに対応しています。
~/config/libにコピーします。 /system/libや/boot/develop/lib/x86に対応しています。 ただしここはリンカの検索パスには入っていませんので、 -L$(HOME)/config/libを指定する必要があります。
~/config/soundsにコピーし、preferences | Soundsで割り当てます。 /etc/soundsに対応しています。
preferences | Keymapでキーマップを定義し、ファイルにセーブします。 そのファイルを~/config/settings/Keymapにコピーすると、 次からKeymapでユーザー定義キーマップとして選択肢に現れます。 /etc/Keymapに対応しています。 なお、キーマップの定義・保存には、keymapコマンドを使うこともできます。 こちらはテキスト形式の定義ファイルを使います。
hostsファイルを使う場合は、/etc/hostsに置きます。 ~/config/etc/hostsに置いても有効になりません。 他に/etc/servicesや/etc/termcapなどもありますが、 これらは通常変更する必要はないでしょう。
PPPで使うモデム初期化コマンドは、/etc/modems.pppに記述されています。 チャットスクリプトは/etc/servers.pppに記述されています。 必要に応じて編集します(chmod +wする必要があります)。 PPPの接続先ごとの設定は、~/config/settings/pppの下に保存されますが、 パスワードを保存した場合、暗号化されておらず簡単に読めてしまうので一応注意しましょう。 なお、PPPの接続時および切断時に、~/config/etc/ppp-scriptが実行されます。
~/config/settingsには、 preferencesの各種設定や、アプリケーション(NetPositive、Terminal、BeIDEなど)の設定、 フォントキャッシュ、ユーザー辞書(R4.x)などが保存されます。 形式はさまざまで、バイナリファイルのもの、テキストファイルのもの、 サブディレクトリを持つもの、ファイル属性を活用しているもの、 ファイルが存在するだけで意味を持つもの(stop_*_nagging)などがあります。
ネットワークの設定は、複数のプロファイルを名前つきで保存できるようになっていますが、気をつけないと間違いやすいので注意が必要です。 現在の設定をセーブすると暗黙のデフォルトプロファイルとなるわけですが、 他のプロファイルをロード(Restore)すると、その内容は即座にデフォルトプロファイルにセーブされます。 また、LANとPPPを併用する場合、PPPのモデムの設定も現在のネットワーク設定の一部として密かに記録されますので、 プロファイルを切り替えたらモデムの設定が消えていた、といったようなことが起こり得ます。 ネットワークの設定は~/config/settings/network*に記録されていますが、 幸いにテキストファイルなので、場合によっては直接編集も辞さぬ覚悟で臨みましょう。
ヘッダファイルやライブラリは、UNIXと違い、 /boot/develop/headers/posixや/boot/develop/lib/x86といった階層の深いディレクトリにあります。 これらを、UNIX風に/usr/includeや/usr/libで参照できるようにするには、 次のようにするとよいでしょう。
$ mkdir /boot/usr $ cd /boot/usr $ ln -s /boot/develop/headers/posix include $ ln -s /boot/develop/headers/x86/lib lib $ ln -s /boot/var/tmp tmp
ln -s /boot/usr /usr
前述のように、rootfsの内容は保存されないので、 シンボリックリンク/usrはUserBootscriptで毎回作る必要があります。
本家のFAQも参考にしてください。
UNIX風のシェル・コマンド・端末制御・APIを備えてはいますが、 決してUNIX(クローン)ではありません。 新規に設計・実装されたマイクロカーネルOSです。
断然役に立ちます。
X11R6.4の移植があります。 一応動作しますが、描画はかなり遅いです。
R4.5ではオプションパッケージの中にGNU Emacs 19.34が入っており、 アーカイブを展開するだけで利用可能です。 日本語が使えるものとしては、20.3の移植があります。 まだGUIは移植されていないため、端末エミュレータ上またはリモートログイン(TELNET・シリアル端末)で使うことになります。 日本語を使うには、MuTerminalまたは日本語を扱えるリモート端末が必要です。
GeekGadgetsプロジェクトで移植が行われており、多くのツールが利用可能です。
BeZillaプロジェクトで移植が行われています。
標準ではbashしか用意されていないので、まずシェルを用意する必要があります (tcshなど)。
Terminalの引数がシェル(およびシェルへの引数)として使われます。 .profileから起動するのも手でしょう。 UserSetupEnvironment.sampleには$SHELLの設定例がありますが、 これを設定してもデフォルトのシェルは変わらないようです。 なお、Terminalに-t タイトルをつけて起動するとタイトルを設定できます。
MuTerminalでは、設定でシェルを指定することができます。
標準で提供されているものはsyslogdがあります。 /var/log/syslogにログをとります。
Xを使用しない端末型アプリケーションやサーバー(デーモン)の移植は比較的容易です。 以下のような点に注意が必要です。
ar q /boot/develop/lib/x86/libm.a
稿末のリンク集も参考にしてください。
できません。
Japhar、 Guavac、 BeKaffe/Jikesなどの移植が進行中です。
技術的には可能です。標準のウィンドウマネージャであるTrackerも、 /system/boot/Bootscriptで起動されるユーザープロセスにすぎません。
R4.xでは、Trackerのウィンドウの外見を他のOS風に変えることができます。 左Ctrl+Alt+Shiftを押しながらDeskbarの"Be"ボタンを押すと、 Window Decorというメニュー項目があります。 その中から、BeOS・AmigaOS・MacOS 8・Windows 95/98のいずれかを選ぶと、 ウィンドウの外見が変化します。 またそれに伴って、ウィンドウの最大化・最小化・クローズ・移動・リサイズなどの操作法が変わります。 Terminalの幅を80桁に保ったまま高さだけを変更したい場合などは、 Windows風がおすすめです。
R4以降、preferences | Keymapで日本語キーボード(Japanese)がちゃんとサポートされていますので、 簡単に使うことができます。 ただし、R4.5.xではバグがあり、ATおよびPS/2キーボードではアンダースコアキーが、 USBキーボードでは日本語キーボード固有のキーがまったく使えません。 これについては、キーボードドライバにパッチをあてることで解決できます。
キー配列の細かいカスタマイズは、 keymap -dでキーマップ定義ファイルをダンプし、書き換えた後、 keymap -lでロードします。 R4.xでは一度ロードすれば再起動しても有効です。
左CtrlとCapsLockの交換は、はじめの方の
CapsLock = 0x3b LControl = 0x5c
という2行の右辺を交換します。
Escと[`~](日本語キーボードでは[半角/全角]、以下同じ)の交換は、
Key 0x01 = 0x1b … Key 0x11 = ' ' …
という2行の右辺(あるいは左辺)を交換します。 ただし、Escと[`~]を入れ換えると、GUIの操作において、 これらのキーを使う操作ができなくなったり、 入れ換えが有効にならない場合があります。
なお、日本語キーボードの場合は、以下のような問題がありますので、これもついでに対処しておきます。
Key 0x1d = '^' …
という行の右辺の0xaf(2か所)を'~'または0x7eに変更します。
Key 0x1c = '-' …
という行の右辺の'_'を'='に変更します。 ただし、R4.5.xでは、アンダースコアキーが効かないため、 これを行うとアンダースコアを入力する手段がなくなります。 あらかじめパッチをあてておきましょう。
マスターフロッピーを入れて
$ dd if=/dev/disk/floppy/raw of=boot.flp
ブランクフロッピーに入れ換えて
$ dd if=boot.flp of=/dev/disk/floppy/raw
とします。
あるいは、R4では、ブランクフロッピーを入れて
$ dd if=/system/zbeos of=/dev/disk/floppy/raw
R4.5では、インストールCDのISO 9660トラック(BeOS_Tools)をマウントし、 ブランクフロッピーを入れて
$ dd if=/BeOS_Tools/zbeos of=/dev/disk/floppy/raw
とします。
インストールフロッピーが壊れてしまって、かつBeOSも起動できない場合は、 フロッピーイメージをddやRAWRITEでフロッピーに書き込みます。 R4用と R4.5.2用はBeのFTPサイトに、 R4.5用はインストールCDの/zbeosにあります。 BeのWWWで詳しい手順を紹介しています。
読めます。ただし、ハイブリッドCD-ROM(MacOS HFSとISO 9660)については、 HFSが優先されます。 なお、RockRidgeでないISO 9660のCD-ROMをマウントすると、 UNIXではファイル名が小文字になるものがありますが、 BeOSでは大文字になりますので注意が必要です。
用途にもよりますが、一般的にはならないでしょう。 おおざっぱに例えるなら、「NT(+Cygwin)がUNIXの代替になるか?」というのと似たりよったりでしょう。 とくにサーバー用途には向きません。 OS自身の基本設計や潜在能力はUNIXにひけをとるものではありませんが、 現状ではBeOSはあくまでクライアント向けOSです。
とりあえずBeOS固有のものだけです。 (*)は特に有用なもの、(!)は注意が必要なものです。
Copyright (C) 1999 ITO Takayuki, All rights reserved.