Ich versuche, einige Experimente mit Linux durchzuführen und nach der kleinsten Distribution nach Installationsgröße zu suchen. (RAM, CPU ist eigentlich egal)
Ich versuche, einige Experimente mit Linux durchzuführen und nach der kleinsten Distribution nach Installationsgröße zu suchen. (RAM, CPU ist eigentlich egal)
Antworten:
Update: ttylinux wird momentan nicht gewartet! Wenn Sie noch interessiert sind, starten Sie hier oder hier .
Abhängig von Ihrer Plattform ist ttylinux vielleicht etwas für Sie:
Dieses kleinste ttylinux-System verfügt über ein 8-MB-Dateisystem und läuft auf i486-Computern mit einem Arbeitsspeicher von 28 MB. Es bietet jedoch eine vollständige Befehlszeilenumgebung und ist für den Internetzugang bereit.
Begonnen im Jahr 2001 und die neueste Version ist vom 05.03.2015, daher wird sie immer noch beibehalten.
OpenWrt ist auch eines der kleinsten.
Wenn Sie bereit sind, einen Kompilierungsprozess durchzuführen und Funktionen einzuschränken , können Sie Buildroot ausprobieren . Ich habe eine sehr einfache Linux-Installation erstellt (im Wesentlichen nur den Kernel, minimale Busybox-Dienstprogramme und eine zusätzliche Anwendung), die in ein 6-MB-ISO-Image passt.
Der Schlüssel hier ist, die Kernel- und Busybox-Konfiguration ("make linux-nconfig" und "make busybox-menuconfig") auf das Nötigste zu reduzieren und dann die XZ-Komprimierung auf der ursprünglichen Kernel-Ramdisk zu aktivieren. Durch das Reduzieren von allem, was ich nicht brauchte, konnte ich das gesamte ISO-Image auf ca. 9 MB reduzieren und nach dem Aktivieren der XZ-Komprimierung weiter auf 6 MB reduzieren.
Für den Kernel habe ich einfach jede Option im Konfigurationsmenü markiert und deaktiviert, es sei denn, ich habe sie speziell benötigt. Sie können alle Netzwerktreiber deaktivieren, für die Sie keinen entsprechenden Netzwerkadapter haben, und andere, weniger verbreitete Hardware deaktivieren, die Sie nicht für vorgesehen halten (serielle Karten mit mehreren Anschlüssen, Joysticks, Multifunktionsgeräte usw.) auf. Sie können auch viele Subsysteme auf den Basisimplementierungen belassen, anstatt komplexeren (z. B. ACPI-Basis-CPU-Leerlaufzustände anstelle von Intel / AMD-CPU-Leerlaufzuständen), was bedeuten kann, dass Sie die Energieeffizienz und die vollständige Hardwareunterstützung für die Kernelgröße in Kauf nehmen. Sie können auch ganze Subsysteme wie Ruhezustand / Energiesparmodus und Soundsystem deaktivieren, wenn Sie diese nicht benötigen.
Sie könnten dadurch viel Platz sparen. Zum Beispiel nehmen die KVM- (Virtualisierung) und btrfs-Unterstützungsmodule (die ich als ladbare Module außerhalb des Kernels platziert habe, falls ich sie in Zukunft benötige) selbst 1,1 MB ein. Wenn Sie diese Moduldateien löschen, können Sie bis zu 4,9 MB erreichen. Es könnte sein, dass sie weniger Platz in der Kernel-Binärdatei beanspruchen, aber dann habe ich gesehen, dass andere, kleinere Module eine Größe von 20-100 Kilobyte haben, sodass Ihre Laufleistung variieren kann.
Busybox ist eine einzelne Binärdatei, die sich wie verschiedene Binärdateien verhält, je nachdem, wie sie über die Befehlszeile aufgerufen wird. Auf diese Weise können Sie Platz sparen. Es ist standardmäßig in Buildroot enthalten. Es kann sich wie ls, df, dd, cat, nc, bash und viele andere verhalten. Es sieht aus wie ein guter Ersatz für fast das gesamte * nix-Benutzerland, es sei denn, Sie benötigen bestimmte Dienstprogrammerweiterungen, die Sie nur in umfassenderen / traditionelleren Versionen (z. B. GNU, BSD) dieser Dienstprogramme finden können. Busybox ähnelt dem Kernel in Bezug auf das Deaktivieren von Funktionen. Deaktivieren Sie bis auf die benötigten Binärdateien (AKA-Applets) alles, und die Größe wird verringert. Dynamisch kompilierte Busybox-Binärdatei benötigt 512 KB in Buildroot und ungefähr 2,1 MB unter Ubuntu 14.10. Die größere Ubuntu-Version unterstützt wesentlich mehr als meine Buildroot-Version.
Sie können einige der folgenden Schritte ausführen, um die Größe weiter zu verringern. Erstellen Sie jedoch häufig Sicherungen des Arbeitsverzeichnisses, da Sie möglicherweise die Buildroot-Installation, an der Sie arbeiten, unterbrechen und möglicherweise einige der Binärdateien neu erstellen müssen.
Komprimieren Sie alle ausführbaren Dateien (einschließlich des Kernels) mit dem UPX-Kompressor. Da UPX speziell für die ausführbare Komprimierung entwickelt wurde, werden die daraus resultierenden ausführbaren Dateien viel kleiner. Stellen Sie jedoch sicher, dass Sie anschließend alle ausführbaren Dateien testen und dass sie ordnungsgemäß funktionieren.
Verwenden Sie eine andere libc. Ich benutze uClibc, aber ich habe gehört, dass musl und dietlib viel kleiner sind und kleinere ausführbare Dateien produzieren. Ich hatte diesmal einige Build-Probleme mit Musl, aber es könnte besser funktionieren.
Ersetzen Sie einige oder alle Userland-Dienstprogramme durch asmutils . Diese Dienstprogramme implementieren einige der gängigen * nix-Dienstprogramme in Pure Assembly (anstelle von C oder anderen Sprachen), wodurch theoretisch viel kompakterer Code möglich ist. Einige von ihnen funktionieren gut, andere können jedoch nur auf sehr einfache Weise verwendet werden (z. B. "mount" nimmt Parameter nur in einer bestimmten Reihenfolge entgegen und es sind keine FS-spezifischen Mount-Optionen implementiert). Auf der anderen Seite sind sie sehr klein (die meisten sind weniger als 1 KB kompiliert, die kleinsten etwa 139 Byte oder so). Sie können auswählen, welche Sie verwenden möchten, sodass Sie diese Ersetzungen nur für die Befehle verwenden können, bei denen Sie Speicherplatz sparen und funktionsreichere Versionen als Busybox-Applets beibehalten möchten.
Tomsrtbt ist ein paar Megabyte; es passt auf eine Diskette.