Monolinux to jednoplikowa dystrybucja, która uruchamia się na procesorze ARMv7 528 MHz w 0.37 sekundy

Erik Moqvist, autor platformy Simba i narzędzia kantorze, rozwija nową dystrybucję Monolinux, skupiająca się na tworzeniu wbudowanych systemów Linux do samodzielnego uruchamiania niektórych aplikacji napisanych w języku C. Dystrybucja wyróżnia się tym, że oprogramowanie jest spakowane w postaci jednego, statycznie połączonego pliku wykonywalnego, który zawiera wszystkie komponenty niezbędne do działania aplikacji (w zasadzie dystrybucja składa się z jądra Linuksa i dysku RAM ze statycznie złożony proces inicjujący, który obejmuje aplikację i niezbędne biblioteki). Kod dystrybuowane przez na licencji MIT.

Środowisko zapewnia wszystkie podsystemy i wywołania systemowe jądra Linuksa, w tym dostęp do systemu plików, stos sieciowy i sterowniki urządzeń. Biblioteki takie jak: ml (Biblioteka Monolinux C z powłoką, klientami DHCP i NTP, mapowaniem urządzeń itp.), async (framework asynchroniczny), strumień bitów, curl (HTTP, FTP, ...), detools (łatki delta), termokurczliwe (algorytm kompresji), przyjazny człowiekowi (narzędzia pomocnicze), mbedTLS, xz и zlib. Obsługiwany jest szybki cykl rozwoju, pozwalający ocenić działanie nowej wersji w ciągu kilku sekund po wprowadzeniu zmian w kodzie.

Warianty Monolinux przygotowane na płyty Raspberry Pi 3 и Momencik. Ostateczny rozmiar złożeń wynosi około 800 KB. Płacić Momencik wyposażony w SoC i.MX6UL z procesorem ARMv7-A (528 MHz), 1 GB DDR3 RAM i 4 GB eMMC. Czas rozruchu na płycie Jiffy wynosi tylko 0.37 sekundy – od włączenia zasilania do gotowości systemu plików Ext4. Z tego czasu 1 ms przeznacza się na inicjalizację sprzętową SoC, 184 ms na wykonanie kodu ROM, 86 ms na działanie bootloadera, 62 ms na uruchomienie jądra Linuksa i 40 ms na aktywację Ext4. Czas ponownego uruchomienia wynosi 0.26 sekundy. W przypadku korzystania ze stosu sieciowego, ze względu na opóźnienia w negocjowaniu kanału Ethernet i uzyskiwaniu parametrów sieci, system staje się gotowy do interakcji sieciowej w ciągu 2.2 sekundy.

System korzysta z jądra Linux 4.14.78 w minimalnej konfiguracji z dodatkowymi łaty, eliminując niepotrzebne opóźnienia w sterowniku MMC (MMC jest podłączony przez oprogramowanie płyty i jest już aktywowany w momencie uruchomienia sterownika) i rozpoczyna inicjalizację sterowników MMC i FEC (Ethernet) w trybie równoległym.

Źródło: opennet.ru

Dodaj komentarz