Методы сокращения времени инициализации загрузчика

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

POST: Power-On Self Test (самотестирование при включении питания) может выполняться только во время выполнения холодной загрузки; во время теплого старта его можно пропустить и, следовательно, это может привести к уменьшению времени загрузки.

Обнаружение, распаковка и загрузка памяти, содержащей ядро: этот шаг может быть одним из наиболее длительных операций, так как это может занять от 500 мс до 1 с в зависимости от размера ядра. Чем больше размер ядра, тем будет требоваться больше времени на распаковку и копирование его в память. Если ядро является частью файловой системы Linux, хранящийся во флэш-памяти, то поиск ядра и анализ заголовков файлов (например, заголовков ELF) может занять много времени. Хранение образа ядра в разделе без файловой системы поможет обойти это. Чтобы избежать распаковку, файл может быть сохранён в несжатом формате, но это было бы за счёт дорогого пространства флэш-памяти. Чтобы избежать копирования ядра в память, ядро может быть подготовлено для XIP. eXecute In place (выполнение на месте) является методом, посредством которого ядро выполняется непосредственно из flash-памяти. XIP подробно обсуждается в Главе 10. Помимо сокращения времени запуска, другое достоинство XIP в том, что это бережёт память, потому что текстовый раздел ядра не копируется в память. Однако, недостатками использования XIP являются:
- XIP замедляет время выполнения ядра, потому что он выполняется из flash-памяти.
- Поскольку выполняемый на месте образ не может быть сжат, это будет означать, что для хранения несжатого образа потребуется больше flash-памяти.
- Использование выполняемого на месте ядра потребует изменений в коде драйвера flash-памяти, поскольку такие операции, как стирание flash-памяти и запись, не могут быть выполнены, когда ядро выполняется из flash. Такими изменениями в драйвере flash-памяти обычно будут копирование части ядра в память и выполнение его с отключенными прерываниями. Однако, этого не требуется, если ядро выполняется на месте из flash-памяти, которая имеет файловую систему только для чтения, такую как с CRAMFS.

Но если XIP является слишком дорогой операцией, то крайне важно, чтобы образ ядра был бы как можно меньше, чтобы избежать увеличения времени копирования. Чтобы сократить время копирования, можно использовать некоторые дополнительные приемы, такие как использование DMA для передачи образа с флэш-памяти.

 

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