kernel-header
Пакети дистрибуції містять, як випливає з назви, лише файли заголовків ядра (плюс необхідну сантехніку), необхідні для створення програмного забезпечення, наприклад модулів ядра.
Ви не повинні сподіватися, що бінарні файли взагалі знайдуться у вихідному каталозі ядра , за винятком збірки вихідних даних. (Якщо ви налаштовуєте і створюєте ядро самостійно, каталог джерела ядра також буде містити скомпільовані об'єкти, модулі, власне вбудоване ядро та кілька інших бінарних бітів та фрагментів, які змушують його працювати.)
KConfig
Файли - це опис параметрів конфігурації ядра. (та їх залежності), які доступні для певного каталогу / модуля.
Крім цього, це все (в основному) C вихідний код, файли заголовків та Makefile
s. Тут і там є кілька допоміжних скриптів, а також джерело збірки.
Пакети заголовків (що ви встановили) містять лише заголовну частину вищезазначеного (і не все це - лише "експортовані" заголовки), а також частину інфраструктури побудови. Тож те, що ви бачите, очікується. Пакети заголовків не містять вихідного коду С (за винятком деяких заглушок та інфраструктурного коду побудови). Весь сенс наявності цього типу пакету полягає в економії місця (і пропускної здатності) - ціле дерево вихідного ядра Linux досить велике і зовсім непотрібне, якщо ви не збираєтесь самостійно збирати ядро. Пакети заголовків створюються та постачаються дистрибутивами, щоб забезпечити правильні речі, необхідні для складання модулів, але не більше. (Вони, звичайно, не містять скомпільоване ядро.)
Адресація вашого коментаря: пакети заголовків нікуди не переміщуються. Вони побудовані для конкретних версій ядра, упакованих у певний каталог, і це все. Це просто набір файлів. (Зверніть увагу, що пакети заголовків не обов'язково мають таку ж версію, що і поточні стабільні бінарні пакети ядра - пакети заголовків є загальними і можуть відставати від фактичного ядра, яке ви працюєте. Однак вони не повинні бути від ядра версія, яка є пізнішою, ніж поточне встановлене (або цільове) ядро.)
Встановлені бінарні файли ядра зазвичай встановлюються в /boot
каталозі разом із бінарними файлами завантажувача та файлами конфігурації. (Іноді це незалежна файлова система, не встановлена за замовчуванням.) Точне ім'я файлів залежить від ядра та розподілу. (Так робить завантажувач.)
Встановлені модулі ядра перебувають у підкаталогах:
/lib/modules/`uname -r`/
Так, наприклад, у моїй системі вони зараз є
/lib/modules/3.1.4-gentoo/
Повний вихідний код ядра : На Ubuntu, якщо ви хочете, щоб повні джерела ядра створили ядро самостійно, вам слід встановити, дотримуючись тут інструкцій .
Ви також можете завантажити вихідний тарбол kernel.org
і розпакувати його кудись ( не перезаписуйте встановлені Ubuntu файли, якщо ви використовуєте цей тарбол, зберігайте свої особисті речі та речі, якими управляє RPM).
/usr/src/linux
Традиційне місце для розміщення джерел ядра, але ніщо не заважає вам розміщувати джерела ядра в іншому місці. Цей шлях також часто є лише символічним посиланням на каталог. наприклад, у мене це є на моїй машині:
$ ls -l /usr/src/linux
lrwxrwxrwx 1 root root 18 Dec 7 17:03 /usr/src/linux -> linux-3.1.4-gentoo
Симпосилання є для спрощення побудови програм, які залежать від джерела ядра. Ви пов'язуєте цей шлях зі своїм запущеним (або цільовим) ядром, щоб не потрібно було вказувати точну інформацію про версію чи шлях, коли ви будуєте модуль поза деревом. Допомагає купу принаймні для джерел розподілу.