Was sind die Unterschiede zwischen dem Ubuntu-Kernel und dem Upstream-Kernel?

31

Was sind die Unterschiede im Funktionsumfang zwischen dem Haupt-Linux-Kernel und dem von Ubuntu verwendeten Kernel? Warum wird Ubuntu vom Hauptkern abgezweigt, anstatt den Hauptkern direkt zu verwenden?

Andrew Stern
quelle

Antworten:

18

Die Upstream-Kernel (wenn wir sie als Mainline-Kernel bezeichnen ) sind einfach die Upstream-Kernel für die angegebene Version, wobei nur sehr wenige kleinere Konfigurationsänderungen hinzugefügt wurden, so dass bei einer Ubuntu-Installation nur minimale Probleme auftreten.

Der Unterschied zwischen diesen Kerneln und dem für eine Ubuntu-Version veröffentlichten Kernel besteht in zahlreichen anderen Konfigurationsänderungen , Quell-Patches * und in einigen Fällen in Modulen und Hardware-Support kompiliert.

Der zugrunde liegende Code unterscheidet sich nur sehr wenig von dem oben angegebenen.

*: Quell-Patches sind in den meisten Fällen Änderungen am Standardverhalten des Kernels. Diese sind nicht beschränkt auf: Blacklists, Video-Quirks-Tabellen, eingebaute Module, Quellcode-Änderungen, die noch nicht in Linus 'Baum oder der Stable-Queue enthalten sind usw.

Das Team verwendet Quell-Patches, um Konfigurationsoptionen einzuführen, die für die Unterstützung der zahlreichen veröffentlichten Software für eine bestimmte Ubuntu-Version erforderlich sind. In vielen Fällen sind sie erforderlich, damit diese Anwendungen ordnungsgemäß funktionieren. Der grundlegende Unterschied zwischen diesem und dem Upstream-Kernel besteht darin, dass der reine Upstream-Kernel nicht verteilungsspezifisch ist.

Daher sind die Konfigurationen nicht darauf ausgerichtet, sicherzustellen, dass bestimmte Anwendungen wie erwartet funktionieren. Diese Konfigurationen sind vorhanden, um dem Kernel diese Änderungsmöglichkeit für bestimmte Dinge zu bieten. Durch die Verwendung von Quirks können wir außerdem Hardware identifizieren, die bestimmte Dinge vom Kernel erfordert, die wir einstellen können, sobald wir sie erkennen.

Dies ist eines der Hauptmerkmale von Linux und einer der Gründe, warum wir im Laufe der Jahre auf so vielen verschiedenen Plattformen laufen konnten. Es gibt Zeiten, in denen die Macken und Quell-Patches untereinander Probleme verursachen. Während dieser Zeit arbeiten wir daran, die Probleme mit Änderungen des zugrunde liegenden Kernelverhaltens zu mindern. In vielen Fällen werden diese Änderungen erst nach der Veröffentlichung veröffentlicht, da das Update ordnungsgemäß codiert, dokumentiert, die Änderungen getestet und verschiedene andere Tests und Stresstests durchgeführt werden müssen.

In diesen Fällen werden Patches, die auf den Upstream ausgerichtet sind, ähnlich wie Patches, die sich noch nicht in Linus 'Baum befinden, als Quell-Patches vorab stabilisiert. Der Link zur Delta-Review-Spezifikation sollte als Referenz für das dienen, was für die aktuelle Natty-Version des Ubuntu-Kernels überprüft wurde.

Jeremy Foshee
quelle
1
Gibt es weitere Details zu den Saucen-Patches und warum sind einige Konfigurationsänderungen für den Ubuntu-Kernel erwünscht?
Andrew Stern
Andrew, ja, ich arbeite an einem Erklärungstext, um das oben Gesagte zu ergänzen und hoffentlich klarer zu machen, welche Saucenflicken etwas detaillierter sind. :-)
Jeremy Foshee
2

Der Linux-Kernel wird ständig weiterentwickelt. Wenn das Ubuntu-Team sein nächstes Release packt, muss es zu einem bestimmten Zeitpunkt sagen: "OK, wir nehmen den Kernel so, wie er jetzt ist." Von Zeit zu Zeit wird möglicherweise ein neuer Kernel in den Repos zur Verwendung in bereitgestellt die aktuelle Verteilung.

Dieser Ort kann für einige interessante Lektüre, aber es kann sehr technisch sein. Möglicherweise können Sie herausfinden, was im Vorfeld gekocht wird und was Sie derzeit verpassen (aber irgendwann bekommen werden).

Es sollte beachtet werden, dass ein Kernel wie jede andere Software fehleranfällig ist und es häufig zu Regressionen kommt (neues hinzugefügtes Material bricht die alte Funktionalität). Kerne heutzutage begeistern mich meiner Meinung nach nicht wirklich in Bezug auf neue Funktionen. Ich hatte einen Kernel, der zum Beispiel zwei Jahre alt war, ziemlich glücklich laufen lassen.

boehj
quelle
4
Dies ist zwar alles sehr wahr, aber ich glaube nicht, dass Sie die Frage richtig verstanden haben. Ich glaube, der Fragesteller hat sich gefragt, welche Patches Ubuntu auf den Kernel anwendet.
8128
0

Sie können den Git-Baum von Ubuntu herunterladen und einen grafischen Viewer verwenden, um den Git-Baum anzuzeigen. Das wird dir alle Patches von Ubuntu zeigen. https://wiki.ubuntu.com/Kernel/Dev/KernelGitGuide

Eine weitere mögliche Option ist das Abonnieren der Ubuntu-Kernel-Mailingliste. Alle ihre Arbeiten sind dort veröffentlicht, und Sie können eine Vorstellung davon bekommen, was sie tun. Aber es ist viel Verkehr und meiner Meinung nach ärgerlich. (Aber hey, es ist ihre Liste)

user1974
quelle
2
Nun, die Liste ist eher auf eine offene Diskussion der vorgeschlagenen Patches ausgerichtet. Es ist wahrscheinlich kein Ort, an dem Sie eine klare Vorstellung davon bekommen, was wir tun. Ich empfehle dafür den FreeNode-IRC-Channel # ubuntu-kernel.
Jeremy Foshee