組み込みシステム用Linuxの学習
私は最近、PICなどの8ビットプロセッサやPowerPCなどの32ビットプロセッサでプログラミングする組み込みシステムの経験があるが、Linuxの経験がない人が、組み込みLinuxの使い方を学ぶことができる方法を尋ねられました。
私がいつもそのような組み込みシステムプログラマにお勧めするのは、これです:組み込みLinuxを二つの部分、組み込み部分とLinux部分として見てください。 最初にLinuxの部分を考えてみましょう。
Linux側の
オペレーティングシステムはたくさんあり、プロプライエタリとオープンソースの両方の組み込みシステムの選択肢はたくさんあります。 Linuxはこれらの選択肢の1つです。 開発ホストに何を使用していても、Linux、Windows、Macのいずれであっても、ターゲットOSを使用してプログラムする方法を学ぶ必要があります。 この点で、Embedded Linuxを使用することは、VXworks、WindowCE、または他のOSを使用することと大きく変わりません。 OSの設計方法、OSの構成方法、およびapplication programming interface(API)を使用したプログラミング方法を理解する必要があります。
いくつかの要因は、Linuxをプログラムする方法を他の組み込みOsよりも簡単に学ぶことを可能にします。 Linuxに関する多くの書籍やチュートリアル、およびそれが派生したUnixについては、他のOsよりも多くの書籍があります。 Linux用のオンラインリソースは十分ですが、他のOsははるかに小さい存在感を持っているか、OSの製造元によって駆動されます。 Linuxはオープンソースであり、OSが何をしているのかを正確に理解するためにコードを読むことができます。 (私は確かにLinuxをプログラムする方法を学ぶためにLinuxソースを読むことをお勧めしません。 それは車の伝達がいかに働くか調査によって運転することを学ぶことを試みることのようである。)
Linuxを他のOsと区別する最も重要な要因は、最小の組み込みボードからデスクトップシステム、大規模なサーバーファームまで、すべてのシステムで同じカーネ これは、ターゲットへの接続、テストプログラミングのダウンロード、テストの実行などの複雑さをすべて備えたターゲットボードを使用するよりもはるかに柔軟である環境で、デスクトップ上で大量のLinuxプログラミングを学ぶことができることを意味します。 基本的な概念とほとんどのApiはすべて、デスクトップLinuxと組み込みLinuxで同じです。
Linuxのインストール
開発システムにデスクトップLinuxディストリビューションをインストールして、WindowsまたはMacシステムを置き換えることはできますが、電子メールの設定、新しいツールの学習、別のデスクトップインターフェイスの高速化が必要になる可能性があるため、それは一度に噛むのはかなり大きな部分かもしれません。 あなたは電子メールなどのために古い環境を使用するデュアルブート環境にLinuxをインストールすることができます。、および学習のためのLinuxシステムを使用してください。 もう一方の環境を起動するために1つの環境をシャットダウンする必要があるため、これはかなり厄介なことがあります。 さらに、企業環境内で行うことは実用的ではないか、不可能な場合があります。 ITの人々は、あなたが選択した環境ではなく、既知の環境をサポートすることを好みます。
簡単な方法は、現在の開発システム上に仮想マシン環境を作成することです。 Windowsホストの場合は、VMware PlayerまたはVirtualBoxをインストールでき、MacにはParallelsまたはVMware Fusionをインストールできます。 VMを使用すると、はるかに柔軟性が得られます。 UbuntuやFedoraなどのデスクトップLinuxディストリビューションをインストールできます。 このディストリビューションを使用して、基本的なLinuxの概念に精通し、コマンドシェルを学び、プログラムのビルドと実行方法を学ぶことができま デスクトップシステムがクラッシュする心配なしに、カーネルまたはロードドライバを再構成できます。 組み込みLinuxターゲットのクロス開発環境と同様に、カーネルとアプリケーション環境全体を構築することができます。
Linuxを実行しているVMがクラッシュした場合は、VMを再起動するだけです。 このクラッシュは、ドライバのビルドとインストール方法に関するwebページを読んだり、多くのサポートメーリングリストのいずれかに電子メールを書いたり
VM製品の中には、既知の動作構成のチェックポイントを取得できるスナップショット機能があり、クラッシュを簡単に修正できない場合にロールバッ このスナップショットは、クラッシュしたデスクトップシステムや応答しないターゲットボードを救おうとするよりもはるかに簡単です。
デスクトップ上で実行されているLinux VMは、組み込みLinux環境に最適なモデルではありません。 VMは、実際の組み込みターゲットと一致する可能性の低い限られたデバイスセットで、デスクトップシステムのハードウェアをエミュレートします。 しかし、この時点での私たちの目的は、実際のターゲット(後で説明するもの)をモデル化するのではなく、Linuxの概念とプログラミングを簡単に学ぶことが
これが最初のステップです:VMを作成し、VMにデスクトップLinuxディストリビューションをインストールします。 私たちは、私たちの次の割賦でここから選択します。
Michael Eagerはカリフォルニア州パロアルトのEager Consultingのプリンシパルコンサルタントです。 組込みシステムで使用される幅広いプロセッサアーキテクチャ用のコンパイラ、デバッガ、シミュレータの開発に四十年以上の経験があります。 彼の現在および元の顧客は主要な半導体の会社およびシステム開発者を含んでいる。 Michaelは、いくつかのプロセッサアーキテクチャのISO C++標準委員会およびABI委員会のメンバーでした。 彼は、広く使用されているデバッグデータ形式であるDWARFのデバッグ標準委員会の委員長です。 彼はオープンソースとLinuxコミュニティで活躍しています。
関連リンク:
- 組み込みシステム用Linuxの学習
- 組み込みLinuxの入門:第二部
- 組み込みLinuxの入門:第三部
- 組み込みLinuxの入門:第四部
- 組み込みLinuxの入門:第五部
- 組み込みLinuxの入門:第六部
- 組み込みLinuxの入門:第七部
- 組み込みLinuxの入門:第六部
- 組み込みLinuxの入門:第七部