Monolinux é uma distribuição de arquivo único que inicializa em uma CPU ARMv7 de 528 MHz em 0.37 segundos

Erik Moqvist, autor da plataforma Simba e ferramentas canudos, está desenvolvendo uma nova distribuição Monolinux, focado na criação de sistemas Linux embarcados para execução autônoma de determinados aplicativos escritos na linguagem C. A distribuição se destaca pelo fato de o software ser empacotado na forma de um arquivo executável vinculado estaticamente, que inclui todos os componentes necessários para o funcionamento do aplicativo (essencialmente, a distribuição consiste no kernel Linux e um disco RAM com um estaticamente processo init montado, que inclui o aplicativo e as bibliotecas necessárias). Código distribuído por sob a licença do MIT.

O ambiente fornece todos os subsistemas e chamadas de sistema do kernel Linux, incluindo acesso ao sistema de arquivos, pilha de rede e drivers de dispositivos. Bibliotecas como: ml (Biblioteca Monolinux C com shell, clientes DHCP e NTP, mapeador de dispositivos, etc.), async (estrutura assíncrona), fluxo de bits, enrolar (HTTP, FTP, ...), desferramentas (manchas delta), termorretrátil (algoritmo de compressão), humanamente amigável (ferramentas auxiliares), mbedTLS, xz и zlib. É suportado um ciclo de desenvolvimento rápido, permitindo avaliar o funcionamento de uma nova versão em questão de segundos após fazer alterações no código.

Variantes Monolinux preparadas para placas Raspberry Pi 3 и Instante. O tamanho final dos assemblies é de cerca de 800 KB. Pagar Instante equipado com SoC i.MX6UL com CPU ARMv7-A (528 MHz), 1 GB de RAM DDR3 e 4 GB eMMC. O tempo de inicialização na placa Jiffy é de apenas 0.37 segundos - desde a inicialização até o sistema de arquivos Ext4 pronto. Desse tempo, 1 ms é gasto na inicialização do hardware do SoC, 184 ms na execução do código ROM, 86 ms na operação do bootloader, 62 ms na inicialização do kernel Linux e 40 ms na ativação do Ext4. O tempo de reinicialização é de 0.26 segundos. Ao utilizar uma pilha de rede, devido a atrasos na negociação de um canal Ethernet e na obtenção de parâmetros de rede, o sistema fica pronto para interação de rede em 2.2 segundos.

O sistema usa o kernel Linux 4.14.78 em uma configuração mínima com adicional manchas, eliminando atrasos desnecessários no driver MMC (o MMC está conectado pelo firmware da placa e já está ativado no momento da inicialização do driver) e iniciando a inicialização dos drivers MMC e FEC (Ethernet) em modo paralelo.

Fonte: opennet.ru

Adicionar um comentário