- O Floppinux, uma distribuição Linux leve inicializável a partir de um único disquete (1,44MB), foi atualizado para a edição de 2025 (v0.3.1)
- A nova versão é baseada no kernel Linux 6.14.11 e no BusyBox 1.36.1, incluindo armazenamento persistente (264KB) e compatibilidade com hardware mais recente
- Pode rodar com apenas uma CPU Intel 486DX (33MHz) ou superior e 20MB de RAM, com suporte a editor de texto (vi) e comandos básicos de manipulação de arquivos
- Funciona tanto em hardware real quanto em emuladores (qemu, Bochs, 86Box), e foi estruturado para que o próprio usuário compile o kernel e a toolchain
- Desde seu lançamento inicial há 4 anos, vem sendo usado para fins educacionais e experimentais, e esta edição foca em manter o kernel atualizado e renovar o tutorial de aprendizado
Visão geral do projeto
- O Floppinux tem como objetivo criar um sistema Linux mínimo inicializável a partir de um único disquete
- Foi projetado no formato de um workshop educacional semelhante ao “Linux From Scratch”, permitindo que o usuário modifique e expanda tudo diretamente
- A distribuição final oferece um ambiente de terminal baseado em texto, permitindo editar arquivos e escrever scripts simples
- O espaço de armazenamento restante é de 264KB, permitindo salvar diretamente no disquete os arquivos criados pelo usuário
Principais recursos e requisitos
- Suporte a boot por um único disquete, kernel recente (6.14) e CPU x86 de 32 bits (486DX ou superior)
- Inclui editor de texto (vi), comandos básicos de manipulação de arquivos (
cat, cp, mv, rm etc.) e recursos de scripting simples
- Permite salvar arquivos no disquete por meio de armazenamento persistente (persistent storage)
- Requisitos mínimos de hardware: Intel 486DX 33MHz, 20MB de RAM, unidade interna de disquete
Configuração do kernel
- A versão Linux 6.14.11 é usada por ser o último kernel com suporte completo à CPU i486
- A configuração do kernel é centrada no mínimo necessário para boot, incluindo initramfs compactado com XZ, suporte à execução ELF e sistema de arquivos FAT
- Suporte ativado para TTY, dispositivos de bloco e sistemas de arquivos /proc e sysfs
- O artefato resultante da compilação do kernel é gerado como bzImage (881KiB)
Ambiente de build e toolchain
- O build foi feito no Omarchy Linux (SO de 64 bits baseado em Arch), mas o mesmo processo pode ser aplicado em sistemas compatíveis com POSIX
- Usa o compilador cruzado i486-linux-musl-cross para dar suporte a builds voltados ao alvo de 32 bits
- Usa qemu como ambiente de emulação; o Bochs é usado para depuração, e o 86Box, embora lento, também pode ser uma alternativa
Conjunto de ferramentas baseado em BusyBox
- Usa a versão BusyBox 1.36.1, oferecendo um conjunto leve de comandos que substitui utilitários GNU
- Principais comandos selecionados: cat, cp, df, echo, ls, mkdir, mv, rm, sync, vi, mount, umount, clear, test
- Foi compilado como binário estático (static binary), eliminando dependências de bibliotecas compartilhadas
- Após o build do BusyBox, o sistema de arquivos raiz gerado (
rootfs.cpio.xz) tem tamanho de 137KiB
Sistema de arquivos e configuração de inicialização
- Inclui uma estrutura mínima de diretórios, além de mensagem de boas-vindas (
welcome), inittab e script de inicialização rc
- O script
rc monta /proc e /sys, cria o diretório /home e monta o disquete em /mnt
- Durante o boot, exibe um banner de boas-vindas e então entra no shell (
/bin/sh)
- As mensagens de boot e os parâmetros do kernel são definidos via syslinux.cfg
APPEND root=/dev/ram rdinit=/etc/init.d/rc console=tty0 tsc=unstable
Criação da imagem de boot
- Após gerar a imagem de disquete de 1,44MB (
floppinux.img), ela é formatada e recebe o bootloader (syslinux)
- O kernel, o sistema de arquivos raiz e os arquivos de configuração são copiados para a imagem
- Depois de testar o boot com qemu, é possível gravar a imagem em um disquete real
- Há um aviso sobre o risco de perda de dados em caso de seleção incorreta da unidade
Resumo final
- Versão: 0.3.1 (dezembro de 2025)
- Kernel: 6.14.11
- BusyBox: 1.36.1
- Tamanho da imagem: 1.44MiB
- Espaço restante: cerca de 253KiB
- Comandos suportados: manipulação de arquivos (
cat, cp, mv, rm, ls, mkdir), administração do sistema (df, sync, mount, umount), processamento de texto (echo, more), editor (vi)
Significado
- O Floppinux é uma distribuição ultraleve otimizada para aprender a estrutura do kernel Linux e o processo de boot
- Implementa em um único disquete um ambiente Linux completo capaz de rodar em hardware real
- Pode ser usado como uma plataforma de exemplo útil para educação, experimentos com sistemas retrô e iniciação ao desenvolvimento embarcado
1 comentários
Comentários do Hacker News
No Natal, tentei tornar um computador da era 32-bit realmente usável
O problema não era desempenho, mas sim suporte de software e drivers de vídeo
Hoje em dia quase ninguém compila pacotes para 32-bit, então até o CLI fica limitado por dependências de 64-bit
Até no kernel os drivers de GPU antigos foram removidos, sobrando só o modo VGA básico, e até reproduzir MPEG2 fica penoso
No fim, tentei instalar o Debian 5 adequado ao hardware, mas a ISO da época não dava boot por USB, então desisti
A conclusão é que projetos assim são divertidos, mas difíceis de usar no dia a dia
Gosto mais da interface antiga do que da UI em fita, e recursos como WordArt despertam nostalgia
Os recursos das versões modernas também são bons, mas impressiona como um software de quase 30 anos é tão bem acabado
O NetBSD ainda fornece pacotes e pkgsrc para i386
Link do repositório pkgsrc
Eu prefiro modo texto VGA a gráficos
Há aplicativos demais baseados em navegador e programas lentos demais feitos em JS
É curioso pensar que os LLMs são treinados com esse tipo de código
Ainda rodava junto gateway NAT e servidor web, e funcionava bem
Hoje, o irônico é que às vezes parece que nem 16GB bastam
Ele dá boot por disquete ou CD e permite chainloading via USB mesmo em PCs antigos
Usei num Pentium MMX; era lento, mas funcionava bem
A primeira distro Linux que usei foi a Damn Small Linux (DSL)
Ela foi usada originalmente numa tentativa de portar para o GameCube, mas a equipe principal acabou migrando para Gentoo
A DSL 2024 atual é baseada no antiX 23 i386 e reduziu pacotes de idioma e documentação para colocar um ambiente desktop dentro do limite de 700MB
Dá para baixar de novo os arquivos necessários com scripts de restauração
Site oficial
Pelas reviews, Alpine era a distro recomendada, mas não sei bem o quanto isso é confiável
Testei em um 486 de verdade, mas o boot falhou
Instalei 32MB de RAM, mas apareceu o erro “Booting kernel failed: Invalid Argument”
Suspeito que seja porque a BIOS não suporta a rotina de mapa de memória E820h
Dá para ver a captura de tela e a
galeria em hardware real
A estratégia de persistência baseada em FAT12 apresentada no texto é uma abordagem inteligente para economizar espaço
Mas disquetes não têm journaling, então há um grande risco de corrupção de dados se faltar energia
Em vez disso, usar um sistema de arquivos log-structured (como JFFS2) ou serializar tudo em tar só no momento do desligamento talvez fosse mais seguro
Usei FAT por décadas e quase nunca tive corrupção de dados
Mesmo hoje, a maioria dos dispositivos embarcados ainda usa FAT
Ajustando a ordem das cópias FAT1/FAT2 e das atualizações de tamanho de arquivo, dá para recuperar após falhas
O Slackware 8 e até versões recentes do NetBSD ainda mantêm essa estrutura
Lembro do disquete demo do QNX em 1999
Ele iniciava direto uma GUI e um navegador web a partir de um disco de 1,44MB
Nunca mais vi algo assim desde então
Agora esse tipo de sistema existe de novo
Para aumentar os 264KB restantes, basta usar um formato de disquete estendido
Como nos discos de instalação do Windows 95, dá para usar um formato de 21 setores por trilha e chegar a 1680KB
As ferramentas padrão de formatação do Linux também conseguem criar esse layout
Sinto falta do som do disquete e da expectativa durante o carregamento
Seria legal poder ajustar isso nas configurações
Ri ao ler a frase “gravar um disquete em 5 minutos”
Fiquei pensando se realmente é preciso formatar o disquete
Se o syslinux ou o lilo puderem carregar o kernel diretamente dos setores do disquete, talvez ficasse mais simples
O ext2 talvez até seja menor que o FAT
Lembro de receber o Slackware em 1997 como um conjunto de 12 disquetes
Mas a qualidade não era boa, então instalar era difícil
Baixei via FTP num VAX, transferi com Kermit para um PC DOS e instalei, mas tive que repetir por causa de disquetes defeituosos no meio do processo
A série X era para X11, e as séries A/B/C eram para o sistema básico
Usei num sistema Coppermine de 933MHz e depois lembro de ter tentado compilar o X11 após trocar o HDD, mas não consegui