組み込みLinux
出典: Wiki@browncat.org
まだ書きかけです。
組み込み向けLinuxの話題をまとめたいと思っています。
目次 |
[編集] 承前
昔話になりますが、かつて組み込みシステムにNetworkを接続しようと考えると それなりなお金を投資してOSやTCP/IPスタックを購入する必要がありました。 LANがコモディティ化するに従い、組み込み機器のLAN接続は当たり前のものなり 現在ではLANコントローラやCPU内蔵機能を使い非常に安価にネットワーク接続が出来るようになっています。
同じようにファイルを保存したい場合、ミドルウェアが必要となったり、 高機能なRTOSが必要となったりします。
これらの要求は年々大きくなり、現在では多くのアプリケーションで 上記の高度な機能が必要とされています。
この高度な要求を解決する方法の一つとして、組み込み向けCPUの性能が向上し、メモリが大容量で安価になったことを 背景にLinuxやNetBSDを使用することが上げられます。
OSが動作している環境下であれば、アプリケーションのプログラマにとっては PC上のLinuxとほぼ共通の実行環境であり高い生産性でソフト開発が可能となります。 また実機を使用しなくてもソフトの開発を進めることも出来ます。
[編集] Linuxを組み込みに使う難しさ
しかしながら、一歩下に下がって、 いざ実際自分でLinuxを組み込みに使用する場合、 わかっている人には自明なことが 慣れていない人にはとても難しいことと感じるようです。
なにが難しいのか?
わかりにくいのか?
OSのある環境に慣れた人には、 他の組み込みOSやOSなしの開発と同様に より深くCPUや裸のボードと接する必要が出てくることがあります。 ここがまずハードルとなりそうです。 普通ソフトはマウスクリックやキーボードでコマンドを叩けば 動くものだからです。
逆にOSなしや組み込みのOSに慣れた人とっては Linuxというのはかなり大きなソフトです。 iTronなどの組み込み用OSの大きさはせいぜい数十KBで数百KBを超えることは少なく、 ソースコードも含め全てを把握するのは容易です。 それに比べLinuxはカーネルだけでも1Mを超え、 ユーザランド周りを含めると最低でも数MBが必要になります。 当然一人で把握することは難しくなります。
またI/Oも通常の組み込みシステムでは直接の操作が容易であり、 デバイスドライバなどなくても問題ない場合がほとんどですが OS環境下だとそうはいきません。
[編集] わかるとよさそうな知識
- CPUやソフトが立ち上がっていく初期化過程
- ブートローダ
- Linuxのボード対応部分の構成
- 新しいボードへのポーティング
- デバイスドライバの基本
- ユーザランドについて
- pthread関連
- リアルタイム関連
- ハードウェアの知識
[編集] その他
開発環境は重要なポイントです。
Linuxを扱うにはやはりLinux上で行う方が便利です。
また開発環境としてのLinuxはWindowsと比べ使いこなすことが出来れば
多数のテキスト関連ツール、シェルなどの使い勝手、サーバソフトの相互運用性など
比較にならないほど強力です。
しかし、やんごとなき事情でWindowsを使わざるを得ない場合は多数あります。 実際今のLinuxでは少し前と比べて比較的アプリケーションが足らないということはありませんが、 仕事で使うには決定的な問題としてMSOffice関連がないことが上げられます。 確かにOpenOfficeは十分な機能を持っていますが、現時点ではやはりMSの製品が必要となります。
互いに一長一短。 そこで、一台のマシンで互いのソフトを何とか動かすには エミュレーション環境はどうでしょうか。
WindowsからLinuxへ
Linuxな方へ
