Linux: Neues Entwicklungsmodell?
Wie auf dem Entwickler-Treffen „2004 Kernel Summit“ beschlossen, wird in absehbarer Zeit kein neuer Entwicklungszweig für Linux 2.7 erstellt werden. Das derzeitige Entwicklungsmodell mit dem „mm-Tree“ als Testbett erweise sich trotz der monatlichen 10 MB an Patches als überaus effizient, sodass man vorerst daran festhalten möchte.
Schon lange wird darüber spekuliert, wann der Entwickler-Kernel 2.7 für experimentelle neue Features, welche die Stabilität der 2.6er-Linie gefährden würden, abgespalten wird. Auf dem genannten Entwicklertreffen (Foto) hat man sich nun darauf geeinigt, entgegen der bisherigen Praxis nach der Veröffentlichung eines stabilen Kernels nicht direkt einen Entwickler-Kernel für neue Features zu erstellen. Die Begründung ist, dass bei dem derzeitigen Entwicklungsmodell sowohl für neue Features als auch für Stabilität gesorgt sei.
Das momentane Entwicklungsmodell funktioniert dabei wie folgt: Andrew Morton pflegt eine Patchsammlung mit stets mehr oder weniger experimentellen neuen Features, welche sich nach dem aktuellen von Linus Torvalds veröffentlichten „offiziellen“ Linux-Kernel richtet. Erweisen sich einzelne Patches aus Andrew Mortons Patchsammlung (dem sogenannten „mm-Tree“, da er ursprünglich lediglich „Memory Management“-Patches beinhaltete) als funktional und stabil, übernimmt Linus Torvalds sie in den offiziellen Linux-Kernel (und Andrew Morton entfernt diese logischerweise aus seiner Patchsammlung, da das Feature jetzt schließlich im offiziellen Kernel vorhanden ist).
Somit gibt es also quasi bereits mit dem „mm-Tree“ einen Entwickler-Kernel. Der entscheidende Unterschied zu einem wirklich abgespaltenen Entwickler-Kernel ist jedoch, dass der offizielle Kernel und der „mm-Tree“ sich nicht auseinanderentwickeln, da der „mm-Tree“ zu jedem Zeitpunkt lediglich eine Erweiterung des aktuellen Linux-Kernels darstellt. Es gibt also keine zwei grundlegend verschiedene aktuelle Linux-Kernel (stabilen Kernel & Entwickler-Kernel), wodurch das Einpflegen von Patches für beide Versionen erschwert würde. Die Erfahrung hat gezeigt, dass dies desöfteren dazu geführt hat, dass Patches zwar in den stabilen Linux-Kernel (2.2, 2.4, 2.6, ...) eingepflegt werden, in den Entwickler-Versionen (2.1, 2.3, 2.5, ...) jedoch unberücksichtigt bleiben. Beispielsweise wurden erst in den letzten Versionen des Entwickler-Kernels Linux 2.5, welcher Anfang Dezember letzten Jahres dann als Linux 2.6 veröffentlicht wurde, diverse Sicherheits-Patches eingepflegt, welche im damaligen für den Produktiveinsatz gedachten 2.4er-Kernel längst etabliert waren.
Das neue Entwicklungsmodell hat stellenweise zu heftiger Kritik geführt, da befürchtet wird, dass aufgrund der neuen Features in einem eigentlich als stabil deklarierten Kernel Stabilitätsprobleme auftreten könnten und somit die Linux-Distributoren sich mehr denn je um die Stabilität des von ihnen ausgelieferten Kernels kümmern müssten. Dem halten einige Entwickler entgegen, dass Linux 2.6 in einem deutlich besseren Zustand sei, als vergangene stabile Versionen der 2.2er- oder 2.4er-Serie zum gleichen Zeitpunkt, sich das Entwicklungsmodell also als effizient erwiesen habe. Zudem solle man nicht in den Glauben verfallen, dass es nie einen Entwickler-Kernel 2.7 geben würde. Sollten mehrere entsprechend tiefgreifende und riskante Änderungen Linux 2.7 erfordern, könne man erneut darüber beraten. Weitergehende Informationen gehen aus einem Vortrag (Präsentation) hervor, welcher auf dem Kernel Summit gehalten wurde.