Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #76, АПРЕЛЬ 2005 г.

Ядерные испытания тукса

Денис Колисниченко

Хакер, номер #076, стр. 076-096-3


Какой из планировщиков использовать? Если поискать в Сети ответ на этот вопрос, то найдется очень много документов, в которых приводятся весомые аргументы в пользу первого или второго планировщика. Если сравнивать I/O-планировщик, используемый по умолчанию, с планировщиком ядра 2.4, то результат превосходит все ожидания. На машине с процессором Xeon чтение файла размером 500 Мб занимает 37 секунд при использовании ядра 2.4, и 4 секунды (!) при использовании ядра 2.6. Это почти в десять раз быстрее. Deadline-планировщик тоже работает неплохо, но все же, как мне показалось, не так быстро, как планировщик по умолчанию.

В любом случае ты можешь использовать любой из этих планировщиков, и решить для себя, какой из них лучше. Как уже отмечалось, первый планировщик используется по умолчанию, а для включения второго нужно передать ядру опцию:

elevator=deadline

Чтобы вернуться к использованию первого планировщика, достаточно не указывать опцию elevator.

Помимо новых планировщиков, ядро 2.6 постигло еще несколько архитектурных изменений. Теперь ядро может компилироваться без поддержки выгрузки модуля, что обеспечит стабильную работу ядра, в случае если кто-то попытается выгрузить модуль, когда он используется.

Как откомпилировать новое ядро?

Изменился ли процесс компилирования ядра? Да, изменился. Причем в лучшую сторону – разработчики постарались на славу. Процесс компиляции стал более "дружественным", если можно так выразиться. Итак, обо всем по порядку.

Первое, что бросается в глаза – это измененный xconfig (теперь он называется qconf). Теперь он написан на Qt, есть также версия для Gnome – gconfig. Думаю, новый интерфейс тебе понравится. Сначала немного непривычно, особенно, если ты раньше компилировал ядра версий 2.2 и 2.4 – немного другие разделы, новые опции. Но разработчики сделали это намеренно – не для того, чтобы тебя запутать – просто в новой версии ядра появилось столько много новых возможностей, что старая организация меню себя уже исчерпала. Любителям menuconfig тоже есть чему порадоваться: теперь menuconfig работает быстрее, причем это не просто "быстрее", а "ощущается", улавливаешь разницу? Теперь сам процесс компиляции:

# make qconf

# make bzImage modules modules_install

# cp arch/i386/boot/bzImage /boot/my_kernel

# cp System.map /boot

Можно, конечно, использовать make install, но, не знаю как ты, я предпочитаю прописывать новое ядро в lilo вручную. Ты заметил, что make dep уже нет, поэтому вводить эту команду не нужно. Что мне еще понравилось – так это процесс перекомпиляции ядра. Теперь ядро перекомпилируется значительно быстрее, поскольку компилируются измененные "части", в ядре 2.4 (и более старых) происходила полная компиляция.

Кажется, относительно ядра уже – с новыми опциями ты и без меня разберешься, к интерфейсу постепенно тоже привыкнешь. А вот модули заслуживаются отдельного разговора. Во-первых, теперь для управления модулями использует не modutils, как это было ранее, а module-init-tools. Данный пакет поддерживает все предыдущие ядра, поэтому даже если у тебя все еще ядро 2.4, ты можешь обновить свой старый modutils. Во-вторых, при сборке некоторых модулей (в виде модуля, то есть, не включая в ядро) иногда появляются ошибки. Как выход могу посоветовать включить эти опции в ядро (а не как модуль).

Назад на стр. 076-096-2  Содержание  Вперед на стр. 076-096-4