Представлен вариант Linux-прошивки, загружающейся за 300 мс
Компания Make Linux сообщила 0 о создании одного из самых быстрозагружаемых окружений 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 Мб.