Was verhindert, dass Distributionen den neuesten Linux-Kernel verwenden? [geschlossen]


13

Die meisten Linux-Distributionen werden mit einer bestimmten Kernel-Version ausgeliefert und aktualisieren diese nur bei Punktversionen ( x.y.zbis x.y.(z+1)) und für Sicherheitsupdates.

Andererseits weiß ich, dass Linux eine sehr strenge Richtlinie hat, um das Kernel-ABI nicht zu ändern und niemals den Benutzerraum zu beschädigen. Tatsächlich hatte Linus viele öffentliche Wutanfälle, die sich an Entwickler richteten, die (absichtlich oder versehentlich) den Kernel ändern wollten. Dies ist nicht abwärtskompatibel.

Ich verstehe nicht, warum Distributionen "stabile" Kernel verwenden, anstatt immer auf den neuesten Kernel zu aktualisieren. Dies ist keine Kritik, ich bin nur neugierig auf den Grund.


1
weil die neuesten Kernel nicht getestet werden. Es kann Fehler enthalten, die die Stabilität des Systems beeinträchtigen können, und Stabilität ist das Hauptaugenmerk eines jeden Verteilungsverwalters.

Antworten:


8

Die Systemaufrufschnittstellen des Linux-Kernels sind sehr stabil. Der Kernel verfügt jedoch über andere Schnittstellen, die nicht immer kompatibel sind.

  • /procist größtenteils stabil, aber es gab in der Vergangenheit einige Änderungen (z. B. einige Schnittstellen, die auf /syseine Zeit nach der /sysErstellung verschoben wurden).
  • In der Vergangenheit wurden einige gerätebezogene Schnittstellen entfernt .
  • /sysenthält einige stabile Schnittstellen (aufgeführt in Documentation/ABI/stable) und einige, die nicht aufgeführt sind. Sie sollten nicht diejenigen verwenden, die es nicht sind, aber manchmal tun es die Leute, und ein einfaches Sicherheits- und Stabilitäts-Upgrade sollte die Dinge für sie nicht kaputt machen.
  • In der Vergangenheit gab es Inkompatibilitäten mit Modutils (neuere Kernel, die eine neuere Version von Modutils erfordern), obwohl ich denke, dass dies schon eine Weile her ist.
  • Bei einigen ungewöhnlichen Konfigurationen gab es auch Inkompatibilitäten in Bezug auf den Startvorgang. Selbst das Vergrößern des Kernels kann auf einigen eingebetteten Systemen zu Problemen führen.
  • Während die externen Schnittstellen des Kernels ziemlich stabil sind, sind es die internen Schnittstellen nicht. Die Regel für interne Schnittstellen lautet, dass jeder sie beschädigen kann, solange er interne Verwendungszwecke festlegt. Die Reparatur von Modulen von Drittanbietern liegt jedoch in der Verantwortung des Autors dieser Module. Insgesamt werden in vielen Installationen Module von Drittanbietern ausgeführt: zusätzliche Treiber für Hardware, die vom Kernel nicht unterstützt wurde (wenn die Hardware vom neuen Kernel unterstützt wird, ist das in Ordnung, aber was ist, wenn dies nicht der Fall ist), proprietäre Treiber ( Während die Welt ein besserer Ort wäre, wenn alle Treiber Open Source wären, ist dies nicht der Fall. Wenn Sie beispielsweise eine gute 3D-GPU-Leistung wünschen, stecken Sie ziemlich fest in proprietären Treibern usw.
  • Einige Benutzer müssen ihren Kernel oder einige Module von Drittanbietern neu kompilieren. Neuere Kernel können oft nicht mit älteren Compilern kompiliert werden.

Alles in allem sind Module von Drittanbietern der Hauptgrund, nicht auf eine neuere Kernelversion zu wechseln.

Einige Distributionen bieten jedoch aktuelle Kernel als Option an. Beispielsweise stellt Debian Benutzern der stabilen Version Kernel aus Tests über Backports zur Verfügung. In Ubuntu LTS sind Kernel aus neueren Ubuntu-Versionen verfügbar, werden jedoch nicht standardmäßig verwendet. Dies ist vor allem für Neuinstallationen auf Hardware nützlich, die zum Zeitpunkt der Fertigstellung der Distribution noch nicht unterstützt wurden.


9

Ich arbeite nicht für eine Distribution, aber ich kann mir mindestens zwei Gründe vorstellen:

  • Einige Distributionen wenden ihre benutzerdefinierten Patches auf den Kernel an, die noch nicht in der Hauptlinie zusammengeführt wurden. Dies bedeutet, dass sie bei jedem Update des Kernels sicherstellen müssen, dass ihre Patches nichts beschädigen und dennoch ordnungsgemäß funktionieren.
  • Selbst die neueste stabile Kernel-Version kann einen Fehler enthalten. Distributionen, die die Zuverlässigkeit ernst nehmen, sollten einige Testverfahren / -prozesse durchlaufen, bevor sie ihren Kunden einen Kernel liefern.

2
Distributionsspezifische Patches sind ohnehin nicht unbedingt für den Upstream gedacht. Und der neueste Upstream-Kernel enthält im Durchschnitt mehr Fehler als der getestete "Stock" -Kern einer Distribution. Vieles, was der von einer Distribution verteilte Kernel tut, ist zu versuchen, so viele Fehler wie möglich auszuräumen / zu beheben, ohne den Code mehr als nötig zu ändern.
Faheem Mitha

0

Aus Stabilitätsgründen folgen konservativere Distributionen den stabilen Kernel-Versionen (und beteiligen sich aktiv daran) . Abenteuerlustige verwenden eine Kernel-Version, die hinter der neuesten und besten Vanille steht, sowie eine Reihe von Patches, die vom Entwicklungstipp zurückportiert wurden (und einige aus eigenem Anbau).

Die derzeitige Kernel-Entwicklungsrichtlinie sieht vor, dass die Linus-Version glänzende, neue Spielzeuge vorantreibt und keine Angst vor umfassenden Änderungen hat. Einige Versionen gelten als stabil genug (entwicklungsmäßig), um die Grundlage für strenge Tests und Stabilisierungen zu bilden, was stabile Serien ergibt.

All dies ist dank der verwendeten Tools möglich. Jeder kann seinen eigenen Git- Baum pflegen , interessante vorgelagerte Zweige und Bäume lokal synchronisieren, Commits von anderen stehlen und lokale Änderungen frei teilen.


Die stabile Kernel-Serie wird nicht basierend auf der Stabilität einer bestimmten Version ausgewählt, sondern ist willkürlich. Ab diesem Jahr basiert die Stable-Serie auf der ersten Version, die jedes Jahr veröffentlicht wird ... Jede einzelne Kernel-Version soll stabil sein und niemals die Abwärtskompatibilität beeinträchtigen.
Stephen Kitt
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.