Estou tentando executar algumas experiências com o Linux e procurar a menor distribuição por tamanho de instalação. (RAM, CPU realmente não importa)
Estou tentando executar algumas experiências com o Linux e procurar a menor distribuição por tamanho de instalação. (RAM, CPU realmente não importa)
Respostas:
Atualização: o ttylinux não é mantido no momento! Se você ainda estiver interessado, comece aqui ou aqui .
Dependendo da sua plataforma, o ttylinux talvez seja algo para você:
Esse menor sistema ttylinux possui um sistema de arquivos de 8 MB e é executado em computadores i486 a 28 MB de RAM, mas fornece um ambiente completo de linha de comando e está pronto para acesso à Internet.
Iniciado em 2001 e a versão mais recente, a partir de 05/03/2015 , ainda é mantida.
O OpenWrt também é um dos menores.
Se você estiver disposto a passar por um processo de compilação e reduzir os recursos, tente a buildroot . Criei uma instalação Linux muito básica (essencialmente apenas o kernel, utilitários mínimos do Busybox e um aplicativo extra) que se encaixam em uma imagem ISO de 6 MB.
A chave aqui é reduzir a configuração do kernel e do Busybox ("make linux-nconfig" e "make busybox-menuconfig") ao mínimo necessário e, em seguida, habilitar a compactação XZ no ramdisk inicial do kernel. Reduzir tudo o que eu não precisava me permitiu reduzir toda a imagem ISO para cerca de 9 MB e depois de ativar a compactação XZ para 6 MB.
Para o kernel, apenas verifiquei cada opção no menu de configuração e a desativei, a menos que eu especificamente precisasse. Você pode desativar todos os drivers de rede para os quais não possui um adaptador de rede correspondente, desativar outro hardware menos comum que não prevê usar (placas seriais de várias portas, joysticks, dispositivos multifuncionais ...) e assim por diante em. Você também pode deixar muitos subsistemas nas implementações básicas, em vez das mais sofisticadas (por exemplo, estados inativos básicos da CPU ACPI em vez dos estados inativos da CPU Intel / AMD), o que pode significar que você trocará a eficiência de energia e o suporte total ao hardware pelo tamanho do kernel. Você também pode desativar subsistemas inteiros, como hibernação / suspensão e sistema de som, se não precisar usá-los.
Você pode economizar muito espaço fazendo isso. Por exemplo, os módulos de suporte KVM (virtualização) e btrfs (que eu decidi colocar fora do kernel como módulos carregáveis, caso eu precise deles no futuro) ocupam 1,1 MB por conta própria. Ao excluir esses arquivos de módulo, você poderá obter cerca de 4,9 MB. Pode ser que eles ocupem menos espaço integrado no binário do kernel, mas então vi que outros módulos menores têm tamanho de 20 a 100 kilobytes, portanto sua milhagem pode variar.
O Busybox é um único binário que se comporta como binários diferentes, dependendo de como é chamado na linha de comando, o que permite economizar espaço. Ele está incluído no Buildroot por padrão. Ele pode se comportar como sl, df, dd, cat, nc, bash e muitos outros. Parece um bom substituto para quase toda a região do usuário * nix, a menos que você precise de algumas extensões de utilitário específicas, que só podem ser encontradas nas versões mais completas / tradicionais (por exemplo, GNU, BSD) desses utilitários. O Busybox é semelhante ao kernel em termos de recursos desabilitados - desative tudo, exceto os binários necessários (applets AKA), e o tamanho será reduzido. O binário Busybox compilado dinamicamente leva 512 kilobytes no Buildroot e cerca de 2,1 MB no Ubuntu 14.10. A versão maior do Ubuntu suporta muito mais do que a minha versão do Buildroot, e é '
Você pode tentar algumas das ações abaixo para reduzir ainda mais o tamanho, mas faça backups do diretório ativo com freqüência, pois poderá interromper a instalação do Buildroot em que está trabalhando e talvez seja necessário reconstruir alguns dos binários.
Compacte todos os executáveis (incluindo o kernel) com o compressor UPX. Como o UPX foi projetado especificamente para executar a compactação executável, isso reduz os executáveis resultantes. Mas lembre-se de testar todos os executáveis posteriormente e de que eles funcionem corretamente.
Use um libc diferente. Estou usando o uClibc, mas ouvi dizer que musl e dietlib são muito menores e produzem executáveis menores. Desta vez, tive alguns problemas de construção com musl, mas pode funcionar melhor.
Substitua alguns ou todos os utilitários da terra do usuário por asmutils . Esses utilitários implementam alguns dos utilitários * nix comuns em Assembly puro (em vez de C ou outras linguagens), o que teoricamente permite um código muito mais compacto. Alguns deles funcionam bem, mas outros podem ser usados apenas de maneiras muito básicas (por exemplo, "mount" utiliza apenas parâmetros em uma sequência específica e nenhuma opção de montagem específica de FS é implementada). Por outro lado, eles são muito pequenos (a maioria tem menos de 1 KB compilados, os pequenos têm cerca de 139 bytes). Você pode escolher quais deseja usar, para poder usar essas substituições apenas para os comandos nos quais deseja economizar espaço e manter versões mais ricas em recursos como os applets do Busybox.
Tomsrtbt tem alguns megabytes; cabe em um disquete.