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

[b-free: 1450] Re: Window Manager (Re: B-Free by OO & BTRONprogramming)



Hidetosi Ochiai wrote:
> 
> /* In [b-free: 1424] Window Manager (Re: B-Free by OO  & BTRON programming)
>    Hideaki Suzuki <h1suzuki@bridgew.edu> Wrote: */
> 
>    |> BTRON C++ クラスライブラリの取っ掛かりとして
>    |> TAD クラスライブラリを作成中です。
>    |
>    |すみません、まだ、ゆっくり見ていません。
> 
> 私のほうもプログラムがバグっていて
> なかなか進んでいません。
> 
> STL を使ったものだから、コンパイラのバグにも
> 遭遇してしまいました。
> Visual C++ はやめて GCC を使っているのですが、
> どうしても取れなかったバグが、
> コンパイラをバージョンアップしたら
> あっさり直ってしまいました。
> (バグレポートを読まなかった私が悪いのですが)

たはは。STL はまだ完全に行き渡っていないというか、実装上の仕様も完全に統
一がとれていないと聞きますしね。っていうか、compiler ってちょっとまとも
なことをやろうとすると、すぐに、bug にあたりますよね。単に僕の運が悪いの
かな(笑)。

たとえば、BTRON1のAPI呼び出しをCと inline assembler で書こうと
して、macro を使ったときもひどかった。Borland の Preprocessor に bug が
あって、online に回避する方法はないかって聞いたら、いちど、stand alone
の cpp に通せばっていわれてしまった。おいおい、って感じ。(^_^;;;
まあ、最終的には別の形式で、macro を駆使して解決したのだけど。

 
> STL を使ったのはもしかしたら失敗だったかな?
> (バイナリのサイズも大きくなってしまう)

サイズが増えるのは、linker で何とかなりませんかね?
borland のでは、たしか、何とかなったと思いますが。

# 僕は、C は MSC と BCC しか、基本的に
# 使ったこと無いですから。良くわからんけど。

 
> 動くようになったら(バグが取れたら) Web で
> 公開しますし、動かなくても良いのなら
> 言ってくれればまた送ります。

5月の第2週ぐらいに、また、送ってもらえると嬉しいです。
というか、その頃、program ML で公開しませんか?
documentation を書くのも大変ですし、その辺は、ML で公開すれば手分けでき
るのではないかな?

 
>    |Event 処理も、Message 通信も、資源共有も、Multi-window 処理も、色々BT
>    |RONの program をやると必要になります。
>    |BTRON1は Windows よりずっと組織化された API を提供してますし(比べ
>    |ちゃいけないと言う話もある ^^)、BTRONでの programming って、すごい
>    |良い programing と OS の勉強の教材になると思うんですがねぇ。
> 
> 私は Win32 と BTRON1 はどちらもそれほど良いとは思いません。
> どちらも実用レベルにはあるのですが。
> 特に BTRON1 のパーツはどうにかしてほしいです。

こいつがねぇ、、、。> parts
parts と menu だけは、なかなか class にする良い方法が見あたらなく
て、、、。
でも、基本的にはBTRON1のAPIは良くまとまっている方だと思います
よ。

# 286を対象にしたことを思い出せば、、、。


 
> (大学生は暇がある)

ごめん、これだけは、嘘でしょ。(^_^;;;;
例えば、今年の夏学期を僕はとるのですが、しんどいです。
6月いっぱい、月曜から木曜まで、朝9時から夜10時までほとんどずーっと授
業なんですが。
一日最低8時間授業。酷いときには、12時間授業。
労働基準法に違反してるんじゃないか?!(暴)

7、8月もそんな感じだし、8月の後半と5月の期末後が少しゆっくり出きるく
らいですもの。
って云うか、早い話は「暇な人は暇、忙しい人は忙しい」という事なんですよ。
大学生は暇と、一般化されると悲しいっす。

# 最近、200行くらいの program を宿題でやるのも、
# すごい面倒だもの。やること他に在りすぎてめげそう。(^^;;;

 

>    |  だれか、B-free の Window Manager を一緒にやる人いませんか?
> 
> おお、ついにやる気ですね。
> 
> でも、まだ周辺核ができていなくて
> 動かしてみることができないので、
> 今作ろうとするのはたいへんそうに思います。
> どのように作っていこうとしているのか、
> 教えてもらえませんか?

とりあえずは、API を決めないと始まらないだろうって。
そういう事で、API を pickup しながら ML でこんなんで良いかとか色々話をし
て、問題なさそうだったら、stand alone java の上で、色々実験してみようと
思います。すなわち、java の描画機能を利用させてもらう訳ね。java は一応、
full color / high resolution だから。

ただ、API を決めていく課程で、さきに、Display Manager を何とかしないと始
まらないと云う話になれば、そっちに先に取り組むかもしれません。
# ただ、できればそっちは、別の人にやってもらいたい気もする。
# だって、性能出すのすごい、大変。(^_^;;;

で、とにかく、そうなると、最初の実際の仕事は java 上で event の生成とか
を模す物を作らなくちゃいけないわけです。で、それが出来たらその上に
window manager の描画処理や window design などを試せるような program を
作ると。

ちゃんとした大きな program を作るときの鉄則は、「初版はすてろ!」ですか
ら(^^;)

で、十分色々遊んだ後、display manager や核の event 管理機能とかも実装が
終わった頃に、Window Manager が完成していたらよいなぁと思っています。

そう言うわけで、ぜひ、落合さんも一緒にやりません?!
きっと、つらい分だけ楽しいですよ!
;-)


# BTRON1 の event の処理の流れとかは、
# そのうち、program ML で僕が色々流すと思いますので、
# そこでみんなで、研究しましょう。
# (僕もこの機に window class を完成させたいし。)

 
> ところで、ウインドウマネージャが描画をするときは
> ディスプレイマネージャに指示するのですが、
> このように外郭同士でメッセージのやりとりをする場合、
> LOWLIB は使えるのでしょうか。
> 使えないとなると、直にメッセージ送信のプログラムを書く
> ことになるので、きっと使えるのだと思いますが。

うーむ。window manager って、どの ring で保護されるのでしょう。
っていうか、B-free って、CPU の ring を何処まで使うのですか?
386 への実装の場合、0 と 3 だけ?
ITRON 核は特権 ring 0 ですよね。
Manager は、ring 1 ですか?
User program は、ring 3 でしょうか?

それとも、Manager でも、基礎的な物と応用的な物で、ring 1/ ring 2 と分け
た方が良いのかな。

そう言ったことに、message 伝達法もよってくると思うのですが、、、。

って云うか、その前に、API の使い方ってどうするんです?

OS/2は call gate を使っているらしいですが、B-free でもそうするのでし
ょうか?

それとも、外核の Manager 間は普通の function call が許可されるのでしょう
か?
許可されるのなら、manager の load 時に relocation で address を解決しな
きゃいけないでしょうし、、、。


ごめんなさい、すごい的外れなことを云っているかもしれない。

ちょっとこの辺の疑問を、これから、kernel ML の方に書きますね。



> 
> ===
>   落合秀俊   名古屋大学工学部情報工学科
>   h953046b@ice.nuie.nagoya-u.ac.jp


-Aki.