雑誌無償購読申込み 最新号 バックナンバー 広告資料請求 EDN Japanについて お問合せ
雑誌無償購読申し込み
メールニュースレター登録
登録内容変更
アナログ IC/ディスクリート
電源/電池/コントローラー
PLD / メモリー
組み込みシステム
コンピュータ&ボード
EDA/IP/CAE/ソフトウェア
電子部品
計測器
ディスプレイ
デジタル家電
通信・ネットワーク
カーエレクトロニクス/産業機器
EDN Japan 記事検索
検索方法の詳細
雑誌無償購読申込み ニュースレター登録 この記事に対する感想/ご意見
designfeature
2005年1月号
弱点を克服した組み込みLinux

リアルタイムの処理が求められる組み込みシステムでは、これまで市販のオペレーティングシステムが主流であった。しかし、Linuxは新たなカーネルなどにより、以前は弱点であったリアルタイム性能を向上させた。そのためリアルタイム組み込みシステム設計者にとって、Linuxが魅力的な選択肢となりつつあるのだ。

Warren Webb

組み込みシステムでのLinuxの弱点

 Linuxは世界中の組み込みシステム設計者の関心を集めてはいるが、今のところはまだ市販のオペレーティングシステムの方がリアルタイム・アプリケーションに関して優位に立っている。これは、マルチユーザーのアーキテクチャーやノンプリエンプタブル・カーネル、優先順位ではなく公平性に基づいたスケジューラーなどを実現できるかどうかということが大きな理由である。Linuxでもリアルタイム機能を実現できるのだが、そのためには組み込みシステム設計者が自分でその部分を書き直したり、第二のカーネルをインストールしなければならないことが敬遠されている理由だ。
Advertisement
 これらの弱点を修正するために、Linuxサポート・コミュニティーは最近、リアルタイム性能を向上させる多くの機能を取り入れた修正版のカーネルをリリースし、Linuxをさまざまなリアルタイム・アプリケーションにより適したものに進化させた。
 より手の込んだシステムや、複雑なインターフェースを必要とする顧客の要求にこたえるために、組み込みシステムは32ビット・プロセッサーに移りつつある。そして、多くの組み込みシステムが新しいオペレーティングシステムを求めているのだ。
 こういう状況で、Linuxは無料でダウンロードでき、完全なソースコードが付属していて、さまざまなプロセッサーとの互換性があることで、設計者の関心を引き付けた。細かい点では、モジュラー・アーキテクチャーやユーザーフレンドリーなライセンス方法、ワールドワイドなサポートコミュニティー、定評ある信頼性の高さ、標準プログラミング・インターフェース、無償のツール群、および成熟し十分にテストされたコードベースなど、多くの利点がある。こういった特徴は、組み込みシステムの世界において大きな意味を持つのだが、外部からのイベントに対する応答タイミングの正確性に欠けていることが、リアルタイム・アプリケーションでLinuxを使用する最大の弱点となっていた。
 標準的なLinuxカーネルはいくつかの基本的なアーキテクチャー上の理由から、リアルタイム・アプリケーションには向いていたとはいえない。例えば、プロセスがスケジューラーやデバイスドライバーなどのカーネルサービス*1)を呼び出した場合だ。この呼び出しは割り込みを禁止するため、そのサービスが実行完了するまで、Linuxがプリエンプト*2)することを不可能にしてしまう。同様に、一般のLinuxスケジューラーは、優先順位の高いプロセスが後に控えている場合でも、優先順位の一番低いプロセスにもいくらかのCPUタイムを保証するという公平性アルゴリズム(fairness algorithm)を使用している。この優先順位の低いプロセスが発生するタイミングは予測不可能であるにもかかわらず、Linuxは仮想メモリーへのユーザーコードのページスワッピングに依存している。
 これらの問題に対処し、カーネルの応答性を向上させるために、Linuxサポートコミュニティーは画期的な性能を実現するパッチや回避方法を考え出した。一つのアプローチは、プリエンプションポイントをカーネル内に組み込み、プロセスの待ち時間を減少しつつも、一方でクリティカルなコード部分を保護するというものだ。
 例えば、米MontaVista Software社の修正版Linuxカーネルは、通常の組み込みプロセッサーで、もっとも時間がかかるケースのプリエンプション・レイテンシー*3)を数百μsから1μs以下に減少させ、さらに平均のプリエンプション・レイテンシーを数十μsに向上させた(図1)。また改良されたスケジューラーは、プロセッサーが優先順位の高いタスクを優先して実行することを保証している。これらのパッチはまだ完全ではないが、標準のLinuxカーネルに対して大幅な改善効果をもたらしている。
 このLinuxをリアルタイムに適したオペレーティングシステムへと修正する方法の弱点は、これらが標準Linuxカーネルに非搭載のものであり、カーネルの更新に対して個別のサポートと再実装が必要となることだろう。


リアルタイム性を高めるカーネル

 2番目のアプローチは、小さなリアルタイムカーネルを追加して優先順位の高いタスクを処理し、その一方でLinuxが一番低い優先順位として動作することで残りの非リアルタイムのタスクを処理するというものだ。このアプローチは最高のリアルタイム性能をもたらす。なぜなら、Linuxが割り込み禁止にすることを許可しないからだ。
 「RTAI」*と「RTLinux」は、開発者がデュアルカーネル・アプローチによって開発したオープンソース・プロジェクトだ。RTLinuxの無料バージョンはまだ入手可能であるが、最新の改良の大部分は米FSMLabs社の独自バージョンである「RTLinux/Pro」で行われている。デュアルカーネル・アーキテクチャーのデメリットはリアルタイムタスクがカーネル空間で実行されなければならないということと、通常のLinuxプロセスデータの分離と保護という概念が存在していないということである。
 Linuxの組み込みシステムにおけるリアルタイム・プロジェクトは、2003年12月にリリースされたカーネル、バージョン2.6により一気に進んだ。バージョン2.4用に開発された多くのリアルタイム用のパッチは、それ以降はLinuxの恒久的なものとなり、バージョン2.6では標準のビルド*4)オプションとなったためである。
 この最新のバージョンでは、カーネルはスケジューラーがアクティブなタスクを中断し、より優先順位の高いタスクを開始することを可能にする多くのプリエンプションポイントを含んでいる。開発者はまた、プロセスのタイミングを大きく破壊するページスワッピングを行う仮想メモリーシステムなしにカーネルを構築することができる。さらに、バージョン2.6ではマルチタスキング・アプリケーションでのタスク切り替えを高速化するプロセス・スケジューラーに書き換えている。
 バージョン2.6は、Linux Posix(Unixのためのポータブル・オペレーティングシステム・インターフェース)のインプリメンテーションの改良を含んでいる。この一連のプログラミング・インターフェースが標準化されたことにより、プログラマーはオペレーティングシステム間で移植可能なアプリケーション・ソースコードを書くことができる。Posixの仕様は、オープングループ(Open Group)のウェブサイト(www.unix.org)で確認できる。
 リアルタイム性の向上に加え、バージョン2.6カーネルは、組み込み、デスクトップおよびサーバーの各アプリケーションにさまざまなメリットを提供する多くの改訂部分が含まれている。例えば、BluetoothやUSB2.0といった拡張周辺機器インターフェース・オプションや、ALSA(Advanced Linux Sound Architecture)などにより、アプリケーションは複数のオーディオ・ストリームを処理することが可能となった。またVideo4Linuxはビデオサブシステムを追加した。
 組み込みシステムのためのそのほかの改良により、ユーザーインターフェースの存在しないアプリケーションのための小さなビルドを実現した。バージョン2.6は、uClinux(ユー・シー・リナックスと発音する)プロジェクトの多くを、メインストリームのカーネルに取り入れている。uClinuxプロジェクトにより、Linuxはメモリー管理ユニットを持たない低コストのマイクロコントローラー上でも動作可能となった。
 バージョン2.6はすべての組み込みシステム・アプリケーションにとって歓迎すべき全面的な改良となった。しかし、その半面でいくつか技術以外の問題もあり、新たに組み込みシステムにLinuxを使おうとする新規ユーザーの心配の種となっている。
 例えば、LinuxにはUnix独自のコードが含まれていると主張しているSCOグループの法的な異議申し立てだ。これにより、コードの変更やロイヤルティーを支払わなければならなくなる可能性が出てくるのだ。このSCOグループの論争の最新の情報とすべての経緯はLinuxオンライン(Linux Online)のウェブサイト*5)で入手できる。
 またソフトウエア・コミュニティーでは、潜在的なセキュリティーの問題が議論されている。テロリストがオープンソースの開発プロセスを通じて汚染されたソフトウエアをもたらし、Linuxベースの軍事および防衛システムを破壊する恐れがあるというのだ。
 ユーザーフレンドリーなLinuxのライセンス協定には、組み込みシステムの開発者にとっては長所と短所がある。長所は、Linuxを無償でダウンロードして製品に組み込み、ロイヤルティーの支払いをせずとも製品をいくらでも販売することができるということである。
 とはいえ、Linuxは完全な著作権フリー(パブリックドメイン)のソフトウエアではない。その使用に一定のルールがあり、GNU GPL(general-public license)の下でライセンスされているのである。GPLソフトウエアを修正し、配布する場合には、その修正は自動的にGPLの管理下になり、第三者から要求があればだれにでもそのソースコードを提供しなければならない。しかし、アプリケーション・プログラムやデバイスドライバーがLinuxカーネルと分離されて別のものであったり、非GPLコードを含むものであれば、それらは開発者に所有権があるものとなる。このコードの分離は開発者、特にROMに書き込まれたソフトウエアが、すべてのソフトウエアを互いにリンクしている小型の組み込みシステムを設計している開発者にとっては常に悩みの種となっている。これが短所に当たる。


LinuxとRTOSとの共存

 組み込みシステムに対するLinux人気の高まりを気にしつつ、多くの市販RTOS(real time operating system)ベンダーは、ツールや各種のサポートを提供し、自身のハードウエアやリアルタイム・アプリケーション用の独自ソフトウエアを推奨することにより、オープンソースの動きに参入しようと計画してきた。
 米LynuxWorks社は最初にこのアプローチを取った企業の1社である。同社は自社の「BlueCat Linux」を提供している。最新の製品であるバージョン5.0では、改良されたプリエンプションやスケジューリング、およびPosix機能を備えるLinux 2.6のカーネルを含んでいる。
 LynuxWorks社は、Linuxおよび同社独自の「LynxOS」ソフトウエアに対して互換のある開発ツールやサポートサービスを提供している。Windowsベースのコンピューターを使用している開発者向けには、LynuxWorks社は「VisualLynux」を提供している。これは、米Microsoft社の「Visual Studio IDE」の拡張版であり、開発者はこれを使ってLynx OSやBlueCat Linuxのアプリケーション・ソフトウエアを開発することができる。
 独自RTOSの最大手ベンダーである米Wind River社は最近、米Red Hat社と提携し、共同で「Red Hat Embedded Linux」を開発すると発表し、ニュースとなった。Red Hat Embedded Linuxはまだリリースされていないが、当初はハイエンドのルーターやスイッチといったキャリアグレードのネットワーク装置用のデバイス・ソフトウエア・マーケットのCOTS*分野をターゲットとしている。
 Red Hat社のLinuxは、Wind River社のLinuxベースのプラットフォームの基本部分となっている。Wind River社の開発ツールやミドルウエアおよび各種のサービスは、Red Hat社のLinuxに対応したものになっていくであろう。Wind River社によると通信、航空、防衛やそのほかのハイエンドの産業オートメーション業界では、マルチプロセッサ・システムでLinuxとVxWorksを使用しているという。
 マルチブレードのネットワーク・コミュニケーションや組み込みシステムのマーケット向けに、スウェーデンのEnea Embedded Technology社は米MetroWerks社と手を組んでいる。そしてLinuxプラットフォーム生成スイートとしてLinuxおよびEnea Embedded Technology社の「OSE RTOS」用の開発ツール「CodeWarrior」、カスタマー指向のボードサポート・パッケージ、LinuxとOSEのためのライセンスおよび各種サポートを提供している。
 この組み合わせにより、開発者は必要とするブレード機能に応じて、OSE、DSP用OSEck、およびLinuxから選択することができる。Enea Embedded Technology社はまた、オペレーティングシステムに関係なくアプリケーション間での通信を可能にする透過性*6)のメッセージパッシング・ゲートウェイを提供している。Enea Embedded Technology社の基本ツールセットであるプラットフォーム開発スイート「Orchestra」は現在、1プロジェクトでの開発者1人当たり4995米ドルの年間会費で利用可能となっている。
 組み込みシステム・マーケットの開発ツール分野は、リアルタイム・アプリケーションでは特に重要だ。すべてのLinuxは、同じカーネルおよびコアのGNUコンパイラー・コレクション・ツールチェーンのさまざまなバージョンを実装しているが、それらの構成はそれぞれ異なり、プラットフォームやアプリケーションによって追加のサポートソフトウエアを必要とする。いくつかのツールベンダーは、グラフィカルで視覚的なインターフェースを導入して、自社の製品をグラフィカルなオープンソースである「Eclipse」開発プラットフォームに組み込んでいる。これはツールの展開や統合、実行を簡単にするものだ。
 例えば、米TimeSys社の開発・試験環境である「TimeStorm」はLinux、WindowsおよびSolarisベースの開発ツールセットであり、C/C++/Javaの組み込みおよびリアルタイム・アプリケーションの生成、編集、コンパイル、管理およびデバッグにわたって制御を行うことができる(図2)。TimeSys社のツールはノードロックあるいはフローティング・ライセンス・ベースでそれぞれ利用可能である。TimeSys社のサブエレメント「Timestorm IDE」は、初年度の使用料およびサポート費用として5400米ドルが追加となる。

Linux搭載ハードウエア

 組み込みシングルボード・コンピューターのベンダーもまた、Linuxのディストリビューターと手を組んで、あらかじめ自社のハードウエア用に構成されたソフトウエア・パッケージを顧客に提供している。
 例えば、独Kontron社の6UシングルスロットのCompactPCI「CP605 CPU」はペンティアム4プロセッサーをベースにした製品だ(図3)。これは2.0GHz〜2.4GHzで動作する高性能バージョン、または1.2GHz〜2.2GHzで動作するモバイル・ペンティアム4-Mプロセッサーを使用した低消費電力バージョンが用意されている。このボードはギガビット・イーサネットが2ポートと、高速イーサネットが1ポートのほかに、USB2.0を5ポート搭載している。CP605はまたPICMG 2.16 パケット交換バックプレーン仕様をサポートし、32ビット33MHzのPMCインターフェースを備えている。TimeSys社はこのCP605向けのボードサポート評価パッケージ、およびLinuxアプリケーション開発のための完全なソフトウエア・ツール・チェーンを無償で提供しているのだ。
 米Arcom社のシングルボード・コンピューター「PC/104」は、米Intel社の400MHzの「XScale」プロセッサー「PXA255」を搭載した。動作温度範囲は広い。このPC/104はFSMLabs社のハードリアルタイムLinuxオペレーティングシステムをサポートしている(図4)
 また、Arcom社はRTLinux/Proの評価バージョンを付属した「Viper」ボードも供給している。逆に、FSMLabs社もRTLinux/Proをプリインストールしたボードを販売している。Viperボードは、フラットパネル・グラフィックス・コントローラーやオーディオ・コントローラー、10/100BaseTイーサネット、5つのシリアルポート、2つのUSB、デジタルI/O、オンボード・フラッシュメモリー、およびコンパクトフラッシュ拡張機能を備えている。16MBのDRAM、8MBのフラッシュメモリー、バッテリー・バックアップ機能を備えた256KBのSRAMを含む「Viper M16-F8」の価格は、435米ドルからとなっている。
 新しいCELF(Consumer Electronics Linux Forum)インダストリーグループは、家電機器向けのオープンソース・プラットフォームとしてLinuxの進展に注目している。最近リリースされたCELF仕様とリファレンス・インプリメンテーションは、セットトップボックス、デジタルビデオ・レコーダーやビデオカメラなどのデバイスへのオーディオおよびビデオ機能をサポートするために、Linuxを組み込みシステムとして活用した際のリアルタイム特性の向上に注目している。CELF仕様とリファレンス・インプリメンテーションは、ウェブサイト(www.celinuxforum.org)からダウンロードできる。
 組み込みシステム向けLinuxに関するより詳細な情報が必要な場合は、オープンソースおよび市販のLinux製品に関する膨大な情報をウェブサイト(www.linuxdevices.com)で見ることができる。このサイトでは、Linuxプログラミングの最新のニュースや記事、、チュートリアル、利用可能なディストリビューターのリスト、および組み込みシステムのトピックスに関するフォーラムなどが公開されている。
 Linuxを使用した製品が、組み込みシステムで成功を収めたことにより、リアルタイムシステムのマーケットにおいて、Linuxは影響力を持ちつつある。タイミングの改善を重視した新しいカーネル、そして活発な活動をしている開発コミュニティーによって、Linuxは今後も間違いなくリアルタイムシステム・マーケットにアピールしていくことになるだろう。

用語解説 / 会社情報
*1)サービス
標準化された手順で呼び出すことができる単独のソフトウエアを指す。
▲本文へ戻る
*2)プリエンプト
待機命令を持つアプリケーションに対して、短時間ずつCPUの実行を許可する動作
▲本文へ戻る
*3)レイテンシー
転送命令を出してから転送が開始されるまでの時間(呼び出し時間)
▲本文へ戻る
【RTAI】
Real Time Application Interface
▲本文へ戻る
*4)ビルド
コンパイルされたプログラム。
▲本文へ戻る
*5)
Linuxオンラインウェブ
http://www.linux.org
▲本文へ戻る
【COTS】
commercial off-the-shelf
市販品
▲本文へ戻る
*6)透過性
システムを利用者が意識せずに利用できること
▲本文へ戻る
雑誌無償購読申込み ニュースレター登録 この記事に対する感想/ご意見
Reed Electronics Group
Electronic BUSINESS Japan | Design News Japan | Semiconductor INTERNATIONAL | DETAIL JAPAN
EDN Japanについて | 広告掲載について | サイトマップ | お問合せ
 Copyright (C) 2000-2007 Reed Business Information Japan K.K. 
個人情報に関する方針 | 著作権・リンクについて | 会社情報