オープンソースのμITRON仕様OS: TOPPERS/JSPカーネル

第3回 LSI IPデザイン・アワード

オープンソースのμITRON仕様OSTOPPERS/JSPカーネル
2001年5月23日
2001年5月23日

高田 広章 若林 隆行 本田 晋也
豊橋技術科学大学
豊橋技術科学大学 情報工学系
情報工学系
組込みリアルタイムシステム研究室
組込みリアルタイムシステム研究室
hhttttpp::////w
ww
ww
w..eerrttll..iiccss..ttu
utt..aacc..jjpp//高田広章, 若林隆行, 本田晋也

オープンソースのμITRON仕様OS: TOPPERS/JSPカーネル

μITRON仕様
ITRONプロジェクト☞ http://www.itron.gr.jp/
TRONプロジェクトのサブプロジェクトの1つ
組込みシステム用のリアルタイムOSとそれに関連する仕様の標準化を行う
1984年に開始．1996年頃から周辺仕様まで含めた標準化へと発展 (第2フェーズ)
半導体メーカを中心とする産学共同プロジェクト
μITRON仕様
ITRONプロジェクトにおいて標準化したリアルタイム
カーネル仕様 (ITRON仕様カーネル)※ リアルタイムカーネル
リアルタイムOSの核になるモジュール
リアルタイムカーネル＝リアルタイムOSである場合も高田広章, 若林隆行, 本田晋也

オープンソースのμITRON仕様OS: TOPPERS/JSPカーネル

ITRON仕様の歴史
ITRON
TCP/IP

32-bit MPU向けITRON2ITRON1

最初のITRON
カーネル仕様µITRON
3.0µITRON(ver. 2)

スケーラビリティの強化

8-bit, 16-bit
MCU向け
1984

1987

高田広章, 若林隆行, 本田晋也

第２フェーズ

ソフトウェア部品
カーネル仕様

第１フェーズITRON/FILE

1989

1993

JTRON
2.1

µITRON
4.0

互換性の強化1996 1998 1999 2000

オープンソースのμITRON仕様OS: TOPPERS/JSPカーネル

ITRON仕様カーネルの特徴
OSの小型軽量化が可能
ワンチップマイコンにも適用可能
仕様の理解が容易! 技術者教育のための標準化の側面を重視
完全にオープンな標準仕様
ロイヤリティなしで実装することができる
多種多様なプロセッサ用に実装できる/されている
8-bitワンチップマイコンから64-bit RISCマイコンまで異なるプロセッサへの移行が容易に多くの機器で使用実績がある
組込みシステム分野で最も広く使われているOS仕様
多くのメーカ/ベンダがサポート
高田広章, 若林隆行, 本田晋也

オープンソースのμITRON仕様OS: TOPPERS/JSPカーネル

ITRON仕様カーネルの開発状況
ITRON仕様カーネルの開発状況
多くの ITRON仕様準拠製品
ITRON仕様準拠製品登録制度
約40種類のプロセッサ用に約55の製品
その他にもいくつかの製品
メジャーな組込みシステム用プロセッサのほとんどすべて用に実装されている
海外メーカが関与する実装が増える
海外のソフトウェアメーカによる実装
海外半導体メーカとの共同/委託による実装
極めて多くの社内用の実装
いくつかのフリーの実装
高田広章, 若林隆行, 本田晋也

オープンソースのμITRON仕様OS: TOPPERS/JSPカーネル

ITRON仕様カーネルの利用状況
ITRON仕様カーネルの利用状況
最も広く使われているリアルタイムOS仕様
特に，コンシューマ機器の分野において，ITRON仕様カーネルが使用されている比率が高い
ITRON仕様カーネルの主な適用分野
AV機器, 家電
テレビ, ビデオ, デジタルカメラ, STB, オーディオ, 電子レンジ, 炊飯器
個人用情報機器, 娯楽/教育機器
PDA, 電子手帳, カーナビ, ゲーム機, 電子楽器
パソコン周辺機器/OA機器
プリンタ, スキャナ, ディスクドライブ, CD-ROMドライブ, コピー, FAX
通信機器
留守番電話機, 携帯電話, ATMスイッチ, 放送機器, 無線設備, 人工衛星
運輸機器, 工業制御/FA機器/設備機器, その他
自動車, プラント制御, 工業用ロボット, 自動販売機, 医療用機器
高田広章, 若林隆行, 本田晋也

オープンソースのμITRON仕様OS: TOPPERS/JSPカーネル

OSは必要ないので用いていない
18.7%

OSは問題があるので用いていない
3.1%

その他の市販OS

自社用のOS

13.9%

有効回答数：684

22 .2 %

16.2%
半導体メーカ製のOS

Linux
OS-9
QNX
pSOS
Nucleus Plus

VxWorks
Windows 3.1/95/98/NT/2000
MS-DOS
Windows CE

最近開発した組込みシステムに組み込んだOS(トロン協会による調査, 1999年末〜2000年頭, 日本)
高田広章, 若林隆行, 本田晋也

オープンソースのμITRON仕様OS: TOPPERS/JSPカーネル

OSは用いていない
有効回答数：684

21.8%
36 .5 %

その他のAPI(OS独自のAPIなど)

ITRON仕様(μITRON仕様を含む)

24.7%

Win32 APIOSEK/VDX OS仕様

POSIXまたはUNIX系のAPI

MS-DOSまたはDOS互換のAPI

最近開発した組込みシステムに組み込んだOSのAPI（複数のAPIを持つ／使用した場合には主に使用したもの）(トロン協会による調査, 1999年末〜2000年頭, 日本)
高田広章, 若林隆行, 本田晋也

2288

1270

242666

58

4331

その他

100%

その他の業務用機器
その他の計測機器

オープンソースのμITRON仕様OS: TOPPERS/JSPカーネル
49 124 23

48

OSを用いていない
80%
その他の自社用OS

60%
その他の市販OS40%

応用分野別の組込みOS高田広章, 若林隆行, 本田晋也

設備機器

パソコン周辺
機器/OA機器
工業制御/ FA機器

運輸機器

個人用情報機器
医用機器/
福祉機器
通信機器(ネットワーク設備)

AV機器

通信機器(端末)

家電機器

0%

娯楽/教育機器ITRON仕様OS

20%

オープンソースのμITRON仕様OS: TOPPERS/JSPカーネル

μITRON4.0仕様
μITRON4.0仕様 −− 策定の必要性
策定の必要性
ソフトウェアの移植性の向上
組込みソフトウェアの大規模化により移植性が重視
移植性の向上はソフトウェア部品流通の前提条件
ソフトウェア部品向け機能の追加
外販することを前提としたソフトウェア部品開発
新しい要求・検討成果の反映
リアルタイム性の保証を容易にするための機構
リアルタイム性を持ったソフトウェア部品
よりコンパクトな実装を可能にする仕様
自動車制御応用における要求事項の整理
半導体技術の進歩への対応
μITRON3.0を公開してから5年以上が経過
高田広章, 若林隆行, 本田晋也

オープンソースのμITRON仕様OS: TOPPERS/JSPカーネル

スタンダードプロファイルの導入
コンセプト
μITRONの適用分野の中で比較的大規模なシステムを想定し，標準的な機能セットを「強く」標準化
性能重視の小規模なシステムにはサブセットで対応
標準を越える要求のために拡張機能も定義
μITRON4.0仕様全体… 弱い標準化
スタンダードプロファイル … 強い標準化
言い換えると，移植性を重視するソフトウェア (例: ソフトウェア部品)
はスタンダードプロファイルの機能のみを用いる
ソフトウェアの移植性を重視する分野向けのカーネルはスタンダードプロファイルに準拠して実装する
高田広章, 若林隆行, 本田晋也

オープンソースのμITRON仕様OS: TOPPERS/JSPカーネル

TOPPERS/JSPカーネル
TOPPERS/JSPカーネルとは？
μITRON4.0仕様に準拠したオープンソースかつロイヤ
リティフリーのリアルタイムカーネル
2000年11月に最初のバージョンを公開☞ http://www.ertl.jp/TOPPERS/
名称の由来
TOPPERST oyohashi O p en P latform for E mbedded andR eal-Time S ystems の略称
後で紹介
プロジェクトの名称
JSP
J ust S tandard P rofile の略称
ソフトウェアの名称
高田広章, 若林隆行, 本田晋也

オープンソースのμITRON仕様OS: TOPPERS/JSPカーネル

開発の目的
μITRON4.0仕様の評価
μITRON4.0仕様のリファレンス実装
研究・教育機関における研究・教育のプラットフォーム
μITRON4.0仕様カーネル上のソフトウェア部品 (IP) 開
発のプラットフォーム (JSPであることに意味がある)
評価目的・プロトタイプ開発への利用
実製品への適用! 開発そのものは研究活動の一環とは位置付けていない
ソフトウェアの仕様
名前が示す通り，μITRON4.0仕様のスタンダードプロ
ファイル以上でも以下でもない
実際には，若干の拡張機能を持つ
高田広章, 若林隆行, 本田晋也

オープンソースのμITRON仕様OS: TOPPERS/JSPカーネル

ターゲット環境 (2001年5月現在)
モトローラ M68040 (MC68LC040)
日立 SH3 (SH7708, SH7709, SH7709A)
日立 SH1 (宮城県産業技術総合センターによりポーティング)
NEC V850 (テストコード)
ARM ARM7TDMI (未リリース)
インテル i386 (ユーザによりポーティング)
他のプロセッサへポーティングしたという報告もシミュレーション環境
Linux, Windows 上のシミュレーション環境
カーネル本体 (プロセッサ依存部) 以外は共通
開発環境
GNUのソフトウェア開発ツール (gcc, gdb など) を利用
開発環境まで含めてすべてフリーで構築可能
高田広章, 若林隆行, 本田晋也

オープンソースのμITRON仕様OS: TOPPERS/JSPカーネル

TOPPERS/JSPカーネルの特徴
読みやすく改造しやすいソースコード
ターゲットの違いを吸収する部分を除いて #ifdef を追放
ItIs, eCos に対するアンチテーゼ
定量的な評価は難しいが，読みやすさには自信あり
他のターゲットへのポーティングが容易な構造
実行性能を落とさないプロセッサの抽象化
高い実行性能と小さいRAM使用量! 大部分をC言語で記述したカーネルとしてはLinuxおよびWindows上でのシミュレーション環境
プロトタイプ開発を支援するためのデバイスエミュレーション機能
プロトタイプ開発，教育用に最適
フリーソフトウェアのみで開発環境まで構築可能
高田広章, 若林隆行, 本田晋也

オープンソースのμITRON仕様OS: TOPPERS/JSPカーネル

開発の経緯
1999年6月

μITRON4.0仕様完成・公開
評価のための実装の検討を開始
1999年末JSPカーネルのコーディング作業を開始
2000年1月 基本部分が完成・動作確認
2000年11月 最初のバージョンをリリース
2001年3月 V850サポートを追加
2001年5月 SH1サポートを追加

利用条件
独自に開発した部分は，GNUやBSDより自由に使えるフリーソフトウェアを目指して，レポートウェアとする大学としては成果をアピールする必要があり，「どこに使われているかわからない」では困る
高田広章, 若林隆行, 本田晋也

オープンソースのμITRON仕様OS: TOPPERS/JSPカーネル

利用条件の全文
最初に，ソフトウェアの名称と各著作者の著作権表示
上記著作権者は，以下の条件を満たす場合に限り，本ソフトウェア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
(1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作権表示，この利用条件および下記の無保証規定が，そのままの形でソースコード中に含まれていること．
(2) 本ソフトウェアをバイナリコードの形または機器に組み込んだ形で利用する場合には，次のいずれかの条件を満たすこと．
(a) 利用に伴うドキュメント（利用者マニュアルなど）に，上記の著作権表示，この利用条件および下記の無保証規定を掲載すること．
(b) 利用の形態を，別に定める方法によって，上記著作権者に報告する
こと．
(3) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害からも，上記著作権者を免責すること．

この後に，無保証規定が続く
高田広章, 若林隆行, 本田晋也

オープンソースのμITRON仕様OS: TOPPERS/JSPカーネル

オープンソースの力！
リリースしてから2週間で約600のサイトにダウンロード
ユーザのためのメーリングリストへの登録者は，現時点で約120名 (大半が最初の2週間に登録)リリースしてから1週間で，ユーザにより i386 (PC環境)へのポーティングが行われる (実質的な作業期間は3日間との報告)
ユーザによるその他の作業
他のプロセッサへのポーティング
コンフィギュレータの locale 対応
C++ API の実装
Linux上のシミュレーション環境でMGL (PDA-UNIX用のグラフィックライブラリ) を呼び出せるように
Plamo Linux, Linux/PPC での動作確認
高田広章, 若林隆行, 本田晋也

オープンソースのμITRON仕様OS: TOPPERS/JSPカーネル

TOPPERSプロジェクト
T oyohashi O p en P latform for E mbedded
and R eal-Time S ystems の略称「トッパーズ」と読む
t o p p e r [名詞] (リーダーズ中辞典より)
1 TOP１ する人[もの]; 上部のもの, 上層; 【商】 上積み 《みばを良くするため上部に並べた上等品》.
2 《口》 《女性用の》 軽いオーバー, トッパー; 《口》 TOP HAT.
3 《口》 す ぐ れ た も の [ 人 ] ; 《口》 従来のものをしのぐもの 《冗談など》, 傑作.

どのようなプロジェクトか？
組込みリアルタイムシステム構築の基盤となる各種のソフトウェアの開発を行うプロジェクト
豊橋技術科学大学 組込みリアルタイムシステム研究室を中心に，参加を希望する組織の協力を得て進める
高田広章, 若林隆行, 本田晋也

オープンソースのμITRON仕様OS: TOPPERS/JSPカーネル

プロジェクトメンバ
豊橋技術科学大学 組込みリアルタイムシステム
研究室
宮城県産業技術総合センター(非公式) 武蔵工業大学 石川研究室
ビジネスモデル
役立てた人には寄付をお願い (義務ではない)
サポートする会社が出てくるのは歓迎 or 探す(資)もなみソフトウェア
その上で動くソフトウェア部品を売る会社が出てくるのは歓迎 or 探す

高田広章, 若林隆行, 本田晋也

オープンソースのμITRON仕様OS: TOPPERS/JSPカーネル

進行中の開発項目
完成度を上げるための改良
ITRONデバッギングインタフェース仕様への対応
スタンダードプロファイル外の機能の追加
オーバーランハンドラ
ミューテックス (武蔵工業大学)
マルチプロセッサ用のカーネルへの拡張 (武蔵工業大学)
検討している開発項目
他のカーネル仕様 (他のプロファイル) への対応
メモリ保護機能を持ったカーネル
各種のソフトウェア部品，デバイスドライバ
JSPカーネルのソースコードがすべて掲載されたリアル
タイムカーネルの教科書などなど，夢は広がるが……
高田広章, 若林隆行, 本田晋也

オープンソースのμITRON仕様OS: TOPPERS/JSPカーネル

開発者のプロフィールと担当
高田 広章 ☞ http://www.ertl.ics.tut.ac.jp/~hiro/
豊橋技術科学大学 情報工学系 講師
担当: 開発とりまとめ, カーネル本体 (プロセッサ独立部),
M68040
若林 隆行 ☞ http://www.ertl.ics.tut.ac.jp/~takayuki/
豊橋技術科学大学大学院 電子・情報工学専攻 博士課程1年
担当: コンフィギュレータ, V850, Windowsシミュレー
ション環境
本田 晋也 ☞ http://www.ertl.ics.tut.ac.jp/~honda/
豊橋技術科学大学大学院 情報工学専攻 修士課程2年
担当: SH3, ARM, Linuxシミュレーション環境, 開発環
境高田広章, 若林隆行, 本田晋也