Se você quer dizer aprender Linux como em conhecer o código-fonte, você pode tentar Linux do zero
Quais são os componentes mínimos para que um sistema operacional Linux seja funcional e que eu possa usar como base para expandir e melhorar à medida que aprendo Linux e meu entendimento e necessidades crescem?
Se você quer dizer aprender Linux como em conhecer o código-fonte, você pode tentar Linux do zero
O Archlinux usa um grupo de arquivos base para uma instalação mínima.
Juntamente com um grupo base-devel , se você estiver fazendo algum desenvolvimento de sistema.
Se você está procurando aprender, o Gentoo é uma boa opção - a instalação mínima do Gentoo é um shell de root e um gerenciador de pacotes, e você constrói o resto do seu sistema a partir daí. O Gentoo também fica muito perto do upstream nos pacotes, então você não terá muitos problemas se você quiser baixar e construir alguns pacotes você mesmo (e de fato, você pode adicioná-los ao arquivo /etc/portage/package.provided depois de instalados e usá-los como dependências!)
Se você está procurando pelo menor sistema Linux possível, então construa seu próprio kernel, removendo todos os drivers e recursos que você não está planejando usar, e então adicione um initramfs contendo uma construção similarmente minimizada do Busybox. . O resultado é um sistema Linux totalmente inicializável em um único executável (no qual você pode apontar seu gerenciador de inicialização) e que você pode ajustar em menos de 10 MB sem sequer tentar.
Se você realmente quer apenas o mínimo do que é um sistema Linux, você pode tentar 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 de usuário obriga você a se familiarizar com a linha de comando. Uma desvantagem é que muitas vezes esses sistemas quebram convenções de distribuições regulares do Linux, por ex. eles instalam software em lugares incomuns ou usam sistemas init simplificados.
Se você quiser dar uma chance, tente, por exemplo, openwrt em uma máquina virtual .
Raiz executável único
O sistema mínimo absoluto executa um único programa /init
, como expliquei em Single Application Linux | Superusuário
MinimalLinuxLive
Para um sistema interativo mais interessante, este é um script pequeno (principalmente educacional) que:
O ISO deixa você em um shell mínimo com o busybox.
Com o QEMU, você pode inicializar facilmente no sistema.
Eu o modifiquei para permitir a sua execução a partir do diretório de origem do kernel: link
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 do QEMU com seu novo sistema mínimo. Impressionante.
Como é pequeno, essa é 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 gerencia:
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 tem receitas para a construção de X11 a partir do zero: Como instalar o X11 no meu próprio sistema Linux Buildroot?
Material testado em batalha profissional usado por algumas grandes empresas.
Alpine Linux
Distribuição incorporada com um gerenciador de pacotes que oferece binários pré-compilados de um site.
Veja também
Como é que ninguém mencionou tomsrtbt ? (Linux em um único disquete de 1.44 ")
Você poderia experimentar o Slackware Linux. A instalação orientada por menus permitirá que você instale um sistema mínimo. Você pode facilmente deixar de fora as páginas man, 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, recompilarei o kernel especificamente para a máquina que você instalou.
O Slackware ainda é padronizado para o gerenciador de boot do Lilo, então você acaba sabendo um pouco mais do que você quer saber sobre os setores de boot, qual partição é inicializável, o que seu initrd contém, etc, do que para distribuições Grub. / p>
Para mim, o Damn Small Linux recebeu o nome de "a menor distribuição Linux possível"! No entanto, ouvi dizer que é meio que interrompido. Você também pode ver uma lista de distribuições similares (chamada "Mini Linux") nesta página wiki . / p>
Se o espaço não for seu objetivo, sugiro o Gentoo ou Arch Linux , ambos instalam um sistema básico. Você escolhe o que usar e instala pacotes conforme suas necessidades crescem.
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 ver o Puppy Linux . Pode não ser o menor, mas tem a reputação de ser pequeno.
No entanto, os distritos Linux que geralmente são pequenos tendem a permanecer pequenos. Para aprender linux, eu iria viver um debian em algum lugar. Eu obteria as fontes do kernel debian, fontes bash e fontes grub para compilação e instalação cruzadas. Em seguida, compile cruzado, instale um editor, apt e gcc. Em seguida, gere uma lista de pacotes do debian live. Instale a fonte para cada pacote, compile e instale. Em seguida, adicione X, em seguida, o Wm de sua escolha, então você tem a base para o que você quer fazer.
PS: o apt-get source obtém a origem de um pacote debian.