[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[b-free: 885] B-Free OS で何ができるか ( コマンドの一覧 ) (1/2)




隆一です。

B-Free OS が立ち上がったあと、何ができるかについて簡単なメモを書いてみ
ました。

ほとんどなーんにもできないことがわかると思います。一応新しいコマンドの
追加方法についても書いてありますので、必要だったらコマンドを追加してみ
てください。

量が大きくなってしまったので、2 つに分けて送ります。


----------------------------------------------------------------------------


B-Free OS で何ができるか (コマンドの一覧)
=========================================

Version 1.0
1997/11/20
内藤 隆一




0. B-Free OS のコマンドラインインタプリタ

今の B-Free OS は、マネージャ関係がインプリメント中のため、ユーザプロ
グラムの類は動きません。その代わり、デバッグに使うためのコマンドライン
インタプリタが動いています。
B-Free OS が HD/FD から起動すると、プロンプトを表示します。

	init> 


このプロンプトを表示しているのが、コマンドラインインタプリタです。
コマンドラインインタプリタは、独立したプログラムとなっています。
ソースは、B-Free OS のソース環境のディレクトリの kernel/BTRON/init に
入っています。

将来的には、このコマンドラインインタプリタは、システム全体の立ち上げ処
理の管理処理を担当する予定です。というか、もともと立ち上げ処理のプログ
ラムとして作っています(ファイルも init という名前になっています)。


1. コマンド

で、デバッグ用のコマンドラインインタプリタですから、ほとんどマネージャ
とかデバイスドライバなどの動作確認用のコマンドばかりです。
一応カテゴリごとに分かれている風ではありますが、追加は恣意的に行ってい
ますのでかなりいいかげんです。

以前は、DOS ファイルシステム (FAT16) もアクセスできるコマンドがありま
した。今はコマンドを使用できないようにしています。といっても、#ifdef 
文で囲んでいるだけで、ソースはそのまま残しているので、興味があったら
使ってみることはできます。

コマンドは、プロンプトの後に続けてます。また、引数をつけることもできま
す。たとえば、echo コマンドの場合だと

	init> echo hello world
	      ~~~~~~~~~~~~~~~~

というように入力します(下線部が入力部分です)。
各引数は、空白で区切ります。今のところ、「"」や「'」で囲んで空白を含ん
だ引数を入力するようなことはできません。引数は、最大 10 個までつけるこ
とができます(コマンド毎に引数の数はきまっています)。
一行に入力することのできる文字数は、99 文字までです。



2. 各コマンドの説明

では、個々のコマンドの説明をしていきます。使われそうもないコマンドにつ
いては、説明を省略します。
以下では、関係のありそうなコマンドをまとめて説明しています。


2.1 コマンドラインインタプリンタ自身に関係のあるコマンド

他ならぬコマンドラインインタプリンタに関係のあるコマンドとしては、
echo および help があります。


■ echo

echo コマンドは任意の数の引数を取り、引数をひとつひとつ改行で区切って
表示します。

	echo hello world

と入力すると、次のように表示します。

	hello
	world

ちなみに、このコマンドはコマンドラインインタプリタの引数の区切りわけの
処理のチェックのために作成しました。実用性は皆無ですね :-P


■ help

help コマンドは、コマンドラインインタプリンタで使うことができるコマン
ドの一覧を表示します。
このコマンドは、本当にコマンド名の一覧を表示する「だけ」です。コマンド
毎に何をするかなどの説明などは「一切」表示しません。

処理的なことをいうと、コマンドを登録しているテーブルにコマンド名が入っ
ており、そのコマンド名を表示しています。


2.2 システムの挙動を指定する

システムの挙動を制御するためのコマンドとして、reset および falldown が
あります。


■ reset

reset コマンドは、システムを reset します。
単にそれだけです。reset する時にマネージャ(もし、動いていれば)に対して
通知などは一切しません。


■ falldown

システムを停止させます。
といっても、UNIX の shutdown、Windows のシステムの停止のようなことはし
ません。単にカーネルの中で無限ループさせているだけです。


2.3 lowlib 関係

lowlib (loadable library に非ず) の処理を制御します。
lowlib を起動するための load と、lowlib の一覧を表示する lowlib の 2 
つのコマンドがあります。

今の処理では lowlib の本体は、boot 時にすべて読み込むようになっており、
ファイルをメモリ中に読み込むことは行っていません。ですから、load コマ
ンドというのは、名は体を表わしていません。この辺は、思いつきでつけてい
るので特に理由があってこういう名前にしているわけではありません。

今のところ POSIX 環境用の lowlib のソースが入っています。


■ lowlib

lowlib コマンドは、メモリ中にある lowlib の一覧を表示します。
一覧は、次のような形式になっています。

  lowlib の名前  実行開始番地  割り込み No. 割り込み関数アドレス

  lowlib の名前: lowlib を識別するための名前です。
		 システム内でユニークである必要があります。
		 この名前を load コマンドで指定します。

  実行開始番地:	 lowlib のスタートアップ関数のアドレスです。

  割り込み No.:  lowlib の機能は、割り込み(トラップ)を使って呼び出すよ
		 うになっています。この項目は、lowlib が使用する割り込
		 み番号を表示します。

  割り込み関数アドレス: 上記の割り込みを処理する関数のアドレスです。

このコマンドは、引数がありません(指定しても無視します)。


■ load

load コマンドは、引数で指定した lowlib を起動します。lowlib の起動は、
実行開始番地をそのまま実行することによって行います。このとき、新しいタ
スクを自動的に作るようなことはしません。lowlib によっては初期化処理の
中でタスクを生成するかもしれません。


2.4 IDE/HD 関係

IDE タイプの HD のデバイスドライバをデバッグする時に使用したコマンドで
す。

■ idestat

IDE の情報を表示します。表示は、デバイスドライバレベルで行います。
表示する情報は、HD のシリンダ数、ヘッダ数、セクタ数の 3 つです。
引数はありません。


■ idegeo

IDE のパーティション情報を表示します。パーティション毎にヘッダ番号、
セクタ番号、シリンダ番号、トータルブロック数、スタートブロック数を
表示します。
引数はありません。


■ ideread

第2パーティションの任意のオフセットから 40 バイトデータを読み取り、表
示します。
(なぜ、第2パーティションか? 実は、私が使っているマシンでは、第2パー
ティションに B-Free OS を入れているからです :-P)

  ideread オフセット

  オフセット: 任意の整数(バイト)


----------------------------------------------------------------------------

続きます。


p----------------------------------------------------------------------q
| FROM R.Night                                                         |
| E-mail:                                                              |
|         rnaitoh@st.rim.or.jp                                         |
b----------------------------------------------------------------------d