
		 -----------------------------------
		 --- B-Free 中心核 status report ---
		 -----------------------------------



$Revision: 1.1 $
$Date: 2011/12/27 17:13:36 $

-----------------------------------------------------------------------------
* 著作権についての注意                                                      *
* このドキュメントは B-Free プロジェクトが著作権を保持しています。          *
* このドキュメントの再配布は自由ですが、この注意書きを含めて配布してく      *
* ださい。                                                                  *
-----------------------------------------------------------------------------

このドキュメントについてのご意見は以下のメイルアドレスに送ってください。

	night@bfree.rim.or.jp




0. はじめに

このドキュメントは、B-Free プロジェクトで使用している中心核の現状につ
いて説明したものです。

このドキュメントの最新版は、以下のようにして入手することができます。


a. メイルによる方法

  以下のメイルアドレスにインターネットメイルを出してください。
  折りかえし、このドキュメントの最新版をお送りします。

  bfree-kernel-status@bfree.rim.or.jp 

  なお、メイルによる方法の場合、返信に大体 1 日前後(場合によっては 2 
日以上) かかる場合があります。


b. WWW による方法

  以下の URL にアクセスしてください。

  http://www.st.rim.or.jp/~rnaitoh/B-Free/kernel-status.html

  なお、個人的な事情により (WWW ページの更新には、編集 - ftp - 展開と
  いう手間がかかるので)、メイルによる情報よりも古い場合があります。


c. Nifty のフォーラム FTRON の会議室をアクセスする

  不定期間ごとに Nifty の FTRON フォーラムの会議室に最新版をアップロー
  ドしています (アップロード先は、「mes 8 / ＯＳ・ハード・プログラミ
  ングの部屋)」)。
  タイトルは、「[b-free] kernel status report」となっています。


d. B-Free メイリングリストによる配布

  B-Free プロジェクトでは、専用のメイリングリストをいくつか動かしてい
  ます。
  そのうちのひとつ B-Free (メイン)メイリングリストで、本ドキュメントの
  最新版を配布しています。
  B-Free (メイン)メイリングリストへは、以下のメイルアドレスへメイルを
  出すことにより参加することができます。

	majordomo@iijnet.or.jp

  メイルの本文には、以下の文を書いてください(先頭の空白は入れないでく
  ださい)。

	subscribe b-free

  題名と本文は無視します。何を入れても構いません。
  なお、参加をとりやめる場合には、本文の内容を以下のように変えて同じメ
  イルアドレスに送ってください。

	unsubscribe b-free



1. B-Free 中心核とは何か

私たちは、B-Free OS (http://www.st.rim.or.jp/~isoyama/b-free/) という 
パーソナルコンピュータ上で動くデスクトップ OS を作ろうというプロジェク
トをはじめました。

このプロジェクトは、TRON プロジェクトのサブプロジェクトのひとつ：BTRON 
互換の OS を作ろうというものです。
B-Free OS は以下の特徴をもっています。


  1) 完全な 32 ビット OS
     某 Windows 95 のように 16 ビット/32 ビットのコードが混在していません。
     もちろん、16 ビットの OS ではありません。B-Free OS は 32 ビットの
     みのコードを実行する完全な 32 ビット OS です。

  2) マイクロカーネルテクノロジ
     B-Free OS は、マイクロカーネルと呼ぶ構成方法をとっています。
     マイクロカーネルでは、ハードウェアに依存したコードを含む小さな OS
     (マイクロカーネル) を基礎としています。その上にファイルシステム、
     メモリ、そしてプロセスの管理という従来 OS に含まれていた機能を分
     離したプログラムに委譲しています。
     マイクロカーネル方式により、拡張性/融通性に富む OS となっています。
     なお、マイクロカーネルにあたる部分を B-Free OS では中心核と呼んで
     います(中心核という呼称自体は、BTRON OS のひとつである BTRON2 に
     その起源があります)。

  3) フリーである
     本当は、この項目こそ一番最初にくるべきかもしれません。B-Free OS は、
     BTRON 互換な OS としては、世界で最初の(そして多分最後ではないでしょ
     う) フリーな OS です。B-Free OS は、そのバイナリとソースが再配布
     可能です。
     著作権自体は、私たち B-Free プロジェクトが保持していますが、再配
     布については制限しません。B-Free プロジェクト の生成物は GNU
     Generic PUBLIC LICENSE に従います。特に許可を求めることなく自由に
     再配布してください。
     もちろん、修正もあなたの自由です(ただし、その場合には修正したソー
     ス/バイナリについても再配布可能にするという条件があります)。

私たちは、B-Free OS を最先端 (best) の OS というより、実用的 (Better) 
な OS となることを目指しています。

B-Free 中心核 (以下、中心核)は、この B-Free OS のマイクロカーネル部分
です。中心核は、μITRON 3.0 に準拠しています。B-Free OS のために必要な
機能、たとえば仮想記憶などの機能を拡張/追加しています。

中心核は、今のところ Linux (Slackware 2.3) にて作成しています。
(B-Free の中心核以外の部分も同じく Linux にて作成しています)
なお、ld (リンカ) については、zmagic format にて作成することのできるバー
ジョンを使用しています(まだ、boot が zmagic 移行のフォーマットに対応し
ていないため)。

中心核は、内藤隆一 (night@bfree.rim.or.jp/ggc00661@niftyserve.or.jp) 
が作成および保守をしています。


2. 中心核の動作するハードウェア

中心核が動くマシンは、今のところ Intel 製の i386 以上の CPU を積んだ 
PC9801 だけです。
以下のマシンにて動作確認をしています。

	PC9801FX/U2 (NEC 社製)
	PC386M (EPSON 社製)


メモリを 5.6 MB 以上積んだマシンで確認していますが、それより少なくても
動作するはずです(最低 1.6MB)。


4. 中心核の現状

  すでに、中心核は動いています。ただし、FD ベースでブートし、コンソー
ル(キャラクタベース) で文字を表示するだけです。中心核それ自身は、OS の
本当に基本的な機能しか提供しないことに注意してください。デバイスドライ
バすら中心核には入っていないのです！ デバイスドライバは、ITRON の上で
タスクとして動作します。また、デバイスドライバの管理はデバイスドライバ
マネージャが行います。

  中心核の上で動作するデバイスドライバ(これは、B-Free OS でのデバイス
ドライバという意味です)には、以下のものがあります。

    キーボード・ドライバ
    コンソール(表示)・ドライバ
    
現状の中心核では、μ ITRON 3.0 に準拠した以下のシステムコールをサポー
トしています(ただし、仕様については変更しているものもあります。{もちろ
ん、仕様についての誤解に基づくバグも多分あります})。

  < システムコール一覧 >
  cre_tsk, del_tsk, sta_tsk, ext_tsk, exd_tsk, ter_tsk, dis_dsp,
  ena_dsp, chg_pri, rot_rdq, rel_wai, get_tid, ref_tsk, sus_tsk,
  rsm_tsk, frsm_tsk,slp_tsk, wup_tsk, can_wup, cre_sem, del_sem,
  sig_sem, wai_sem, preq_sem,twai_sem,ref_sem, cre_flg, del_flg,
  set_flg, clr_flg, wai_flg, pol_flg, twai_flg,ref_flg, cre_mbf,
  del_mbf, snd_mbf,psnd_mbf,tsnd_mbf, rcv_mbf, prcv_mbf,trcv_mbf,
  dis_int, ena_int, cre_mpl, del_mpl, get_blk, pget_blk,rel_blk,
  ref_mpl, tget_blk,get_ver, def_int


また、μITRON3.0 にはない以下のシステムコールを新たに追加しています。

< 追加したシステムコール一覧 >
  vsys_inf,dbg_puts,vcre_reg,vdel_reg,vmap_reg,vunm_reg,vdup_reg,
  vprt_reg,vshr_reg,vput_reg,vget_reg


  これらのシステムコールのうち、仮想メモリ関係のシステムコールについて
は、まだ完全には実装が終っていません。

  vcre_reg,vdel_reg,vmap_reg,vunm_reg,vdup_reg,vprt_reg,vshr_reg,
  vput_reg,vget_reg 



------------------------------------------------------------------------