[b-free 207] RE: GUI architecture

AKIYOSHI,Masamichi (akiyoshi.masamichi@tko.dec-j.co.jp)
Fri, 7 Feb 97 15:45:05 +0900

こんにちは,秋吉です。

内藤さん,

>ディスプレイプリミティブとドライバの間のインターフェースがないのは、
>BTRON1 の実装として、ディスプレイプリミティブとドライバを分けたインプ
>リメントを必須としていないからかもしれませんね(この辺は想像です)。

そうですね。
「BTRON1プログラミング標準ハンドブック」の IX ページの図だと,ディスプレ
イプリミティブがデバイスドライバの上に載っかっているので,なにかインター
フェースがあるんじゃないかという気がしたんですけれども…。

> > 中でも特に,フォントマネージャは結構複雑な動きをすることになると思うので,
> > ディスプレイプリミティブとは分けておいた方がいいのではないかと思います。
>
>X Window system だとぜーんぶ統合化しちゃってますね :-)

まぁ,X は window system であって operating system じゃないから…。:-) :-)

>フォントマネージャを統合化するかはさておき、ディスプレイプリミティブは
>ウィンドウマネージャと統合化してしまってもいいと思います。
>ディスプレイプリミティブを使って図形を描画するとき、クリッピングなどの
>ためにディスプレイプリミティブはウィンドウの情報を必要とすると思われる
>からです。

なるほど。
僕が考えるウインドウマネージャを分離する利点は,1B/V1 から 1B/V2 にかけて行
なわれたウインドウまわりのデザインの変更がだいぶ簡単にできる(と思われる)
ことでしょうか。
明確に分離しておけば,デザインの変更という時(があればの話ですが)にこの
部分(ウインドウマネージャ)に手を入れれば済みますから。

>OS によっても DDX の実装は異なってくると思いますが、Linux や FreeBSD
>の場合だと、DDX が直接グラフィックアダプタにアクセスしているようです。
># だから、XFree86 の場合グラフィックアダプタ毎に X サーバがあります。
># (一部複数のアダプタに対応している X サーバもあるけど。。。)
>まぁ、この辺を汚ないと感じるか人もいるかもしれませんが、
>OS に手を入れなくても X サーバを換えるだけで最新のグラフィックアダプタ
>に対応できるので お手軽に使えていいかもしれません。
># Windows だとドライバとしてアダプタ固有の部分を分けている
># みたいですね。

なるほど,いろいろな実装がありますね。

僕がいつも使っている環境の X サーバは,OS 依存部分はサーバの中に入ってい
ますが,グラフィックアダプタに依存する部分をデバイスドライバとして完全に
分離しているようです。アダプタがかわってもドライバを交換するだけで済みま
す。(ドライバへのインターフェース(外部仕様)はマニュアルに載っている)

アダプタへのアクセスは,OS の汎用の I/O のメカニズムを通して行いますので,
直接グリグリやるのに比べるとオーバヘッドが含まれますが,保守性を考えると
妥当なやり方かもしれません。

実装設計になるとトレードオフを解決するウエイト大きくなって来るので,なに
かと大変だとは思いますが,こんな意見でも参考になれば幸いです。

では。
------------------------------
秋吉理学 (Akiyoshi Masamichi)
akiyoshi@jrd.dec.com
CXP01525@niftyserve.or.jp