Warum Forks schlecht sein können
Geschrieben von MMind am Montag, 29. November 2010 in Allgemein
Heute bin ich auf einen interessanten Aufsatz der LiMo-Foundation gestoßen. Dieser trägt den Titel "Mobile Open Source Economic Analysis" und versucht Vorteile der Nutzung von "Open Source"-Software quantitativ, wie immer als "Ersparnis", darzustellen.
Gedanken
Die LiMo-Foundation ist dabei eine Allianz, die von Motorola, NEC, NTT DoCoMo, Panasonic Mobile Communications, Samsung Electronics und Vodafone gegründet wurde. Also im Prinzip eine Herstellervereinigung.
In dieser Blickrichtung eines Herstellers finde ich die Erkenntnisse in Punkt 4.3 ab Seite 20 besonders interessant. Die zentrale Aussage ist, dass das "Forken", also abspalten von einem Open Source Projekt, unrentabel ist und Hersteller bedeutend besser fahren, wenn sie versuchen mit den Upstream-Projekten zusammenzuarbeiten und ihren Code dort unterzubringen. Grundlage dieser Aussage ist die Annahme dass sich freie Softwareprojekte immer weiterentwickeln, also keinen "fertig"-Zustand besitzen. Dies wird auch durch verschiedene Betrachtungen zur Entwicklung mehrer Projekte ganz am Anfang des Aufsatzes unterstützt.
Wenn nun ein Fork neuere Features des Upstream-Projektes nutzen möchte ist ein großer Aufwand nötig den separat gepflegten Code auf die Änderungen des Quellprojektes zu portieren, was sehr oft dazu führt, dass das zugrunde liegende Projekt niemals aktualisiert wird. Wenn hingegen der meiste Code direkt im Upstream-Projekt integriert ist, wird dieser bei Änderungen meist direkt mit angepasst, sodass sich der Wartungsaufwand auf lange Sicht sehr stark verringert. Diese langfristige Ersparnis wird aber mit etwas Mehraufwand erkauft, der nötig ist, um den Code soweit aufzubereiten, dass die Upstream-Entwickler bereit sind diesen in das Projekt aufzunehmen.
Im Oyo-Kontext betrachtet
Wie bereits im Ersteindruck zu den Kernel-Quellen beschrieben, hat der Oyo-Kernel genau das oben beschriebene Problem. Der original 2.6.21.5-Kernel ist fast 3 Jahre alt und aktuelle offizielle Kernel besitzen inzwischen auch schon länger Unterstützung für große Teile der S3C-Plattform.
Da sich aber der S3C-Code zwischen s3c-linux und dem offiziellen Kernel unterscheiden, scheuen die Betreuer vermutlich den oben beschriebenen ziemlich großen Aufwand des Upgrades. Es müsste ja zuerst herausgefunden werden welcher Code selber oder abgewandelter Form im offiziellen Kernel liegt und die restlichen Teile daran angepasst werden.
Da nun aber auch die Oyo-spezifischen Module ebenfalls auf dieser nicht-mainline S3C-Implementierung basieren wird die herstellerseitige Bereitschaft zum Upgrade noch weiter sinken, da der notwendige Aufwand damit noch weiter gestiegen ist.
Damit haben sich die Hersteller dann aber effektiv auch von allen anderen Verbesserungen des Kernel abgekoppelt. In den letzten 3 Jahren sind nun auch ein ganz paar Performance-Verbesserungen dazugekommen, die dem offiziellen Oyo nicht zur Verfügung stehen, auch wenn es gerade im Embeded-Bereich extrem sinnvoll wäre.