Приложение А, Ускорение запуска

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

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

 

Если мы определим включённое состояние как состояние, в котором основные службы (в зависимости от функциональных возможностей системы) доступны, то разные встраиваемые системы имеют разные требования для включённого состояния. Проанализируем маршрутизатор и портативное устройство для определения включённого состояния. Для маршрутизатора включённое состояние становится полезным, когда маршрутизатор сконфигурировал все сетевые интерфейсы, запустил все необходимые сетевые протоколы и настроил различные таблицы маршрутизации. Однако, для портативного устройства такое состояние является полезным, когда для пользователя доступны оконная система и устройства ввода/вывода. В отличие от маршрутизатора, для портативного устройства инициализация подключённого к сети стека не должна быть критерием достижения включённого состояния; наоборот, сетевой стек можно проинициализировать в более поздний момент времени. Везде в этом разделе время загрузки означает время, затраченное системой на достижение включённого состояния после подачи питания.

Linux развивался начиная с рынка настольных компьютеров и серверов, для которого время загрузки не является важным требованием. На настольных компьютерах и серверах загрузка Linux занимает несколько минут; это совершенно неприемлемо для встраиваемых систем.

С увеличением вычислительной мощности встраиваемых систем размер программного обеспечения встраиваемых систем также многократно увеличился. Больший набор программного обеспечения просто означает большее время загрузки.

 

Следовательно, уменьшение времени загрузки является индивидуальным процессом для каждой встроенной системы. В этом разделе описываются некоторые общие методы для сокращения времени загрузки. Однако, каждый из этих методов обычно является компромиссом между затратами памяти или скоростью; это также обсуждается. Время загрузки систем на основе Linux можно разделить на три этапа, как показано в Таблице А.1.

 

Таблица A.1 Этапы загрузки Linux

 

Состояние

Описание

Что отнимает много времени

Загрузчик

Загрузчик выполняет POST, запускает экран для взаимодействия с пользователем м загружает в память ядро Linux для инициализации.

POST, обнаружение ядра, копирование его в память, распаковка ядра.

Включение ядра

Ядро должно проинициализировать оборудование, настроить разные подсистемы и драйверы, смонтировать корневую файловую подсистему и передать управление в пространство пользователя.

Инициализация драйверов, монтирование файловой системы.

Включение пользовательского пространства

Запуск разнообразных служб системы.

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

 

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