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

[b-free: 1946] Re: BTK



From: Hidetosi Ochiai <h953046b@ice.nuie.nagoya-u.ac.jp>
Subject: [b-free: 1938] Re: BTK
Date: Sat, 25 Jul 1998 03:29:16 +0900

> /* In [b-free: 1916] Re: BTK
>    Yasushi Shoji <yashi@yashi.com> Wrote: */
> 
>    |> このあたり、いまいち理解ができないのですが、
>    |> なんとなく伝わるのは
>    |> 「X の window = BTRON のウインドウ」
>    |> にしようとしているのではないか、ということです。
>    |> それはあまり得策ではない、と私は思います。
>    |> 
>    |> 私の推奨する方法は、
>    |> 「X の 1つの window = B-Free のディスプレイ」
>    |> とすることです。
>    |> X の1つの window を1つのディスプレイと見立てて
>    |> その中に BTRON アプリケーションのウインドウやメッセージパネルなどを
>    |> 表示する方法です。
>    |> 
>    |> Windows 用の X Server では、
>    |> 「Windows の1つの window の中で複数の
>    |> X の window を表示する」物と
>    |> 「X の window = Windows の window」の2種類があります。
>    |> このうちの前者のようにしよう、ということです。
>    |
>    |これは前者の方で良いのでは?さらの状態でXだけがはしっている環境が
>    |ある場合、すべてのwindowの親になるのはRootwindowですから。
>    |それををのままWindowsに持ってくると、他のwindows applicationと
>    |いっしょにはみれなくなりますが(root windowが、一つのwindowとなって
>    |しまうため)、Xの上では、Rootwindow以下(上?)にwindow達が、いますから。
> 
> 「X の 1つの window = B-Free のディスプレイ」
> に賛成、ということでしょうか。
> この方法だと、X の 1つの window の中に箱庭のごとく
> B-Free world が構築されることになるので、
> X の window manager は全く関係なくなりますよね。

何か、今一つ噛み合いませんね‥。
Xのwindow managerも、その中で動いてるはずですが?

windowsの環境で使うX serverの様にB-Freeのwindow system
と、共存するXを考えているのでしょうか?

> やすしさんがなぜ X の window manager にこだわっているのか
> 良く分かりません。

Xの上では、window managerがないとwindowの移動もできないからですが?

> そもそも X の window manager の影響が及ばない window内だけを
> 使うので、X の window manager を新たに作るのは無意味に思います。

これは、上に書いたことと同じで、window mangareの影響下にwindowを作ります。

>    |> B-Free が十分使えるようになって、開発に余裕が出てきたら
>    |> 「X の 1つの window = B-Free のディスプレイ」
>    |> もできるように改造するのも良いでしょう。
>    |
>    |B-Free良くわかってないので質問させてください。
>    |Xの XCreateWindow()という関数にあたるものは
>    |BTRON1では、wopn_wnd()だと思っていたのですが?
> 
> X は Xt をちょこっと使ったことがあるだけなので、
> 詳しいことはなにも言えません。
> おおまかに見ると一緒なのですが、
> X の window と BTRON1 のウインドウでは機能的に
> 異なる部分もあるので、単純に wopn_wnd() の引き数を
> 修正して XCreateWindow() を呼ぶだけではだめじゃないかと思います。

まだ、全然深く読んでないので僕もわかりません(^^;
ただ、基本的には、同じかな〜と‥‥。

> 具体的には、パーツをウインドウに登録したり、
> 仮身や付箋をウインドウに登録したりする部分です。

partsは、とりあえず、無視します(^^;
で、無視すると、当たり前ですがパーツは使えません‥。
data mangareからpointerの形を取ってくるところも、どうしようか考え中です。

>    |>    |B-FreeOSの核の部分が完成するまでは、BTRON仕様のuser interfaceを
>    |>    |現在すでにXが動いているプラットフォーム上で開発します。
>    |>    |その副産物として、applicatin levelのprogramerが開発を開始できる
>    |>    |ようにもなる。
>    |> 
>    |> そこはあまり期待しませんけどね。
>    |> ファイルシステムや仮身・実身が使えないですし、
>    |> 1B や B-right 上で作れば良いことですから。
>    |
>    |1BやB-rightがあるのにB-Freeを作っている理由は?(^^;
> 
> そりゃもちろん、「作りたいから」じゃないですか。

そうですよね、僕もlinuxの上でb-freeの開発ができたらな〜と思ってます。
もちろん、b-freeの開発環境がしっかりしたら、それに越したことはないですが‥。
#第一、B-right買うお金ないし‥‥。

>    |>    |> ○Blue Project が実現すると、どんな良いことがありますか? ←これが一番重要
>    |>    |
>    |>    |B-FreeOS上にXを移植することによってB-FreeOSの開発時間短縮ができます。
>    |> 
>    |> やはり、開発の手間を減らすのがいちばん重要ですよね。
>    |
>    |そうですね。早くB-Freeだけで色々できるところをみたいですね。
>    |
>    |>    |> ○Blue Project と B-Free の関係は?
>    |>    |
>    |>    |B-FreeOSの上位核(周辺核の一部?)の実装をX baseで行います。
>    |> 
>    |> 私としては、X に直接依存するのはディスプレイプリミティブだけに
>    |> したほうが良いと思うのですが。
>    |
>    |二つあるというのはどうでしょうか?
>    |Xlibを直接叩くマネージャー達
>    |DP APIしか使わないマネージャー達
> 
> もちろん2つあっても良いのですが、
> ただでさえ遅れている B-Free の開発ですから、
> できるかぎり開発力を集中したほうか良いのではないですか。
> どちらを優先するか、と聞かれたら私ならディスプレイプリミティブを
> 利用するほうを優先しますね。

僕なら、作りたい方を優先しますね。
楽しむことが、第一条件じゃないでしょうか?
もちろん、苦労することはあります。
#楽しいときの苦労は、好きじゃない楽な仕事より楽しいものです。

>    |Xは、networkを使うために他のwindow systemよりもoverheadが多いです。
>    |そこにAPI wrapperをかぶせてしまうとさらに重くなりますよね。
>    |GUIの速度は、いちばんuser接しているところなのでできるだけ軽くしたい
>    |と思っています。しかもGUIの処理だけで、CPU timeを消費したくない‥。
>    |ただし、これの方法だと、落合さんが何度もいわれているように
>    |moduleの構成が壊れます。つまり、XlibいがいのDPができたときに
>    |manager達をそっちに移植するのは大変かも知れません。
>    |
>    |そこで、DP APIを使ったmanager達の方が、いいじゃないかという意見
>    |ですよね?速度を取るか、モジュール構成を取るかですね。
>    |もちろん DP APIようのwrapperはどちらをつくる場合でもつくります。
> 
> 速度以外の問題もありますね。
> 複数の描画の整合性や、描画環境と GC との相互や整合性、
> ウインドウ間のドラッグ、といった所は
> Xlib を直接触るとなると解決が難しくなるのではないですか?

これ、ちょっとわからないです。何故難しくなるのですか?

>    |そこで、その辺はマネージャーを造る人が決めたらいいじゃないか
>    |という、いい加減な考えなんですが‥‥、どうでしょう?
> 
> 両方まぜこぜだと、上で指摘した問題の解決が
> より難しくなるのでないでしょうか。

そうでしょうか?各マネージャーがお互いに触るところはAPIで、しっかりしていれば
そのマネージャー達がしたで何をしていようと、変らないのでは?

>    |上に書いたようにmanger製作担当の人にまかせません?
>    |
>    |◇  Xlibを知っているので直接叩きたい。
>    |◇  Xlibなんて知らない。
>    |◇  wrapperを通すと遅くなる。
>    |◇  wrapperを通しても、たいしてかわらない。
>    |◇  XをつかったDPなんて、嫌いなのでDP APIを使ってマネージャーを書いたら
>    |    俺がDPを書いてやる。
>    |
>    |まあ、いろんなシナリオが考えられますね‥。
> 
> 私の身の振りかたを示しておきましょう。
> 
> ○ ディスプレイプリミティブを X を使って作り、その他の GUI 関係マネージャは
>    ディスプレイプリミティブを利用して作る。
>                → 私もやりましょう
> ○ 各マネージャがそれぞれに Xlib を使って描画する、
>                → 陰ながら応援します

答は

ディスプレイプリミティブのAPIをXlibのwrapperとして作り、その他のGUI関係マネージャーは、そのwrapperを使ってもXlibを直接使っても良い

と、したいです。(問題がなければですが‥)

落合さんはDisplay primitiveを使って書けるので、いっしょにやりましょう!!
--
Yasushi Shoji               | my pgp public key is
yashi@yashi.com             | http://yashi.com/public_key.txt
yashi@kafka.salem.mass.edu  | powered by linux and open source software