FreeRTOSがライバル!? イタリア発のRTOS「BeRTOS」は古のBeOSとは関係ない:リアルタイムOS列伝(50)(1/3 ページ)
IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第50回は、イタリア発のRTOS「BeRTOS」を紹介する。
「BeRTOS」は、イタリアのDeveler S.r.l(S.r.lはイタリアの有限責任会社)によるオープンソースの形で提供されていた(いる?)リアルタイムOS(RTOS)である。名前だけ聞くと、古のBeOSとの関係が何かあるのではないかと思ってしまうが、どうもそういう話ではないらしい。
このBeRTOSという名前の名付け親は、Develerの共同創業者であるBernardo Innocenti氏(同名のバイオメカニクスの教授がベルギーにおられるが、完全な別人。ちなみにInnocenti氏はその後Develerでさまざまな職を経て、現在はSpaceXのSenior Firmware Engineerを務めている)だそうだが、何でこの名前を付けたのかはさっぱり分からないままである。別にOSの構造がBeOSに似ている、というわけでもなさそうだ。
マルチタスクカーネル搭載、FreeRTOSと比べて25〜30%高速
さてそんなBeRTOSだが、Develerが2009年に公開したプレゼンテーションがSlideShareに残っているので、これをベースに紹介したい。
Develerは2001年創業(2002年という情報もあるが、もろもろの情報を突き合わせると多分2001年が正しい)の、組み込み向けソリューションの提供を目標とした会社である。現在同社が提供する製品というかソリューションはこちらのWebサイトにまとまっているが、こうしたビジネスとは別に当初からオープンソース的な活動を考えていたらしい。その最初のターゲットがRTOSだったわけだ。
BeRTOSのv1.0は2001年にリリースされていることを考えると、Innocenti氏ないしZinanni氏(Develerの共同創業者で、現CEOのSimone Zinanni氏)が創業前から手掛けていた可能性もある。
そんなBeRTOSであるが特徴は以下の通りである。
- 複数アーキテクチャに対応。8bit AVRと32bit ARM7に対応できる
- マルチタスクカーネルを搭載。カーネルはPreemptiveであり、複数のタスク間調停メカニズム(IPC、Semaphore、Priority制御)を提供
- GUIにも対応できるSimple Graphicsをサポート。フォントやBitmap、Clipping、Text formatting、Interactive Menuなどの機能が利用できる。もちろんシンプルなコンソールも利用可能で、その際のCommand Parserも用意される
- 複数のデバイスドライバ(Timer、Serial、ADC、NTC、PWM、Stepper Motor、DC Motor、LCD、Keyboard、Buzzer、EEPROM)をBeRTOS側で用意
- ビルドインの形で疑似乱数およびエントロピー生成、CRC/MD2とDouble-Hashing Collision resolution機能付きのフルハッシュテーブル、XMODEM、RLEの各アルゴリズムを提供
最初の方はともかく、ビルドインでXMODEMをサポートというあたりが時代を感じさせる。
肝心のRTOSとしての性能は以下のような数字が示されている。
- 全てのカーネルモジュール(Semaphore/Signal/Message Queue)を含んだ状態でのフラッシュのフットプリントは数KB
- SRAM利用量はプロセスに比例
- スタック利用量は、最小構成だと32ビットARMで200バイト、8bit AVRで100バイト
- Context Switchingは48MHzの32bit ARMで2.2μsec
ということはサイクル数で100サイクル少々ということで、確かにContext Switchingはかなり高速であることが分かる。ちなみに競合RTOSと比べて25〜30%高速、というのがうたい文句であるがこの競合RTOSというのはFreeRTOSのことらしい(図1)。
Copyright © ITmedia, Inc. All Rights Reserved.