- ベストアンサー
「ファームウェア」と「組み込みOS」の違い
「ファームウェア」と「組み込みOS」という言葉の意味の違いが分かりません。 これらの意味は、例えば次のように示されています。 http://e-words.jp/w/E38395E382A1E383BCE383A0E382A6E382A7E382A2.html http://e-words.jp/w/E7B584E381BFE8BEBCE381BFOS.html 上記URLを見ると、これらの言葉は同じようにも思えるし違うようにも思えます。 これらの言葉の意味の違いは何でしょうか。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
ファームウエアは、用語辞典にあるように、"firm"wareで、hardほどは硬くないけど、softほど軟らかくない、というのが語源です。 #4さんも書かれていますが、機器に組み込まれているソフトということで、"firmware"と"組み込みソフトウエア"は、ほぼ同意語です。 つまり、hardwareはそう簡単には設計変更できないが、softwareは容易に設計変更可能で、パソコンのようなコンピュータ上では入れ替えも容易です。 firmwareは、実装されるときはROMの形態なので、softwareほど入れ替えは容易ではないが、ROMチップを交換することで入れ替え可能になります。 ただ、1チップマイコンのように、Mask ROM内蔵の形だと、マイコンチップ自身を交換しなければなりません。 最近のように、Flash Memoryを使用していれば、道具と仕掛けさえあれば、オンボードでも書き換えられるようになりました。 firmwareに含まれる機能は、該当機器のハードウエア制御も、(必要であれば)通信もユーザーインターフェース(キー入力や音声出力、表示など)もすべて含まれます。 OSはOperating Systemの略で、システム全体の管理を行なうソフトウエアです。パソコンのWindowsが有名です。 このうち、機器に組み込まれるOSを組み込みOSと呼び、特徴は用語辞典に書いてあるとおりです。Windowsなどと比べると、贅肉を徹底的に落としてリアルタイム性やコンパクト化が図られています。 firmwareの中で、システムの管理を行なう部分が組み込みOSです。つまり、組み込みOSは、firmwareの一部ということになります。リソース(資源)を管理するということは、特定のハードウエアがリソースなら、そのハードウエアが含まれますし、CPUやメモリもリソースとして管理されます。 具体的に、firmwareのどの部分が組み込みOSかというと、そのOSの実装のされ方にもよりますので、実例を見てみるのがいいのではないでしょうか。 国内では、組み込みOS(RTOS)としてiTronが有名です。一度iTronを調べみるとよいと思います。マイコンメーカー各社が自社マイコン向けのiTronを開発しています。 また、特徴のひとつのリアルタイム性が強く要求されることが多いので、リアルタイムOS(RTOS)と呼ばれることも多いです。 なお、電卓やちょっとした家電品などは制御が軽いので、OSを使用していないことがほとんどです。
その他の回答 (5)
- tadys
- ベストアンサー率40% (856/2135)
(1)「最近では「組み込みソフト」ということが多い」ということは、両者はほぼ同じものを意味するということでしょうか。 ファームやOSやアプリケーションを含む全体を組み込むソフトと言います。 組み込むソフトが出始めたころはファームウエアと言う言葉は無く、アプリケーションソフトが全てのリソースを直接いじっていました。 その後特定用途のハードウエアに対してハードウエアを操作する部分がアプリケーションから分離されてファームウエアと呼ばれるようになりました。 その後マイコンが高性能化すると共にソフトも複雑になりOSが採用されるようになって来たのです。 組み込みソフトをアプリケーションとそれ以外に分類すれば、OSをファームウエアに含めても可笑しくはありません。 (2)ファームウェアとは、「ハードウエアを直接いじるソフトからその上の階層例えば通信プロトコルの当たりも含むもの」ということなんですね。 余りファームウエアと言う言葉にこだわら無いほうが良いでしょう。組み込みではアプリケーションが直接ハードをいじることも良くあります。 ただし、最近ではシステムが大規模になっており一人の人間がハードソフトの全てを理解することが難しくなっています。そのため適当な規模での階層化、抽象化が必要になっています。ハードウエアに近いレベルからユーザーに近いレベルまでいろいろな階層が出来ています。規模が大きくなるほど階層も多くなるでしょう。どこまでがファームでどこからがアプリケーションかなどというのにこだわる必要はありません。 (3)「「組み込みOS」は主にリソースの管理を行う」とのことですが、「リソース」とは「I/O、メモリ、CPU時間など」とのことなので、「リソースの管理を行う」というのは「ハードウエアを直接いじる」と同じ意味のように思えるのですがそれでよいでしょうか。 CPU時間はハードウエアですか? 組み込みシステムではシステムごとに利用できるリソースが異なっており、ハードウエアを直接いじる機能はOSに含まれないのが普通です。 OSが行うのはどのタスクにどのリソースを割り当てるか等の管理業務です。例えばあるタスクが特定のI/Oを使用している間は他のタスクがそのI/Oを使用できないようにするなどです。 OSの機能については下記URLを参照してください。 (4)すると、ファームウェアと組み込みOSとの違いは、「通信プロトコルまで含むのがファームウェアであり、通信プロトコルを含まないのが組み込みOS」と思えるのですが、それでよいでしょうか。 通信機能についてはOSが提供する場合もあれば提供しない場合もあります。最近のOSではネットワーク機能を含む場合が多いです。 ソフトウエアは全体で一つのシステムです。余り些細な分類に拘ってはかえって分かりにくくなります。 最近ではOS、通信機能、グラフィック表示機能などは専業メーカーからの購入が増えています。 セットメーカーではアプリケーションソフトを中心に作ることが多くなってきています。
お礼
誠にピンポイントかつ明解な御教示、有り難うございます。 よく分かりました。組み込みOSはファームウェアの一部であるが全く異なる概念なんですね。パソコンの場合と同じように中間的な性格のソフトもあるということなんですね。また、御教示のサイトもたいへん勉強させていただきました。 たくさんあった疑問が全て氷解しました。有り難うございました。
- tadys
- ベストアンサー率40% (856/2135)
「ファームウェア」というのはハードウエアを動かすためのソフトという感じですが最近はあまり使われていないような気がします。 最近では「組み込みソフト」ということが多いです。 ハードウエアを直接いじるソフトからその上の階層例えば通信プロトコルの当たりも含めてファームウエア言う事が多いようです。 携帯電話のように表示が付いているものでは描画のためのグラフィックルーチンなどもファームウエアでしょう。 ファームウエアに対する言葉としてはアプリケーションソフトでしょうか。 「組み込みOS」は主にリソースの管理を行う事が目的です。ここで言うリソースは、I/O、メモリ、CPU時間などです。 どのタスクにそれらのリソースを割り当てるかがOSの仕事になります。 例えば入力の変化があったらタスクを起動し、処理が終了したらタスクを終了させるなどの動作を行います。 最近の組み込みソフトでは大規模になってきており、パソコンのソフトに劣らない規模のものや、パソコンのOSを使ったものなども現れています。
補足
いくつかお尋ねさせてください。 (1)「最近では「組み込みソフト」ということが多い」ということは、両者はほぼ同じものを意味するということでしょうか。 (2)ファームウェアとは、「ハードウエアを直接いじるソフトからその上の階層例えば通信プロトコルの当たりも含むもの」ということなんですね。 (3)「「組み込みOS」は主にリソースの管理を行う」とのことですが、「リソース」とは「I/O、メモリ、CPU時間など」とのことなので、「リソースの管理を行う」というのは「ハードウエアを直接いじる」と同じ意味のように思えるのですがそれでよいでしょうか。 (4)すると、ファームウェアと組み込みOSとの違いは、「通信プロトコルまで含むのがファームウェアであり、通信プロトコルを含まないのが組み込みOS」と思えるのですが、それでよいでしょうか。 よろしくお願いします。
- ralf124c
- ベストアンサー率52% (232/446)
たびたびすいません。ANo.2です。 「ファームウェア」は、単純に物事を分類するための単語に過ぎません。メモリやCPUなど物理的な形として存在しているを「ハードウェア」、ゲームソフトやワープロソフトなどの物理的な形としてではないものを「ソフトウェア」と呼んで、どちらにも含まれて明確に分類できないものを「ファームウェア」と呼んでいます、というのはご質問のリンク先に説明があるかと思います。 「組み込みOS」を上記分野のどこに含まれるかというと「ファームウェア」に分類されるのではないかと思います。つまり、ファームウェアが包括しているような関係になると思います。 同じか違うかという論点では語れない関係かと思います。
補足
すみません。No.2の御回答を間違えて理解していました。 「組み込みOS」は「ファームウェア」に包含される概念なんですね。よく分かりました。有り難うございます。 すると、「ファームウェア」にあって「組み込みOS」にないものは何でしょうか。別の言い方をすると、「ファームウェア」と「組み込みOS」とが異なる部分は何でしょうか。別の言い方をすると、「ファームウェア」には包含されるが「組み込みOS」には包含されないものは何でしょうか。 勝手に定義を書いてみました。 ファームウェア:ハードウェアとソフトウェアの両方の性格を持つもの。(「両方の性格を持つ」が、意味不明ですが...。) 組み込みOS:機器に組み込まれていて当該機器を制御するソフトウェア。 何かしっくり来ません。 たくさん言いましたが、煎じ詰めれば、最初の質問に書いた「「ファームウェア」と「組み込みOS」という言葉の意味の違い」が、まだ理解できてないということなのですが....。 よろしくお願いします。
- ralf124c
- ベストアンサー率52% (232/446)
ファームウェアはその昔「ゲートアレイ」や「ワイヤードロジック」などの、ハードとソフトの境目がよくわからない分野の物を指していましたが、いつのころからか誰が広めてしまったのか「ROM」の中にプログラムデータなどが入っているものも指すようになりました。 ご質問の「意味の違い」は、視点によって変わってくると思いますが、組み込みOSは一般的にROMに焼いて提供されるため現在の意味合いでのファームウェアというテクノロジー分野に該当します。ということです。強いて例えればライオンはネコ科の動物ですが、ライオン=ネコではないですよね(←すいません、極論だったでしょうか?)。
補足
つまり、「現在の意味合い」では、「ROMに焼いて提供されるOS=ネコ科の動物、組み込みOS=ネコ、ファームウェア=ライオン」ということでしょうか。 つまり、同じカテゴリーに入るという共通点はあるが、同じではないということでしょうか。 もしそうなら、共通点は「ROMに焼いて提供されるOS」ということでしょうか。それ以外にはないのでしょうか。 よろしくお願いします。
- rouxkt
- ベストアンサー率28% (87/305)
ファームウェアは、何かの機能を使うためにそれに特化したものって感じではないでしょうか? 組込みOSっていうのは、ファームウェアよりある程度機能を増やした感じと考えていいと思います。 組込みOSで一番身近なものは、携帯電話のOSですね。 携帯電話のOSも組込み型OSの一つです。Ipodなどにも、組込みOSがたしか使われています。 ファームウェアの身近なものは・・・PCのBIOSやルーターやネットワークプリントサーバーなどを動かすためのソフトでしょうか?
補足
「組込みOSっていうのは、ファームウェアよりある程度機能を増やした感じ」とのことですが、「ある程度」というのがやや分かりにくいのですが、例えば次のようなものに組み込まれているOSはどちらでしょうか。 (1)自動改札機 (2)DVDレコーダー (3)金銭登録機 (4)FAX (5)コピー機 (6)自動車のナビゲーター (7)デジカメ (8)テレビ (9)パソコンのモニター (10)ルーター (11)インターホン (12)電卓 「ある程度」の具体的な境界を知りたいのですが。 よろしくお願いします。
お礼
誠にピンポイントかつ詳細な御教示、有り難うございます。 よく分かりました。組み込みOSはファームウェアの一部であるが全く異なる概念なんですね。Mask ROMやiTronなども知りませんでした。勉強させていただきました。 たくさんあった疑問が全て氷解しました。有り難うございました。