質問: linuxを別のプラットフォーム要件に移植する linuxが利用可能であり、x86、arm、powerpcなど、さまざまなプラットフォームに移植されていることは知っています。しかし、移植に関して、正確には何が必要ですか?linuxはcで書かれたソフトウェアであると私は理解しています。したがって、元々linuxをx86からarmなどに移植する場合、コンパイラーでコードを再コンパイルするだけの問題ではありません。特定のターゲットアーキテクチャ?さまざまな周辺機器用のデバイスドライバーを別にしておくと、linuxを新しいアーキテクチャに移植するときに他に何をする必要がありますか。コンパイラーがすべてを処理するわけではありませんか?
回答: 移植するハードウェアについてカーネルに伝える必要があります。カーネルの仕事はハードウェアと直接インターフェースすることなので、適切に機能するために、カーネルはcpu、発振器(クロック)、およびさまざまな種類のシリアルポート(spi、can、 i2cなど)。昔は、ドライバーが機能するために使用するプラットフォーム固有のコードを記述することでこれを実現していました。最近では、これは デバイスツリー定義 と書くことで行われます。