パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

研究用OSの新顔、es」記事へのコメント

  • 情報なし (スコア:2, 参考になる)

    by saitoh (10803) on 2006年11月24日 13時35分 (#1063889)
    リンク先の「esオペレーティングシステムの概要」などをみたが、結局どのような技術的特長を持ったOSなのかぜんぜんかかれてない。 ソース読めってか?

    「システムコールがC++言語の抽象クラス」ということは、システムコールを持つわけで、マイクロカーネルではなくてモノリシックカーネルなのかなぁ?

    • Re:情報なし (スコア:4, 参考になる)

      by Nekomimi k2h (32117) on 2006年11月24日 23時59分 (#1064169) ホームページ 日記

      概要とリファレンスマニュアルに軽く目を通しただけなので実際のところは不明ですが要約すると、

      1. カーネルはAPIとして幾つかのクラスのクラスファクトリを登録している。ユーザープロセスはこれらクラスのインスタンス生成・操作(インターフェイスとして)をさせることができる。
      2. 各ユーザープロセスもプロセスが生きていて、クラスファクトリを登録している間、自分を含むすべてのユーザープロセスから登録したクラスのインスタンス生成・操作(インターフェイスとして)をさせることができる。呼び出し元ユーザープロセスから見ればAPI呼び出しも他プロセスのインスタンス操作も同等。
      3. インターフェイスはCOM風にC++クラスの仮想関数呼び出しとして行われる。
      4. 引数・戻り値のマーシャリングはCOMアウトプロセスサーバのようにまる見せにしない
      といったところでしょうか。

      ただ、感想としてはプラトニックすぎる気がしますね。COM実運用上の最大の問題、dll hellをそのまま再燃させているし、COMでいうインプロセスサーバやサーバプロセスの動的Invokeがなければ柔軟性が乏しい気がします(あったらすいません)。あと、研究用ということで割り切っているのだと思いますが、システムのプリミティブの操作やインターフェイスポインタ生成にセキュリティ関係の引数が無いのは気になります。

      しかし、もし、カーネルモジュールでのオブジェクト公開(つまりはAPIの追加)もユーザープロセスのそれと同程度の簡単さでできるなら組み込み向けにはいいかもしれません。もちろん、モジュールの動的ロードやカーネル関数の充実が前提でしょうが。

      親コメント
    • Re:情報なし (スコア:2, 参考になる)

      by Anonymous Coward on 2006年11月24日 19時15分 (#1064042)
      ドキュメントをざっと眺めての適当なまとめ

      1. デバドラ、ファイルアクセスから通常のOSでいうシステムコール、デーモン的なサービスまでそれぞれがインターフェイスとして定義され実装されている。
      2. それによって提供される機能は他のプロセスで実行されているサービスであっても、ローカルでのオブジェクト操作と同様に実行できる。
      3. 早くもネタ切れ

      親コメント
    • by wd-nara (25864) on 2006年11月24日 17時11分 (#1063990) 日記
      「esのカーネルの実装において、システムコールはC++言語の抽象クラス(インターフェイス)の純粋仮想関数呼び出しです」とも「ユーザプロセスからC++言語の抽象クラス(インターフェイス)の純粋仮想関数呼び出しによって、esのシステムコールが発行できます」とも「従来システムのシステムコールに対応するものは、esではC++言語の抽象クラス(インターフェイス)の純粋仮想関数呼び出しとして実現されたインターフェースです」とも解釈できますね。

      気になるけど、今、ソースを読む暇が作れない。

      親コメント
    • by Anonymous Coward
      IInterface が Microsoft の言うところの IUnknown に似ていそうな事はわかった(それ以上は調べていない)。

最初のバージョンは常に打ち捨てられる。

処理中...