Модернизация ядра
Модернизация ядра - это просто надо взять исходные тексты и самому их откомпилировать. Вы должны компилировать ядро сами, поскольку вам решать, какие свойства включать и не включать, как и убедиться, что ядро будет оптимизировано применительно к вашей машине. Процесс вполне безболезненный. (прим. переводчика: Настоящие парашютисты сами укладывают свой парашют).
Исходные тексты ядра можно раздобыть на любом Linux-овском FTP-сервере (список смотрите в Разделе C). На sunsite.unc.edu, например, исходники ядро находятся в pub/Linux/kernel/. Версии ядра нумеруются с использованием номера версии ядра (kernel) и уровня исправления (patchlevel). Например, kernel version 0.99 patchlevel 11 обычно записывается как 0.99.pl11, или еще проще 0.99.11.
Исходники ядра распространяются в виде зазипованных tar-файлов. ( Часто patch-файлы ("заплаты") выпускаются для текущей версии ядра, которая позволяет модернизировать исходники вашего действующего ядра на основе последнего уровня исправлений, используя программу patch. В большинстве случаев, между тем, обычно проще инсталлировать целиком новую версию ядра. Например, файл, содержащий исходники ядра 0.99.pl11 - linux-0.99.11.tar.gz. ( прим. переводчика: На момент перевода книги существуют следующие серии ядер: 0.1-0.99, 1.0.1-1.0.9, 1.1.1-1.1.95, 1.2.1-1.2.13, 1.3.1-1.3.83. Ядра, принадлежащие серии с четной 2-й цифрой (1.0, 1.2), являются стабильными (то есть не включают никаких экспериментальных кодов). Ядра серии (1.1, 1.3) включают экспериментальные коды (такие как Mobile IP, IP-masquarading и т. п. в серии 1.3). Переводчик, исходя из декларированного автором принципа "от добра добра не ищут", работает в версии 1.2.13 и с нетерпением ждет появления версии 1.4.1 или 2.0.)
Распакуйте этот файл из каталога /usr/src; он создаст каталог /usr/src/linux, который содержит исходники ядра. Вам следует удалить или переименовать существующий /usr/src/linux перед распаковкой новой версии.
Когда исходники распакованы, вам необходимо убедиться, что две символические связи в /usr/include корректны. Для создания этих связей используйте команды
# ln -sf /usr/src/linux/include/linux /usr/include/linux # ln -sf /usr/src/linux/include/asm /usr/include/asm
Если вы однажды создали эти связи, нет причины создавать их
снова, когда вы инсталлируете следующую версию ядра. (Смотрите Раздел 3.10 по поводу символических связей).
Обратите внимание, что для компиляции ядра у вас в системе должны быть инсталлированы компиляторы gcc и g++ C и C++. Если вы нуждаетесь в более свежих версиях этих компиляторов, смотрите ниже Раздел 4.7.3.
Для компиляции ядра прежде всего выполните cd в /usr/src/linux. Выполните команду make config. Эта команда запросит у вас несколько настроечных опций, таких как "Какой тип файловой системы вы желаете включить в новое ядро". Затем, отредактируйте /usr/src/linux/Makefile. Убедитесь, что определение для ROOT_DEV корректно - оно определяет устройство, используемое в качестве корневой файловой системы во время загрузки. Обычное определение имеет вид:
ROOT_DEV = CURRENT
Менять это нет смысла, кроме случая, когда вы меняете устройство для вашей корневой файловой системы.
Затем выполните команду make dep для отслеживания всех взаимосвязей исходных текстов. Это очень важный этап.
И наконец, вы готовы компилировать ядро. Команда make Image скомпилирует ядро и оставит образ нового ядра в файле /usr/src/linux/Image. (прим. переводчика: Начиная с ядер серии 1.2 собранное ядро записывается в каталог /usr/src/linux/arch/i386/boot/Image (если конечно вы собирали ядро для процессоров серии intel, а не alpha, mips или sparc.) А команда make zImage скомпилирует скомпрессировнный образ ядра, который раскомпрессирует сам себя во время загрузки, а так занимает на диске меньше места.
После компиляции ядра вы должны либо скопировать его на загрузочную дискету (командой вроде ``cp Image /dev/fd0''), либо инсталлировать его, используя LILO для загрузки с вашего жесткого диска. Дополнительную информацию можно найти в Разделе 4.2.2 .