10

それを見る1つの方法-組み込みLinuxはデスクトップLinuxから始まり、組み込みシステムに必要のない部分を捨てます(これは実際に本当ですか?)が、eCosは組み込みシステム用にゼロから設計されています。

ここで、ARMプロセッサ(おそらくARM 7)を想定します。パフォーマンスに違いはありますか?実際、私たちは非常に低負荷のシステム、1日あたり最大500トランザクションについて話しています。

一方が他方(またはFreeRTOSなど)に勝る利点はありますか?安定性、成熟度、パフォーマンス、開発ツール、その他何ですか?

私が考えることができるのは、別のo / sに移植しないことが確実な場合、組み込みLinuxを使用する場合、ユニットテストを実行するためのo/s抽象化レイヤーは必要ないということです。ホスト(デスクトップLinuxボックス)。

何か考えやコメントはありますか?ありがとう。

4

3 に答える 3

9

私がLinuxをインストールしたすべてのデバイスはゼロから起動し、一部のディストリビューションの簡略版ではありませんでした。

eCosとLinuxの目標は異なります。Linuxは、フル機能のUnixライクなシステムであることが意図されているため、最小システム要件についてはそれほど心配していません。eCosは、リソースに制約があることが多いシステム向けに設計されたリアルタイムオペレーティングシステムです。2つのOSの間には多くの重複があり、多くの場合、どちらも同じように機能します。

私の経験では、システムにリソースがあり、要件が重要である場合、Linuxを使用すると開発が速くなります。RTOS開発者よりも有能なLinux開発者を見つけるのは簡単で、ツールは安価で、プロセスは相互に保護されており、実行中のシステムの可視性が高くなる傾向があります。

eCosの(より良い、私見の)代替手段はRTEMS(http://www.rtems.com)です。ずっと長く、前回チェックしたときは、eCosよりも多くのアーキテクチャをサポートしていました。また、PC BSPを備えており、エミュレーション用にqemuで実行されます。

于 2010-04-20T17:34:25.420 に答える
9

LinuxをARM7IMOに配置しても実際のメリットはありません。ARM7にはMMUがなく、メモリ保護がLinuxなどのOSを使用する主な理由です。uClinuxはMMUのないターゲットで実行されますが、Linuxを使用する最も説得力のある理由の1つを失い、それでも膨大なメモリリソースが必要です(4Mフラッシュ、16M RAMが賢明な最小値です)。

多くのARM7デバイスには、それほど多くのメモリを接続するための外部メモリバスがなく、オンチップフラッシュとRAMは通常、デバイスに応じて32Kから1Mの範囲です。

Linuxは本質的に「リアルタイム」ではありません。リアルタイム機能の場合、Linuxが基本的にアイドルタスクとして実行されるリアルタイムカーネル、または別の仮想マシンとしての機能を備えたターゲットで実行されることがよくあります。したがって、外部イベントへの決定論的で高速な応答が必要な場合は、eCOSなどのRTOSが必要になります。

eCOSは、ほとんどの商用製品に匹敵するアドオン機能とデバイスサポートの大規模なエコシステムを備えているという点で優れています。ただし、FreeRTOSのようなものは、「起動」するのが簡単である可能性がありますが、スレッドスケジューラとプロセス間通信メカニズムしか提供しません。ファイルシステムやTCP/IPのようなものは、サードパーティから調達する必要があります(ただし、そのための組み込みシステムにも適した、同様に小さくて無料のソリューションもあります)。

FreeRTOSやuC/OS-IIIなどの単純なカーネルを使用する場合、多くの時間を無駄にすることはないので、投資は次回他のものを使用することを妨げるものではありません。一方、Linuxは、次回はより小さく、より狭い範囲をターゲットにしたものを使用することを思いとどまらせる可能性があり、後続のプロジェクトのツアーは、選択したOSをサポートするためだけに必要なコストよりもかなり高くなる可能性があります。

于 2010-04-23T18:50:23.660 に答える
4

組み込みLinux==すべてのケースの99%でLinux。カーネルを別の方法で構成するだけです。

パフォーマンスの最大の違いは、eCosを使用すると、実装/構成に応じて、予想される応答時間を得ることができるのに対し、Linuxを使用すると割り込みコントローラーに翻弄されることです。

LinuxはeCosよりもはるかに大きなファンベースを持っているため、開発にさらに役立ち、さまざまなCPUをサポートします。また、必要なドライバーに応じて、Linuxを実行しているPCでプログラムをコンパイルして実行できます。

Linuxは、ロックアップ/デッドロックを検出し、自動応答/再起動を送信して、システムの高可用性を維持できます。

于 2010-04-20T05:55:01.020 に答える