Qual è l'implementazione Linux più piccola possibile? [chiuso]


21

Quali sono i componenti minimi indispensabili affinché un sistema operativo Linux sia funzionale e che posso usare come base per espandermi e migliorare mentre apprendo Linux e la mia comprensione e le mie esigenze crescono?

Risposte:



9

Se stai cercando di imparare, Gentoo è una buona opzione: l'installazione minima di Gentoo è una shell di root e un gestore di pacchetti, e da lì costruisci il resto del tuo sistema. Gentoo rimane anche abbastanza vicino all'upstream sui pacchetti, quindi non si verificheranno troppi problemi se si desidera scaricare e creare alcuni pacchetti da soli (e in effetti, è possibile aggiungerli al file /etc/portage/package.provided dopo che sono stati installati e li usano come dipendenze!)

Se stai cercando il sistema Linux più piccolo possibile in assoluto, quindi crea il tuo kernel, eliminando tutti i driver e le funzionalità che non hai intenzione di utilizzare, quindi aggiungi un initramfs contenente una build minimamente simile di Busybox. Il risultato è un sistema Linux completamente avviabile in un unico eseguibile (su cui è possibile puntare il bootloader) e che può essere inserito in meno di 10 MB senza nemmeno provarci.


Il tuo ultimo para - Penso che sarebbe un buon punto di partenza. Allora saprò cosa c'è e perché è lì, usandolo come base per crescere.
Slashmais,

10MB? Probabilmente potresti farlo sotto 1MB
Falmarri il

8

Archlinux utilizza un gruppo base di file per un'installazione minima.

Insieme a un gruppo di sviluppo di base , se hai intenzione di fare uno sviluppo del sistema.


3
Nella giusta direzione, include ancora molti pacchetti, ma posso usare ciò che danno e tagliano i pacchetti fino a quando le cose non si rompono.
Slashmais

L'installazione di Arch è diventata molto più modulare rispetto al 2010 - parlando dalla memoria / senza avviare una nuova installazione, l'utilità 'pacstrap' ti dà la possibilità di quali gruppi usare, incluso solo 'base' o forse addirittura nulla (sebbene Penso che la base contenga roba di sistema). Se vuoi fare un passo più in profondità ma hai ancora una distro almeno vagamente comunemente usata, Slackware è probabilmente quello.
djvs,

L'installazione di Arch è molto meno modulare rispetto a prima poiché supporta ufficialmente solo arco am64, systemd-only per init, ecc. Tuttavia, anch'io consiglierei Slackware.
Lucas Ramage,

8

Se vuoi davvero solo il minimo indispensabile di ciò che è un sistema Linux, potresti provare le distribuzioni per sistemi embedded come i router. Normalmente portano solo il minimo assoluto di software e la mancanza comune di un'interfaccia utente grafica ti costringe a familiarizzare con la riga di comando. Uno svantaggio è che spesso quei sistemi infrangono le convenzioni delle normali distribuzioni Linux, ad esempio installano software in luoghi non comuni o usano sistemi init semplificati.

Se vuoi provarlo, potresti provare ad esempio openwrt in una macchina virtuale .


Posso usare OpenWrt come riferimento; Sarò felice se è possibile segnalare altri tali siti. Già utilizzando VirtualBox e hanno una guida per annusare per installare OpenWrt in esso.
Slashmais,

Forse incorporato Debian: emdebian.org
fschmitt il


8

Rootfs eseguibili singoli

Il sistema minimo assoluto esegue un singolo /initprogramma, come ho spiegato in Single Application Linux | Super utente

Minimo Linux Live

https://github.com/ivandavidov/minimal

Per un sistema interattivo più interessante, questo è un piccolo script (principalmente educativo) che:

  • scarica il sorgente per kernel e busybox
  • li compila
  • genera con loro un ISO di avvio da 8 Mb

L'ISO ti lascia quindi in una shell minima con busybox.

Con QEMU è possibile avviare facilmente il sistema.

L'ho modificato per consentirne l'esecuzione dalla directory dei sorgenti del 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 sarai lasciato in una finestra QEMU con il tuo nuovo sistema minimo. Eccezionale.

Dato che è piccolo, questa è una buona opzione per leggere la fonte e capire cosa sta succedendo.

Testato su Ubuntu 16.04.

buildroot

https://buildroot.org/

Grande set di script Makefile che gestiscono:

  • Toolchain di compilazione incrociata GCC
  • compilazione del kernel
  • compilazione del bootloader
  • generazione di rootfs
  • ha tonnellate di pacchetti per scaricare / creare ricette nell'albero dei sorgenti, comprese cose complesse come GTK. C'è un sistema di dipendenza.

Esempio minimo:

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.

Ha anche ricette per costruire X11 da zero: come installare X11 sul mio sistema Linux Buildroot?

Roba testata in battaglia professionale utilizzata da alcune grandi aziende.

Alpine Linux

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

Distribuzione integrata con un gestore di pacchetti che offre file binari precompilati da un sito Web.

Guarda anche


1
Alla fine ho seguito il percorso LFS.
Prendi

6

Come mai nessuno ha menzionato tomsrtbt ? (Linux su un singolo floppy da 1,44 ")


sembra giusto - collegamenti?
slashmais,

non ti preoccupare - l'ho trovato
slashmais,

4
Chi ha ancora un floppy drive in questi giorni? ;)
p-static

1
Ne sto guardando uno proprio ora. Ma l'ho usato solo una volta negli anni in cui ho avuto il PC.
lamcro

3
@ p-static: sto usando una vecchia scatola come server di stampa - ha ancora un floppy drive da 8 1/4 pollici e l'ho appena testato con floppy di 20 anni - sorprendentemente i floppy sono ancora OK! con dati non corretti anche su di essi (codice turbo pascal v3 dai giorni degli studenti).
Slashmais,

4

Potresti provare Slackware Linux. L'installazione basata su menu ti consentirà di installare un sistema quasi minimo. Puoi facilmente lasciare pagine man, X11, Tcl, Emacs e questo è solo dall'installazione di altissimo livello. Puoi immergerti nell'installazione e installare solo un minimo di pacchetti.

Dopodiché, ricompilerei il kernel appositamente per la macchina su cui hai installato.

Lo slackware è ancora predefinito con il boot manager di Lilo, quindi finisci per sapere un po 'più di quello che vuoi sapere sui settori di boot, quale partizione è contrassegnata come avviabile, cosa contiene il tuo initrd, ecc ecc. Rispetto alle distro avviate da Grub.


3

Per me, Damn Small Linux ha ottenuto il nome di "la più piccola distribuzione Linux possibile"! Tuttavia ho sentito che è un po 'fuori produzione. Puoi anche vedere un elenco di distribuzioni simili (chiamato "Mini Linux") su questa pagina wiki .

Se lo spazio non è il tuo obiettivo, suggerirò Gentoo o Arch Linux , entrambi installano un sistema di base. Scegli cosa usare e installare i pacchetti man mano che crescono le tue esigenze.


Non spazio - apprendimento di Linux. Ho visto la maggior parte di quelli, oltre a LFS, ma LFS ti fa fare / aggiungere cose con, a quanto pare, non abbastanza spiegazione.
Slashmais

3
Se vuoi imparare, Archlinux è davvero buono. L' Arch Wiki ha ALOT di informazioni utile chiare.
Stefan,

sembra che abbia spostato il bersaglio dopo che hai sparato, scusa: o
slashmais

2

Quello che devi fare è scaricare l'ultimo kernel da kernel.org, fare uno make menuconfige guardare semplicemente le opzioni e usarlo come punto di partenza per la ricerca e l'indagine. Imparerai molto.


"Il tempo è il mio nemico." - non proprio, ma esaminerò sicuramente il tuo suggerimento.
slashmais,

0

Potresti guardare Puppy Linux . Potrebbe non essere il più piccolo, ma ha una ripetizione di essere piccolo.

Tuttavia, le distribuzioni Linux che devono essere piccole generalmente tendono a rimanere piccole. Per l'apprendimento di Linux, vorrei un debian live da qualche parte. Vorrei ottenere i sorgenti del kernel debian, i sorgenti bash e i sorgenti grub compilati e installati. Quindi compilazione incrociata installa un editor, apt e gcc. Quindi genera un elenco di pacchetti dal debian live. Installa il sorgente per ogni pacchetto, compila e installa. Quindi aggiungi X e poi la W di tua scelta, quindi hai le basi per quello che vuoi fare.

PS: apt-get source ti dà la fonte per un pacchetto debian.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.