Monolinux — uma distribuição de arquivo único, que inicia em uma CPU ARMv7 528 MHz em 0,37 segundos

Erik Moqvist, autor da plataforma Simba e ferramentas cantools, está desenvolvendo uma nova distribuição Monolinux, voltada para a criação de sistemas Linux embarcados para a execução isolada de aplicações específicas escritas em C. A distribuição se destaca por reunir todos os componentes necessários para o funcionamento do aplicativo em um único arquivo executável estáticamente compilado (basicamente, a distribuição consiste no núcleo do Linux e em um ram-disk com um processo init estáticamente compilado, incluindo o aplicativo e as bibliotecas necessárias). O código é distribuído sob a licença MIT.

No ambiente, todos os subsistemas e chamadas de sistema do núcleo do Linux são fornecidos, incluindo acesso a FS, pilha de rede e drivers de dispositivos. Para interação com o aplicativo, estão disponíveis bibliotecas como ml (biblioteca C do Monolinux com shell, clientes DHCP e NTP, Device-mapper, etc.), assíncrono (framework assíncrono), bitstream, curl (HTTP, FTP, ...), detools (patches delta), heatshrink (algoritmo de compressão), humanfriendly (ferramentas auxiliares), mbedTLS, xz e zlib. Um ciclo de desenvolvimento rápido é suportado, permitindo avaliar uma nova versão em questão de segundos após modificações no código.

As versões do Monolinux foram preparadas para as placas Raspberry Pi 3 e Jiffy. O tamanho final das compilações é de cerca de 800 KB. A placa Jiffy possui SoC i.MX6UL com CPU ARMv7-A (528 MHz), 1 GB de RAM DDR3 e 4 GB de eMMC. O tempo de inicialização na placa Jiffy é de apenas 0,37 segundos — desde a ativação até a prontidão do sistema de arquivos Ext4. Deste tempo, 1 ms é usado para a inicialização de hardware da SoC, 184 ms para a execução do código da ROM, 86 ms para o funcionamento do carregador de inicialização, 62 ms para a inicialização do núcleo do Linux e 40 ms para ativar o Ext4. O tempo de reinicialização é de 0,26 segundos. No caso de utilização da pilha de rede, devido a atrasos na negociação do canal Ethernet e na obtenção de parâmetros de rede, o sistema se torna pronto para interação em rede em 2,2 segundos.

O sistema utiliza o núcleo Linux 4.14.78 em configuração mínima com patches adicionais , eliminando atrasos desnecessários no driver MMC (MMC é ativado pela firmware da placa e, no momento de ativação do driver, já está ativo) e que iniciam a inicialização dos drivers MMC e FEC (Ethernet) em modo paralelo.Erik Moqvist, autor da plataforma Simba e ferramentas

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster