SafeGは同一ハードウェアプラットフォーム上で、汎用OSとRTOSを安全に同時実行できる高信頼デュアルOSモニタです。SafeGでは汎用OSとRTOSの同時実行を実現するために、ARMプロセッサのTrustZoneセキュリティ拡張機能を利用します。
トラスト状態/ノントラスト状態を制御するために、モニタモードと言う新しいモードが追加されています。SafeGは割込み禁止状態かつモニタモードで、トラスト状態とノントラスト状態を切り替えます。
SafeGのアーキテクチャ
SafeGを用いたシステムのデモの構成図と動画を次に示します。このデモでは、トラスト状態でASPカーネルを、ノントラスト状態でLinux + Androidを動作させています。ASPカーネルでは,カメラの制御や倒立二輪車(PUPPY)の倒立制御を行っています。ASPカーネルとAndroid上のアプリの間は,SafeGが提供するOS間通信機能(COM)を使用して倒立二輪車の制御値をAndroid上のアプリに渡して表示しています.また,ASPカーネルからLinuxの再起動が可能です。
SafeGのデモ構成図
SafeGのデモ動画
トラスト状態ではIRQ割り込みが禁止されています。そのため、汎用OSの割り込みが、RTOSの実行に影響を与えることはありません。
一方、ノントラスト状態では、いつでもRTOSにプロセッサの制御を渡せるように、常にFIQ割り込みが許可されています。また、ノントラスト状態でFIQ割り込みを禁止出来ないように設定されています。そのため,RTOSの割込みを汎用 OSが禁止することはできません。
対象型マルチコアプロセッサシステムを対象とする汎用OSとRTOSの同時実行が可能です。最新のリリースでは、汎用OSとしてLinux、RTOSとしてTOPPERS/FMPカーネルに対応しています。
汎用OS・RTOS間で、安全にOS間のデータ通信を行うことが可能です。この通信はロックフリーの実装となっており、RTOSのリアルタイム性に影響を与えないように配慮されています。
RTOSタスクと、汎用OSタスクの優先度を混合することが可能です。これにより、RTOSのハードリアルタイム性を守りつつ、汎用OSの一部のソフトリアルタイム処理優先度を上げることができます。
SafeGの実行には、TrustZone搭載プロセッサが必要です。TrustZone搭載プロセッサには次のようなものがあります。
加えて、ターゲットハードウェアには以下のTrustZoneサポートが必要となります。
最新のリリースでは次のボードに対応しています。
過去のリリースでは次のボードに対応しています。
最新のリリースでは次のゲストOSに対応しています。
SafeGの開発は名古屋大学情報科学研究科TOPPERSメンバーによって、TOPPERS内のプロジェクト管理ツールで行われています。ユーザ向けのパッケージはここからダウンロードできます。
safeg-1.2.1.tar.gzはパッケージに問題があるため公開を中止しています。
最新のリリース | |||
パッケージ | リリース | サイズ | リリース日 |
---|---|---|---|
safeg-1.2.5.zip | 1.2.5 | 1.3M | 2019-01-11 |
safeg-1.2.4.zip | 1.2.4 | 1.3M | 2017-05-23 |
safeg-1.2.3.zip | 1.2.3 | 1.32M | 2016-07-22 |
safeg-1.2.2.tar.gz | 1.2.2 | 1.16M | 2015-10-13 |
1.2.1 | 1.16M | 2015-10-01 | |
safeg-1.2.tar.gz | 1.2 | 1.2M | 2015-09-17 |
safeg-1.1.tar.gz |
1.1 | 1.16M | 2015-08-12 |
safeg-1.0.tar.gz | 1.0 | 1.8M | 2013-12-03 |
safeg-0.5-armadillo-800-eva-21mar2013.tar.gz | 0.5 | 7.5M | 2013-03-21 |
safeg-0.4-qemu-14dec2012.tar.gz | 0.4 | 644KB | 2012-12-14 |
safeg-0.4-13jul2012-src.tar.gz | 0.4 | 8.5MB | 2012-07-13 |
safeg-0.4-13jul2012-bin.tar.gz | 17MB | ||
safeg-0.3-22dec2011-src.tar.gz | 0.3 | 8.0MB | 2011-12-22 |
safeg-0.3-22dec2011-bin.tar.gz | 12.4MB | ||
safeg-0.2-10jun2011-src.tar.gz | 0.2 | 4.1MB | 2011-06-08 |
safeg-0.2-10jun2011-bin.tar.gz | 7.0MB |
プリビルドバイナリ | |||
パッケージ | SafeGパッケージバージョン | サイズ | リリース日 |
---|---|---|---|
safeg_socfpga-20131203.tar.gz | 1.0 | 2.8M | 2013-12-03 |
safeg_zynq-20131203.tar.gz | 1.0 | 2.3M | 2013-12-03 |
SafeGの開発に参加している開発スタッフは次の通りです(所属は参加した時点のもの)。
名前 | 所属 | 時期 |
---|---|---|
高田広章 | 名古屋大学 情報科学研究科 | 2009年〜 |
本田晋也 | 名古屋大学 情報科学研究科 | 2009年〜 |
Daniel Sangorrin Lopez | 名古屋大学 情報科学研究科 | 2009年〜 |
太田貴也 | 名古屋大学 情報科学研究科 | 2010年〜 |
※ 開発スタッフの名前は、掲載を了承された方のみ記載しています。