Was ist die kleinstmögliche Linux-Implementierung? [geschlossen]

21

Was sind die Grundvoraussetzungen dafür, dass ein Linux-Betriebssystem funktioniert und dass ich es als Basis verwenden kann, um es zu erweitern und zu verbessern, wenn ich Linux lerne und mein Verständnis und meine Bedürfnisse wachsen?

Slashmais
quelle

Antworten:

9

Wenn Sie lernen möchten, ist Gentoo eine gute Option - die minimale Gentoo-Installation besteht aus einer Root-Shell und einem Paket-Manager, und Sie bauen den Rest Ihres Systems von dort aus. Gentoo bleibt auch bei Paketen in der Nähe des Upstreams, so dass Sie nicht auf zu viele Probleme stoßen, wenn Sie einige Pakete selbst herunterladen und erstellen möchten (und Sie können sie tatsächlich der Datei /etc/portage/package.provided hinzufügen nachdem sie installiert sind, und verwenden Sie sie als Abhängigkeiten!)

Wenn Sie nach dem absolut kleinstmöglichen Linux-System suchen, erstellen Sie Ihren eigenen Kernel, entfernen Sie alle Treiber und Funktionen, die Sie nicht verwenden möchten, und fügen Sie ein initramfs hinzu, das eine ähnlich minimierte Version von Busybox enthält. Das Ergebnis ist ein vollständig bootfähiges Linux-System in einer einzigen ausführbaren Datei (auf die Sie Ihren Bootloader verweisen können), auf die Sie weniger als 10 MB einpassen können, ohne es zu versuchen.

p-statisch
quelle
Ihr letzter Absatz - ich denke, das wäre ein guter Anfang. Dann werde ich wissen, was da ist und warum es da ist, und es als Basis für das Wachstum verwenden.
Slashmais
10 MB? Sie könnten es wahrscheinlich unter 1
MB
8

Archlinux verwendet eine Basisgruppe von Dateien für eine minimale Installation.

Zusammen mit einer Basisentwicklungsgruppe , wenn Sie eine Systementwicklung durchführen wollen.

Stefan
quelle
3
In die richtige Richtung gehören immer noch viele Pakete, aber ich kann verwenden, was sie geben und Pakete schneiden, bis die Dinge kaputt gehen.
Slashmais
Die Arch - Installation ist jetzt viel modularer als 2010 - aus dem Speicher / ohne eine Neuinstallation zu starten, bietet das Dienstprogramm "pacstrap" die Option, welche Gruppen verwendet werden sollen, einschließlich "base" oder möglicherweise gar nichts (obwohl) Ich denke, Base enthält das Systemmaterial). Wenn Sie einen Schritt tiefer gehen möchten, aber immer noch eine zumindest vage verbreitete Distribution haben, ist Slackware wahrscheinlich die richtige.
DJVS
Die Arch-Installation ist viel weniger modular als zuvor, da sie offiziell nur am64-Arch, systemd-only für init usw. unterstützt. Allerdings würde ich auch Slackware empfehlen.
Lucas Ramage
8

Wenn Sie wirklich nur das Nötigste von einem Linux-System wollen, können Sie Distributionen für eingebettete Systeme wie Router ausprobieren. Sie enthalten normalerweise nur das absolute Minimum an Software und das Fehlen einer grafischen Benutzeroberfläche zwingt Sie, sich mit der Befehlszeile vertraut zu machen. Ein Nachteil ist, dass diese Systeme häufig die Konventionen regulärer Linux-Distributionen verletzen, z. B. Software an ungewöhnlichen Orten installieren oder vereinfachte Init-Systeme verwenden.

Wenn Sie es versuchen möchten , können Sie zB openwrt in einer virtuellen Maschine ausprobieren .

fschmitt
quelle
Ich kann OpenWrt als Referenz verwenden. Ich würde mich freuen, wenn Sie auf weitere solche Seiten hinweisen könnten. Bereits mit VirtualBox & sie haben eine Noddy-Anleitung, um OpenWrt darin zu installieren.
Slashmais
Vielleicht eingebettetes Debian: emdebian.org
fschmitt
8

Einzelne ausführbare Rootfs

Das absolute Minimum-System führt ein einzelnes /initProgramm aus, wie ich unter Linux für einzelne Anwendungen | erläutert habe Super User

Minimales Linux Live

https://github.com/ivandavidov/minimal

Für ein interessanteres interaktives System ist dies ein (meist lehrreiches) kleines Skript, das:

  • Lädt die Quelle für den Kernel und die Busybox herunter
  • kompiliert sie
  • erzeugt daraus einen bootfähigen 8Mb ISO

Die ISO lässt Sie dann in einer Minimal-Shell mit Busybox zurück.

Mit QEMU können Sie problemlos in das System booten.

Ich habe es so geändert, dass es über das Kernel-Quellverzeichnis ausgeführt werden kann: https://github.com/cirosantilli/runlinux

Verwendung:

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

und Sie werden in einem QEMU-Fenster mit Ihrem neuen Minimalsystem zurückgelassen. Genial.

Da es klein ist, ist dies eine gute Option, um die Quelle zu lesen und zu verstehen, was los ist.

Getestet unter Ubuntu 16.04.

Baumwurzel

https://buildroot.org/

Große Auswahl an Makefile-Skripten, die Folgendes verwalten:

  • GCC Cross Compilation Toolchain
  • Kernel-Kompilierung
  • Bootloader-Kompilierung
  • Generierung von Rootfs
  • hat Tonnen von Rezepten zum Herunterladen / Erstellen von Paketen im Quellbaum, einschließlich komplexer Dinge wie GTK. Es gibt ein Abhängigkeitssystem.

Minimales Beispiel:

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.

Es gibt sogar Rezepte, um X11 von Grund auf neu zu erstellen: Wie installiere ich X11 auf meinem eigenen Linux Buildroot-System?

Professionelles, kampferprobtes Material, das von einigen großen Unternehmen verwendet wird.

Alpines Linux

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

Embedded Distribution mit einem Paketmanager, der vorkompilierte Binärdateien von einer Website anbietet.

Siehe auch

Ciro Santilli ist ein Schauspieler
quelle
1
Schließlich bin ich die LFS-Route gegangen.
Habe
6

Wie kommt es, dass niemand Tomsrtbt erwähnt hat ? (Linux auf einer 1,44 "-Diskette)

Arafangion
quelle
klingt nach rechts - links?
Slashmais
Keine
4
Wer hat heutzutage noch ein Diskettenlaufwerk? ;)
p-static
1
Ich schaue gerade einen an. Aber ich habe es in den Jahren, in denen ich den PC hatte, nur einmal benutzt.
Lamcro
3
@ p-static: Ich verwende eine alte Box als Druckserver - sie hat immer noch ein 8 1/4 Zoll Diskettenlaufwerk und ich habe sie gerade mit 20 Jahre alten Disketten getestet - erstaunlicherweise sind die Disketten immer noch in Ordnung! auch mit unverfälschten daten (turbo pascal v3 code aus studententagen).
Slashmais
4

Du könntest Slackware Linux ausprobieren. Mit der menügesteuerten Installation können Sie ein Minimum an System installieren. Sie können Manpages, X11, Tcl und Emacs einfach weglassen. Sie können in die Installation eintauchen und nur ein Minimum an Paketen installieren.

Danach kompiliere ich den Kernel speziell für den Computer, auf dem Sie installiert haben.

Slackware verwendet weiterhin standardmäßig den Lilo-Boot-Manager, sodass Sie am Ende ein wenig mehr über die Boot-Sektoren wissen, welche Partition als bootfähig markiert ist, was Ihre initrd enthält usw. usw. als bei Grub-Boot-Distributionen.

Bruce Ediger
quelle
3

Für mich hat Damn Small Linux den Namen "die kleinstmögliche Linux-Distribution"! Allerdings habe ich gehört, dass es irgendwie eingestellt ist. Sie können auch eine Liste ähnlicher Distributionen ("Mini Linux" genannt) auf dieser Wiki-Seite sehen .

Wenn der Speicherplatz nicht Ihr Ziel ist, schlage ich Gentoo oder Arch Linux vor , beide installieren ein Basissystem. Sie entscheiden, welche Pakete verwendet und installiert werden sollen, wenn Ihre Anforderungen wachsen.

phunehehe
quelle
Nicht Weltraum - Linux lernen. Ich habe mir die meisten davon und auch LFS angeschaut, aber LFS bringt Sie dazu, Dinge zu tun / hinzuzufügen, es scheint, nicht genug Erklärung.
Slashmais
3
Wenn Sie lernen wollen, ist Archlinux wirklich gut. Das Arch Wiki enthält VIELE klare und hilfreiche Informationen.
Stefan
Es
sieht
2

Sie müssen make menuconfiglediglich den neuesten Kernel von kernel.org herunterladen, einen Blick auf die Optionen werfen und diesen als Ausgangspunkt für Recherchen und Untersuchungen verwenden. Sie werden viel lernen.

LawrenceC
quelle
"Die Zeit ist mein Feind." - Nicht wirklich, aber ich werde auf jeden Fall auf Ihren Vorschlag eingehen.
Slashmais
0

Sie könnten sich Puppy Linux ansehen . Es ist vielleicht nicht das kleinste, aber es hat den Ruf, klein zu sein.

Allerdings neigen Linux-Distributionen, die klein sein sollen, dazu, klein zu bleiben. Um Linux zu lernen, würde ich irgendwo ein Live-Debian sein. Ich würde die Debian-Kernel-Quellen, Bash-Quellen und Grub-Quellen über Kreuz kompilieren und installieren lassen. Dann installieren Sie einen Editor, apt und gcc. Dann generiere eine Liste von Paketen aus dem Debian Live. Installieren Sie den Quellcode für jedes Paket, kompilieren und installieren Sie es. Dann füge X hinzu und dann den Wm deiner Wahl. Dann hast du die Basis für das, was du tun möchtest.

PS: Mit apt-get source erhalten Sie die Quelle für ein Debian-Paket.

HandyGandy
quelle