Компания Make Linux сообщила о создании одного из самых быстрозагружаемых окружений Linux - от начала загрузки до запуска рабочей командной оболочки на основе BusyBox тратится всего 300 мс. Загрузка была продемонстрирована на плате Beagle Board, снабженной процессором 720 MHz ARM Cortex-A8, SoC OMAP3530 и NAND flash-памятью. Кроме подготовки базового Linux-окружения, обеспечивающего минимальное время загрузки на стандартных встраиваемых системах, также была поставлена задача подготовки программной платформы для создания более функциональных систем, построенных поверх быстрозагружаемой основы.
Процесс загрузки был сведен к следующим стадиям:
- 330 мс требуется на первичную инициализацию оборудования после включения питания. В случае горячего перезапуска (reset) на инициализацию уходит 70 мс. После этой фазы управление передается непосредственно загрузчику;
- 237 мс тратится на загрузку образа системы размером 1.5 Мб с NAND Flash. Скорость загрузки составляет примерно 6 Мб/сек;
- Запуск кода производится за 60 мс или 43 миллиона циклов CPU (для более быстрых процессоров время выполнения будет меньше, но число циклов является постоянной величиной);
- Как видно из лога загрузки, наибольшее время тратится на копирования прошивки из Flash в оперативную память.
Состав прошивки:
- Загрузчик: оптимизированный x-loader, без задействования u-boot (на выполнение U-Boot уходит более 400 мс);
- Linux-ядро версии 2.6.32 из пакета DVSDK 3.01. Ядро использовано в минимальной конфигурации, размер собранного ядра составляет примерно 900 Кб. (В процессе обсуждения высказано мнение, что подобное урезанное ядро мало подходит для выполнения реальных задач. Например, в представленной сборке отключен сетевой стек и другие важные функции, оставлен только самый минимум, необходимый для запуска командной оболочки. С другой стороны, ранее уже были представлены Linux-системы, на загрузки и запуск Qt-приложения в которых уходит примерно одна секунда, из которой 400 мс уходило на работу U-Boot);
- Пользовательское программное обеспечение: статически собранный BusyBox v1.16.2 c оболочкой hush. Размер примерно 600 Кб.
- Корневая файловая система была интегрирована в образ Linux-ядра;
- Размер ядра и вмонтированной в него файловой системы составил 1.5 Мб.