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

[b-free: 1180] Re: スケジュールについて




隆一です。


From: Hideaki Suzuki <h1suzuki@bridgew.edu>
Subject: [b-free: 1162] Re: スケジュールについて
Date: Sat, 28 Mar 1998 01:27:55 -0500

> 直接、coding をしていない人間ですので、
> つれずれに。
> 
> 
> Ryuichi Naitoh wrote:
> 
> > 開発コード名            提供時期        主な事柄
> >
> > March                   1998/3          BTRON 周辺核の実装
> >                                         POSIX 環境の完成(開発用)
> >                                         その他デバイスドライバ
> >
> > Symphony                1999/初         ウィンドウマネージャサポート
> >                                         各種外殻/API サポート
> >
> > Opera                   2000            B-Free OS の機能のフルサポート
> >                                         基本アプリケーションの組み込み
> >
> > *  March の段階では、テキストオンリーの環境です。
> >   また、March の公開と共にアプリケーション開発用の
> >   ツールも提供する予定です。
> >
> > で、現在の状況としては、 March にはほど遠い状況です。
> > さすがに、スケジュールを変更する必要があると思うのですが、今の開発状況
> > だとなかなかスケジュールを明確にしにくいところです。
> 
> > 建設的でない発言部分
> 
> なにせ、いろんな人が色々、無責任(<これは俺だけか (^_^;;)な事を言いますからね
> ぇ。
> 船頭多くして何とやらですね。
> 新技術がどんどん生まれるのもあるし。
> 最近新しい話題としては、
> 
>   Script language (Mind)
>   VM (SL に付随)
>   OOP 化
>   CORBA?
> 
> というあたりでしょうか。
> こう云った大きな program(OS) では、topdown と bottomup を同時にやらなければ行け
> ないので、しんどいのですね。<と分かり切ってることを繰り返してみる。

えっ、トップダウンでやっているところって何かありましたっけ?
確かに話はたくさんしていますが、実際にモノを作ろうというところまでいっ
ているのはまだないと思いますよ。 
# いや、アプリケーションレベルでいうと落合さんの作られているフリーキャ
# ビネットがありましたか。

ボトムアップ的というと、中心核から順々に作るという作業は細々ながら動い
ていますから、たしかに何かしらの作業はしていますけど。


> >こっから、少し建設的。
> 
> うーむ。どうだろうか。
> OSを Layer に分けて、「えいやあ」って、その中で決められる layer を決めてしまう
> のが良いのではないかな?
> ここで言っているのは、他の部分に対して比較的独立している部品に分けるという事ね。
> 何処がどのぐらい他の部分に影響しているかを見るのは、基本でしょう。
> で、どうやって、layer を作るかで、たとえば、VM は、たぶんかなり上位の部品だろう
> し、OOP をどのぐらい導入するかは、かなり、API とかに影響するでしょうねぇ。する
> と、API を決めるには、OOP について考えないと、決められないと言うことになる。API
> が決まれば、Manger とかは、自然とある程度形が出来るでしょう。そうすれば、実装の
> 話になってきて、schedule も自然とはっきりしてくるのではないかな?
> 

うーむ、というか先のメイルで私が書いたのは、結局のところ、「手を動かす
人がいない」(からいつまでたってもモノができない)ということなんですけど。
レイヤ分けということでは、一応周辺核のレベルまでは機能別に分離していま
す。
問題は、その周辺核を作るという作業が実質進んでいないということで、これ
はオブジェクト指向を使えば簡単にできる、というものではないです。
結局、オブジェクト指向は技術にすぎないので、プロジェクトでの遅れをとり
もどすために、オブジェクト指向を使うというのは無理でしょう。

	結局、ここでも「銀の銃弾(silver bullet)はない」んです。


いや、オブジェクト指向で OS を書こというアイデアはいいんです。
ただ、実際にオブジェクト指向言語の元で OS を実装というのは簡単ですが、
どの位の作業量になるか考えています?

オブジェクト指向言語というとこの場合、C++ になると思います。実際には、
GCC を使うことになるでしょう。

さて、GCC が C++ の機能を使うには、ランタイムによるサポートが必要にな
ります。ランタイムライブラリ自体のソースは C++ に添付されていますから、
そのソースを何もない状態で動かすように移植することになるでしょう。
GCC のランタイムライブラリは、もっと低レベルの OS の機能を使って実装さ
れているわけですが、その OS の機能をエミュレーションすることになります。
普通 GCC は、OS の下で動きますから、ランタイムライブラリをエミューレー
ションすることなどは想定されていません。GCC の内部処理と OS の詳しい技
術者を持ってきても、多分、一年がかりの作業になるでしょう。

# それ以前に GCC の内部処理に詳しい人なんているんだろうか?

今のところは C の機能だけを使うだけなので、何とかなっています(でも、
GCC で何回かはまったことがあります :D )。


さらに、オブジェクト指向の場合、ライブラリ化が重要になります。このオブ
ジェクト指向のライブラリについては、使う方も作る方もそれなりの労力がか
かります。使い物になるオブジェクトライブラリを作るには、2、3年かかるで
しょう。ソースの量も、数万ステップを越えるものになります。

実際、C++ により OS を書き換えるというのは、UNIX でも試みられたことが
あります(system V の後継)。しかし、最終的には C++ への書き換えは失敗し
てしまいました。このときは、SUN と AT&T の技術者が共同で作業したはずで
す。AT&T といえば、C++ の総本山で、C++ に詳しい技術者もいたはずです。
しかしながら、そういうところですら OS を C++ で記述することに失敗した
わけです。

新しいところでは、Windows NT の場合でもウィンドウマネージャに C++ を使っ
て、作業が大幅に遅れたということがあります。

こういう事実を見る限り、オブジェクト指向言語、特に C++ で OS を書くの
は、時間および作業量が大きくなるであろうことはまず間違いないでしょう。


また、API (実際にはライブラリになると思いますが)、にオブジェクト指向を
使うことも懐疑的です。アプリケーションを書く時に使いものになるオブジェ
クト指向のライブラリを作るのは、非常に大変な作業になります。
オブジェクト指向のライブラリは、個々の関数がクラスという関係でつながり
があります。個々の関数のことを考えればいいライブラリに比べ、クラス階層
という別の見方でも考えなければいけないオブジェクト指向ライブラリを構築
するのは、作り直しを何回も行う必要があるでしょう。MCF などを見ると、何
回作り直されたか。。。。

# 再利用できる、というのはオブジェクト指向のウリなのに。
# 肝心のライブラリが変わったんじゃ再利用もあったもんじゃない。


ところで、3B は CodeWarrier で開発できるそうですけども、CodeWarrier っ
て C++ コンパイラが動きましたっけ?(よく知らない)。



p----------------------------------------------------------------------q
| FROM R.Night                                                         |
| E-mail:                                                              |
|         rnaitoh@st.rim.or.jp                                         |
| Key fingerprint = 89 EB 77 95 40 C0 3C CC  37 A1 A7 FA 1C 66 FF D0   |
b----------------------------------------------------------------------d