Qual é a menor implementação possível do Linux? [fechadas]

21

Quais são os componentes mínimos para um sistema operacional Linux funcionar e que eu posso usar como base para expandir e melhorar à medida que aprendo Linux e meu entendimento e necessidades aumentam?

slashmais
fonte

Respostas:

9

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.

estático
fonte
Seu último parágrafo - acho que seria um bom lugar para começar. Então eu vou saber o que está lá e por que está lá, usando-o como base para crescer.
Slashmais 26/10/10
10MB? Você provavelmente poderia fazê-lo sob 1MB
Falmarri
8

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.

Stefan
fonte
3
Na direção certa, ainda inclui muitos pacotes, mas posso usar o que eles fornecem e cortam pacotes até que as coisas quebrem.
Slashmais
A instalação do Arch tornou-se muito mais modular que 2010 - falando da memória / sem ativar uma nova instalação, o utilitário 'pacstrap' oferece a opção de quais grupos usar, incluindo apenas 'base' ou possivelmente até mesmo nada (embora Acho base contém o material do sistema). Se você quiser dar um passo adiante, mas ainda tiver uma distribuição pelo menos vagamente usada, provavelmente o Slackware.
djvs
A instalação do Arch é muito menos modular do que antes, pois eles oferecem suporte oficial apenas ao am64 arch, systemd-only para init, etc. No entanto, eu também recomendaria o Slackware.
Lucas Ramage
8

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 .

fschmitt
fonte
Eu posso usar o OpenWrt para referência; Ficarei feliz se você puder apontar outros sites desse tipo. Já estão usando o VirtualBox e eles têm um guia para instalar o OpenWrt nele.
slashmais
Talvez Debian incorporado: emdebian.org
fschmitt
8

Rootfs executáveis ​​únicos

O sistema mínimo absoluto executa um único /initprograma, 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:

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

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

https://buildroot.org/

Grande conjunto de scripts Makefile que gerenciam:

  • Cadeia de ferramentas de compilação cruzada do GCC
  • compilação do kernel
  • compilação do carregador de inicialização
  • geração de rootfs
  • tem toneladas de receitas de download / construção de pacotes na árvore de origem, incluindo coisas complexas como o 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 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

Ciro Santilli adicionou uma nova foto
fonte
1
Eu finalmente fui a rota LFS. Fez uma nota deste e vai explorá-lo em breve
slashmais
6

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

Arafangion
fonte
parece certo - links?
Slashmais 6/10/10
não se preocupe - encontrado
slashmais
4
Quem ainda tem uma unidade de disquete atualmente? ;)
p-static
1
Estou olhando uma agora. Mas só o usei uma vez nos anos em que tive o PC.
lamcro
3
@ p-static: Estou usando uma caixa antiga como servidor de impressão - ela ainda possui uma unidade de disquete de 8 1/4 de polegada e eu a testei apenas com disquetes de 20 anos - surpreendentemente, as disquetes ainda estão OK! com dados não corrompidos também (código turbo pascal v3 dos dias dos alunos).
Slashmais 26/10/10
4

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.

Bruce Ediger
fonte
3

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.

phunehehe
fonte
Não é o espaço - aprendendo Linux. Eu olhei para a maioria deles, assim como o LFS, mas o LFS faz com que você faça / adicione coisas com, parece, uma explicação insuficiente.
Slashmais
3
Se você quer aprender, o Archlinux é realmente bom. O Arch Wiki possui MUITO informações claras e úteis.
Stefan
parece que mudei de alvo depois que você disparou o seu tiro, desculpe: o
slashmais
2

O que você precisa fazer é baixar o kernel mais recente do kernel.org, fazer um make menuconfige apenas examinar as opções e usá-lo como ponto de partida para pesquisa e investigação. Você aprenderá muito.

LawrenceC
fonte
"O tempo é meu inimigo." - na verdade não, mas definitivamente analisarei sua sugestão.
Slashmais
0

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.

HandyGandy
fonte