組込みソフトウェアって何
今更ながら…、という気もしますが、組込みソフトウェアって何だっけ、てことでポストします。
朝起きて会社や学校に行くまでのことを考えて見ましょう。目覚まし時計に起こされて、エアコンのスイッチをいれ、リモコンでTVやラジオをONし、冷蔵庫から食材を取り出し、電子レンジや調理器具を使って料理する。食べながら洗濯機で選択をし、支度が出来たら、自動車で信号に従ってカーナビ見ながら運転、或いは駅まで行って改札を通り抜け電車に乗る。電車で携帯電話でメールやソーシャルネットを確認したり、ミュージックプレーヤーで音楽聴いたりゲームしたり。駅から目的地までの途中、コンビニによって電子広告見ながらお買い物、POSレジで支払い。ビルに着いたらエレベータに乗ってオフィスへ到着。IDカードをリーダーにかざして入室。座席にはIP電話があって、パソコン使ってビジネス文書を作って、OA機器でプリントしたり、コピーしたり、…。
限が無いのでこれぐらいでやめておきますが、上の文章のボールドで書いたモノの中には全て、それを制御する為のコンピューターが入っています。更には、毎日電力を送り続けてきてくれている発電所や、身の周りの家具や食品、様々な機器を製造している工場内にも非常の多くの特定用途向けコンピューターがそれぞれの役割を担って働いています。コンピューターと聞くとデスクトップ型のパソコンやノートPC、サーバーを思い浮かべる方は多いと思いますが、実際には非常の多くの特定用途向けで、機器に“組込まれている”コンピューターが、我々の生活を支えているのです。この“組込まれた”コンピューターで動くソフトウェア、それが「組込みソフトウェア」と呼ばれるものです。たとえば自動車の場合、普通車なら60個以上、高級車なら100個以上のコンピューターが入っています。家電やOA機器、様々な身の周りの機器の数を考えると、通常皆さんが思っている所謂コンピューターより、更には最近流行りだしたスマートフォンやタブレットPCの台数と比較しても、組込み機器で使われているコンピューターの方が桁違いに多く存在していることがお判りいただけるでしょう。
また、組込み機器、組込みソフトウェアといっぱひとからげに、括っていますが、冒頭の文から判るように、多種多様な機器、ソフトウェアが存在しています。もう少し具体的な分類は、IPA SECの組込みソフトウェア産業実態調査報告書 https://sec.ipa.go.jp/reports/20100607.html あたりを参考にしてください。この広大な組込みワールド向けにマイクロソフトはプラットフォーム(勿論全ての領域をカバーするわけではありませんが)を提供しています。
マイクロソフトが組込み向けにどんなプラットフォームを提供しているか、その概要は、組込み開発者向け技術情報 https://msdn.microsoft.com/ja-jp/windows/kumikomidev を参照してください。
このページでは、.NET Micro Framework、Windows Embedded Comact、Windows Embedded Standard、Windows Embedded Enterprise、Windows Embedded Server、それと複数の特定製品カテゴリ向けのWindows XXXXが掲載されています。
ちょっと説明しておくと、大きく分けて、.NET Micro FrameworkからWindows Embedded Serverまでの前半(リンクのページでは左側)は、General Embeddedといって、色々な種類の組込み機器で使える汎用的な組込みOSという位置づけです。大まかに言って最初の方が省リソースロースペックハードウェアで動作し、後ろに行けば行くほどリッチなハードウェアを使う組込み機器向けだと思ってください。
そして、リンクのページの右側のWindows XXXという製品群、これらは、携帯電話やカーナビ、POS端末など、特定用途向けのプラットフォーム製品です。昔々、バラバラのアーキテクチャーが群雄割拠し、やがてWindowsとMACに収束していった様に、そして今また携帯電話の世界で起こっているように、特定用途向けのカスタムなハードウェア、OSで作っていたある分野の製品の市場が拡大し、多くの企業が参入して、競い合って機能が進化してくると、必然的にコモディティ化が進んできます。機能もハードウェアも共通な部分が増え、上から下まで全てを自前で作るのではなく、標準として確立したプラットフォームやミドルウェアや、そのプラットフォームの元に部品化されたハードウェアを集めて組み上げ、アプリケーションを開発すれば製品が出来上がるようになってきます。Windows Phone、Windows Automotive、といった Windows XXXは、これらある程度コモディティ化した製品領域向けのプラットフォーム製品です。
それぞれの製品は、左側のGeneral Embedded OS上で構築されています。詳細は、https://www.microsoft.com/windowsembedded/ja-jp/about/what.mspx を見てください。
また、https://www.microsoft.com/windowsembedded/ja-jp/about/casestudies.mspx には事例が載っているので、参考にしてみてください。