Зачем изменять
ядро
Новичок Linux может удивленно
спросить: "А зачем это нужно - рекомпилировать ядро?" Тем более что
процесс этот, в его представлении, далеко не прост.
В настоящее время Linux
- система, намного более дружественная, чем два-три года назад. Усовершенствованная
процедура установки, графические интерфейсы и поддержка оборудования сделали
систему Linux доступной для тех, кто не является большим компьютерным знатоком.
В действительности, описываемый процесс рекомпиляции управляется меню и единственной
(длинной) командой запуска.
Linux - система в высшей
степени "настраиваемая", так что ее вполне можно адаптировать "под
себя". Однако многие ее функции в стандартном ядре просто не задействованы.
Причин тому несколько.
Прежде всего, важно понять,
что любому пользователю программного обеспечения постоянно приходится искать
компромиссы. Например, при использовании программы сжатия это компромисс между
скоростью и плотностью сжатия.
Немало компромиссных решений
приходится принимать и в отношении ядра Linux. Например, можно предпочесть ядро
меньшего объема либо поддерживающее большее число типов оборудования без дополнительного
конфигурирования. А можно оптимизировать систему на передачу iP-пакетов или
выполнение задач, обычных, для рабочей станции.
Терминология:
частичная, полная и просто компиляция
В этой главе часто встречаются
три термина, обозначающие, по существу, один и тот же провес: частичная
(make),
полная
(build)
и просто компиляция
(Compile) ядра.
Их можно
рассматривать как синонимы, но попробуем все же разобраться в точном значении
каждого.
При разработке программного
обеспечения в Linux, как и во многих других операционных системах, схема объединения
модулей исходного текста и многочисленных библиотек записывается в конфигурационном
файле. Это файл называется make file и используется утилитой make.
Дроцесс преобразования
исходного текста проекта в нечто, чем может воспользоваться компьютер (двоичный
файл), называют
компиляцией.
В Linux для компиляции исходного текста
применяются стандартные компиляторы языка С дсс или egcs.
Как правшто, проект содержит
десятки компонентов, поэтому утилита make проверяет дату и время модификации
каждого, чтобы компилировать только те из них, которые были модифици-рованы
после предыдущей компиляции. Тем самым достигается существенная экономия времени
при компиляции пцоекта после частичной модификации исходного текста. Этот процесс
называется частичной компиляцией.
При запуске утилиты make
можно задать компиляцию всех компонентов проекта. Это полная
компиляция.
Таким образом, все три
варианта компиляция ядра - это, по существу, одно и то же. А при наличии нескольких
сотен тысяч строк исходных текстов, процесс этот, как его ни назови, требует
времени.
Ядро конфигурируется так,
чтобы соотношение между его объемом, скоростью и поддержкой оборудования было
приемлемым. Это соотношение выбирается с расчетом на среднего пользователя,
каким его видит поставщик Linux. Мы научимся самостоятельно принимать решения
о том, какие именно функции наиболее важны для конкретной вычислительной среды.