ソフトでもハードでもノンリアルタイムでもOKなRTOS環境「SHaRK」リアルタイムOS列伝(55)(1/3 ページ)

IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第55回は、ホストOSの上でリアルタイム環境を提供するライブラリ群として提供されるRTOS環境である「SHaRK」を紹介する。

» 2025年02月03日 08時00分 公開
[大原雄介MONOist]

 「SHaRK」、正式には「S.Ha.R.K.」で、これは“Soft HArd Real-time Kernel”の略だそうだ。名前の通りソフトリアルタイム、ハードリアルタイム、さらにはノンリアルタイムなアプリケーションを稼働させるカーネルをベースとしたリアルタイムOS(RTOS)環境である。「RTOS」ではなく「RTOS環境」なのがポイントで、SHaRKはホストOSの上でリアルタイム環境を提供するライブラリ群として提供されるという、ちょっと珍しいものだ。

⇒連載「リアルタイムOS列伝」バックナンバー

イタリアで開発されたリアルタイムカーネル「HARTIK」がベース

 SHaRKは、イタリアのSSSA(Scuola Superiore di Studi Universitari e di Perfezionamento Sant'Anna:サンターナ大学院大学)のReTiS Labと、同じくイタリアのパヴィア大学により、リアルタイムシステム構築の教材および実際のシステム構築用のソフトウェアとして開発されたもので、欧州の多くの大学で教材として利用されていた(現在どの程度利用されているか、は不明)。システム構築の方は商用というよりはやはり大学の研究プロジェクト向け(図1)といったところ。

図1 図1 SHaRK ProjectのWebサイトページ。ただここでComplete listのリンクは死んでいるので注意[クリックでWebサイトへ移動]

 図1内の「FIRST」は、SHaRKに階層型スケジューリングやフレキシブルスケジューリングなど、色々なスケジューラを搭載するという研究プロジェクト。「Servo Control Interface」は、サーボ制御基板をSHarKからRS-232C経由で制御しようというもの。「CHIMERA」は6脚のロボットを、上に乗ったPC-104ボード上で動作するSHaRKで制御するもの。……という具合に、いずれも商用ではなく研究用などのシステムではあるが、実際にSHaRKが利用されてシステムが構築されている。

 変わったものとしては「PCI6025E Driver」だろうか? これはNI(National Instruments)のPCI-6025EというマルチファンクションI/OボードをSHaRKから利用するためのドライバである。要するに、計測機器を利用した測定の制御をSHaRKで行わせるためにドライバが必要になったので作った、というものだ。

 SHaRKはもともと、HARTIK(The HArd Real TIme Kernel)という名称で、SSSA 教授のGiorgio C. Buttazzo氏(HARTIK開発当時はパヴィア大の准教授)が率いるチームによって開発されていたリアルタイムカーネルを基にしている。このHARTIKは、ハードウェア依存となる小さな部分を除いてC言語で記述され、仮想マシンのサービス(Context Switching、Interrupt、Exception、Memory Management)を提供していた。移植性を高めるために、ハードウェアに依存するContext Switchingと、Scheduling Policyに要求されるTask Managementを完全に分離する構成になっている。

 このHARTIK、x86とDECのAlpha AXP、それにMC68030のプラットフォームに移植され、またデバイスとしてキーボードとRS-232C、VGA/VESA-2.0 Video、SB16、3COM(おそらく3C501あたり?)とNE2000、PS/2マウス用のドライバを完成させ、IDE HDDを作業中といった話が出ていたが、このHARTIKがそのままSHaRKに移行することになった(厳密に言えば「進化」なのだそうだが)。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.