In-Reply-To: <Subject: [b-free: 432] text>
"三原 克大"<KHB17144@niftyserve.or.jp> さん
> ドキュメントグループでチュートリアル向け資料の担当になっております三原
> です。仕事をしなかったことすみません。
>
> 電脳文化祭でのチュートリアルはどのような人を対象にするのでしょう。大
> ざっぱに言えばアプリケーションプログラマー向けになるのでしょうかアプリ
> ケーションプログラマー向けになるのでしょうか。それによって内容が変わっ
> てくるものですから。
>
個人的には、電脳文化祭では、B-Free チュートリアルに全員来るとは思って
いません(今回は、催しものの場所がそれぞれ別になっているので。。。)。
最大でも 30 人前後ではないかと思っています。
多分、来る人は、
1) OS 一般の中身に興味をもっている人。
2) BTRON に興味をもっている人。
ではないかと思います。
えーと、今のところ「B-Free チュートリアル」は次のスケジュールでいこう
ということになっています。
1) 「なぜ B-Free か」長谷川さん
B-Free プロジェクトがはじまったきかっけとその意義について
2) 「B-Free 紹介」ドキュメントグループから
B-free 紹介文とプロジェクト参加の手引き
3) 「B-free 仕様解説」内藤 他
B-Free のカーネルおよび周辺核の解説。
現在のところ、これらのチュートリアルのための資料は、各発表者が書き、ド
キュメントグループがまとめて印刷する予定です。
3) の 「B-Free 仕様解説」の文を以下に添付します。
(図は省略してあります)
------
B-Free OS の構造
================
一枚岩的な OS vs マイクロカーネル
---------------------------------
OS は、一枚岩的 な構造をもつものが多数作られてきました。一枚岩的な OS
は、その名のとおり OS がひとつの巨大なプログラムとなっています。
すなわちコンピュータは、2つの動作モード --- カーネルモードとユーザモー
ドをもち、カーネルモードで走るプログラムこそが OS という考えがその根底
にあります。
ユーザモードで走るプログラムは、あくまでもユーザが作成したプログラムで
あり、OS 的な機能はありません。
一枚岩的な OS の代表は、UN*X です。
--- 図形が入る (UN*X の構造)
UNIX の世界では、一枚岩的な OS --- カーネルと呼びます、とユーザプログ
ラムという2種類のプログラムしかありません(デーモンと呼ばれる特殊なプロ
グラムもありますが、これもまたユーザプログラムの一つです)。
一枚岩的な構造をもつカーネルの場合、カーネルを変更するには大変な努力が
必要となります。
それは、ある小さな変更をするだけでも他の(関係のなさそうな)部分に影響が及
ぶ可能性があるからです。
一枚岩的な構造をもつオペレーティングシステムは今でも主流です。しかし、
一枚岩的な構造には、保守性や拡張性に問題があることが徐々に分かってきま
した。そのため新しく生まれた考えかたがマイクロカーネルという考えです。
マイクロカーネルという考えでは、ハードウェアに密着した部分などを小さな
モジュール(マイクロカーネル)にまとめます。そして、一枚岩的なオペレーテ
ィングではカーネルがやっていたほとんどの仕事をマイクロカーネルの外へ追い
出します。
マイクロカーネルの代表は Machオペレーテイングシステムです。
正確にいうと、Mach オペレーティングシステムは、マイクロカーネルアーキ
テクチャをとるシステムで使用するためのマイクロカーネルにすぎません。
OS としてユーザプログラムを動かすためには、Mach の上に載る複数のプログ
ラムが必要となります。
現在のところ、Mach の上にのるプログラム(Machではサーバと呼んでいます)
は、UN*Xのインタフェースをもつ UN*Xサーバや MS-D*Sのインタフェースを
もつサーバなどがあります。
また、最近では GNU プロジェクトでもMachを基にした Hurd という OS の作
成を行っています。
--- 図が入る{Mach + Hurd の構成}
一枚岩的な OS とマイクロカーネルを比較してどちらが良いということは一言
では言えません。
さて、問題は BFree OS でどちらのアーキテクチャを採用するかということで
す。
BFree OS を製作する目的(OS のソースを公開し、簡単に変更などをできるよ
うにする)を考えると、見とおしがよい構造というのが重要になってきます。
そう考えると、一枚岩的な OS の利点はほとんど性能面においてであり、ソー
スの変更や改良などを簡単に行うのは困難です。
逆にマイクロカーネル方式の OS では、よほどうまく作らないと、性能面では
一枚岩的な OS よりも劣ります。しかし、中の構造はひとつひとつの要素が分
かれており、それぞれの変更が他に与える影響が少ない分だけ見とおしがよい
といえそうです。
これらのことから、B-Free OS の目的(ユーザが自由にソースを見て、OSを変
更できる)を考えると、マイクロカーネル方式を採用するのが適当だと判断し
ました。
全体構成
--------
B-Free での OS の構造は、マイクロカーネル構造をとります。
OS の中心となる核として、ITRON を採用します。
この ITRON は、μITRON 3.0 を基にしたものです。
--- 図が入る (B-Free の構成)
B-Free OS の構成要素
B-Free OS は、次の構成要素から成り立っています。
中心核(いわゆるマイクロカーネル)
μITRON 3.0 に準拠した ITRON OS です。CPU のカーネルモードで
動きます。
LOWLIB
アプリケーションプログラムに対してシステムコールインタフェー
スを提供するための層です。
厳密にはライブラリではないため、LOWLIB (低レベルライブラリ)
という名前になっています。
LOWLIB は、システムコールインタフェースを提供する他にユーザ
プロセスの初期化や各周辺核との通信なども行います。
周辺核
BTRON OS としての API を提供します。中心核の提供するシステム
コールを使用するタスク群です。ファイル管理やプロセス管理など
の機能を提供します。また周辺核にあるデバイスマネージャは、デ
バイスドライバへのアクセスする手段を提供します。
周辺核に含まれる機能は次のとおりです (カッコの中はその機能
を実現するマネージャの名前です)。
仮想メモリ管理 (メモリマネージャ)
仮想記憶を管理するためのマネージャです。このマネージャ
では、仮想メモリの高度な機能を提供します (物理ページの
参照管理など)。
また、マネージャとは別に MMU を操作するような機能は中
心核に含まれています。中心核の提供する仮想記憶管理は、
ある程度統一化されています。
プロセス管理 (プロセスマネージャ)
中心核の提供するのは ITRON レベルでのタスク管理機能で
すが、プロセスマネージャは、中心核のもつタスク管理の
インタフェースを使ってBTRON レベルのプロセス管理機能
を上位の層に提供します。プロセスの持つ情報を管理する
のが主な処理です。
ファイル管理 (ファイルマネージャ)
BTRON レベルでのファイル管理を行います。このレベルでは
仮身/実身という単位での管理ではなく、ファイル/レコード
という単位で管理が行われます。
ウィンドウマネージャ
ウィンドウの管理を行います。描画自体は、ディスプレイデ
バイスドライバが行います。
デバイス管理 (デバイスマネジャ)
デバイスドライバの登録/参照などの管理を行います。
デバイスドライバ
周辺核よりも上位のソフトウェアとハードウェアとの間をとりもつ
ソフトウアです。基本的に周辺機器ひとつごとにひとつのデバイス
ドライバが存在します。
次のようなデバイスドライバは、最低必要となります。
ディスプレイ・デバイスドライバ
キーボード・デバイスドライバ
ポインティグ・デバイスドライバ
FD/HD デバイスドライバ
外核/殻
補助的なサービス --- かな漢字変換や仮身・実身操作など、を提
供するプロセス群です。
ライブラリ
アプリケーションに対して、\BTRON API を提供します。実際の処
理は、外核や周辺核と協調し、データをやりとりすることによって
行います。
アプリケーション
ユーザが使用するプログラムです。
実身の内容を表示するデータランドエディタ、テキスト実身の内容
を編集する基本文書エディタ、そして図形実身の内容を編集する基
本図形エディタなどがあります。
----------
内藤隆一 (ggc00661@niftyserve.or.jp/night@bfree.rim.or.jp)