Содержание
Ядро (англ. kernel) – то, вокруг чего строится всё остальное. Именно оно и называется Linux. Сейчас словом Linux в быту называют построенную на нём операционную систему, хотя по-хорошему она называется GNU/Linux (ядро Linux и ПО от проекта GNU, многие десятилетия находящейся в разработке).
В Ubuntu исппользуется ядро с большим количеством патчей, часть из которых добавляет нестабильные и экспериментальные возможности1).
Каждый релиз Ubuntu имеет собственную версию ядра. LTS-релизы начиная с 10.04 получили возможность обновить ядро до версий, входящих в состав более новых релизов.
Версия Ubuntu | Версия ядра |
---|---|
4.10 | 2.6.9 |
5.04 | 2.6.11 |
5.10 | 2.6.13 |
6.06 LTS | 2.6.15 |
6.10 | 2.6.18 |
7.04 | 2.6.19 |
7.10 | 2.6.20 |
8.04 LTS | 2.6.24 |
8.10 | 2.6.27 |
9.04 | 2.6.28 |
9.10 | 2.6.31 |
10.04 LTS | 2.6.32 |
10.10 | 2.6.35 |
11.04 | 2.6.38 |
11.10 | 3.0.4 |
12.04 LTS | 3.2 |
12.10 | 3.5 |
13.04 | 3.8 |
13.10 | 3.11 |
14.04 LTS | 3.13 |
14.10 | 3.16 |
15.04 | 3.19 |
Форки
- pf-kernel – форк ядра, развиваемый одним из участников русскоязычного сообщества. Цель сего проекта — собрать максимально оптимизированное по скорости и возможностям ядро под себя, заодно предоставив другим возможность пользоваться этими наработками.
- Zen Kernel – форк, в рамках которого развивается ядро пригодное для ежедневного использования. Не расчитано на серверные системы.
Установка
Ядро является одним из жизненно важных компонентов каждого дистрибутива Linux. В Ubuntu ядро содержится в пакетах linux-image-версия_ядра-тип_ядра
. Для простоты обновления так же имеется пакет linux-image-тип_ядра
, в зависимостях которого указана последняя версия ядра имеющеяся в репозитории.
Нумерация версий ядра Ubuntu и на сайте kernel.org не совпадает, так как для обозначения добавленных патчей разработчики из Canonical добавляют микроверсию. Например, версия 3.2.0-23 будет означать, что ядро базируется на ветке 3.2, на которую было наложено 23 патча.
В репозитории Ubuntu поддерживаются следующие типы ядер:
generic
– ядро, подходящее для большей части систем.generic-pae
2) – ядро, включающее в себя возможность адресовать больше 4Гб оперативной памяти на 32-битных системах.virtual
– специально оптимизированное ядро для работы в виртуальных машинах.server
– серверный вариант ядра (начиная с релиза Ubuntu 12.04 обьеденен сgeneric
).
generic-pae
ядро позволяет 32-битной системе использовать до 64ГБ общего объёма оперативной памяти, выделяя под нужды конкретного процесса не более 4ГБ, в то время как простое ядро generic
работает не более чем с 4ГБ ОЗУ.
64-битное ядро позволяет адресовать до 1ТБ памяти, потребляемой процессами.
Если требуется обновить ядро на более новую мажорную версию4) (обычно это связано с тем, что в новых версиях добавляется поддержка нового оборудования, устраняются регрессии) можно воспользоватся официально поддерживаемым архивом http://kernel.ubuntu.com/~kernel-ppa/mainline/.
Компиляция ядра
Перед началом сборки ядра необходимо установить следующие пакеты:
build-essential fakeroot ncurses-dev libssl-dev
Все дальнейшие действия необходимо выполнять от лица суперпользователя:
sudo su
Получение исходного кода
Исходный код ядра, используемого в Ubuntu можно получить установив пакет linux-source
:
apt-get install linux-source
После установки в директории /usr/src появится архив называющийся linux-source-верися_ядра.tar.bz2.
Так же можно скачать архив и с исходным кодом ядра с сайта kernel.org.
Конфигурирование
Распакуйте полученый архив5) и, для удобства, создайте символическую ссылку на полученую в результате директорию:
cd /usr/src tar xjf ./linux-source-3.2.0.tar.bz2 ln -s ./linux-source-3.2.0 ./linux cd ./linux
Для упрощения процесса конфигурации ядра можно скопировать настройки текущего:
cp /boot/config-`uname -r` .config
Если вы хотите узнать какие различия появились между новой и текущей версией ядер выполните:
make oldconfig
Начиная с версии ядра 2.6.32 появилась возможность обновлять конфигурацию только тех модулей, которые используются в данной системе:
make localmodconfig
Существует три основных варианта конфигурирования ядра:
make config
Способ для смелых и отважных. Конфигуратор задаст вам около четырехста вопросов на которые нужно будет дать ответ.
make menuconfig
Предоставляет псевдографический конфигуратор, в котором все настройки разложены по пунктам.
make xconfig
Предоставляет графический конфигуратор.
Сборка
Сборка ядра производится командой
fakeroot make-kpkg -j 5 --initrd --append-to-version=-custom kernel_image kernel_headers #-j <количество ядер процессора>+1
Вместо ваша_версия
подставьте название для вашей версии ядра.
Процесс сборки может занять некоторое время. По его окончанию появятся пакеты содержащие скомпилированное ядро и заголовочные файлы. Их можно будет установить при помощи dpkg
.
Модули ядра
Смотрите страницу Модули ядра.
Смотрите также
Ссылки
- Компиляция ядра (англ.)
- Опции сборки Linux — вроде бы не является официальной документацией, лучше вставить ссылку на доки от разработчиков