web-development-kb-pt.site

Qual é a menor implementação Linux possível?

Quais são os componentes mínimos para um sistema operacional Linux ser funcional e que eu posso usar como base para expandir e melhorar conforme aprendo o Linux e minha compreensão e necessidades aumentam?

21
slashmais

Se você quer aprender Linux como conhecer o código-fonte, pode tentar Linux do zero

26
Tobias Kienzler

Se você está procurando 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 muito próximo do upstream em pacotes, então você não terá muitos problemas se 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, construa seu próprio kernel, removendo todos os drivers e recursos que você não planeja usar, e adicione um initramfs contendo uma construção minimizada de Busybox de forma semelhante. O resultado é um sistema Linux totalmente inicializável em um único executável (para o qual você pode apontar seu carregador de inicialização) e que pode acomodar menos de 10 MB sem nem mesmo tentar.

9
p-static

Rootfs executável único

O sistema mínimo absoluto executa um único /init programa conforme expliquei em Single Application Linux | Super User

Minimal Linux Live

https://github.com/ivandavidov/minimal

Para um sistema interativo mais interessante, este é um pequeno script (principalmente educacional) que:

  • baixa a fonte do kernel e do busybox
  • os compila
  • gera um ISO inicializável de 8Mb com eles

O ISO então deixa você em um Shell mínimo com busybox.

Com o QEMU, você pode inicializar facilmente no sistema.

Eu o modifiquei para permitir sua execução a partir do 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ê ficará dentro de uma janela QEMU com seu novo sistema mínimo. Impressionante.

Por ser pequeno, é uma boa opção para ler a fonte e entender o que está acontecendo.

Testado no Ubuntu 16.04.

Buildroot

https://buildroot.org/

Grande conjunto de scripts Makefile que gerenciam:

  • Conjunto de ferramentas de compilação cruzada GCC
  • compilação do kernel
  • compilação do bootloader
  • geração de rootfs
  • tem toneladas de receitas de download/compilação de pacotes na árvore de código-fonte, incluindo coisas complexas como GTK. Existe um sistema de dependência.

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 construir o X11 do zero: Como instalar o X11 em meu próprio sistema Linux Buildroot?

Material testado em batalha profissional usado por algumas grandes empresas.

Alpine Linux

https://github.com/gliderlabs/docker-Alpine

Distribuição embutida com um gerenciador de pacotes que oferece binários pré-compilados de um site.

Consulte também

O Archlinux usa um base grupo de arquivos para uma instalação mínima.

Junto com um grupo base-devel , se for fazer algum desenvolvimento de sistema.

8
Stefan

Se você realmente deseja apenas o mínimo do que é um sistema Linux, 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 do usuário força você a se familiarizar com a linha de comando. Uma desvantagem é que muitas vezes esses sistemas quebram as convenções das distribuições regulares do Linux, por ex. eles instalam software em locais incomuns ou usam sistemas init simplificados.

Se quiser tentar, você pode tentar, por exemplo, openwrt em uma máquina virtual .

8
fschmitt

Como é que ninguém mencionou tomsrtbt ? (Linux em um único disquete de 1,44 ")

6
Arafangion

Você pode tentar o Linux do Slackware. A instalação baseada em menu permitirá que você instale um sistema 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 é padronizado para o gerenciador de inicialização Lilo, então você acaba sabendo um pouco mais do que gostaria sobre os setores de inicialização, que partição é marcada como inicializável, o que seu initrd contém, etc etc, do que para distros inicializadas pelo Grub.

4
Bruce Ediger

Para mim, Damn Small Linux tem o nome de "a menor distro Linux possível"! No entanto, ouvi dizer que está meio 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 for o seu objetivo, eu sugiro Gentoo ou Arch Linux , ambos instalam um sistema básico. Você escolhe o que usar e instala os pacotes conforme suas necessidades aumentam.

3
phunehehe

O que você precisa fazer é baixar o kernel mais recente de kernel.org, faça um make menuconfig e apenas olhar as opções, e usar isso como um ponto de partida para pesquisa e investigação. Você aprenderá muito.

2
LawrenceC

Você pode olhar em Puppy Linux . Pode não ser o menor, mas tem a reputação de ser pequeno.

No entanto, distrtos Linux que são feitos para serem pequenos geralmente tendem a permanecer pequenos. Para aprender linux, eu teria um debian ao vivo em algum lugar. .Eu obteria os fontes do kernel debian, fontes do bash e fontes do grub compilando e instalando. Em seguida, faça compilação cruzada e 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 e depois o Wm de sua escolha, então você terá a base para o que deseja fazer.

PS: apt-get source fornece a você o código-fonte de um pacote debian.

0
HandyGandy