1章組み込みシステムの概要
組み込みシステムという言葉は、人によって意味するところが違います。サーバで仕事をしてきた人にとっては、携帯電話向けに開発されたアプリケーションは組み込みシステムです。一方、小さな8 ビットマイクロプロセッサ向けのコードを書いてきた人にとっては、オペレーティングシステムを搭載しているものは、あまり「組み込み」らしくは思えません。
私は技術職以外の人に対して、「組み込みシステムとはコンピュータ(多目的なデバイス)ではないもので、電子レンジや自動車のようのソフトウェアが動くもの」と説明します。技術的な話は抜きで、簡単に定義すると、おそらく組み込みシステムとは「特定用途に構築されたコンピュータシステム」と言っていいでしょう。組み込みシステムの役割は汎用コンピュータよりも限定されており、目的達成に関係のないことは苦手です。ハードウェアには制限がつきものです。例えば、バッテリー消費の抑えるため低速なCPUであったり、コスト削減のためメモリサイズはできるだけ小さくし、プロセッサはある速度しか出ない、または一部の周辺機器にだけ対応したものであったりします。
ソフトウェアにも制限があります。毎回同じように確定的に動作するか、リアルタイムだったりします。またフォルトトレラント(耐障害性)が必要なシステムもあります。例えば、ソフトウェアに不具合があったり、ハードウェアが故障した状況でも保守ができないようなものを考えてみましょう(例えば、衛星やクジラに付ける追跡タグなど)。他のシステムのソフトウェアは、問題の兆候を見つけると即座に動作を停止させ、適切なエラーメッセージを表示します(例えば、心拍計は静かに故障すべきではない)。
本章では組み込みシステムの概要を説明します。そして組み込みシステムの開発が難しいものに感じるかもしれません。異なるコンパイラ、デバッガ、リソース制限など、コードの設計や実装は他のソフトウェアとは違ってきます。しかし時代遅れな分野ではありません。異なる問題の解決に注力しているのです。それでも便利なのに見逃されているソフトウェアエンジニアリングのテクニックがあります(本書で説明します)。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access