組込みシステム構築に リナックスを使う真価は何か

組込みシステム構築に
リナックスを使う真価は何か
2007年11月
株式会社富士通ソフトウェアテクノロジー
ズ
近藤 純司
ここに1つの事実があります
いまだかつて
家電製品の中で動いている
プログラムが公開されたことが
あったでしょうか?
これらに共通しているのは
リナックスが使われていることです
?
なぜ彼らはソース公開
するのでしょうか?
2007年11月
2
もう1つの事実があります
2007年11月
3
もう1つの事実があります
ここで説明されている技術は、
組込み機器の、特にソフトウェアの開発者にとって
誰もが知りたい内容です
しかも、実際の製品に組み込まれた実用的なものばかりです
?
なぜ彼らは惜しげもなく、
自ら切り開いた成果を 公開するのでしょうか?
2007年11月
4
もう1つの事実があります
これは、「GPLだから しかたなくソースを公開 してい
る」
というのとは異なった事情がありそうです
この疑問に答えましょう。それは…
リナックスを使う真価があるからです
すでに彼らは真価に気づき、それを享受しているのです
2007年11月
5
では「リナックスを使う真価」とは
キーワードは…
– 全部作らなくてよい
– 開発しやすい
– 製品の魅力がアップする
– 保守しやすい
2007年11月
6
この発表のすすめかた
1. キーワードに沿って真価を説明
2. よく言われるリナックスのデメリットについ
て
3. リナックスの真価を活かし尽くすには
2007年11月
7
全部作らなくてもよい
ひとことで「リナックス」といっても…
ソフトウェア
アプリケーション
ミドルウェア
リナックス・カーネル
ハードウェア
2007年11月
8
全部作らなくてもよい
ひとことで「リナックス」といっても…
ソフトウェア
アプリ
ミドル
ウェア
C言語
アプリ
Java
アプリ
各種スクリプト
アプリ
•GNUソフトウェア
•その他FLOSS
Java
実行
環境
各種実行環境
(Python, Perl,
Ruby, …)
ライブラリ
非FLOSS
デバイス
ドライバ
リナックス・カーネル
ハードウェア
2007年11月
FLOSS: Free/Libre & Open Source Software
9
全部作らなくてもよい
全部作らなくてよい
背景:
組込みシステムのソフトウェアが高度化、大規模
に
メリット:
リナックスでは、OS/ミドルウェアで、既存ソフト
を
流用できる
– 品質確保
– コスト低減
10
2007年11月
– 開発期間短縮
開発しやすい
ソフトウェアが大規模になると…
今までのRTOSでは対応できない複雑系に
リナックスの特徴で、何とか開発しやすく
できないか?
ここにRTOSからリナックスへ移行した
開発者の声があります
– 仮想記憶で保護したかった
– 適応的スケジューラが欲しかった
2007年11月
11
開発しやすい
「仮想記憶で保護したかった」
• 大規模化によりバグが不可避となってきた
• もし、アプリに障害が残存したら…
–メモリ保護があれば、アプリ異常終了で食い止
められる
–アプリを再起動すれば、サービスを継続できる
2007年11月
12
開発しやすい
「適応的スケジューラが欲しかった」
• 大規模化する中で、アプリが様変わり
– リッチでCPUを食うアプリ
– サードパーティが供給するアプリ
• 全タスクのスケジューリング順序を設計時
に決めるのが困難
• 実行時の適応制御にゆだねたい
– システム内部の疎結合化
2007年11月
13
開発しやすい
ソフトウエアの完成度を高める
別の開発者からの声:
「複雑であるほどオープンソースで開発すべ
き」
• 複雑なソフトウエアを開発するときに、オープンソースにして
コミュニティに投稿する
• オープンソース界の複数の識者からのコメント、修正提案を
受けることが出来る
– 世界の超一流の開発者とコラボ
• 自分の公開した機能に輪をかけた良い機能が戻ってくるか
も
14
2007年11月
開発しやすい
CELFでの事例から(1)
• prelink
– アプリケーションの起動を高速化する技術
– CPUアーキに依存する部分がある
– ある開発者が、未サポートのCPUについて情
報を募った
– Prelink有識者、CPUベンダーを含む技術者が
連携
協力者を得て、欲しい機能を短期間に実現
2007年11月
15
開発しやすい
CELFでの事例から(2)
• ツールチェイン
– ある開発者がツールチェインでバグを発見
– 修正してCELFで公開、しかし古いリナックス
用
– 最新のリナックスに対応させようとしたら…
– 別の開発者が既に対応していた
– 1つ直したら、2つ使えるようになった
共通に使えるものは、協力して作るのが得
2007年11月
16
開発しやすい
生産性を高める
「高機能な障害解析機能、挙動解析機能が
組み込まれている 」ことをメリットと考える
開発者も
• ミッションクリティカルな用途からの由来
• 一般的な組込み機器用の RTOSにはない
• 大規模なソフトウエアを検証する場合に有効
2007年11月
17
開発しやすい
開発者の調達・育成
システム規模に比例して、開発者の数も増大
「いかに良質な開発者を集めるか」が
プロジェクトを成功させる1つのカギ
メリット:
– 組込み以外からの敷居が低い
– パートナーを探しやすい
– 開発手法の覚えなおしがない
2007年11月
18
製品の魅力アップ
なぜソフトウェアが大規模になったか?
• ユーザのニーズに応え、
製品の魅力をアップさせるため
• 半導体技術の急激な進歩が後押し
2007年11月
19
製品の魅力アップ
製品の魅力がアップする
リナックスは、最新技術が最も早くサポート
されるOSの1つ
– 新しいサービスへの対応、デバイスのサポート
• 進化し続けるカーネル
「Linuxとは進化のことであり、インテリジェントデザインではな
い」
• デバイスベンダーがデバイスドライバを提供
linuxdriverproject.orgという動きも
• コミュニティが規格を実装
IPv6、DLNA、SIP、SMB、Bluetooth、OBEX、SNMP、…
2007年11月
20
保守しやすい
保守しやすい
• 前出の特徴のいくつかは、保守性も向上させる
– 仮想記憶によるメモリ保護
– 高機能な障害解析機能、 挙動解析機能が組み
込まれている
• オープンソースだから継続保守できる
2007年11月
21
保守しやすい
ここまでのまとめ
企
画
製品サイクル
設
販
計
売
・
製
造
保
守
品
質
QCD
コ
ス
ト
開
発
期
間
全部作らなくてよい
開発しやすい
製品魅力がアップ
保守しやすい
2007年11月
22
リナックスのデメリット?
よく聞かれるリナックスの風評
• リアルタイム処理ができない
• 大量にメモリを消費する
• 高いハードスペックを要求する
?
これらは本当でしょうか?
2007年11月
23
リナックスのデメリット?
リナックスで リアルタイムはできない?
• 従来のRTOSは、数マイクロ秒以下の
リアルタイム性能を実現
– リナックスでこのレベルは確かに難しい
• しかし、最近になって
大幅に改善
– 数十マイクロ秒レベル
の性能まで向上
– 詳しくは、松原さんの
セッションで
2007年11月
24
リナックスのデメリット?
リナックスは大量にメモリを消費する?
• OSだけ見れば、RTOSよりもメモリを消費する
• しかし、大規模なシステムで一番メモリを消費す
るのはアプリケーション
• もちろんOSは進化を
止めていない
• HDD内蔵製品では、
メモリ消費量の制約が
緩和
2007年11月
25
リナックスのデメリット?
高いハードスペックが必要?
• 確かに8ビットや16ビットのマイコン・コントローラ
では動作しません
• しかし、複雑な処理を行うには、それなりの
処理性能が必要
• MMUのない低スペック
CPUもサポート
2007年11月
26
リナックスの真価を活かし尽くすには
ソフトウェア
アプリ
ミドル
ウェア
C言語
アプリ
Java
アプリ
各種スクリプト
アプリ
•GNUソフトウェア
•その他FLOSS
Java
実行
環境
各種実行環境
(Python, Perl,
Ruby, …)
ライブラリ
非FLOSS
デバイス
ドライバ
リナックス・カーネル
ハードウェア
2007年11月
27
リナックスの真価を活かし尽くすには
そのまま
ソフトウェア
使っても
よいのですが…
C言語
Java
アプリ
ミドル
ウェア
アプリ
アプリ
•GNUソフトウェア
•その他FLOSS
Java
実行
環境
ライブラリ
C言語
アプリ
アプリ
ミドル
ウェア
Java
アプリ
非FLOSS
各種スクリプト
アプリ
リナックス・カーネル
機器の
理想形
ハードウェア
リナックス・カーネル
ハードウェア
デバイス
ドライバ
ソフトウェア
C言語
アプリ
アプリ
Java
アプリ
各種スクリプト
アプリ
各種スクリプト
アプリ
ミドル
ウェア
各種実行環境
(Python, Perl,
ハードウェア
Ruby, …)
リナックス・カーネル
スペシャリストと
一緒に仕事をすれば…
ソフトウェア
アプリ
C言語
アプリ
Java
デバイス
アプリ
ドライバ
各種スクリプト
アプリ
ミドル
ウェア
デバイス
ドライバ
リナックス・カーネル
ハードウェア
28
リナックスの真価を活かし尽くすには
CELFは良いスタートポイント
– 様々なスペシャリストが参加
– コミュニケーションツールが豊富
• Wiki
• メーリング・リスト
• ジャンボリー、
Embedded Linux Conf.
2007年11月
薄
コミュニケーション密度
濃
29
CELFのWikiは情報の宝庫
2007年11月
30
CELFのジャンボリーで会いましょう
• 日本語で
最新技術を
検討
• 仲間探しに
好適の場
2007年11月
31
リナックスは
みなさんの組込みシステム構築を
加速します
そして、その準備は整っています
2007年11月
32
Thanks!