[b-free: 508] 11/26 kernel gijiroku

Naitoh Ryuichi (night@bfree.rim.or.jp)
Sun, 26 Nov 1995 23:51:56 +0900

隆一です。

11/26 日に行った B-Free プロジェクトミーティング・カーネルグループの議
事録です。

今回は、ファイルマネージャ、プロセスマネージャの API 内容を相談するは
ずでしたが、B-Free で TAD と 準 TAD のどちらを採用すべきかの議論になっ
てしまいました。

---------------------------------------------------------------------
参加者:Joy さん
電脳丸さん、
藤永さん
隆一
---------------------------------------------------------------------

1. ファイルシステムマネージャ API 内容レビュー

1) ファイルマネージャ API の変更点
(1) 型の置き換え
WORD -> W
LONG -> W
BPTR -> B*
TCODE -> B
LINKPTR -> LINKP
UWORD -> UH
-> UW

(2) 拡張したもの
UH -> W

(3) 符号のあつかいについて

・ビットパターンが意味をもつものについては符号無しに

(4) システムコール名の変更
fil_sts -> ref_fil
ofl_sts -> ref_ofl
lnk_sts -> ref_lnk
fls_sts -> ref_fls

2. B-Free に採用するのは TAD か準TAD かの議論
(カーネルグループの打ち合わせのうちほとんどの時間はこの議論に費しました)

議論の主旨:
ファイルマネージャが見る文字コードは準 TAD に準拠したものか、それと
も TAD に準拠したものか。

ファイルマネージャではパス名やファイルシステム名などで文字列を使用す
る。パス名の中で特別の意味をもつ文字 (パス名の切れ目を表わす 0xff21
等) がある。それらの特別の意味をもつ文字を判定する時、準 TAD (つまり、
今の 1B/V1) に準拠した方式だとそのまま 2 バイト文字を 2 バイト整数と
して判定できる (0xff21 という整数をそのまま認識する)。
逆に TAD を使用した場合文字列中では 0xff, 0x21 となり、リトルエンディ
アンのマシンではそのまま 2 バイト整数として見ると 0x21ff となり TAD
-> リトルエンディアンの整数への変換が必要となる。また、TAD の中で複
雑なデータを規定しているものがある。それらのデータをファイルに対して
読み取り or 書きする場合には、TAD データ中の要素毎にリトルエンディア
ンへの変換が必要になる。

準 TAD を使用した場合、言語切換えコード等のあらかじめ長さが分からな
いエスケープシーケンスがきた場合に問題がある。TAD では、言語切換えコー
ドのシーケンスとして 0xFE、言語コード という 2 バイトによって言語を
切換える。このとき言語コードとして 0xFE がきた場合には、さらに次のバ
イトが言語切換えコードを表すことになっている。つまり言語切換えコード
は、長さが可変長となっている。準 TAD では、言語切換えコードは、バイ
ト列では、<言語コード>、0xFE となっている。0xFE が 2 バイト以上続い
た場合(言語切換えのエスケープコードが 2 バイト続いた場合) の判定は難
しい。

準 TAD の場合、1B 等の既存の BTRON のデータがそのまま使用できるとい
う利点がある。

o 準 TAD と TAD の比較

-------------------------------------------------------------------------
準TAD TAD
-------------------------------------------------------------------------
AP への影響 エスケープシーケンスの エンディアン変換
判定ができない。 (TAD -> リトルエンディアン)
あるいは制限が必要

準 TAD -> TAD の変換 不要
プログラムが必要
-------------------------------------------------------------------------
マネージャへの エスケープシーケンスの エンディアン変換
影響 判定ができない。 (TAD -> リトルエンディアン)
あるいは制限が必要
-------------------------------------------------------------------------

---
B-Free プロジェクト実行中! 詳細はこの WWW へ 
-> (http://www.st.rim.or.jp/~isoyama/b-free)

内藤隆一 (ggc00661@niftyserve.or.jp/night@bfree.rim.or.jp)