# 第 17 回 BTRON Club 発表用資料

# B-Free OS の概要

内藤 隆一 (night@b-free.orient.co.jp)
1997 年 4 月 5 日

## 一枚岩的な OS vs マイクロカーネル

OS は、一枚岩的 な構造をもつものが多数作られてきました。 一枚岩的な OS は、その名のとおり OS がひとつの巨大なプログラムとなって います。

すなわちコンピュータは、2つの動作モード --- カーネルモードとユーザモー ドをもち、カーネルモードで走るプログラムこそが OS という考えがその根底 にあります。

ユーザモードで走るプログラムは、あくまでもユーザが作成したプログラムで あり、OS 的な機能はありません。

一枚岩的な OS として UNIX がよく知られています。

UNIX の世界では、一枚岩的な OS --- カーネルと呼びます、とユーザプログ ラムという2種類のプログラムしかありません。

> デーモンと呼ばれる特殊なプログラムもありますが、これもまたユーザプログラムの一つです。

一枚岩的な構造をもつカーネルの場合、カーネルを変更するには大変な努力が 必要となります。 それは、ある小さな変更をするだけでも他の(関係のなさそうな)部分に影響が及 ぶ可能性があるからです。

一枚岩的な構造をもつオペレーティングシステムは今でも主流です。しかし、 一枚岩的な構造には、保守性や拡張性に問題があることが徐々に分かってきま した。そのため新しく生まれた考えかたがマイクロカーネルという考えです。

マイクロカーネルという考えでは、ハードウェアに密着した部分などを小さな モジュール(マイクロカーネル)にまとめます。そして、一枚岩的なオペレーテ ィングではカーネルがやっていたほとんどの仕事をマイクロカーネルの外へ追い 出します。

マイクロカーネルの代表は Mach オペレーテイングシステム です。

正確にいうと、Mach オペレーティングシステムは、マイクロカーネルアーキ テクチャをとるシステムで使用するためのマイクロカーネルにすぎません。 OS としてユーザプログラムを動かすためには、Mach の上に載る複数のプログ ラムが必要となります。

現在のところ、Mach の上にのるプログラム(Machではサーバと呼んでいます) は、UNIXのインタフェースをもつ UNIXサーバなどがあり、最近何かと話題に なっている Apple 社の Rhapsody OS も Mach の上で動く予定ということです。

また、GNU プロジェクトでも Mach を基にした Hurd という OS の作成を行っています。

一枚岩的な OS とマイクロカーネルを比較してどちらが良いということは一言 では言えません。

さて、問題は B-Free OS でどちらのアーキテクチャを採用するかということで す。

B-Free OS を製作する目的(OS のソースを公開し、簡単に変更などをできるよ うにする)を考えると、見とおしがよい構造というのが重要になってきます。 そう考えると、一枚岩的な OS の利点はほとんど性能面においてであり、ソー スの変更や改良などを簡単に行うのは困難です。 逆にマイクロカーネル方式の OS では、よほどうまく作らないと、性能面では 一枚岩的な OS よりも劣ります。しかし、中の構造はひとつひとつの要素が分 かれており、それぞれの変更が他に与える影響が少ない分だけ見とおしがよい といえそうです。

これらのことから、B-Free OS の目的(ユーザが自由にソースを見て、OSを変 更できる)を考えると、マイクロカーネル方式を採用するのが適当だと思われ ます。

## 全体構成

B-Free での OS の構造は、マイクロカーネル構造をとります。

OS の中心となる核として、ITRON を採用します。 この ITRON は、μITRON 3.0 を基にしたものです。

## 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 を提供します。実際の処理は、外 核や周辺核と協調し、データをやりとりすることによって行います。

アプリケーション
  ユーザが使用するプログラムです。 実身の内容を表示するデータランドエディタ、テキスト実身の内容を編集す る基本文書エディタ、そして図形実身の内容を編集する基本図形エディタな どがあります。

B-Free オフィシャルホームページへ戻る

Copyright (C) 1996,1997 B-Free Project