Erik Moqvist, autor platformy i narzędzi , rozwija nową dystrybucję , skupioną na tworzeniu systemów Linux do wbudowanych zastosowań uruchamiających określone aplikacje napisane w języku C. Dystrybucja wyróżnia się tym, że komponenty oprogramowania są zorganizowane w postaci jednego statycznie skompilowanego pliku wykonywalnego, który zawiera wszystkie składniki potrzebne do działania aplikacji (dystrybucja zasadniczo składa się z jądra Linux i ramdysku ze statycznie skompilowanym procesem init, obejmującym aplikację i niezbędne biblioteki). Kod na licencji MIT.
W środowisku udostępniane są wszystkie podsystemy i wywołania systemowe jądra Linux, w tym dostęp do systemu plików, stosu sieciowego i sterowników urządzeń. Do łączenia z aplikacją dostępne są takie biblioteki jak (biblioteka C Monolinux z powłoką, klientami DHCP i NTP, Device-mapper itd.), (framework asynchroniczny), , (HTTP, FTP,...), (łatki delta), (algorytm kompresji), (narzędzia pomocnicze), , i . Wspierany jest szybki cykl rozwoju, który pozwala na ocenę nowej wersji w ciągu kilku sekund po wprowadzeniu zmian w kodzie.
Wersje Monolinux są przygotowane dla płyt i . Ostateczny rozmiar kompilacji wynosi około 800 KB. Płyta zawiera SoC i.MX6UL z CPU ARMv7-A (528 MHz), 1 GB DDR3 RAM i 4 GB eMMC. Czas bootowania na płycie Jiffy wynosi zaledwie 0.37 sekundy - od włączenia do gotowości systemu plików Ext4. Z tego czasu 1 ms zajmuje inicjalizacja sprzętowa SoC, 184 ms na wykonanie kodu EEPROM, 86 ms na działanie bootloadera, 62 ms na uruchomienie jądra Linux i 40 ms na aktywację Ext4. Czas ponownego uruchomienia wynosi 0.26 sekundy. W przypadku użycia stosu sieciowego, z powodu opóźnień przy negocjowaniu kanału Ethernet i uzyskiwaniu parametrów sieci, system jest gotowy do interakcji sieciowej po 2.2 sekundach.
W systemie użyto jądra Linux 4.14.78 w minimalnej konfiguracji z dodatkowymi , eliminującymi zbędne opóźnienia w sterowniku MMC (MMC jest podłączany przez oprogramowanie płyty i w momencie uruchamiania sterownika już aktywowany) i inicjującymi uruchamianie sterowników MMC i FEC (Ethernet) w trybie równoległym.
Źródło: opennet.ru
