GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ein Linux-Kernel so klein sein?

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.

Linux
  1. So installieren Sie Perl-Module unter Linux

  2. So aktualisieren Sie den Kernel auf dem Linux-Desktop

  3. So überprüfen Sie die Kernel-Version unter Linux

  4. Linux – Wie lädt man ein Kernel-Modul richtig neu?

  5. So laden Sie modifizierte Kernel-Module neu

So laden oder entladen Sie ein Linux-Kernel-Modul

So laden und entladen Sie Kernel-Module in Linux

So überprüfen Sie die Kernel-Version in Linux

So erstellen Sie einen Linux-Kernel von Grund auf neu

Wie viele Kerne kann der Linux-Kernel verarbeiten?

Wie kann ich einen Speicherblock aus dem Linux-Kernel reservieren?