
Linuxカーネルアーキテクチャとプラットフォームの違いを知りたいです。最新のカーネルをダウンロードしたときtarball
、別の名前のプロセッサを含むarchというディレクトリを見つけ、プロセッサディレクトリ内にplatformという別のディレクトリがありました。
たとえば:-
/arch/powerpc
LinuxカーネルのArchの下にあるディレクトリ/arch/powerpc/platforms
ですpowerpc
。
それでは、これは実際に何を意味しますか?
ハードウェアの観点からソフトウェアの観点まで詳しく説明していただける方ですか?
答え1
アーキテクチャはプロセッサタイプです。アーキテクチャの数は比較的少ない。同じユーザーコードを実行するすべてのプロセッサタイプは、カーネルのコンパイル方法がさまざまであっても同じアーキテクチャに分類されます。たとえば、単一のアーキテクチャx86
ですが、powerpc
カーネルは32ビット命令セットまたは64ビット命令セットを使用できます。 -bitコマンドセットはコンパイルされます(32ビットカーネルは32ビットプログラムのみを実行できますが、64ビットカーネルは32ビットプログラムと64ビットプログラムの両方を実行できます)。
プラットフォームは、Linuxが関心を持つハードウェアの他のすべての側面を説明しています。これには、起動方式の変更、特定の周辺機器(メモリコントローラ、電源管理補助プロセッサ、暗号化アクセラレータなど)の動作方法などが含まれます。機能がプラットフォームによって分類されているのか、それとも別のドライバーやコンパイルオプションに分類されているのかは、部分的にその機能がどれだけ基本的であるか(例えば、その機能を使用するコードを分離するのがどれほど難しいか)、部分的にサポートされているコード作成する人がどのように書くかによって異なります。機能はそうすることにします。