UNIXユーザーのためのBeOS

最終更新: 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通りの方法があります。

アンマウントは、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/termcapbetermというエントリを持っています。 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++)が提供されています。 ただし、ソースレベルの互換性を維持するには、 バイトオーダーやアラインメントに注意するのはもちろんですが、 両プラットフォームでコンパイラが異なることから、 ヘッダファイルやライブラリの相違にも注意が必要です。

API(システムコール)

C++による独自のフレームワーク型APIの他に、 UNIXと互換なAPIとしてPOSIX.1、 BSDソケット(インターネットドメインのみ)、termcapライブラリなどを提供しています。 これらを含むライブラリはlibroot.solibnet.solibtermcap.soです。


コマンドライン

標準のコマンドシェルはbashです。ただしジョブ制御はできません。 外部コマンドとして、UNIX風の主要コマンドや、各種コマンドラインツールが提供されています。

BeOS固有のコマンドには以下のようなものがあります。

また、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に対応しています。

"Be"メニューのカスタマイズ

Trackerの"Be"ボタンを押したときに出てくるメニューをカスタマイズするには、 ~/config/beにファイル・ディレクトリ・シンボリックリンクなどを作ります。 標準では、/boot/apps/boot/demos/boot/preferencesへのシンボリックリンクがあります。

デスクトップのアイテムのカスタマイズ

~/Desktopにファイル・ディレクトリ・シンボリックリンクなどを作ります。 標準では、/boot/homeWelcome_To_BeOS.htmlへのシンボリックリンクやTrashがあります。 なお、Disksアイコンあるいはドライブアイコンはこの内容には関係なく現れます。

シェルの設定・アプリケーションの自動実行など

いくつかのシェルスクリプトが用意されています。

~/.profile
シェル変数やエイリアスの設定など、 各シェルごとに実行する必要のあるカスタマイズを記述します。 /etc/profileに対応しています。
~/config/boot/UserBootscript
サーバー(デーモン)やアプリケーションの自動実行を記述します。 /system/boot/Bootscriptから呼ばれます。
~/config/boot/UserSetupEnvironment
環境変数の設定をします。 /system/boot/SetupEnvironmentから呼ばれます。
~/config/boot/UserShutdownScript(R4.x)
システムのシャットダウンまたは再起動を選択した直後に実行されます。 動作中のサーバーやアプリケーションを行儀良く終了させることなどに利用できます。 また、BeOSではシャットダウンは問答無用に行われるので、 シャットダウンの確認をとるようにするのもよいでしょう。 返り値として0以外を返せば、シャットダウンを取り消すことができます。 /system/boot/ShutdownScriptから呼ばれます。
~/config/boot/UserShutdownFinishScript(R4.x)
システムのシャットダウン完了(または再起動)直前に実行されます。 この段階では、動作中のアプリケーションはすべて終了させられており、 OSの機能も最低限しか動いていません。 /system/boot/ShutdownFinishScriptから呼ばれます。

なお、後の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を指定する必要があります。

イベントサウンドの追加(R4.x)

~/config/soundsにコピーし、preferences | Soundsで割り当てます。 /etc/soundsに対応しています。

キーマップの追加

preferences | Keymapでキーマップを定義し、ファイルにセーブします。 そのファイルを~/config/settings/Keymapにコピーすると、 次からKeymapでユーザー定義キーマップとして選択肢に現れます。 /etc/Keymapに対応しています。 なお、キーマップの定義・保存には、keymapコマンドを使うこともできます。 こちらはテキスト形式の定義ファイルを使います。

hostsファイルなど

hostsファイルを使う場合は、/etc/hostsに置きます。 ~/config/etc/hostsに置いても有効になりません。 他に/etc/services/etc/termcapなどもありますが、 これらは通常変更する必要はないでしょう。

PPPの設定

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風ディレクトリ構造

ヘッダファイルやライブラリは、UNIXと違い、 /boot/develop/headers/posix/boot/develop/lib/x86といった階層の深いディレクトリにあります。 これらを、UNIX風に/usr/include/usr/libで参照できるようにするには、 次のようにするとよいでしょう。

  1. /boot下にディレクトリ構造を作ります。
    $ 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
    
  2. ~/config/boot/UserBootscriptに以下のように書きます。
    ln -s /boot/usr /usr
    

前述のように、rootfsの内容は保存されないので、 シンボリックリンク/usrUserBootscriptで毎回作る必要があります。


FAQ

本家のFAQも参考にしてください。

BeOSはUNIXですか?

UNIX風のシェル・コマンド・端末制御・APIを備えてはいますが、 決してUNIX(クローン)ではありません。 新規に設計・実装されたマイクロカーネルOSです。

UNIXの知識は役に立ちますか?

断然役に立ちます。

Xサーバーはありますか?

X11R6.4の移植があります。 一応動作しますが、描画はかなり遅いです。

Emacsは使えますか?

R4.5ではオプションパッケージの中にGNU Emacs 19.34が入っており、 アーカイブを展開するだけで利用可能です。 日本語が使えるものとしては、20.3の移植があります。 まだGUIは移植されていないため、端末エミュレータ上またはリモートログイン(TELNET・シリアル端末)で使うことになります。 日本語を使うには、MuTerminalまたは日本語を扱えるリモート端末が必要です。

GNUのツールは使えますか?

GeekGadgetsプロジェクトで移植が行われており、多くのツールが利用可能です。

Netscape Navigatorは使えますか?

BeZillaプロジェクトで移植が行われています。

シェルはbash以外に変更できますか?

標準ではbashしか用意されていないので、まずシェルを用意する必要があります (tcshなど)。

Terminalの引数がシェル(およびシェルへの引数)として使われます。 .profileから起動するのも手でしょう。 UserSetupEnvironment.sampleには$SHELLの設定例がありますが、 これを設定してもデフォルトのシェルは変わらないようです。 なお、Terminalに-t タイトルをつけて起動するとタイトルを設定できます。

MuTerminalでは、設定でシェルを指定することができます。

ftpd, telnetd以外にUNIX風デーモンはありますか?

標準で提供されているものはsyslogdがあります。 /var/log/syslogにログをとります。

UNIX用アプリケーションの移植性はどうですか?

Xを使用しない端末型アプリケーションやサーバー(デーモン)の移植は比較的容易です。 以下のような点に注意が必要です。

稿末のリンク集も参考にしてください。

Xのように、他のマシンでGUIアプリケーションを動かして手元のマシンで操作することはできますか?

できません。

Javaは使えますか?

JapharGuavacBeKaffe/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風がおすすめです。

日本語(106/109)キーボードは使えますか?

R4以降、preferences | Keymapで日本語キーボード(Japanese)がちゃんとサポートされていますので、 簡単に使うことができます。 ただし、R4.5.xではバグがあり、ATおよびPS/2キーボードではアンダースコアキーが、 USBキーボードでは日本語キーボード固有のキーがまったく使えません。 これについては、キーボードドライバにパッチをあてることで解決できます。

左CtrlキーとCapsLockキーの入れ換えなどはどうしますか?

キー配列の細かいカスタマイズは、 keymap -dでキーマップ定義ファイルをダンプし、書き換えた後、 keymap -lでロードします。 R4.xでは一度ロードすれば再起動しても有効です。

左CtrlとCapsLockの交換は、はじめの方の

CapsLock = 0x3b
LControl = 0x5c

という2行の右辺を交換します。

Escと[`~](日本語キーボードでは[半角/全角]、以下同じ)の交換は、

Key 0x01 = 0x1b …
Key 0x11 = ' '  …

という2行の右辺(あるいは左辺)を交換します。 ただし、Escと[`~]を入れ換えると、GUIの操作において、 これらのキーを使う操作ができなくなったり、 入れ換えが有効にならない場合があります。

なお、日本語キーボードの場合は、以下のような問題がありますので、これもついでに対処しておきます。

インストールフロッピーのバックアップはどうしますか?

マスターフロッピーを入れて

$ 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も起動できない場合は、 フロッピーイメージをddRAWRITEでフロッピーに書き込みます。 R4用R4.5.2用はBeのFTPサイトに、 R4.5用はインストールCDの/zbeosにあります。 BeのWWWで詳しい手順を紹介しています。

RockRidgeなCD-ROMは読めますか?

読めます。ただし、ハイブリッドCD-ROM(MacOS HFSとISO 9660)については、 HFSが優先されます。 なお、RockRidgeでないISO 9660のCD-ROMをマウントすると、 UNIXではファイル名が小文字になるものがありますが、 BeOSでは大文字になりますので注意が必要です。

BeOSはUNIXの代替になりますか?

用途にもよりますが、一般的にはならないでしょう。 おおざっぱに例えるなら、「NT(+Cygwin)がUNIXの代替になるか?」というのと似たりよったりでしょう。 とくにサーバー用途には向きません。 OS自身の基本設計や潜在能力はUNIXにひけをとるものではありませんが、 現状ではBeOSはあくまでクライアント向けOSです。


コマンド一覧

とりあえずBeOS固有のものだけです。 (*)は特に有用なもの、(!)は注意が必要なものです。

ユーザーツール

alert [--empty | --info | --idea | --warning | --stop] [--modal] テキスト [ボタン1 [ボタン2 [ボタン3]]]
(*) アラートボックスを表示して入力を待つ。
beep
ビープ音を鳴らす。
chop [-n サイズ] ファイル
ファイルを分割する。
craw 幅 高さ ファイル
(*) 画像を表示する。
eject [rawデバイスファイル]
リムーバブルメディアを排出する。
feedback シェルコマンド
標準出力を標準入力につないで実行? (feedback自身の標準入出力のfdは$FEEDBACK_STDIN$FEEDBACK_STDOUTで得られる)
ffm [引数]
"Focus follows mouse"の設定をする。何か引数を与えると解除。
hd [-n バイト数] [ファイル]
16進ダンプ。
print [-l] [-p プリンタ] [ファイル...]
(*) ファイルを印刷する。
screentoppm ファイル
画面ダンプをppm(portable pixmap)ファイルに変換する。
sysinfo [オプション...]
システムの情報を表示する。
translate {--list | 入力ファイル 出力ファイル フォーマット]
Translator add-onの一覧表示や呼び出しを行う。
unchop 出力ファイル
chopで分割したファイルを連結する。
xtou [-n] {-f | -t エンコーディング} ファイル...
(*) テキストファイルの文字コード系を変換する。

システムツール

bootman
(!) ブートマネージャーのインストール・設定・削除を行う。
clockconfig
時計を設定する。
disktest -file=ファイル [オプション...]
(!) ファイルに読み書きを行ってディスクの検査をする。
dumppt rawデバイスファイル...
HDDのパーティションテーブルを出力する。
fsh BFSボリュームデバイス
(!) BFS直接操作?
installbootsector
(!) ブートセクタのインストール?
iroster [{+ | -}デバイス名称]
(!) 入力デバイスを列挙・起動・停止する。
isvolume オプション... [パス]
ボリュームに関する種々の検査を行う。
keymap {-d | -l | -r}
(*) キーマップを定義・出力する。
makebootable -experimental パス
(!) HDDから起動できない問題を改善する。 /optional/experimental/makebootable参照。
mkbfs [-noindex] [ブロックサイズ] デバイス [ボリューム名]
(!) BFSボリュームを初期化する。
mkdos [-n] [-t] [-f 12 | 16 | 32] デバイス [ボリューム名]
(!) FATボリュームを初期化する。
mountvolume [オプション...] [ボリューム名...]
(*) ボリュームをマウント・アンマウントしたり、一覧を出力する。
poke
(!) メモリやI/Oポートを操作する。
prio スレッドID 優先度
スレッドの優先度を設定する。
rescan [バス名称...]
バスをスキャンする。
safemode
セーフモードかどうかを調べる。
unmount マウントポイント
(!) ボリュームをアンマウントする。
writembr rawデバイス
(!) MBRを書き込む。

ネットワーク

ali スクリプトファイル [引数...]
SerialConnectで使用するオートログインスクリプト/etc/connect/dial-o-ramaから呼ばれる チャットスクリプトインタプリタ。
dhcp_client [-E]
DHCPクライアント。
mail_parser
メールを解析して属性を付加する?

チーム・スレッド管理

listarea [チームID...]
各チームのエリア(共有メモリ)の使用状況を出力する。
listport [チームID...]
各チームのポートの使用状況を出力する。
listsem [チームID...]
各チームのセマフォの使用状況を出力する。
release [-f] [-c カウント] セマフォID
(!) セマフォを解放する。
roster
(*) チームの一覧を出力する。
waitfor スレッド名称
スレッドの実行開始を待つ。

アプリケーション

parrot [オプション...] デバイス
(*) シリアルポート用通信ソフト。cu(1)に相当。
pc
(*) プログラマー電卓。
play
(*) CD-DAの再生・読み出し。
ve [ファイル]
vi風のエディタ。独自の端末データベース/etc/vattrを使用。

開発ツール

asdbg
app_serverのデバッグ用コンソール。
db [ファイル]
低レベルデバッガ。
debug_glue キー セマフォID
デバッガ補助ツール?
listimage ファイル
実行ファイルのシンボルを出力する。
mwbres [-merge] [-o リソースファイル(.rsrc)] ソースファイル(.r)
リソースコンパイラ? /optional/experimental/BeIDE Goodies/MWBResPlugin参照。
profile [-m 最小サンプル数] ファイル [引数...]
プログラムのプロファイリング(実行時間の分析)を行う。

属性・リソース・データベース関連

addattr [-t 型] 属性名 属性値 ファイル...
(*) ファイルに属性を追加する。
catattr 属性名 ファイル...
(*) ファイルの属性を出力する。
copyattr [オプション...] コピー元ファイル... コピー先ファイル
(*) ファイルの属性をコピーする。
copyres コピー元ファイル コピー先ファイル
(*) ファイルのリソースをコピーする。
listattr ファイル名...
(*) ファイルの属性名の一覧を出力する。
listres ファイル...
ファイルのリソースの一覧を出力する。
lsindex
データベースのインデクスを出力する。
mimeset [オプション...] [パス...]
(*) MIMEファイルタイプを自動設定する。
mkindex [-t 型] 属性名
データベースのインデクスを追加する。
query [-a | -v パス] 式
(*) データベースに問い合わせを行う。
rmattr 属性名 ファイル...
(*) ファイルの属性を削除する。
rmindex 属性名
データベースのインデクスを削除する。
settype [-t ファイルタイプ] [-s アプリケーション署名] ファイル...
(*) MIMEファイルタイプ(BEOS:TYPE属性)やアプリケーション署名を設定する。
setversion ファイル名 {-system | -app} 番号 番号 番号 [[開発段階] [番号]] [-short 短文字列] [-long 長文字列]
(*) アプリケーションのバージョンを設定する。
stripres PEFファイル
リソースを削除する。
updatetype [-v] [-bootOnly] 型名 新型名 [型名 新型名]...
ファイルタイプの変更?
xres [-l] [-o ファイル] [コマンド] [リソースファイル...]
リソースを収集する。

リンク集

マニュアル

BeWare

開発者向け情報


Copyright (C) 1999 ITO Takayuki, All rights reserved.

伊藤隆幸のホームページ