Компания 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 Мб.


Источник: http://www.opennet.ru/opennews/art.shtml?num=30233