Monolinux - дистрибутив в одному файлі, який завантажується на CPU ARMv7 528 MHz за 0.37 секунд

Alex Alex 18 червня
Monolinux - дистрибутив в одному файлі, який завантажується на CPU ARMv7 528 MHz за 0.37 секунд

Ерік Моквіст (Erik Moqvist), автор платформи Simba та інструментарію cantools, розвиває новий дистрибутив Monolinux, орієнтований на створення вбудованих Linux-систем для відокремленого запуску певних додатків, написаних мовою Сі. Дистрибутив примітний тим, що програмна начинка оформляється у вигляді одного статично скомпонованого виконуваного файлу, що включає всі компоненти, необхідні для роботи програми (по суті дистрибутив становить ядро Linux і ram-диск зі статично зібраним init-процесом, що містить застосунок і необхідні бібліотеки). Код поширюється під ліцензією MIT.

В оточенні надаються всі підсистеми та системні виклики ядра Linux, включаючи доступ до ФС, мережевий стек і драйвери пристроїв. Для зв'язування з додатком доступні такі бібліотеки, як ml (сі-бібліотека Monolinux c shell, клієнтами DHCP і NTP, Device-mapper тощо), async (asynchronous framework), bitstream, curl (HTTP, FTP, ...), detools (delta-патчі), heatshrink (алгоритм стиснення), humanfriendly (допоміжні інструменти), mbedTLS, xz і zlib. Підтримується швидкий цикл розробки, що дозволяє протягом лічених секунд оцінити роботу нової версії після внесення змін в код.

Варіанти Monolinux підготовлені для плат Raspberry Pi 3 і Jiffy. Підсумковий розмір збірок близько 800 КБ. Плата Jiffy оснащена SoC i.MX6UL з CPU ARMv7-A (528 MHz), 1 GB DDR3 ОПЕРАТИВНОЇ пам'яті та 4 GB eMMC. Час завантаження на платі Jiffy складає всього 0.37 секунд - від включення до готовності файлової системи Ext4. З цього час 1 мс йде на апаратну ініціалізацію SoC, 184 мс на виконання коду ПЗУ, 86 мс на роботу завантажувача, 62 мс на запуск ядра Linux і 40 мс на активацію Ext4. Час перезавантаження становить 0.26 секунд. У разі використання мережевого стека з-за затримок на узгодження каналу Ethernet і отримання параметрів мережі система стає готова для мережевої взаємодії через 2.2 секунди.

В системі використано ядро Linux 4.14.78 в мінімальній конфігурації з додатковими латками які усувають зайві затримки в драйвері MMC підключається прошивкою плати й в момент запуску драйвера вже активовано) і забезпечують ініціалізацію драйверів MMC і FEC (Ethernet) в паралельному режимі.

Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Війти / Зареєструватися