Dev-Thoughts – Mainlining, und was man wissen muss - TUXEDO Computers

  ACHTUNG: Zur Nutzung unseres Shops müssen Sie zwingend JavaScript aktivieren und Script-Blocker deaktivieren!  
Vielen Dank für Ihr Verständnis!

Dev-Thoughts – Mainlining, und was man wissen muss

Mainlining

Nicht ganz auf Linie - Oder: Warum Mainline langsam ist, das gut ist, aber wir trotzdem davon abweichen müssen

Die gute Nachricht vorweg: Wir haben vergangenes Jahr angefangen, viele unserer Fixes zu "mainlinen":

Linux kernel source tree

 

Und wir konnten auch ein wenig Neues implementieren:

Linux kernel source tree

Linux kernel source tree

 

Aber leider nicht immer mit Erfolg:

no color format choice in amdgpu

 

Und während langjährige Linux Nutzer wissen wovon ich rede, denken sich die Neulinge gerade: Was ist dieses "Mainlining"?“

 

„Was ist dieses „Mainlining"? Und kann man das essen?“

Das tolle an Open Source ist, dass jede Person oder Firma ein Programm verwenden kann, um es zu erweitern und besser zu machen. Wenn der neue Sourcecode, sogenannte Forks, aber nun auf einer neuen Webseite veröffentlicht wird, hat zwar der oder die, welche/r die Veränderungen erstellt hat, eine gewisse Exklusivität, aber andere wissen potenziell nichts von den Verbesserungen. Mit der Zeit, in der das ursprüngliche Programm weiterentwickelt wird, wird die veränderte Version zunehmend inkompatibler oder muss konstant mit angepasst werden. Um das zu vermeiden, haben fast alle Open Source Projekte die Möglichkeit, eine Verbesserung, die man geschrieben hat, an die ursprünglichen Entwickler zu schicken. Diese prüfen die Qualität des neuen Codes und prüfen, ob das neue Feature zu ihrem Gesamtkonzept des Programms passt. Wenn beides passt, wird der neue Code in das ursprüngliche Programm - den Mainline-Code - übernommen und der externe Entwickler dankend in den Kreis der Contributer aufgenommen. Diesen Prozess nennt man eingedeutscht "Mainlinen" oder "Upstreamen" und wird auch beim Linux-Kernel und vielen anderen Bestandteilen eines GNU/Linux-Betriebssystems so gehandhabt.

 

Aber die WebFAI installiert zum Beispiel nicht den gleichen Kernel, wie der Ubuntu-Installer von ubuntu.com. Warum mainlined ihr nicht einfach alles, sondern macht eine Extrawurst?

Weil der Mainline-Prozess langwierig ist. Und da ist nichts Schlechtes daran: Wenn der Code in den Mainline aufgenommen wird, betrifft das alle Nutzer dieses Programms. Das heißt: Umso größer die Nutzerbasis, umso mehr seltene Hardware- und Software-Konfigurationen gibt es, die natürlich bei Testen bedacht werden müssen. Außerdem gibt es mit mehr Nutzern in der Regel auch mehr Contributors, die mehr Code zum Überprüfen einreichen. Und wir können uns da auch nicht wirklich vordrängeln (vielleicht, wenn wir noch ein ganzes Stück größer wären, also IBM-, Lenonvo- oder DELL-groß ... Träume). Das heißt, alles immer zu mainlinen und darauf zu warten, dass es im offiziellen Ubuntu-Download ankommt, würde bedeuten, dass wir viele Laptops erst deutlich später verschicken könnten. Und es geht da weniger um Tage, sondern mehr um Monate (Plural: >=2!). Falls sich jemand gefragt hat, warum Linux vor allem auf Geräten gut läuft, die mindestens 1-2 Jahre alt sind: Das ist einer der Gründe.

Lange Rede, kurzer Sinn: Damit wir die aktuellste Hardware anbieten können, müssen wir oft Patches und Bugfixes, die noch nicht im Mainline angekommen sind, anderweitig in TUXEDO_OS und in die Ubuntu-WebFAI-Installation integrieren. Trotzdem bemühen wir uns, dass dies immer nur ein temporärer Zustand ist und wir über Veröffentlichung und Mainlining unserer Fixes nach kurzer Zeit eine größtmögliche Kompatibilität zu allen Linux-Distributionen herstellen. Vorausgesetzt natürlich, dass diese die neuen Patches auch aufnehmen: Mit einem Linux Kernel Version 5.4 von 2019 wird man immer Probleme mit einem Gerät von 2022 haben. Die einzige Lösung ist, einen neueren Kernel zu verwenden, zum Beispiel Version 5.15. Nachdem die Grundlagen geschaffen sind, werde ich bei Zeiten weitere Blogeinträge schreiben, in denen steht, worin genau sich unsere TUXEDO-WebFAI-Installation vom Standard-Ubuntu-ISO unterscheidet.

 

Bis dahin viele Grüße aus dem Tux-Tower
euer Werner aus dem Dev-Team