IPA


開発成果一覧へ





2004年度第2回未踏ソフトウェア創造事業  採択案件評価書


 



1.担当PM

 

 加藤 和彦 (筑波大学 電子・情報工学系 教授)



2.採択者氏名


 代表者

 高橋 明生 (武蔵工業大学 大学院生)

共同開発者

 なし



3.プロジェクト管理組織


 日本エンジェルズインベストメント株式会社



4.委託金支払額

 

 5,000,000円



5.テーマ名

 

 CLIを実装する次世代オペレーティングシステムの開発



6.関連Webサイト


  http://www.coos.jp/



7.テーマ概要


  CLI (Microsoftの.NET の技術的な規格名)を基盤とした新しいアーキテクチャを持つOS を開発し,その動作を実証した.提案手法によってCLI 本来の特徴を活かすことができ,システム全体をよりセキュアにできるなど,社会基盤として求められている性質を備えることができる.カーネルをC#言語で記述するなど従来のOS では考えられない手法を用い,実際に動作することができた.デバイスドライバなどの,従来CLI では記述されなかった種類のプログラムに関してもCLI ベースで開発し,動作を確認した.




8.採択理由

 

 .NETの実行環境であるCLI(Common Language Infrastructre)をハードウェア上に直接実装すると共に,独自のOSを開発しようとする,野心的かつ意欲的な開発提案である.既に開発は着手され,一部動作を始めている.OSの開発は容易なことではないが,一部は既に稼働しており,本開発がある程度の達成度を成し遂げる可能性は十分に高いと考えられ,本事業の支援に値するものであると判断した.




9.開発目標


 安全性検査可能コードなどを特徴とする技術が.NET やJavaなどで提案され,注目を集めている.それらの技術においては,プログラムの原始的な動作不良に対して実行環境(ランタイム)が一定のエラー処理を行うことができるようになっている.これにより,”ありがちなミス”を冒した場合でもソフトウェアが安全な動作をするように記述可能である.しかし現在,.NETやJavaはアプリケーションプログラムにしか適用できない.それらの実行にはランタイムのサポートが必要不可欠であり,OSなどのハードウェアに近いレイヤで動作するプログラムには適用しづらいからである..NETの技術体系をCLI (Common Language Infrastructure)と呼ぶ.本プロジェクトは,CLI を基盤技術として採用したOSを開発することを目的とする.OS としての完成は目標とせず,CLI技術によってOSが動作可能であることを実証することを開発の目的とする.




10.進捗概要


 ア. ブートローダの開発  

  計画通りに開発が完了した.

 

 イ. カーネルの開発  

  CLI として完全ではないものの,当初予定していた品質のソフトウェアは開発できた.

 

 ウ. ドライバの開発  

  次のようなデバイスのドライバを開発した.

  ・周期タイマー

  ・キーボードコントローラ

  ・キーボード

  ・DMA コントローラ

  ・フロッピーディスクコントローラ

  ・FAT ファイルシステム

  ・ATA/ATAPI コントローラ

  ・ISO9660 ファイルシステム

 いずれもC++ 言語版(起動時にのみ利用)とC#言語版(永続的に利用)があり,C++ 言語版は実機での動作も確認している.

 

 エ. メモリ管理システムの開発  

  メモリ管理システムはあるものの,ガベージコレクタは時間的・技術的な理由で実装を断念した.

 

 オ. Mono のインポート  

  Mono クラスライブラリを開発したOS のクラスライブラリとして利用することができた.

 

 カ. システムライブラリの開発  

  ファイルシステム管理機能は,カーネルとの分離が好ましくなかったため,カーネルの一部として実装した.FreeType2 など,明確な分離が望ましいものについては別ライブラリとして開発した.



11.成果


 開発ソフトウェアは,ブートストラップローダ,カーネルローダ,レガシーカーネル,マネージカーネルから構成される.レガシーカーネルはマネージカーネルを起動するための環境を整える.マネージカーネルが開発OSの真のカーネルであり,CLS準拠言語(ほぼC#言語)で記述されている..NET標準ライブラリのオープンソース実装であるMonoクラスライブラリを使用している.

 レガシーカーネルはインタプリタを含み,C++で記述されている.マネージカーネルはコンパイラを含む.CLIコンパイラは,当初から必要性を感じていたものの,作業量の多さから「期間内では実装しない」としていた.しかし,インタープリタによる実行方式では速度的な限界があり,また割り込みなどのハードウェアに近いレイヤではコンパイルして機械語を得ることが必要であることが分かり,期間中にコンパイラの開発を行った.開発したコンパイラは,任意のCLIコードをコンパイルできるわけではないが,簡単なメソッドであれば機械語での高速な実行ができるようになっている.



12.プロジェクト評価


 先行準備があったとはいえ,限られた時間の中で,CLIコンパイラ,CLIインタープリタ,カーネルの基本部分,デバイスドライバ(キーボード,フロッピーディスク,FATファイルシステム,ISO9660(CD-ROM)ファイルシステム)等を開発して,デモストレーションが出来るレベルまでの完成度を達成したことは高く評価できる.単にOSの機能を記述したというだけにとどまらず,CLIのインタープリタおよびコンパイラを実装すると共に,中間言語をカーネルとして動作させるという,OS研究としてみた場合でも興味深い技術開発にチャレンジし,成功させており,研究という観点からも高く評価できる.

 



13.今後の課題


 CLIを用いてOSを実装したことの利点が,OS開発者もしくはアプリケーション開発者にとってわかりやすく理解できるような開発の進展を期待したい.また,本研究成果を論文公表し,OS研究の発展に貢献することを期待する.


  ページトップへ   





  Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004