[b-free 157] GUI architecture

藤永清和 (NBA01614@niftyserve.or.jp)
Tue, 28 Jan 1997 00:08:00 +0900

 「外殻」って、英語で何て言うのでしょうか?外殻について考えている藤永です。

 APIは、(近い)将来BTRON3の仕様書が公開されたときには、B−Fre
eのAPIもBTRON3に合わせたほうが良いだろうと考えています(ただし、た
とえばTAD処理ルーチンも外殻に追加できたらおもしろいし、パネルも移動できた
ほうがよいので、B−Free流の拡張はしたいですが)。
 3B/MCUBEユーザとしては、ソースレベルでの互換性はなるべく高くしてお
きたいです(B−Freeの外殻ができるまでに並行して3B上でアプリケーション
開発ができると具合が良い)。

 3Bがインテルチップ版にも移植されたらバイナリレベルの互換性が望まれるでし
ょうか?また、バイナリ互換を実現するのに技術的な困難はあるでしょうか?

 APIとは別に外殻の内部構造をどうするか、ウィンドウ関連のアーキテクチャー
はどのようにするか、を決める必要があります。

 BTRON1でいうところの、ウィンドウマネージャとパネルマネージャは統合し
たいと考えています( ディスプレイプリミティブとフォントマネージャもウィンド
ウ・パネルマネージャと合体統合しても良いでしょう)。

 ウィンドウ関係のアーキテクチャについて、
内藤さんの考えによると、>>>
BTRON (というより、パーソナルメディアの BTRON1) では、ウィンドウ
関係のアーキテクチャは、次のようになっているようです。

アプリケーション
|
(API)
|
ウィンドウマネージャ
(描画関係も含む)
|
(???)
|
ビットマッププリミティブ
|
(多分)デバイスドライバ

MS Windows でも BTRON1 とおなじ方式になっているようです。

X Window System だと、次のようになります。

アプリケーション
|
(メッセージ)
|
X サーバ
(アダプタ依存部分も入る)
|
ハードウェア
(グラフィックアダプタ)

X Window system の方式だとアダプタごとに X サーバを作成する
必要があります。X サーバは、機械依存部分と非依存部分とに明確
に分かれているので、かならずしもアダプタごとに作り直す必要は
ありません。
<<<

 ということなのですが、性能は(極端でなければ)二の次として造り易さ、堅牢性
、保守性の有利なほうを採用したいと思います(どっちが得かよくわからない)。
 最初のバージョンはVGAかSVGA(800×600)をCPUで描画することになるで
しょうが、ディスプレイカードにやらせるとしたらディスプレイドライバとのインタ
ーフェースはどのようにしたらよいでしょうか。
 みなさんのお考えを聞かせてください。よろしくおねがいします。
藤永