Monolinux — un distribuidor de un solo archivo que se carga en CPU ARMv7 528 MHz en 0.37 segundos

Erik Moqvist, autor de la plataforma Simba y herramientas cantools, está desarrollando una nueva distribución Monolinux, orientada a la creación de sistemas Linux embebidos para la ejecución aislada de ciertas aplicaciones escritas en C. La distribución se destaca porque el contenido del software se presenta como un único archivo ejecutable estáticamente compuesto, que incluye todos los componentes necesarios para que la aplicación funcione (en esencia, la distribución consiste en el núcleo de Linux y un disco RAM con un proceso init estáticamente ensamblado, que incluye la aplicación y las bibliotecas necesarias). El código se distribuye bajo licencia MIT.

En el entorno se proporcionan todos los subsistemas y llamadas al sistema del núcleo de Linux, incluyendo acceso al sistema de archivos, pila de red y controladores de dispositivos. Para la vinculación con la aplicación, están disponibles bibliotecas como ml (la biblioteca C de Monolinux con shell, clientes DHCP y NTP, Device-mapper, etc.), async (marco asincrónico), bitstream, curl (HTTP, FTP, ...), detools (parches delta), heatshrink (algoritmo de compresión), humanfriendly (herramientas auxiliares), mbedTLS, xz y zlib. Se admite un ciclo de desarrollo rápido que permite evaluar en cuestión de segundos el funcionamiento de una nueva versión después de realizar cambios en el código.

Las versiones de Monolinux están preparadas para las placas Raspberry Pi 3 y Jiffy. El tamaño final de las compilaciones es de aproximadamente 800 KB. La placa Jiffy está equipada con un SoC i.MX6UL con CPU ARMv7-A (528 MHz), 1 GB de RAM DDR3 y 4 GB de eMMC. El tiempo de arranque en la placa Jiffy es de solo 0.37 segundos, desde el encendido hasta que el sistema de archivos Ext4 está listo. De este tiempo, 1 ms se utiliza para la inicialización hardware del SoC, 184 ms para ejecutar el código de arranque, 86 ms para el funcionamiento del cargador, 62 ms para iniciar el núcleo de Linux y 40 ms para activar Ext4. El tiempo de reinicio es de 0.26 segundos. En caso de usar la pila de red, debido a retrasos en el establecimiento del canal Ethernet y la obtención de parámetros de red, el sistema está listo para la interacción de red en 2.2 segundos.

El sistema utiliza el núcleo de Linux 4.14.78 en una configuración mínima con adicionales parches, que eliminan retrasos innecesarios en el controlador MMC (el MMC se conecta con el firmware de la placa y en el momento de activar el controlador ya está activado) y que inician la inicialización de los controladores MMC y FEC (Ethernet) en modo paralelo.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster