社会人1カ月目のMameRootです。
研修はインプットの機会が多くて、モノづくりする機会が少ないですね。また、自分の時間が少ないためアイデアは貯まっても消化できないというサイクルです。
こんな時こそ、情報を整理する意味でもブログを書いて小さなアウトプットをしときましょー(´∀`)ノ
ということで仕事で組み込みOSをやるかもしれないので、組み込みOSとは何ぞや?のところから簡単に書きます。
組み込みOSは身近な所では生活家電などを制御するOSで、広義の意味ではスマートフォンのOSもこれに含まれます。ここではiOS/WPは用途がモバイルに限定されるので省略します。
組み込みシステムにおいて単一の機能だけを提供するのであればそもそもOSは必要ないと思います。
例えば、温度センサーの出力をMCU経由でネットワークに送るだけ等の場合は割り込み処理をプログラミングするだけです。
一方で、多くの処理を並列で行う必要のある場合はOSやミドルウェアの助けを借りないとコードステップが増え開発が困難になります。
特にカーネル(システムのコア部分)を1人でバグなくつくっていたら人生が終わる勢いです。
しかし、必要ないのにOS入れたり、OSの選択を間違えると無駄なコードが増えコスト増に繋がるので様々な視点で考えることが必要です。
では、組み込みOSにはどんな種類があるんか?と調べてたらLinuxカーネルベースのあのAndroidが占有してると思ったら、意外にも違いました・・・
OS | 特徴 |
---|---|
Linux系(Android) | オープンソース、ライブラリ豊富、GNU(gcc) |
iTRON系 | オープンソース、高リアルタイム、起動早い |
WindowsEmbedded系 | ライセンス料かかるが保証あり、Winアプリ連携 |
趣味でのiOSアプリやPCアプリ開発では、リアルタイム処理、消費電力やコストという点を考えた事などなかった。
組み込みではコストの観点からもハードの制約が大きいから、必然的にプログラムサイズの制限に繋がる。つまり、ハード(回路,IC,信号フロー等)を意識した設計が必要なんだなーというイメージ(´∀`)ノ
色々調べて思ったのは、iPhoneってあのハードであの価格を出せるってすげーということ。
大量生産だから成せる技なんでしょうね。
あと、ファルコンの職服ってカッコイイよね!