Linux組み込みシステム

Linux組み込みシステム レビュー記事

[ ブックレビューコーナー 目次 ]

(株)ピアソン・エデュケーション 様のご厚意により, 書籍 "Linux組み込みシステム" を ブックレビューコーナー にご献本いただきました. この本のレビューをして頂くべく, Linux Users ML や本サイトにおいて 公募 を行い, これにご希望頂いた方々より感想などをレビュー記事にまとめていただきました.

ここに, レビューアの方々から寄せられたレビュー記事を公開します. (原稿到着順)

ピアソン・エデュケーション 様および レビューアの皆様のご厚意に感謝いたします.

なお, 以下のレビューは初版を対象としています.


Reviewed by 佐藤喬 (satou-t@spa.is.uec.ac.jp) さん

「組み込みシステムの開発の大まかな流れを知ることができる本ですが...」

Linux の使用歴
7 年
UNIX の使用歴
7 年
Linux Box の主な用途
研究と仕事
Linux 以外に利用している OS
NetBSD
Linux と Linux 以外の OS の使用頻度の比
3:7

Linux を使った組み込み機器について

近年, CPU などの計算機ハードウェアの高速化, 低価格化にともない, 組み込みシステムの分野に Unix を使用する場面が増えています. その Unix の中でも開発の活発さから, Linux は注目を集める OS の一つです. 実際に, 身の回りには Linux を使った機器が増えています. 例えば, Linux を組み込んだルータなどをご存知のかたも多いはずです. さらに最近では, HDD レコーダなどの家電分野でも活躍の場を広げています. これから, Linux を使った組み込みシステムはますます身近な存在になるでしょう.

本の構成と感想

この本は, そんな Linux を使った組み込みシステム開発の全体像を紹介しています. 例として, スキー場などを含む冬期リゾート地を舞台に, 組み込みシステムの開発を仮想的に取り上げます. この仮想的な開発を通して, Linux を使った組み込みシステム開発の大まかな流れを紹介していきます. まず, リゾート地にふさわしい要求仕様を述べます. これにより『降雪装置の制御』や, 『山頂などの要所ごとの気温を利用者に知らせる』などの仕組みが必要とわかります. 続いて, 要求仕様を満たすハードウェアの選定をし, 開発環境の構築を行います. そして, これらを用いて実際のシステムの開発に取り掛かります. このとき, 機器制御のためのシステムプログラムやデバイスドライバ開発と言った低レベル部分だけを取り上げるのではなく, 全体を統合する高レベル部分にまで言及しています. 具体的には HTTP サーバやデータベースを用いて, 各組み込み機器を一つのシステムにまとめていきます. これらのソースなどは本文中に掲載されている他, Web 上からでも参照することができます.

この本を読むことで, 組み込みシステム開発の流れを大きな視点で理解することができました. また, 途中に開発者がぶつかった問題とその解決にいたるプロセスの紹介もあり, 興味深い内容でした. (ただ, この本は開発の大まかな流れを示すことに重点を置いているため, より詳しい情報を知りたい場合は文中に挙げられた参考資料を読むことが必要です.) 最近, Linux を使った組み込みシステムに触れ始めたこともあり, 個人的にはこのようなテーマを扱った本は楽しんで読むことができました.

気になること

しかし, この本で気になることが 5 つあります.

1 つ目は誤植が非常に多いということです. その数は片手では数えきれません (5bit でも). 素人目にもこれだけ見付けられるということは, きちんとした校正がなされていないのではないでしょうか?

2 つ目は文が読みにくいということです. 一文が長くなっており, 一読では何を言いたいのか理解できない部分があります. 技術書を読む意義は, なるべく楽に質の良い情報を得ることにあると思うので, より読み易くする努力をして欲しいです.

3 つ目は参考資料の題目を訳してしまっているということです. 本文中で取り上げられている参考資料の多くは Web 上の文書です. そのため, URL の変更などがあった場合, 検索をしたいと思うことが多々あるでしょう. ですが, この部分が日本語にされてしまうと検索ができず問題です. 参考資料の題目とはそれ自体が重要な情報ですので, 訳すのは不適切です.

4 つ目は不適切な訳があるということです. 例えば void pointer を空白ポインタと訳しています. しかし, これは void ポインタと訳すのが普通だと思います. また, top half と bottom half を前半部, 後半部と訳していますが, トップハーフ, ボトムハーフと訳するのが自然だと感じます. ただ, これはあくまで私個人の意見ですので, 訳者の強い意見がある場合は問題ではないでしょう.

5 つ目は訳抜けがあるということです. 本文掲載のサンプルソースのコメントは日本語に訳されているのですが, Web 上にあるサンプルソースと比較すると, いくつか訳が抜けている箇所がありました. 重要で無いとの判断から除外したのかもしれませんが, 著者の伝えようとするところをなるべく忠実に表現することが大切だと思います.

上に挙げた 5 つの問題は, この本でのマイナスポイントです. ほとんどの問題は本筋を損ねるものではありません. しかし, この問題があるがゆえに「今読んでいるのは正しいのだろうか?」 と常に不安を覚えながら読むことになります. つまり, 本全体の信頼を損ねる結果となってしまいます. 特に自分の知らない分野では, 間違いの判断が難しく不安は大きくなります. そして, その自分の知らない分野こそが本を読んで知りたいことなのです.

今回判明した誤りの正誤表は, 出版社へ送付させていただきました. 今後の改善に期待したいと思います.

(追記) 出版社様より 正誤表 を作成していただきました. ありがとうございます.


Reviewed by 近藤 健治 (ame@dp.u-netsurf.ne.jp) さん

「工学部の学生, システム設計技術者の新入社員の方が教本として使うのに適しています」

Linux の使用歴
7 年
UNIX の使用歴
7 年
Linux Box の主な用途
ハードウェア設計, PCB CAD, TeX, C 言語
Linux 以外に利用している OS
Solaris, Windows
Linux と Linux 以外の OS の使用頻度の比
Linux:other = 9:1

はじめに

最近, 組み込みシステムとしての Linux が非常に注目されて来ている. しかし, その注目度の割には Linux の組み込みシステムについて書かれた書籍は書店であまり見かけないように思う. 本レビューでは, その類の書籍の中で本書は購入する価値があるのかどうか述べたいと思う. ちなみに私自身はハードウェアについては知識があるが組み込みシステムについては素人であり, そういった立場の方と近い意見になると思われる.

本書で好きなところ

本書は, とある冬季リゾート地を舞台に「トレイルブレイザープロジェクト」と呼ばれる自動化プロジェクトを設計するという, 架空のストーリーに沿って組み込みシステムについて述べてある. このストーリーが良くできていて, 要求仕様の作成から, プラットフォームの選定, 技術的課題の取り組み, システム統合といった流れで進み, その中でエンジニア達がどのように判断し開発・設計を行ったかが書かれている. 私が本書で気に入ったのは, そのエンジニア達のストーリーを読む事によって, 組み込みシステムについて理論的な学習ができるだけでなく, エンジニアはどのような概念でシステム開発に挑めば良いかという実務的な学習にもなるというところである.

このような理由から, 本書は工学部の学生や組み込みシステム技術者となる新入社員の方にお勧めしたい.

装丁や読みやすさについて

私は書籍を購入する際に表紙を気にする事があるが, 本書の表紙 はクールで良いと思う. このクールというのは, 表紙に南極らしき絵とペンギンが描かれているからではなく, 本書の内容の美しさとよく合っていたためである.

文字の大きさや見やすさについては, 丁度良いと思う. 写真や回路図についても適度な大きさで良いと思う. プログラムの殆どは C 言語と Bash スクリプトであり, それぞれ日本語のコメントが詳細に述べられているためプログラムの動作についても理解しやすいと思う. 翻訳の程度についても良いと思う. なお掲載されているプログラムは ピアソン・エデュケーションの本書紹介ページ からダウンロードが可能である.

読みやすさという点では, いくつか誤植があることが気になったが, 内容を誤解させたりするものではなく特に問題ないように思える. ただ, 書籍に誤植はつきものなので, できれば正誤表を Web ページ上で公開して頂きたい.

各章の最初には章の内容が箇条書で挙げられ, 文章の導入部ではその章でのストーリーと設計する内容が書かれている. この辺りは非常に気に入った所で, 例えば「スキーヤーがレースコースでタイムを競うのをサポートするため, レースタイマーを設計し, 結果の集計, 表示, 記録を行い, レーサー達のハートを熱く燃やします」といった具合である.

リアルタイム処理については殆ど触れられていない

本書を読む前には, リアルタイムソリューションについて細々と書かれているものと想像していたが, 実際には全くと言ってよい程に触れられておらず, 著者はどちらかと言うと少しネガティブな意見を寄せている. その理由としては, リアルタイム性能を得ることでシステム設計が複雑になり, 開発期間の増加から逃れられないことを挙げている. しかも, 1 ミリ秒オーダーの制御であればあえてリアルタイム処理に拘らずとも, カーネルの平均割り込み遅延が 1 ミリ秒に対して充分に小さいので問題ないとしている.

そういった事がレースタイマーの設計を扱った章で述べられており, 実際にいくつかのプラットフォームで, オシロスコープを使って割り込み遅延時間の計測を行い確認している. ここで私が少し気になったのは, 「この計測で問題なければ遅延時間は必ず保証されるのだろうか?」ということである. そして, そこを注意して読みなおしたが結局その辺りのことがよく分からなかった.

本書に対する私の要望としては, できればリアルタイム処理について章を割いて欲しかった. 本書の組み込みシステムの内容は広範に渡っており, 私は非常に完成度が高いと思っているので, リアルタイム処理について述べられていないことで画竜点睛を欠いているように思われた.

さいごに

本書の内容は基礎的だが広範で実務的な事柄について丁寧に解説されている. 本書の内容を習得すれば, 後は読者の創造力で実務への応用に役立つと思われる. ただ, 組み込みシステムについて熟練者や専門家の方には物足りないかもしれない. 本レビューを行うと書籍を献本して頂けるのだが, もし自腹で購入するとすれば \4200 であれば購入していると思う.


Reviewed by 岸田昌巳 (kishida0@netscape.net) さん

「製作に必要な説明は十分ある. が, 量産, プロダクトとしての考慮, 記述がすくない」

Linux の使用歴
4 年
UNIX の使用歴
5 年
Linux Box の主な用途
ルーター, 趣味のプログラム作成
Linux 以外に利用している OS
Mac OS X, Windows 2000
Linux と Linux 以外の OS の使用頻度の比
2:8

対象読者について思う事

この本は組み込みシステムへ Linux を採用しようと考えているエンジニア向けに記述されていますが, この本で指す組み込みシステムは国内で一般的に認識されている 組み込みシステムより範囲が狭い様に思います. 国内で, これから Linux を製品に利用されようとしている読者は, 最近の動向から情報家電, 例えば HDD レコーダーなどを考えておられると思います. この様な用途とはシステムの構成も, 提供する機能の優先順位も違うかと思います. この為, もう少し, 実際の製品に近い物を開発する事を想定していた場合, 記述の不足を感じるのではないかと思います.

ただ, この記述不足については, 致命的ではないと思います. Linux を実際に組み込む場面での説明が詳しく行われていますので, 記述されているシステムと似た構成をねらう場合, または, これから組み込みシステムに携わる場合 (ほとんどの場合これでしょう) に, この本は向いていると思います.

ちなみに, この本の中で例示としては, 仮想の企業がネットワークを利用し, 自社の冬期リゾート施設を自動化する事を行っています. この例示は, 構成, 機能の面から考えると, 大学等で研究に利用する自動計測システム等に似ている様に思います.

本書の良い点

何点か良いと思う点を挙げます. この本は相当のページを割いて, あたかも実際に構築していく様を記述してあり理解しやすい内容でした. 以下は特に良かったと思う項目をあげます.

組み込み計測用のシステムとしては一通り説明がある

例示にあげたシステムに関して, 同じ物を用意する条件さえクリアすれば, 実現可能なところまで細かく記載されています. ほとんど全部のページに該当するのですが, この部分は良く書けていると思います.

CPU 毎の違いも記述あり

使用している CPU ボードも, 複数の CPU を用いているなど, 特定の CPU に偏った部分が無い様に考慮されています. 実際の開発では複数の CPU をサポートすることは, コストの面から無いと思いますが, 複数の CPU を使って実現することで, 各 CPU ボードの機能, アプリ作成時やポーティング時の作業の違いに関して理解することができると思います.

各 CPU ボードの特徴, 問題点に言及

現時点の各 CPU, ボード固有の問題点について記載があります. 浮動小数点に問題があるなど, 記載があるのは参考になります.

本書の悪い点

良い本だと思いますが, 今までこの分野の本は少なく, 期待のみが大きいので, 思いつく分, 大小関わらずあったらよいと思える指摘事項を記述いたします. 下記の指摘事項はあればよかった項目ばかりですが, そのものを読みたかった場合は, 別の本を読むなり, 補足が必要です.

システムの説明はもっとページを増やして欲しい

システム全体の説明は, 章の最初の方に, 要求仕様を元に少し記述がありましたが, システム全体をもっと詳しく説明する章があっても良かったのではないかと思います. もしあれば, 実現するシステムの理解が深まり, この様な構成を採る理由, 現状システムの問題点の洗い出しなど, 今回のシステムについて, もっと理解が深まったのではないかと思います.

手法の提示と開発の順序が入り交じっているので判りづらい

複数の機材を順に構築するため, 手法の提示と開発の順序が入り交じっています. システム全体の開発の順序を提示してから, 機器別の固有部分, 一般的な周辺機器への対応方法等を記述した方が, 分かり易いのではないかと思いました. これは実際の開発順序とも違うように思います. Linux での開発順序がよく分からない場合は, 自分が思い描く順序を考えてから読んだ方が分かり易いと思いました.

経営陣への説明はもっと具体的に記述して欲しかった

仮想のリゾート企業の経営陣に対して, どの様にプレゼンしたのかも興味がありましたが, 記述はありませんでした. 「取締役会は高レベルの要求仕様書を審査し承認した上で…ゴーサインを出しました」 これは, どの様な資料を用意し, どの様にプレゼンを行って, 承認を得たのでしょうか? 資料, プレゼンとも, とても気になったのですが, この部分には触れず一行で記述されています. その後, エンジニア向けの要求仕様は出てくるのですが, これは経営陣が読んで判るかどうか疑問です. 今後, Linux を製品に採用する読者にとっては, どの様にして経営陣にアピールしたのか等は重要な部分です. ここはもう少し記述して欲しいと思いました.

ディスクを使用している

ディスクレスの構成で Linux を利用する方法については記述がありませんでした. HDD, CompactFlash からの起動ではなく, ROM からの起動について少しでも説明があれば良かったと思います.

CPU の種類

CPU は x86, ppc, ARM が例として取り上げられていましたが, 国内では SH シリーズも考慮した内容の方が良いと思います.

パッケージの削減

パッケージの削減方法に関して, 現状のディストリビューションから, どう削るかは記載がありました. このあたりは, 色々試行錯誤が必要ですが, もう少し突っ込んだ記述, 外した後, この後はもうプログラムの大きさを小さくする方法は無いのか等に関して 記述があれば尚良かったように思います.

インターフェイスの説明が偏っている

説明はシリアルインターフェイス (USB 含む) とパラレル, RTC までとなっています. メモリカード, 無線, その他オリジナルデバイスの接続はありません. 最低限, 説明はされており, 不足している訳ではありませんが, シリアル, パラレルは基本的なデバイスですので, もう少し例示があっても良かったかと思います. 例えば, 国内ではこのシステムのように複数機器からなるシステムでは少ないでしょうが, たとえば ISA (PC104) や PCI などで接続するオリジナルデバイスの接続が, 応用範囲の説明として補足などがあった方が良かったのではないかと思います.

結合テストあたりまでで, システムテストがない

システムテストは行われず, 各ブロックごとのシステムを結合する 結合テストあたりまでしか記述がありません. システムテストにあたる部分の記述があれば参考になるのではないかと思います.

総評

何点か指摘事項は色々あげましたが, Linux を使用した組み込みシステムについて, 実際に構築するまでは, 再度同じ物を構築できるだけ, 十分に詳しく記載してあります. たとえ, 初めて Linux を組み込みシステムに使用した場合でも, 実際にプロダクトとして量産を行う経験があったならば, 問題なく製品化まで漕ぎ着けることが出来ると思います. それなりのお値段 (\4200-) ですが, この内容であれば, この価格でも十分, 元が取れる内容かと思います.


[ ホーム | マップ | ニュース | 検索 | ドキュメント | リンク | プロジェクト ]
このサイトに関するご意見・ご要望は Webmasters までお願い致します.