Warum hat das Linux-Kernel-Repository nur eine Verzweigung? [geschlossen]

9

Ich bin ein Linux-Anfänger, also vergib mir, wenn das die offensichtlichste Frage ist, die du je gehört hast.

Ссылка

    
Robin 15.05.2015, 20:37
quelle

2 Antworten

23

Mainline-Kernel

Zunächst einmal: Benutze den github Link nicht (es ist nur ein Spiegel). Die eigentlichen Repositorys befinden sich unter kernel.org . Sie möchten wahrscheinlich den Linus Torvalds Baum verwenden, der torvalds / linux.git .

Es heißt mainline -Kernel, was bedeutet, dass in diesem Baum die nächste Kernel-Version tatsächlich entwickelt wird. Obwohl es nur den Zweig master besitzt, können Sie mithilfe von Tags in jede Kernel-Version auschecken. Dieser Befehl zeigt Ihnen alle Versionstags:

%Vor%

Sie können das gewünschte Tag wie folgt auschecken:

%Vor%

Es gibt keine Notwendigkeit für eine Reihe von Zweigen für den Mainline-Kernel, da der Entwicklungsprozess in diesem Baum niemals stoppt und sobald eine neue Version veröffentlicht wird, wird es keine Backporting für diese Version geben (innerhalb der Mainline-Struktur). Daher bleibt Linus in diesem Fall an Tags (anstelle von Zweigen).

Stabiler Kernel

Es gibt auch eine linux-stable Struktur. "Stable" bedeutet, dass nach der Veröffentlichung einige Bugfixes zurück portiert wurden. In diesem Baum sollten Sie nach Zweigen suchen (anstatt nach Tags):

%Vor%

Sie können Zweige wie:

sehen %Vor%

Dabei ist y suffix nur ein Platzhalter für eine Bugfix-Version (da das Namensschema linux-4.x.y ist). Wann immer Sie y suffix sehen - es ist ein stabiler Kernel-Zweig. Einige dieser Zweige sind LTS-Kernel (lesen Sie dies für Details).

In diesem Fall werden Verzweigungen benötigt, da Entwickler einige Fehlerkorrekturen in freigegebene Versionen zurückportieren müssen. Also nur Tags sind hier nicht genug.

Nächster Kernel

Es sollte auch erwähnt werden, dass es linux-next gibt Baum. Hier ist die Beschreibung aus der Kernel-Prozessdokumentation :

  

Bevor Aktualisierungen von Subsystembäumen in den Mainline 4.x-Baum integriert werden, müssen sie einer Integrationsprüfung unterzogen werden. Zu diesem Zweck existiert ein spezielles Test-Repository, in das fast alle Subsystem-Bäume fast täglich eingezogen werden:

     

Ссылка

     

Auf diese Weise gibt der -next -Kernel einen zusammenfassenden Überblick darüber, was beim nächsten Zusammenführungszeitraum in den Mainline-Kernel gelangen soll. Abenteuerlustige Tester sind herzlich eingeladen, den -next -Kernel zu testen.

Betreuerbäume

Zurück zu den Bäumen. Tatsächlich gibt es viele von ihnen, sie werden Betreuer Bäume genannt. Sie können alle hier sehen.

Sie müssen die Zusammenführungsrichtlinie verstehen: Nur Linus kann Code tatsächlich mit der Hauptbaumstruktur zusammenführen. Sie können eine Menge merge commits von ihm in git log sehen. Wenn Sie also Ihren Patch auf den Mainline-Kernel anwenden möchten, müssen Sie ihn zur Kernel-Mailingliste zur Überprüfung senden zuerst. Siehe Documentation / SubmittingPatches . Sobald Ihr Patch vom entsprechenden Subsystem-Betreuer überprüft und bestätigt wurde, wendet er es auf seinen eigenen Baum an. Von dort wird dieser Patch während des nächsten Merge-Fensters mit dem Mainline-Kernel zusammengeführt. Das Linux-Kernel-Entwicklungsmodell wird hier beschrieben.

Wenn Sie daran interessiert sind, Ihre Patches upzugraden, können Sie auch die Materialien kernelnewbies.org durchsuchen.

    
Sam Protsenko 15.05.2015, 20:43
quelle
4

Dieser Repo spiegelt nur das Ergebnis von Linus 'Arbeit wider, die Hunderte anderer Zweige zu einem Hauptrepo verschmolzen hat.

Es hält diese Zweige nicht, weil es zu viele von ihnen geben würde: Die Rolle dieses Repos ist eine Referenz.

    
VonC 15.05.2015 20:42
quelle

Tags und Links