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

Was ist der Vorteil, wenn Sie Ihren eigenen Linux-Kernel kompilieren?

Meiner Meinung nach ist der einzige Vorteil, den Sie wirklich durch das Kompilieren Ihres eigenen Linux-Kernels haben, folgender:

Sie lernen, wie Sie Ihren eigenen Linux-Kernel kompilieren.

Es ist nichts, was Sie brauchen für mehr Geschwindigkeit / Speicher / xxx was auch immer zu tun. Es ist eine wertvolle Sache, dies zu tun, wenn Sie das Gefühl haben, in dieser Phase Ihrer Entwicklung zu sein. Wenn Sie ein tieferes Verständnis dafür haben wollen, worum es bei dieser ganzen "Open-Source"-Sache geht, wie und was die verschiedenen Teile des Kernels sind, dann sollten Sie es versuchen. Wenn Sie nur Ihre Startzeit um 3 Sekunden verkürzen möchten, dann ... was ist der Sinn ... kaufen Sie eine SSD. Wenn Sie neugierig sind, wenn Sie lernen möchten, dann ist das Kompilieren Ihres eigenen Kernels eine großartige Idee, und Sie werden wahrscheinlich viel davon haben.

Abgesehen davon gibt es einige spezifische Gründe, warum es angebracht wäre, einen eigenen Kernel zu kompilieren (wie mehrere Personen in den anderen Antworten darauf hingewiesen haben). Im Allgemeinen ergeben sich diese aus einem bestimmten Bedarf, den Sie für ein bestimmtes Ergebnis haben, zum Beispiel:

  • Ich muss das System dazu bringen, auf Hardware mit begrenzten Ressourcen zu booten/zu laufen
  • Ich muss einen Patch testen und den Entwicklern Feedback geben
  • Ich muss etwas deaktivieren, das einen Konflikt verursacht
  • Ich muss den Linux-Kernel entwickeln
  • Ich muss die Unterstützung für meine nicht unterstützte Hardware aktivieren
  • Ich muss die Leistung von x verbessern, weil ich an die aktuellen Grenzen des Systems stoße (und ich weiß, was ich tue)

Das Problem liegt darin zu denken, dass es einen intrinsischen Vorteil hat, einen eigenen Kernel zu kompilieren, wenn alles bereits so funktioniert, wie es sein sollte, und ich glaube nicht, dass es einen gibt. Obwohl Sie unzählige Stunden damit verbringen können, Dinge zu deaktivieren, die Sie nicht brauchen, und Dinge zu optimieren, die optimiert werden können, ist Tatsache, dass der Linux-Kernel (von Ihrer Distribution) für die meisten bereits ziemlich gut abgestimmt ist Benutzersituationen.


Die meisten Benutzer müssen keinen eigenen Kernel kompilieren, ihre Distribution hat diese Arbeit für sie erledigt. Normalerweise enthalten Distributionen eine Reihe von Patches, um entweder bestimmte Teile der Funktionsweise der Distribution zu integrieren, Rückportierungen von Gerätetreibern und Korrekturen von neueren, aber unveröffentlichten Versionen des Kernels oder Funktionen, die sie mit ihren Benutzern vorantreiben.

Wenn Sie Ihren eigenen Kernel kompilieren, haben Sie ein paar Optionen:Sie können einen offiziellen Kernel von Linus Torvalds kompilieren, dieser enthält keine Patches oder Anpassungen, die von Ihrer Distribution hinzugefügt wurden (was gut oder schlecht sein kann), oder Sie können Verwenden Sie Ihr Distributions-Rebuild-Tool, um Ihren eigenen Kernel zu erstellen.

Zu den Gründen, aus denen Sie vielleicht Ihren Kernel neu erstellen möchten, gehören:

  • Das Patchen von Fehlern oder das Hinzufügen einer bestimmten Funktion zu einem Produktionssystem, bei dem Sie nicht wirklich riskieren können, den gesamten Kernel für ein oder zwei Fixes zu aktualisieren.
  • Um einen bestimmten Gerätetreiber oder eine neue Funktion auszuprobieren
  • Um den Kernel zu erweitern, arbeiten Sie daran
  • Testen einiger der "Alpha"-Module oder -Funktionen.

Viele Entwickler verwenden es, um auch benutzerdefinierte Versionen des Kernels für eingebettete Systeme oder Settop-Boxen zu erstellen, wenn sie spezielle Gerätetreiber benötigen oder nicht benötigte Funktionen entfernen möchten.


Wenn Sie den Kernel selbst kompilieren, können Sie nur die für Ihren Computer relevanten Teile einbeziehen, wodurch er kleiner und möglicherweise schneller wird, insbesondere beim Booten. Generische Kernel müssen so viel Hardware wie möglich unterstützen; Beim Booten erkennen sie, welche Hardware an Ihren Computer angeschlossen ist, und laden die entsprechenden Module, aber das alles braucht Zeit, und sie müssen dynamische Module laden, anstatt den Code direkt in den Kernel einzubacken. Es gibt keinen Grund, Ihren Kernel 400 verschiedene CPUs unterstützen zu lassen, wenn nur einer in Ihrem Computer vorhanden ist, oder Bluetooth-Mäuse zu unterstützen, wenn Sie keine haben, es ist alles verschwendeter Speicherplatz, den Sie freigeben können


Linux
  1. Herzlichen Glückwunsch an den Linux-Kernel:Was ist Ihre Lieblingsversion?

  2. Der Lebenszyklus des Linux-Kernel-Testens

  3. So schreiben Sie Ihr eigenes Linux-Kernel-Modul mit einem einfachen Beispiel

  4. Was bedeutet __init im Linux-Kernel-Code?

  5. Was ist ein verdorbener Kernel in Linux?

Planen Sie Ihren eigenen Feiertagskalender auf der Linux-Befehlszeile

Was ist der Unterschied zwischen macOS- und Linux-Kernels

Was ist die Shell unter Linux?

Was tun bei einer Linux-Kernel-Panik?

Linux – Welche Entropiequellen werden vom Linux-Kernel verwendet?

Was ist der Kill-Befehl in Linux?