●はじめに
TRONプロジェクトの一環としてのBTRONが提唱されてからおよそ10余年が
経過しました。その間、商業的には1B/2B/3B等のBTRON仕様OSが発表さ
れ、BTRONに興味を示す人が徐々にではありましが着実に増加しつつあります。し
かしながらその内部については、一般ユーザーには断片的情報のみが開示され、ソース
コードなどを見ることは叶いません。
また、近年のPCの爆発的普及によってGUIベースのOSが広く普及していますが
、その2大潮流であるMacintosh/Windows(3.x/NT3.x/9
x)の何れも商業目的の製品であり、その内部ソースなどの情報に触れることは出来ま
せん。 B−freeプロジェクトは、BTRON仕様のOSをフルスクラッチで製作
し、そのソースコードを含めてフリーで公開することを目的としています。
同じようにOSをフルスクラッチで製作し、その成果を公開することを目的としたプ
ロジェクトとして、GNUプロジェクトが広く知られています。プロジェクトの成果を
広く公開するというプロジェクトの基本方針は似ています。ただ、GNUが目指すもの
はUN*XライクなOSの製作であるのに対して、私たちの目指すものはBTRON仕
様OSの製作する事にあります。
プロジェクトの目標にBTRON仕様を選んだ理由として、BTRON仕様自体は自
由に利用できる事が挙げられます。商業的に販売されるBTRON仕様OSは、先にも
述べた通りその内部を知ることができません。しかし、システムコールや交換用のデー
タフォーマットであるTADの仕様を定めた仕様書は入手可能であり、その仕様に乗っ
取って実際のOSを実装する事は自由です。そして何よりも大きな理由は、私たちはB
TRONが大好きであり、それが広く普及することを望んでいるからです。
●プロジェクト発足の経緯
私たちがB−Freeプロジェクトを始める以前にも、フリーのBTRON仕様OS
を作りたいとの思いは、多くのBTRONファン(ほとんどが1Bユーザーでもある)
が持っていました。しかし、その漠然たる道程と予想される膨大な作業量を前にして、
実際の活動へと進展するには至りませんでした。
ところが、ここ数年のうちにその認識を改めさせる幾つかの出来事がありました。
第一に、個人によるITRON仕様OS実装例の報告です。市販されるITRON仕
様書をベースに、個人でITRON仕様OSを実際に製作した例が、数多く紹介される
様になりました。
第二に、ITRONをマイクロカーネルに適用したBTRON3仕様OSが実装され
た事です。パーソナルメディアが販売するBTRON仕様OS「3B」は、μITRO
N3仕様OSをマイクロカーネルとしてその上に実現されました。
第三に、Linuxの存在です。フィンランドのLinus B.Torvaldsさんが個人規模で
作ったLinuxが広く知られるようになり、現実にPC/AT互換機やFM−TOWNS
の上
で稼働しています。また、Linux上にはGNUの成果であるGNU−C等の各種ツ
ールが移植され、個人レベルでもUN*Xライクな32ビット開発環境を比較的容易に
入手出来る様になりました。
以上の事から私たちは、BTRON規模のOSでも個人規模で実装可能であるとの確
信を得て、B−Freeプロジェクトを始めました。
●BTRON仕様とB−FreeOSの関係
BTRONとはBusiness−TRONの意味であり、ビットマップディスプレ
イを装備するワークステーション/パーソナルコンピュータ用の、シングルユーザー・
プリエンプティブマルチタスク・リアルタイムOSです。TRONプロジェクト全体に
おける位置付けとしては、人間とコンピューターの対話を行うコンピューターの為のO
Sであり、最初からマルチウィンドウGUIによる操作環境を前提として仕様が検討さ
れました。 BTRON仕様としては現在までにBTRON1/2/3の3種類の仕様
が検討されています。
○BTRON1
BTRON1仕様は最も初めに検討された仕様です。本仕様はi80286等の16
ビットCPUと4MB程度のメモリ及びFDDのみと言った、一昔前のパソコンの少な
い資源でも十分に動作するように検討されたものであり、実記憶ベースで稼働します。
パーソナルメディアから市販されている「1B」もBTRON1仕様に準拠した製品
です。
○BTRON2
TRONプロジェクト開始時点で想定していた本来の姿のBTRON仕様は、こちら
のBTRON2の方であり、「ピュアBTRON」と呼ばれる事もあります。
BTRON2仕様はTRON仕様の32bitCPUに充分なメモリ及びHDDを前
提に検討された、高機能のパーソナルコンピュータ/ワークステーション向けの仕様で
す。仮想記憶ベースで稼働します。OS核には、リアルタイム性に優れるITRON2
仕様を拡張した、マイクロカーネルを採用します。
OS内部における資源の管理にも実身/仮身の考えを導入し、システムコールの整理
・統一を図った斬新な設計となっている。
BTRON2仕様に準拠するOSは、同じくパーソナルメディアが開発した「2B」
がありますが、一般向けには市販されていません。
○BTRON3
BTRON3仕様は最も新しい仕様です。BTRON2仕様のOS核であるITRO
N2仕様の後継として、ネットワーク機能を盛り込んだμITRON3仕様が新たに検
討されたこと、BTRON1仕様のOSである「1B/V1」が普及し始めた事を受け
、BTRON1仕様を拡張する形で検討されました。本仕様も32bitCPUに充分
なメモリとHDDの使用が前提とされており、仮想記憶ベースで稼働します。OS核に
は、μITRON3仕様を拡張したマイクロカーネルを採用します。
BTRON1仕様を拡張した仕様となっており、APIの32ビット化に加えてマル
チタスク・マルチスレッド処理を可能としています。
BTRON3仕様に準拠するOSは、パーソナルメディアが開発した「3B」があり
ます。一般向け製品としては、TRON仕様CPUを搭載したワークステーション「M
CUBE」(発売:パーソナルメディア)が発売されています。BTRON仕様OSが
TRON仕様CPUの上で動作する、まさに究極のBTRONマシンです。キーボード
ももちろんTRONキーボードを使用します。
BTRON1/2/3仕様の各々は少しずつ異なり、ソースコードコンパチブルでは
ありません。しかし、実身/仮身モデルのサポート等、ユーザーから見た操作方法はま
ったく同じです。また、通信やFD等の形で交換されるデータについても、TRONに
おける標準データフォーマット「TAD」によって互換性が維持されています。そのた
め、ユーザーはどのBTRON仕様OSでも、違和感無く操作することができます。
さて、B−FreeOSは32bitCPUを前提として仮想記憶ベースで稼働する
、シングルユーザー・プリエンプティブマルチタスク・リアルタイムOSです。基本的
にはBTRON1仕様とBTRON3仕様に類似していますが、完全に準拠するもので
はありません。B−FreeOSのAPI等は基本的にBTRON1/3仕様を参考に
しますが、私たちが改めた方が望ましいと判断した点や、他のOSの優れた点などは積
極的に取り込んで行く予定です。
もちろん、ユーザーから見える操作方法などは、BTRON1/2/3仕様と同じも
のであり、データの互換性についてもTADによって維持される予定です。
●B−FreeOSの内部構造
B−FreeOSはマイクロカーネルによる階層構造を採ります。その概要は以下の
通りです。
アプリケーション
−−−−−−−−−−−−−API
ライブラリ
−−−−−−−−−−−−−
外核
・ウィンドウマネージャ
・実身/仮身マネージャ
・仮名漢字変換サーバ
・その他
−−−−−−−−−−−−−周辺核インタフェース
周辺核
・プロセスマネージャ
・ファイルマネージャ
・メモリマネージャ
・デバイスマネージャ
・ウィンドウマネージャ
−−−−−−−−−−−−−
|デバイスドライバ
・−−−−−−
LOWLIB&中心核
−−−−−−−−−−−−−
ハードウェア
○中心核
いわゆるマイクロカーネルです。μITRON3仕様に準拠したOSに、一部拡張を
加えたものです。i80386のカーネルモードで動作します。
○LOWLIB
アプリケーションプログラムに対してシステムコールインターフェースを提供します
。カーネルモードで動作します。ユーザーモードで動作するアプリケーションプログラ
ムから、カーネルモードで動作する中心核を分離する働きがあります。
○周辺核
中心核上で動作するITRONのタスクとして実現されます。
・プロセスマネージャ:BTRONのマルチプロセス管理を行います。各々のアプリケ
ーションプロセスも、ITRON上ではタスクとして扱われます。
・ファイルマネージャ:ファイルの入出力を行います。
・メモリマネージャ:仮想記憶の管理を行います。
・デバイスマネージャ:デバイスドライバの管理を行います。
・ウィンドウマネージャ:ウィンドウの管理を行います。
○デバイスドライバ
周辺核よりも上位のソフトウェアとハードウェアの間を取り持ちます。次のドライバ
ーが最低限存在します。
・ディスプレイドライバ
・キーボードデバイスドライバ
・ポインティングデバイスドライバ
・FD/HDドライバ
○外核
実身/仮身操作や仮名漢字変換機能を提供します。
○ライブラリ
アプリケーションに対してBTRON_APIを提供します。
○アプリケーション
ユーザーが使用するプログラムです。最低限、次のアプリケーションが存在します。
・データランドエディタ:仮身の管理を行うプログラム。フォルダーの様なもの。
・基本文章エディタ:文章の編集を行うプログラム。
・基本図形エディタ:図形の編集を行うプログラム。
●ユーザーから見たB−FreeOS
ユーザーの立場からみたB−FreeOSの特徴を簡単に説明します。
○シングルユーザー・プリエンプティブマルチタスク・リアルタイムOS
本特徴はBTRON仕様に共通する項目であり、B−FreeOSもこの点を満足し
ます。
○BTRON仕様OSのGUI環境
BTRON仕様OSのGUI環境が実現されます。
BTRON仕様ではその操作方法を統一していて、BTRON1/2/3の何れの仕
様でも基本的な操作方法は同じです。実身/仮身モデルのサポートやTADによるデー
タ互換性については、B−FreeOSもこれに習い、画面上のウィンドウ操作なども
他のBTRON仕様OSと同様です。(具体的な内容について知りたいかたは、BTR
ON1仕様OSである「1B/V1」をお試しになるとよいでしょう。)
○仮想記憶の実現
アプリケーションを含む、外核より上の階層で動作するプロセスでは、デマンドペー
ジング方式の仮想記憶によるメモリ管理が行われます。ユーザーアプリケーションプロ
セスは、コンピュータ本体の実メモリよりも大きな仮想空間を、特別に意識する事なく
利用することができます。(もちろん、HD上に作成されるSWAP領域の大きさによ
り、使用できる仮想空間の大きさは制限されます。)
参考までに、プロセスごとの仮想空間のメモリマップを以下に示します。
00000000h--------------------0M
コード領域
00800000h--------------------8M
データ領域
01000000h--------------------16M
ローカルメモリー領域
08000000h--------------------128M
予約
0FC00000h--------------------252M
スタック領域
10000000h--------------------256M
共有メモリ領域
18000000h--------------------384M
予約
7FFFFFFFh--------------------2G ↓ここまでがプロセス毎の固有空間
システムの共通空間
FFFFFFFFh--------------------4G
○マルチファイルシステム
B−FreeOSの標準ファイルシステムは、実身/仮身モデルをサポートするBT
RON仕様のものになりますが、これ意外にもMS−DOS型式のファイルの読み書き
をサポートする予定です。
○POSIX環境
キャラクターベースのPOSIX環境が実現されます。
当面、セルフ開発環境はPOSIX環境の上で実現される予定です。
●ターゲットマシン
B−FreeOSの当面のターゲットマシンは、i80386SX以上のプロセッサ
を装備するPC−9801シリーズです。想定する要求スペックを以下に示します。
CPU:80386SX以上の32ビットCPU
メモリ:8MB以上
CRT:640*400ドットの標準ディスプレイ。
ハイレゾは当面はサポートしない。
FDD:1台以上
HDD:SASI_HDDまたはSCSI_HDDで
独自のパーティション2個以上が必要
(BTRONのファイルシステム用区画と、スワップ用区画の2個)
マウス:バスマウスが必須
その他の周辺機器:当面はサポートされない。
●現在の進捗状況
現在のところ、μITRON3仕様の中心核が完成しています。PC−9801上で
、ブート用のFDからカーネルを読み込ませる事が出来ます。周辺核の部分については
、メンバー同士で仕様のディスカッションを行い、マネージャ毎に担当を決めて具体化
する作業を行っている所です。外核以上の部分は、周辺核部分の実装が一通り終わった
段階で、仕様検討と実装作業を順次行うことになると思います。
B−FreeOSの開発作業は、現在のところはLinux上で行っています。また
、開発環境をBOW上にも構築できないかと検討中です。今後の予定としては、中心核
上にPOSIX環境を実現し、この上でセルフ開発環境を整えることを目標としていま
す。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
真鍋 裕一