kernel-header
Paket distribusi berisi, seperti namanya, hanya file header kernel (ditambah pipa ledeng yang diperlukan) yang diperlukan untuk membangun perangkat lunak seperti modul kernel.
Anda seharusnya tidak berharap menemukan file biner sama sekali di direktori source kernel , kecuali untuk output build. (Jika Anda mengkonfigurasi dan membuat sendiri kernel, direktori source kernel juga akan berisi objek yang dikompilasi, modul, kernel yang dibangun itu sendiri dan beberapa bit dan potongan biner yang membuatnya berfungsi.)
KConfig
File adalah deskripsi opsi konfigurasi kernel (dan dependensinya) yang tersedia untuk direktori / modul tertentu.
Selain itu, itu semua (kebanyakan) kode sumber C, file header dan Makefile
s. Ada beberapa skrip pembantu di sana-sini, dan sumber perakitan juga.
Paket header (yang Anda instal) hanya berisi bagian header di atas (dan tidak semua itu - hanya header "yang diekspor"), dan beberapa infrastruktur pembangunan. Jadi apa yang Anda lihat diharapkan. Paket header tidak mengandung kode sumber C (kecuali untuk beberapa bertopik dan membangun kode infrastruktur). Inti dari memiliki jenis paket ini adalah untuk menghemat ruang (dan bandwidth) - keseluruhan pohon sumber kernel Linux agak besar, dan sama sekali tidak perlu jika Anda tidak ingin mengkompilasi kernel sendiri. Paket header dibuat dan dikirimkan oleh distribusi untuk menyediakan hal-hal yang tepat yang diperlukan untuk membangun modul, tetapi tidak lebih. (Mereka tentu tidak mengandung kernel yang dikompilasi.)
Mengatasi komentar Anda: paket tajuk tidak dipindahkan di mana pun. Mereka dibuat untuk versi kernel tertentu, dikemas dalam direktori tertentu, dan hanya itu. Itu hanya satu set file. (Perhatikan bahwa paket header tidak harus memiliki versi yang sama dengan paket biner kernel stabil saat ini - paket header bersifat generik, dan dapat tertinggal di belakang kernel yang sebenarnya Anda jalankan. Namun, paket tersebut seharusnya tidak berasal dari kernel versi yang lebih baru dari kernel yang diinstal (atau target) saat ini.)
Binari kernel yang diinstal biasanya diinstal dalam /boot
direktori, bersama dengan binari bootloader dan file konfigurasi. (Ini kadang-kadang sistem file independen, tidak dipasang secara default.) Nama pasti file tergantung pada kernel dan distribusi. (Begitu juga dengan bootloader.)
Modul kernel yang diinstal berada di sub-direktori:
/lib/modules/`uname -r`/
Jadi misalnya pada sistem saya, mereka saat ini masuk
/lib/modules/3.1.4-gentoo/
Kode sumber kernel lengkap : Di Ubuntu, jika Anda ingin sumber kernel lengkap untuk membuat kernel sendiri, Anda harus menginstal mengikuti petunjuk di sini .
Anda juga bisa mendownload tarbal sumber dari kernel.org
dan membongkar suatu tempat (lakukan tidak menimpa file Ubuntu-instal jika Anda menggunakan tarbal ini, menyimpan barang-barang pribadi Anda dan hal-hal yang dikelola oleh RPM terpisah).
/usr/src/linux
adalah tempat tradisional untuk meletakkan sumber kernel, tetapi tidak ada yang menghalangi Anda untuk meletakkan sumber kernel di tempat lain. Jalur ini juga sering hanya tautan simbolis ke direktori. misalnya saya punya ini di mesin saya:
$ ls -l /usr/src/linux
lrwxrwxrwx 1 root root 18 Dec 7 17:03 /usr/src/linux -> linux-3.1.4-gentoo
Symlink ada untuk menyederhanakan pembuatan aplikasi yang bergantung pada sumber kernel. Anda menautkan jalur itu ke kernel Anda yang sedang berjalan (atau target) sehingga Anda tidak harus menentukan versi yang tepat atau informasi jalur ketika Anda membuat modul out-of-tree. Paling tidak membantu banyak untuk distribusi berbasis sumber.