Download List

Sponsored link

Project Description

Monaは、新しいオペレーティングシステムです。
このプロジェクトでは、OSを1から設計・作成し近い将来多くの人に使われるようになる事を目指します。
新しい技術に基づいてマイクロカーネルのOSを作成していきます。

System Requirements

System requirement is not defined

Released at 2006-08-06 19:53
file_server_on_linux 0.0.1 (1 files Hide)

Release Notes

**誰のためのリリースか
Mona OSのサーバーなどを開発する devloper 向けのリリースです。
file_serverの開発者だけでなく、他の必須コンポーネントやGUIをLinux上で開発するのに参考になると思います。
特にMona OSの core であるメッセージAPIと共有メモリAPIをLinux上でエミュレートしている部分は再利用が可能でしょう。


**file_server_on_linuxとは?
file_server_on_linuxとは、Mona OSのサーバー(ユーザーモードで動作するOSコアコンポーネント)であるfile_serverをLinux上で動作するようにしたものです。
Monaプロジェクトでは、Mona上で動作するOS機能をできる限り、cygwin/Linux上で開発、デバッグ、動作確認をしその後Monaにportするという開発スタイルを心がけてきました。
これを実践することで
-開発を安定、成熟したOS上で行うので開発効率が上がる
-既存OS上でも動作することが必須なのでポータビリティが上がる
など多大なメリットが得らています。

**開発の動機
次期Mona OSのリリースでサポート予定の仮想メモリの実装に必須であったため。


**大きな変更点
今回file_serverをLinuxにまず移植し、その後に以下の大きな拡張をしました。この拡張は今後Mona本体に取り込まれる予定です。
-VFS/Vnodeフレームワークの導入
--Solarisなどでも利用されている、メタファイルシステムフレームワークであるVFSの概念を導入し、フルスクラッチで書きおこしました。
--ファイルアクセスをすべてVnode経由でおこなうようになり open/read/write/stat/close/readdirなどのAPIを提供しています。
--今後新しいファイルシステムを追加する場合はVFSフレームワークを利用することになります。既存のFAT12も簡単に再利用できたという実績がああります。
-touch/writeのサポート
--FAT12に関してmonapi経由の touch/write を正式にサポートしました。
-file_serverが提供するすべてのAPIに関してCPPUNITによるテストコードを付加しました。
-valgrindを利用しfile_serverのメモリリークをつぶしました


**ひげぽんの個人的な感想
OSの必須コンポーネントであるファイルシステムがまるごとLinuxで動くようになったのは大きなメリットだと思う。
おおげさではなく開発効率は10倍くらいになるのではなかろうか。
以前から気になっていたfile_serverのジャングルコードが解消されたのと、VFSについて深い理解が得られたのも個人的にはかなり大きかった。

Changelog

No Changelogs