Der Kernel-Report 2016 der Linux Foundation bietet wieder interessante Zahlen und Fakten zu Linux und seiner Entwicklung.
Auf der im Oktober in Berlin abgehaltenen Entwicklerkonferenz LinuxCon Europe 2016 [1] sagte Jim Zemlin, Geschäftsführer der Linux Foundation (Abbildung 1), Linux sei ohne Zweifel das ambitionierteste, agilste und erfolgreichste Open-Source-Unterfangen aller Zeiten und zugleich die erfolgreichste Software überhaupt.

Abbildung 1: Jim Zemlin, Geschäftsführer der Linux Foundation, bezeichnete Linux auf der LinuxCon 2016 als das ambitionierteste, agilste und erfolgreichste Open-Source-Projekt.
Tatsächlich verrichtet Linux seinen Dienst inzwischen überall – vom kleinsten Embedded-Gerät über Smartphone und PC bis hin zum Supercomputer – Zemlin übertreibt also keineswegs. Doch wer steckt hinter dem Linux-Kernel, und wie verläuft die Entwicklung? Der Bericht der Linux Foundation erlaubt es, anhand von Personen, Zahlen und Fakten zu belegen, was den Linux-Kernel so erfolgreich gemacht hat.
Fakt ist, dass es sich beim Desktop um (fast) die einzige Sparte handelt, in der das freie Betriebssystem nicht dominiert. Rund 98 Prozent der Supercomputer des Planeten laufen unter Linux, bei den Börsen dieser Welt sind es rund 90 Prozent. Der Kernel hat es buchstäblich nach oben bis hinauf zur Raumstation ISS geschafft. Die fast 300?000 neuen Codezeilen jeder neuen Kernel-Version in rund 300 Subsystemen und über 30 unterstützte Architekturen des Kernels erlauben ein hohes Maß an Flexibilität. So zog Linux seit der Jahrtausendwende in immer mehr kleine und große Unternehmen ein.
Microsofts Beitrag
Selbst Microsoft, das früher Linux vehement bekämpfte und verleumdete, hat seine Arme weit geöffnet und will die Welt glauben machen, das Unternehmen liebe nun das freie Betriebssystem. Der Wahrheit näher kommt die Marschroute des neuen Microsoft-Chefs Satya Nadella (Abbildung 2), der begriffen hat, dass sich das IT-Umfeld heute durch und durch heterogen präsentiert und der Konzern den Pinguin zwangsweise in sein Angebot aufnehmen muss, wenn er Kunden weiter an sich binden will.

Abbildung 2: Microsoft-Chef Satya Nadella integriert Linux in seine Konzern-Strategie – weniger aufgrund einer gewandelten Einstellung zu freier Software, als vielmehr, um dem wachsenden Wunsch der Kunden des Unternehmens zu entsprechen. (Bild: Microsoft)
Microsoft trägt trotz aller Differenzen ab und zu selbst zum Kernel bei. So lag der Konzern aus Redmond bei der Veröffentlichung von Kernel 3.0 im Jahr 2011 mit 361 Beiträgen auf Platz 7 der Rangliste der meisten Commits und bestritt 4 Prozent der Neuerungen dieser Version. Dabei ging es um die Schnittstelle zur hauseigenen Virtualisierungstechnik HyperV, die Microsoft für den Einzug in den Hauptzweig vorbereitet hatte, nachdem die Kernel-Entwickler sie schon mehrmals wegen schlechter Qualität fast aus dem “Staging”-Zweig entfernt hatten.
Aber nicht nur in Supercomputern oder im All ist Linux zu Hause, selbst im täglichen Umfeld hat das freie Betriebssystem unbemerkt das Regiment übernommen: In vielen Tablets und Smartphones sowie einem großen Teil aktueller Unterhaltungselektronik schlägt ein Linux-Herz. Wenn die Ampel auf Grün springt, die Kasse im Supermarkt den Einkauf addiert oder der Pfandautomat das Leergut verschlingt, dann werkelt im Hintergrund – weitgehend unbemerkt – meist freie Software. Gerade im Embedded-Bereich kommt es auf schonenden Umgang mit den Ressourcen an – und darin ist Linux Spitze.
Deutliches Wachstum
Spitze ist auch die Entwicklung der Codezeilen im Kernel: Als Linus Torvalds 1991 mit dem heute berühmten Eintrag im Usenet in der Rubrik comp.os.minix [2] mitteilte, dass er (“nur so zum Spaß”) ein neues Betriebssystem entwickle, umfasste der Kernel in Version 0.1 rund 10?000 Zeilen. Die heute aktuelle Version 4.8 bringt es auf über 22 Millionen Zeilen in fast 55?000 Dateien.
Anfangs verlief das Wachstum gemäßigt: Bis zur ersten Million Zeilen (im Kernel 2.1.62) brauchte es rund sechs Jahre. Zwischen den Versionen 2.5.2 im Jahr 2002 und 2.6.32 im Jahr 2009 stieg die Zahl der Zeilen rasant von rund 3 auf 10 Millionen an (Abbildung 3).

Abbildung 3: Die Entwicklung der Codezeilen im Linux-Kernel seit 1991: Mit Version 2.6.32 stieg die Zahl der Lines of Code sprunghaft von rund 3 Millionen auf etwa 10 Millionen an. (Bild: Linux Counter)
Heute beträgt der Zuwachs an Zeilen (“Lines of Code”, LoC) pro Tag im Schnitt 10?800 oder pro Stunde 450 Zeilen. Jede Minute kommen so rund 7,5 Zeilen zum Kernel hinzu (Abbildung 4). Gleichzeitig entfernen die Entwickler täglich über 5000 Zeilen und verändern fast 2000. Pro Stunde nehmen sie derzeit im Schnitt 7,8 Patches an.

Abbildung 4: Beeindruckende Zahlen einer stetigen Entwicklung: Der Kernel wächst mit jedem Tag um rund 10 800 Zeilen. Allerdings haben die Entwickler Schwierigkeiten, diese Mengen gleichmäßig gut zu prüfen.
Eine neue Kernel-Version erscheint alle 63 bis 70 Tage. Dabei bleibt es aber nicht, denn jeder Kernel erhält während seiner Lebenszeit bis zum ersten Release-Kandidaten des nächsten Kernels (RC1) einige Aktualisierungen.
Die wenigsten Updates in den letzten Jahren erfuhr Kernel 4.6: Mit fünf Aktualisierungen brachten die Developer 550 Berichtigungen ein. Dagegen erhielt Kernel 4.1 nicht weniger als 17 Updates mit 1634 Korrekturen. Innerhalb von vier Tagen erfuhr kürzlich der Kernel 4.8 seine erste Aktualisierung, da die Entwickler einen Fehler übersehen hatten, der den Kernel unter bestimmten Bedingungen zum Absturz brachte [3].
Schreiben und testen
Eines machen die Zahlen ganz deutlich: Linus Torvalds gehört bereits lange nicht mehr zu den Top-Entwicklern des Kernels. Seine Aufgaben liegen hauptsächlich im Sichten und Koordinieren der im sogenannten Merge Window eingereichten Neuerungen für den nächsten Kernel sowie im Release-Management. Zudem repräsentiert er Linux weltweit auf Konferenzen und in Interviews.
Ein neuer Kernel enthält heute im Schnitt Beiträge von rund 1600 Entwicklern. In den letzten zehn Jahren waren das insgesamt ungefähr 14?000 Personen. Diese arbeiten größtenteils bei etwa 1300 Unternehmen oder Institutionen, von denen jeweils Entwickler aus etwa 250 Firmen pro Kernel-Version Beiträge liefern.
Der Anteil der Hobby-Entwickler dagegen nimmt ständig ab: Lag er vor fünf Jahren noch bei knapp 15 Prozent, so hat er sich mittlerweile auf 7,7 Prozent der Beiträge halbiert. Ein Grund für diesen Trend liegt unter anderem in der Tatsache, dass es heute kaum eine bessere Empfehlung für einen Job im IT-Markt gibt als den eigenen Code im Linux-Kernel.
Verwalten statt entwickeln
Ein Blick auf die Liste der Entwickler mit den meisten Commits zeigt, dass auf den ersten Plätzen zunehmend die Spitzen-Developer fehlen. Weder Linus Torvalds noch Greg Kroah-Hartman finden sich unter den Top 30. Das liegt daran, dass deren Arbeit hauptsächlich darin besteht, die Patches der Kollegen zu begutachten und für die Aufnahme vorzubereiten oder ganze Kernel-Zweige zu verwalten.
In den letzten Jahren stand an erster Stelle in der Kernel-Hitparade der relativ unbekannte H. Hartley Sweeten, der für Vision Engraving arbeitet, einem Hersteller von Gravurmaschinen. Er betreut Cirrus-Logic-Geräte im ARM-Zweig sowie das Comedi-Subsystem des Kernels (Abbildung 5). Sweeten reichte allein im vergangenen Jahr 1456 Patches ein und beansprucht damit 1,3 Prozent aller Änderungen in diesem Zeitraum für sich.

Abbildung 5: Die 30 aktivsten Entwickler seit 2005. Insgesamt haben in den letzten zehn Jahren etwa 14 000 Menschen am Kernel mitgearbeitet.
Die rund 300 Subsysteme des Kernels haben jeweils einen Maintainer. Der begutachtet neue Commits im jeweiligen Zweig und zeichnet sie ab – für Linux Torvalds bedeutet das quasi die Freigabe, einen entsprechenden Patch in den Hauptzweig zu übernehmen. Bei größeren Stücken zeichnen in der Regel mehrere Personen den Code ab. Über 13 Prozent oder fast 14?000 Bestätigungen entfallen in den letzten beiden Jahren auf Greg Kroah-Hartman, den ungekrönten Kronprinz von Torvalds.
Auf den weiteren Rängen folgen bekannte Namen wie David S. Miller, Mark Brown, Andrew Morton, Daniel Vetter oder Ingo Molnar, die alle jeweils größere Subsysteme betreuen. Hier taucht Linus Torvalds ebenfalls nur ganz weit hinten auf, er hat in zwei Jahren lediglich 169 Patches oder 0,2 Prozent selbst gegengezeichnet. Bei den Rängen der einzelnen Firmen liegt Red Hat vor der Linux Foundation und Intel.
Die Zahl der Einreichungen pro Kernel steigt stetig an, wobei einige Versionen Rekorde setzen. Die bisher meisten Commits für einen Kernel sah die Version 3.15 mit 13?722 eingereichten Patches. Lag der Schnitt zu Zeiten von Kernel 4.0 bei rund 10?000, so hat sich das Level derzeit bei über 12?000 Commits eingependelt. Das dieses Wachstum nicht nur positiv ist, erklärt Kernel-Entwickler Wolfram Sang seit Jahren in seinen Vorträgen, so auch zuletzt vor einigen Wochen auf der LinuxCon in Berlin [4].
Nicht genügend Nachwuchs
Wie so viele Projekte in der Open-Source-Szene hat auch der Kernel ständig Probleme mit dem Mangel an qualifizierten Mitstreitern. Pro Release tragen zwar jeweils rund 250 Entwickler erstmals bei, oft bleibt es aber bei einem oder einigen wenigen Patches, wodurch diese Zahl täuscht. Tatsächlich arbeiten laut Sang viele Kernel-Maintainer an der Grenze ihrer Belastbarkeit, eine zunehmende Zahl von Commits bleibt unbearbeitet.
Wie Sang in einem Interview mit dem Online-Portal Opensource.com [5] sagte, steigt zwar die Zahl der Beitragenden in den letzten Jahren (Abbildung 6), hält jedoch mit dem Kernel-Wachstum keineswegs Schritt. Neben nicht aufgenommenen Patches sei die fehlende Zeit zur Durchsicht des Codes kritisch für die Sicherheit des Kernels (Abbildung 7), meint er. Der Kernel Summit Anfang November hat sich ebenfalls dieses Problems angenommen.

Abbildung 6: Die Zahl der Kernel-Entwickler stieg zwar in den letzten zehn Jahren an, aber die anfallenden Aufgaben wachsen im Vergleich schneller.

Abbildung 7: Die steigende Zahl an Patches macht es für die nicht im selben Maß wachsende Zahl an Entwicklern schwer, alle Patches gründlich zu kontrollieren (Bild: Wolfram Sang).
Obwohl der Kernel wegen der wachsenden Anzahl der Patches zu wenig Entwickler hat, stellt Kernel-Entwicklung ein attraktives Ziel für Newcomer dar. Jeder neue Kernel verzeichnet im Schnitt weit über 200 Entwickler, die zum ersten Mal beitragen; in den letzten 15 Monaten waren es 2355.
Etwas mehr als die Hälfte tut das bereits aus einer Position in einem Unternehmen heraus. Hier hat Intel mit 205 Ersteinreichern eine starke Position, gefolgt von Google mit 54 neuen Entwicklern. Auch das Outreachy-Programm [6] – es versucht, unterrepräsentierten Gruppen Praktika in Open-Source-Umgebungen zu verschaffen – verbucht aus seinen Reihen 17 neue Entwickler für den Kernel.
Geben und nehmen
Das Prinzip von Open-Source-Software hat es in die Unternehmen geschafft. Die wiederum unterstützen heute Linux, indem sie Kernel-Entwickler beschäftigen (Abbildung 8). Die Gründe dafür sind keineswegs altruistischer Natur und brauchen es auch nicht zu sein: Wenn beide Seiten profitieren, steht einer langfristigen Symbiose nichts im Weg.
Allein Intel führt über 200 Angestellte mit entsprechendem Profil auf der Gehaltsliste, hat in den letzten beiden Jahren über 14?300 Patches abgeliefert und verbucht damit rund 13 Prozent der Arbeit am Kernel für sich. Auf dem zweiten Platz der aktivsten Unternehmen liegt Red Hat mit fast 9000 Commits, was 8 Prozent der gesamten Entwicklung ausmacht. Immerhin auf dem dritten Platz halten sich die Hobby-Programmierer, die gemeinsam mit über 8500 Einreichungen für 7,7 Prozent der Entwicklung stehen. Die weiteren Spitzenplätze belegen unter anderem Linaro, Samsung, Suse, IBM, Reneas, Google und AMD (Abbildung 9).

Abbildung 9: Viele Unternehmen beteiligen sich an der Arbeit am Kernel, darunter der Chip-Hersteller Intel, aber auch typische Linux-Unternehmen wie Red Hat oder Suse.
Insgesamt trugen die Unternehmen oder Personen auf den ersten zehn Plätzen in den letzten beiden Jahren 54 Prozent zum Kernel bei; dabei entfallen mindestens 80 Prozent auf festangestellte Entwickler aus Unternehmen.
Erfolgsrezept
Als Garant für den Erfolg des Kernels entpuppt sich die ständige Arbeit daran mit vielen zeitnahen Veröffentlichungen. Entwickler haben keinen Druck, Patches in den anstehenden Kernel zu bekommen: Die nächste Veröffentlichung ist nur zehn Wochen entfernt. Geeignete Werkzeuge wie anfangs Bitkeeper und später Git gehören ebenso zum Erfolgsrezept wie eine hierarchisch strukturierte Arbeitsweise.
Die oft gnadenlos wirkende Blockade von Patches durch respektierte Mitglieder der Kernel-Gemeinde trägt letztlich zum Erfolg bei – wiewohl Linux Torvalds sich hier das letzte Wort vorbehält. In dieses Umfeld gehört auch Torvalds beinharte Einstellung zu Regressionen. Sie gipfelt im berüchtigten Mantra Do not ever break user space, das er etwa in einem Eintrag auf LKML von 2012 wortgewaltig untermauert [7].
Ein gutes Beispiel hierfür gibt das Projekt Kdbus ab: Vorangetrieben von den Systemd-Entwicklern und von Greg Kroah-Hartman befürwortet, kam es letztendlich doch nicht an der (berechtigten) Kritik einiger prominenter Entwickler vorbei und fiel trotz mehrerer Jahre Vorarbeit schlicht durch. Ein neuer Ansatz startete bereits unter dem Namen Bus1, der erste Versuch der Aufnahme in den Kernel steht jedoch noch aus.
Rüder Umgangston
Der rüde Ton, der zu Torvalds Führungsstil gehört, steht oft in der Kritik; das Entwicklungsmodell hat dennoch Erfolg. In den nächsten Jahren liegen die größten Herausforderungen darin, den Kernel weiter abzusichern. Das liegt nicht zuletzt an der unaufhaltsamen Entwicklung des Internet of Things (IoT) mit seiner Schwemme an Geräten, die bisher selten Standards folgen und somit eine Unzahl an Problemen in Bezug auf die Sicherheit mit sich bringen.
Linux rückt zudem immer mehr in den Fokus von Angreifern jeglicher Couleur. Hacker im Regierungsauftrag und Verbrecher überwachen gleichermaßen jede Modifikation am Kernel und klopfen diesen auf mögliche Lücken ab. Andererseits war der Kernel und die Gemeinde der Entwickler bisher immer in der Lage, ausreichend zu skalieren und Problemen angemessen zu begegnen. Es besteht derzeit kein Grund zur Annahme, dass dies sich in den nächsten 25 Jahren ändert.
Glossar
-
Merge Window
-
Ein Zeitraum von etwa zwei Wochen nach Erstveröffentlichung eines Kernels, in dem Linus Torvalds die neuen Funktionen für die nächste Version aufnimmt. Im Anschluss beginnt die Phase mit den Release-Kandidaten.
Infos
[1] LinuxCon: http://events.linuxfoundation.org/events/linuxcon-europe
[2] Torvalds Ankündigung: https://groups.google.com/forum/#!msg/comp.os.minix/dlNtH7RRrGA/SwRavCzVE7gJ
[3] Bug in 4.8: http://www.linux-magazin.de/NEWS/Torvalds-aergert-sich-ueber-Bug-in-Kernel-4.8
[4] Problem beim Skalieren: http://events.linuxfoundation.org/sites/events/files/slides/LCE16_ScalingProblem_WSang.pdf
[5] Interview mit W. Sang: https://opensource.com/business/16/10/linux-kernel-review
[6] Outreachy: https://en.wikipedia.org/wiki/Outreachy
[7] Torvalds Mantra: https://lkml.org/lkml/2012/12/23/75






