Monolinux — еднофайлов дистрибуция, зареждаща се на CPU ARMv7 528 MHz за 0.37 секунди

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

В средата са предоставени всички подсистеми и системни повиквания на ядрото на Linux, включително достъп до файловата система, мрежов стек и драйвери на устройствата. За свързване с приложението са налични библиотеки като ml (C-библиотека Monolinux с shell, клиенти за DHCP и NTP, Device-mapper и т.н.), асинхронно (асинхронна рамка), 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 RAM и 4 GB eMMC. Времето за зареждане на платката Jiffy е само 0.37 секунди — от включването до готовността на файловата система Ext4. От това време 1 ms отива за хардуерна инициализация на SoC, 184 ms за изпълнение на код в ROM, 86 ms за работа на зареждача, 62 ms за стартиране на ядрото на Linux и 40 ms за активиране на Ext4. Времето за рестартиране е 0.26 секунди. При използване на мрежовия стек поради забавяне за установяване на Ethernet канала и получаване на мрежовите параметри системата става готова за мрежово взаимодействие за 2.2 секунди.

В системата е използвано ядро на Linux 4.14.78 в минимална конфигурация с допълнителни патчове, премахващи излишните забавяния в драйвера на MMC (MMC се свързва с фърмуера на платката и при стартиране на драйвера вече е активен) и стартиращи инициализацията на драйверите MMC и FEC (Ethernet) в паралелен режим.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster