Ja. Wenn Sie sie reduzieren (Module nur kompilieren/erstellen, die Sie benötigen), den Kernel komprimieren (auf Größe optimieren) ... wird dies zu einem so kleinen Kernel führen. Sie können sogar noch kleinere für ein gezieltes System erstellen. So wie ich meinen PC kenne, kenne ich meine Sachen. Also werde ich nur zusammenstellen, was ich brauche. Wie meine eigenen SATA-Treiber, Treiber für USB usw. Sonst nichts. Keine Webcam, keine alten IDE-Laufwerke, nichts.
Außerdem:Die größeren, denen Sie begegnen, sind der GANZE Kernel (den man nie verwenden muss). Sogar die Desktop-Dateien enthalten (meistens als Module) eine Menge unnötiger Dinge. Aber Neulinge erwarten, dass jede Art von Hardware, die sie anschließen, einfach funktioniert.
(Beachten Sie, dass die Module erst geladen werden, wenn sie benötigt werden. Es gibt 3 Zustände:
[ ]
- Wird nicht kompiliert, wird nicht Teil Ihres Kernels sein.
[M]
- Wird als Modul kompiliert.
(Sie können es modproben, oder Ihr System lädt es automatisch, wenn es benötigt wird.
Abhängig vom System, Userland.)
[X]
- Es wird in den Kernel kompiliert UND ist immer vorhanden.
Distributionen mit kleinem Kernel:
- Tiny Core Linux, Micro Core Linux, 12 MB Linux-GUI-Desktop, Live, sparsam, erweiterbar
- Puppy Linux Community Home - Erste Schritte
Frühe Linux-Distributionen wie Tom's Root-Boot, MuLinux, Diet-Router, (das inzwischen nicht mehr existierende) LOAF und viele andere, die inzwischen abgeschafft sind, passen alle zu einem funktionierenden Linux-System auf einer oder zwei 1,44-MB-Disketten.
Der Linux-Kernel ist gewachsen, aber er ist modular aufgebaut:Kernel-Module werden nach Bedarf geladen. Somit ist es immer noch möglich, eine Linux-Distribution mit sehr geringem Platzbedarf zu erstellen.
Siehe:Kernel Size Tuning Guide - eLinux.org
Wenn Sie Linux_tiny.pdf lesen, werden Sie dies sehen
- historischer 0.99pl15-Kernel:Slackware 1.1.2, 1994:301K
- Fedora Core 2:1,2 Mio.
- SuSE 9.1:1,5 Mio.
- 2.6.5-tiny1 Testkonfiguration:IDE, ext2, TCP, NIC:363K
Die standardmäßige Kernelkonfiguration ist so konfiguriert, dass sie so viele Hardware wie möglich unterstützt. Ein nicht gestrippter Kernel mit Standardkonfiguration ergab eine Größe von 1897996 kB (einschließlich Kernel + Module). Beim Entfernen vieler unnötiger Treiber und Optionen (warum sollte ich ein HP-Modul benötigen, wenn ich ein Clevo-Notebook besitze) führte dies zu einer Größe von 892892 kB, was einer Größenreduzierung von 53 % im Vergleich zum Stock-Kernel entspricht.
Hängen Sie bei der Installation der Kernel-Module den INSTALL_MOD_STRIP=1
an Möglichkeit. Dadurch werden alle Debugging-Symbole entfernt und die Größe für mich um 92 % reduziert (von 892892 kB auf 69356 kB). Beachten Sie, dass dies nur die zu installierenden Module betrifft und nicht den Kernel (vmlinuz) selbst:
make INSTALL_MOD_STRIP=1 modules_install
Aus Documentation/kbuild/kbuild.txt:
INSTALL_MOD_STRIP
--------------------------------------------------
INSTALL_MOD_STRIP, if defined, will cause modules to be
stripped after they are installed. If INSTALL_MOD_STRIP is '1', then
the default option --strip-debug will be used. Otherwise,
INSTALL_MOD_STRIP value will be used as the options to the strip command.