Linuxカーネルのインクルードディレクトリの理解

Linuxカーネルのインクルードディレクトリの理解

ヘッダーファイルがインクルードディレクトリとアーチで区切られている理由を説明できる人はいますか?

ヘッダーファイルを含めるためにソースコードをリンクするには、実際にどこから入手できますか?

include/

または

arch/arm/

ARMホストでプログラムを作成しています(クロスコンパイルではありません)。

誰かがカーネルのヘッ​​ダファイル構造を説明できますか?どのように広がっていて、その背後に隠れている論理は何ですか?

答え1

ユーザー空間プログラムを作成する場合は、カーネルヘッダーを直接使用しないでください(またはarch後者includeには、アーキテクチャに適した前者が含まれています)。使用する必要がありますユーザー空間プログラムで使用するヘッダーの準備。これらは通常、ディストリビューションで別々のパッケージとして提供されます。例えば linux-libc-devDebian では、上記の手順に従って直接準備できます。

カーネルのヘッ​​ダーファイル構成は、すべてのパブリックヘッダーファイルがincludeカーネルのサブディレクトリとそのサブディレクトリにあり、アーキテクチャ固有のヘッダファイルはそのディレクトリのサブディレクトリにありarchます。ほとんどの場合、includeカーネルコードを書くときにヘッダーが含まれます。

関連情報