回答:
Linuxは非常に複雑なオペレーティングシステムですが、Arduinoに適合できる場合があります。考慮事項:
要するに、それは多くの時間と労力を要し、おそらく毎日の使用には遅すぎるでしょう。Arduino Linuxが本当に必要な場合は、Yúnをご覧ください。
RAMが足りないだけです。また、ブートローダーの書き換えを伴うフラッシュメモリからの起動を教える必要があります。
代わりに、Arduino YunまたはPCDuinoを使用できます。「標準」のArduinoではありませんが、これらはArduinoシールドをサポートし、Linuxを実行します。
または、常にRaspberry Piがあります。
短い答えはノーです。
基本的に、最大のATmegaがネイティブに持っているよりも多くのRAMが必要になります。
理論的には、外部ハードウェアを追加し、ATmegaをプログラムしてより強力なCPUをエミュレートし、その上でLinuxを実行することができます。ただし、単純なarduinoでは不可能です。
基本的にAT91SAM3X8E CPUであるArduino DueでLinuxを実行する方がはるかに現実的です。ただし、SRAMとストレージをさらに追加する必要があります。
Arduino Yunのようなものがありますが、それは実際にはATmega32U4と同じPCB上の完全に独立したLinuxモジュールです。
おそらく関連性:組み込みLinuxを実行するには何が必要ですか?
Debian、Ubuntu、Open WRT、LEDE、Raspian PIXELなどのLinuxの複数のバリアントを実行できるpcDuinoと呼ばれるボードがあります(ほんの数例を挙げると)。このボードはネイティブのArduinoではなく、Arduino AtHeartであり、LinkSpriteによって作成されています。
Arduinoには、Lininoと呼ばれるLinuxのバリアントの実行をサポートするボードがいくつかあります。
これは数年前ですが、Arduinosがより多くのRAMや32ビットATMega AVRを取得するなど、より適切なものになる可能性があります。ここで最も人気のある答えには特に明らかな問題があります。ArduinoはAVR MICROCONTROLLERを使用します、MICROPROCESSORではありません。これがLinuxの移植版がない主要な理由です。マイクロコントローラーは、入力と出力の関係が明確に定義された特定のタスク、アプリケーションを実行するように設計されています。マイクロプロセッサは、オペレーティングシステムでさまざまなアプリを実行するように設計されています。Linuxは最初からメモリ管理ユニットを必要としており、8088または286 PCでは実行できなかったことを思い出してください。次に、μClinuxがありました。これは元々、Palm Pilots用の組み込み68kプロセッサのMotorola DragonBallファミリを対象としていました。特に成功したことはありませんでした。LinuxよりもFreeDOSやMinixを移植する方が成功するかもしれませんが、おそらくアセンブラーの何かですが、マイクロコントローラーでOSをコンパイルすることは非常に非現実的です。おそらく、それは難しい学問的な問題です。
可能ですが、Cで記述する必要があるため、苦痛になります(SDカードシールドや追加のメモリチップなど、必要なハードウェアは言うまでもありません)。 arduinoのCは、ドライバーの追加をサポートしますが、ボイドループ関数の繰り返しを遅くする代わりに役立ちます。(これはあなたが思っているほど大したことではない)(Ontasはまだ開発中であり、常に新しい機能が追加されている)