Настройка ядра для уменьшения времени запуска

Предыдущая  Содержание  Следующая V*D*V

Отключение вывода сообщений в ядре: если печать ядра направлена в последовательную консоль (которая является медленным устройством), то вывод может привести к большой задержке во время инициализации ядра. Чтобы избежать этого, вывод сообщений ядра можно отключить с помощью опции командной строки ядра quiet. Однако, эти сообщения можно просмотреть позже командой dmesg.

Жёсткое кодирование в ядре значения loops_per_jiffies: как уже говорилось в Главе 2, инициализация ядра включает в себя вызов функции calibrate_delay() для вычисления значения loops_per_jiffies. В зависимости от архитектуры процессора это может занять до 500 мс. Если частота процессора может быть известна в момент компиляции ядра, то это значение может быть жёстко прописано внутри ядра, либо может быть добавлена опция командной строки ядра, чтобы передать значение этой переменной во время загрузки ядра.

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

Использование подходящей корневой файловой системы: разные файловые системы имеют разное время инициализации. Время загрузки для журналируемых файловых систем, таких как JFFS2, чрезвычайно большое, поскольку они сканируют для поиска записей во время инициализации всю flash-память. Файловые системы только для чтения, такие как с CRAMFS и ROMFS, имеют более короткое время инициализации.

 

Предыдущая  Содержание  Следующая