組込みコラム:組込みシステムにPOSIX仕様OSを利用するメリット
世界中で最も普及している標準OSのひとつ、POSIX仕様OSが、組込みシステムに採用されるケースが増えてきています。組込みLinuxはその一例です。Google社を中心とするOpen Handset Alliance(OHA)によって策定が進んでいるモバイルプラットフォーム「Android」も、カーネルにLinuxを採用しています。
この背景には、カーナビ、カーオーディオなどの車載機器やデジタル家電、監視カメラなどをはじめとするあらゆる組込みシステムが、高度化および高機能化してきたことがあります。開発するソフトウェア量が膨大になってきたこと、スタンドアロンの動作ではなくネットワークを介した機器間の通信や連携動作が必要になってきたことなどから、こうした課題を解決できるPOSIX仕様OSが注目されるようになってきました。
POSIXとは
POSIXは、UNIX系OSの標準インタフェースを規定した仕様です。IEEEが1988年にIEEE Std 1003.1-1988として公開して以来、改定が重ねられています。UNIXは、米AT&T社のベル研究所によって開発されたのち、1970年代以降、様々な企業や大学、機関に普及しました。同時にそれぞれに改変が加えられたため、様々な実装が存在します。こうした状況を受けて、POSIX(Portable Operating System Interface)は、その名のとおりUNIX系OS上で動作するソフトウェアのソースコードレベルでの移植性を高めることを目的に策定されました。POSIX仕様OS向けに開発されたソフトウェアは、ほかのPOSIX仕様OS上でも、最小限の作業で再コンパイルして実行させることができます。サーバを起源とするUNIXですが、POSIXには改定の中で組込みシステム向けの機能も取り入れられています。
POSIXのメリット
POSIX仕様OSを組込みシステムに採用するとどんなメリットがあるのでしょうか。POSIXの目的であるアプリケーションの移植性向上のほかに、主な利点として次の二つが挙げられます。
ソフトウェア資産が豊富

GNUプロジェクトをはじめ、世界中の開発者が、POSIX仕様OS上で動作するオープンソースの様々なソフトウェアを今現在も開発しています。ドライバやミドルウェアのほか、アプリケーションも含まれます。特にネットワーク関連のミドルウェアは充実しています。また市販のソフトウェアも各地で流通しています。こうしたUNIX資産を活用することにより、自分でソフトウェアを開発する必要がなく、競争力の源泉となるアプリケーション開発に専念できます。
エンジニアリソースの確保が容易
UNIXプログラミング経験のあるエンジニアは世界各地にたくさんいます。組込みシステムの開発経験はなくても、エンタープライズ系システムでのUNIXプログラミングの知識と技術を生かして、POSIX仕様OS上で組込みシステム向けのアプリケーションを開発できます。こうしたエンジニアリソースを活用できれば、慢性的な技術者不足や低コスト化といった課題の解決につながります。
組込みシステムに適したPOSIX仕様OSの条件
組込みシステム特有の性能・機能の達成
組込みシステムは、サーバやPCとは異なり、ハードウェア資源の制限、入出力などのイベントに対する厳格な時間制限、消費電力の制限など、独特の様々な制限があります。組込みシステム用のOSには、高速な割り込み応答性やタスクスイッチなどの優れたリアルタイム性、起動時間・シャットダウン時間の高速性、小さなメモリサイズといった性能の実現が必須です。POSIX仕様OSが組込みシステム向けで使用されるには、こうしたハードルをクリアする必要があります。
POSIX仕様の実装レベル

一口にPOSIX仕様OSといっても、その実装レベルはさまざまです。というのも、POSIX仕様には30以上の個別仕様が含まれており、どれをサポートしてどれをサポートしないかはOSベンダーが選択できます。実装内容を明確に示していれば、「POSIX仕様準拠である」と言うことが認められています。このため、一部のPOSIX仕様だけしかサポートしていなくても、POSIX仕様準拠と謳っているものが市場に多くあります。たとえば他仕様OSのラッパーライブラリとして実装されたものや、限定のPOSIX機能しか提供しないOSなどもPOSIX仕様OSです。組込みシステム開発でPOSIX仕様の恩恵を受けるためには、OSを選択する際に、活用したいUNIXソフトウェア資産が利用しているPOSIX機能が実装されているか、といったPOSIX機能の実装レベルに着目することが重要です。また、POSIX仕様には含まれていないが、UNIXプログラミングでよく使われる機能が実装されているか、といった点も重要です。たとえば、次のような点がサポートされているかどうかがポイントです。
- ユーザアプリからだけでなくカーネルアプリからのPOSIX API利用
- UNIXソフトで多く使われている、プロセス間通信機能を提供するシグナル
- プロセスとスレッド(pthread)
- 共有ライブラリ(Shared Library)とDLL
- FATやUDFなど、複数の物理ファイルシステムのプラグイン
- INETドメインに加え、プロセス間通信として使えるUNIXドメインでのSocketの利用
- 実装されているPOSIX APIの数
組込みLinuxの課題
サーバなどの分野で発展してきたLinuxも、組込みシステム向けに上記のような性能の改善が続けられていますが、開発当初から組込みシステム用途に特化したOSと比べると、まだまだ大きな差があります。そのほかに組込みLinuxには次のような課題もあります。Linuxが採用しているGNU GPL(General Public License)のライセンス条件により、ソースコードを開示したくない、企業秘密のソフトウェアをLinux上で実装するには、GPLのライセンス条件を熟知し、システムの設計や実装に特定の工夫が必要です。また、実際に量産する組込みシステムに搭載するには、Linuxの品質と性能の保証や、第三者の知的侵害などの法的な問題にも、自らが責任を持たなくてはなりません。頻繁に行われるLinuxカーネルの修正リリースやリビジョンアップのたびに、修正内容をその都度把握し、開発中のシステムやリリース済みのシステムに必要なものを取捨選択する必要があります。日々アップデートされるオープンソースコミュニティを巡る幅広い情報の中から、環境や動向を分析し、必要な情報を見極めるには、オープンソフトウェアコミュニティに関する深い知識をもち、常にアンテナをはりめぐらせておく必要もあります。
OSの性能や機能そのものに加え、ライセンス条件や保証の問題、情報管理のしやすさも、納期やコストの制限に追われる忙しい組込みシステム開発者が使うPOSIX仕様OSに、必要な条件だと言えるでしょう。
イーソルは、組込みシステム向けリアルタイムOSであるT-Kernelを拡張して開発した、POSIX仕様準拠リアルタイムOS「eT-Kernel/POSIX」を提供しています。μITRONの次世代OSとして誕生したT-Kernelは、もともとの出発点が組込みシステム用途なので、リアルタイム性や起動時間の速さ、メモリの小フットプリントなどは、大前提として備わっている最もベーシックな特長です。eT-Kernel/POSIXには、イーソルがリアルタイムOSベンダーとしての技術とノウハウをもとに、独自にさらなる機能と性能改善を行っています。さらに、単なるラッパーライブラリではなく、T-Kernelコア内部に手を入れてチューニングすることで、性能を損なわずに本格的なPOSIX機能を実装しています。The Open Base Specifications Issue 6/IEEE Std 1003.1, 2004 Editionに準拠しており、カーネルアプリからのPOSIX API利用や、プロセス、スレッド(pthread)、シグナル、Shared Library、DLLのサポート、異なる物理ファイルシステムのプラグインサポート、UNIXドメインとINETドメイン両方でのSocket利用サポート、といった本格的なPOSIX機能を実現しています。また、仕様で規定されているほとんどの、900以上のPOSIX APIをサポートしています。
またLinuxのケースとは異なり、eT-Kernel/POSIX上で開発したソフトウェアのソースコード開示の義務はないライセンス体系を採用しています。バージョンアップやリビジョンアップ、製品サポートに加え、カスタマイズやポーティングなどを含むプロフェッショナルサービスはイーソルが責任を持って行っています。
- eT-Kernel/POSIXご紹介
- 資料『「eT-Kernel/POSIX」〜Linuxの課題を解決する拡張版T-Kernel〜』(PDF)
「カタログ・資料ダウンロードサービス」よりダウンロードできます。- ダウンロードには、無料登録が必要です。
- 「登録ユーザ」の入り口からログイン後、「マテリアル検索」画面にて、PMコードのフィールドに「BGD_97K_100_000」を指定して検索してください。

