Содержание
Ядро (англ. 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-pae2) – ядро, включающее в себя возможность адресовать больше 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 — вроде бы не является официальной документацией, лучше вставить ссылку на доки от разработчиков
ссылку бы
проверить происходит ли это при установке с других версий (desktop, server)