私のローカルLinux / Ubuntuには2つのLinux srcディレクトリがあります。
/usr/src/linux-3.16.0
/usr/src/linux-3.16.0-generic
私は3.16.0-genericより3.16.0にはるかに多くのコードがあることを発見しました。これらの2つのディレクトリがなぜそしてどう違うのか知りたいです(何を表しますか?)
ベストアンサー1
これら2つのディレクトリは、カーネルのヘッダーファイルを含む対応するパッケージから提供されます。コマンドを使用してdpkg
ディレクトリを提供するパッケージを見つけます。
$ dpkg -S /usr/src/linux*
linux-headers-X.XX.X-XX: /usr/src/linux-headers-X.XX.X-XX
linux-headers-X.XX.X-XX-generic: /usr/src/linux-headers-X.XX.X-XX-generic
...
最初のディレクトリには、/usr/src/linux-headers-X.X.XX-XX
x86、amd64、powerpcなどを含む複数のアーキテクチャ用のヘッダファイルが含まれており、ファイル数が多く、パッケージサイズも大きくなります。
別のディレクトリには、/usr/src/linux-headers-X.X.XX-XX-generic
主にローカルインストール用のx86アーキテクチャに関連するソースコードが含まれているようです。
そのパッケージはすでに説明に示されています。例:
$ apt-cache show linux-headers-3.16.0-25 | grep -A3 Description-en
Description-en: Header files related to Linux kernel version 3.16.0
This package provides kernel header files for version 3.16.0, for sites
that want the latest kernel headers. Please read
/usr/share/doc/linux-lts-utopic-headers-3.16.0-25/debian.README.gz for details
私が知っている限り、これら2つのディレクトリにはバイナリではなくソースコードのみが含まれています。 2つの主な違いは次のとおりです。ターゲットアーキテクチャソースコード
関連:カーネルソースツリーには何が含まれていますか?これはLinuxカーネルヘッダファイルに関連していますか?
詳しい回答(2015.07.30)
関連コードが保存されていますが、
x86
2つのディレクトリにあるコードの違いは何ですか?x86
— Richardが2015年7月29日19:11に
/usr/src/linux-headers-X.X.XX-XX-generic
に含まれるほとんどのディレクトリとファイルは/usr/src/linux-headers-X.X.XX-XX
。arch/x86
asm
*-generic
config
これら2つのパッケージの間に見られるもう1つの主な違いは、対応とgenerated
ディレクトリがあることです*-generic
。
*-generic
私が理解しているように、このディレクトリにはアーキテクチャ依存モジュールを設定してコンパイルするために必要なヘッダファイルが含まれていると思いますx86
。いいえ予期せず変更されましたlinux-headers-x.x.xx-xx
。
最も重要なのは、これら2つのディレクトリが、そのプラットフォームでパッケージをパッケージ化してコンパイルする「クリーン」な方法である可能性があることです。しかし、私はこの問題を明確にする資格がありません。
回答者のメモ:私はこの答えを素朴に書きました。何が正しいか間違っているのかわからないので、おそらく途中でいくつかの説明がありません。したがって、この回答は現在コミュニティウィキなので、最小限の評判を持つ人なら誰でもこの文書を改善して違いを完全に説明できます。