Nesta semana postamos a informação de havia planos de que as novas instalações do Ubuntu serão mais rápidas, naquele momento eram planos, agora é realidade e a informação foi confirmada. Teremos duas otimizações em torno do desempenho do Ubuntu, a primeira foi em torno das novas instalações, vão demorar menos, isso deve-se ao fato do uso do Zstd, um algoritmo do Facebook, e agora é a vez do boot que também vai diminuir uns segundinhos, graças ao LZ4. As notícias agradou muito a quem pretende atualizar a versão atual do Ubuntu para o Ubuntu 18.04 LTS (Bionic Beaver). Graças a um algoritmo de compressão e descompressão, o demorado e reclamado boot do Ubuntu será um pouco mais rápido.
A ideia foi sugerida pelo Balint Reczey da Canonical, de trocar o velho gzip pelo LZ4. Na oportunidade, Balint mostrou que a velocidade de descompressão e compressão do LZ4 é muito superior ao gzip, onde o tempo de inicialização do Ubuntu caiu de 1,2 segundos para apenas 0,24 segundos.
Mas que fique claro que estamos falando do ramdisk inicial ou tecnicamente estamos falando do initramfs. Para quem nunca ouviu falar, o initramfs contém um pequeno executável chamado init que faz a montagem do sistema de arquivos raiz real. Se forem necessários drivers de hardware especiais para acessar o armazenamento em massa, eles deverão estar em initramfs.
Antes da montagem do sistema de arquivos raiz e da inicialização do sistema operacional, o Kernel precisa dos drivers correspondentes para acessar o dispositivo em que o sistema de arquivos raiz está localizado. Esses drivers podem incluir drivers especiais para determinados tipos de unidades de disco rígido ou até drivers de rede para acesso a um sistema de arquivos de rede. Os módulos necessários para o sistema de arquivos raiz podem ser carregados pelo init no initramfs. Depois de carregados os módulos, o udev fornecerá os dispositivos necessários ao initramfs. Posteriormente no processo de boot, depois de mudar o sistema de arquivos raiz, será necessário gerar novamente os dispositivos. Isso é feito através de boot.udev com o comando udevtrigger.
Se você precisar mudar o hardware (por exemplo, discos rígidos) em um sistema instalado e esse hardware necessitar da presença de drivers diferentes no Kernel durante o boot, será necessário atualizar o initramfs. Isso é feito da mesma maneira que com seu antecessor, init, chamando o mkinitrd. A chamada de mkinitrd sem argumentos cria um initramfs.
O algoritmo de compressão LZ4 será implementado no Ubuntu 18.04 LTS, e sim, você vai perceber uma a inicialização mais rápida, no entanto você terá que ativar a compressão no Ubuntu 18.04 LTS, no entanto, no Ubuntu 18.10 a compressão estará habilitada automaticamente, para este lançamento que vai ocorrer em outubro de 2018.
Com base nos resultados, planejo adicionar o suporte de compactação LZ4 às ferramentas initramfs conforme solicitado no LP:#1488620 nos próximos dias sem configurá-lo como padrão e proponho definir LZ4 como padrão para o Ubuntu 18.10
Mas, uma desvantagem acompanha o LZ4, o tamanho do arquivo. Pois bem, o desenvolvedor pede para que ninguém se preocupe com isso, tudo esta sendo alinhado e que não afetará nada nos próximos lançamentos do Ubuntu, tendo em vista que o gerenciador de atualizações consegue remover os kernels antigos e não utilizados de forma adequada, o que vai evitar o acumulo destes arquivos e o aumento de consumo do disco rígido.