Respostas:
Se você quer aprender Linux como conhecer o código-fonte, pode tentar o Linux do zero
Se você deseja aprender, o Gentoo é uma boa opção - a instalação mínima do Gentoo é um shell raiz e um gerenciador de pacotes, e você constrói o resto do seu sistema a partir daí. O Gentoo também fica bem próximo do upstream nos pacotes, então você não terá muitos problemas se quiser fazer o download e compilar alguns pacotes (e, de fato, você pode adicioná-los ao arquivo /etc/portage/package.provided depois de instalados, e use-os como dependências!)
Se você está procurando o menor sistema Linux possível, crie seu próprio kernel, retire todos os drivers e recursos que você não planeja usar e adicione um initramfs contendo uma compilação do Busybox igualmente minimizada. O resultado é um sistema Linux totalmente inicializável em um único executável (no qual você pode apontar o seu carregador de inicialização) e no qual você pode caber com menos de 10 MB sem sequer tentar.
O Archlinux usa um grupo básico de arquivos para uma instalação mínima.
Juntamente com um grupo de base-devel , se você estiver desenvolvendo algum sistema.
Se você realmente deseja apenas o mínimo necessário do que é um sistema Linux, tente distribuições para sistemas embarcados, como roteadores. Eles normalmente carregam apenas o mínimo absoluto de software e a falta comum de uma interface gráfica do usuário força você a se familiarizar com a linha de comando. Uma desvantagem é que, frequentemente, esses sistemas quebram as convenções de distribuições regulares do Linux, por exemplo, instalam o software em locais incomuns ou usam sistemas init simplificados.
Se você quiser tentar, tente, por exemplo, openwrt em uma máquina virtual .
Rootfs executáveis únicos
O sistema mínimo absoluto executa um único /init
programa, como expliquei no Single Application Linux | Superusuário
Mínimo Linux Live
https://github.com/ivandavidov/minimal
Para um sistema interativo mais interessante, este é um pequeno script (principalmente educacional) que:
O ISO deixa você em um shell mínimo com o busybox.
Com o QEMU, você pode facilmente inicializar no sistema.
Eu o modifiquei para permitir a execução no diretório de origem do kernel: https://github.com/cirosantilli/runlinux
Uso:
git clone https://github.com/ivandavidov/minimal
cd minimal/src
./build_minimal_linux_live.sh
# Wait.
# Install QEMU.
# minimal_linux_live.iso was generated
./qemu64.sh
e você será deixado dentro de uma janela QEMU com seu novo sistema mínimo. Impressionante.
Por ser pequena, é uma boa opção para ler a fonte e entender o que está acontecendo.
Testado no Ubuntu 16.04.
Buildroot
Grande conjunto de scripts Makefile que gerenciam:
Exemplo mínimo:
git clone git://git.buildroot.net/buildroot
cd buildroot
git checkout 2016.05
make qemu_x86_defconfig
# Can't use -jN, use `BR2_JLEVEL=2` instead.
BR2_JLEVEL=2 make
# Wait.
# cat board/qemu/x86_64/readme.txt
qemu-system-x86_64 -M pc -kernel output/images/bzImage -drive file=output/images/rootfs.ext2,if=virtio,format=raw -append root=/dev/vda -net nic,model=virtio -net user
# You are now in a shell with BusyBox utilities.
Ele ainda possui receitas para a construção do X11 do zero: Como instalar o X11 no meu próprio sistema Linux Buildroot?
Material profissional testado em batalha usado por algumas grandes empresas.
Alpine Linux
https://github.com/gliderlabs/docker-alpine
Distribuição incorporada com um gerenciador de pacotes que oferece binários pré-compilados em um site.
Veja também
Como é que ninguém mencionou tomsrtbt ? (Linux em um único disquete de 1,44 ")
Você pode experimentar o Slackware linux. A instalação orientada por menus permitirá que você instale um sistema bastante mínimo. Você pode facilmente deixar de fora as páginas de manual, X11, Tcl, Emacs e isso é apenas a partir da instalação de nível superior. Você pode mergulhar na instalação e instalar apenas um mínimo de pacotes.
Depois disso, recompilaria o kernel especificamente para a máquina em que você instalou.
O Slackware ainda tem como padrão o gerenciador de inicialização do Lilo, assim você acaba sabendo um pouco mais do que deseja saber sobre os setores de inicialização, qual partição é marcada como inicializável, o que o seu initrd contém, etc etc, do que para as distribuições iniciadas pelo Grub.
Para mim, o Damn Small Linux recebeu o nome de "a menor distribuição possível do Linux"! No entanto, ouvi dizer que está meio que descontinuado. Você também pode ver uma lista de distribuições semelhantes (chamadas "Mini Linux") nesta página wiki .
Se o espaço não é o seu objetivo, sugiro o Gentoo ou o Arch Linux , ambos instalam um sistema básico. Você escolhe o que usar e instala os pacotes à medida que suas necessidades aumentam.
O que você precisa fazer é baixar o kernel mais recente do kernel.org, fazer um make menuconfig
e apenas examinar as opções e usá-lo como ponto de partida para pesquisa e investigação. Você aprenderá muito.
Você pode olhar para o Puppy Linux . Pode não ser o menor, mas tem uma repetição de ser pequeno.
No entanto, as distribuições Linux que são feitas para serem pequenas geralmente tendem a permanecer pequenas. Para aprender linux, eu faria um debian ao vivo em algum lugar. .Eu gostaria que as fontes do kernel debian, fontes bash e fontes grub cruzassem a compilação e instalação. Em seguida, faça uma compilação cruzada, instale um editor, apt e gcc. Então gere uma lista de pacotes a partir do debian live. Instale a fonte de cada pacote, compile e instale. Em seguida, adicione X, em seguida, o Wm de sua escolha, e você terá a base para o que deseja fazer.
PS: o apt-get source fornece a fonte para um pacote debian.