Разработка ядра Linux | страница 19
>x
, >y
, >z
— это номер соответствующей версии исходного кода ядра. После загрузки исходного кода его можно декомпрессировать очень просто. Если tar-архив сжат с помощью GNU zip, то необходимо выполнить следующую команду.>$ tar xvzf linux-x.y.z.tar.gz
Если сжатие выполнено с помощью bzip2, то команда должна иметь следующий вид.
>$ tar xvjf linux-x.y.z.tar.bz2
Обе эти команды позволяют декомпрессировать и развернуть дерево исходных кодов ядра в каталог с именем >linux-x.y.z
.
Исходный код ядра обычно инсталлируется в каталог >/usr/src/linux
. Заметим, что это дерево исходного кода нельзя использовать для разработок. Версия ядра, с которой была скомпилирована ваша библиотека С, часто связывается с этим деревом каталогов. Кроме того, чтобы вносить изменения в ядро, не обязательно иметь права пользователя root, вместо этого лучше работать в вашем домашнем каталоге и использовать права пользователя root только для инсталляции ядра. Даже при инсталляции нового ядра каталог >/usr/src/linux
лучше оставлять без изменений.
Использование заплат
В сообществе разработчиков ядра Linux заплаты (patch) — это основной язык общения. Вы будете распространять ваши изменения исходного кода ядра в виде заплат и получать изменения кода от других разработчиков тоже в виде заплат. При данном рассмотрении наиболее важными являются инкрементные заплаты (incremental patch), которые позволяют перейти от одной версии ядра к другой. Вместо того чтобы загружать большой архив ядра, можно просто применить инкрементную заплату и перейти от имеющейся версии к следующей. Это позволяет сэкономить время и пропускную способность каналов связи. Для того чтобы применить инкрементную заплату, находясь в каталоге дерева исходных кодов ядра, нужно просто выполнить следующую команду.
>$ patch -p1 < ../patch-x.y.z
Обычно заплата для перехода на некоторую версию ядра должна применяться к предыдущей версии ядра.
В следующих главах использование заплат рассматривается более подробно.
Дерево исходных кодов ядра
Дерево исходных кодов ядра содержит ряд каталогов, большинство из которых также содержит подкаталоги. Каталоги, которые находятся в корне дерева исходных кодов, и их описание приведены в табл. 2.1.
Таблица 2.1. Каталоги в корне дерева исходных кодов ядра
Каталог | Описание |
---|---|
>arch | Специфичный для аппаратной платформы исходный код |
>crypto | Криптографический API |
>Documentation | Документация исходного кода ядра |