Kernel-Log: Mehr als 10 Millionen Zeilen in den Linux-Quellen
Die Dateien eines aktuelle Git-Checkouts von Linux enthalten seit Kurzem über 10 Millionen Zeilen Text; zählt man nur die Quellcode-Dateien sind es immer noch über 9 Millionen Zeilen.
Nach der Freigabe von Linux 2.6.27 integrieren die Kernel-Entwickler derzeit fleißig Patches für die nächste Kernel-Version in den Hauptentwicklungszweig von Linux. Wie üblich fliegt dabei ein wenig alter Code raus und neuer kommt hinzu – unterm Strich sind es aber meist mehr neue als alte Zeilen, wodurch der Kernel stetig wächst.
Bei diesem Prozess haben die Kernel-Entwickler nun die Marke von 10 Millionen Zeilen Text durchbrochen, sofern man denn alle Leerzeilen, Kommentare und Textdateien im Quellcode eines aktuelle Git-Checkouts von Linux mitzählt (find . -type f -not -regex '\./\.git.*' | xargs cat | wc -l). Feiern kann man aber auch, wenn man nur die Zeilen Text in Dateien mit Quellcode zählt, denn die belaufen sich seit kurzem auf mehr als 9 Millionen Zeilen Text (find . -name *.[hcS] -not -regex '\./\.git.*' | xargs cat | wc -l).
Mit Programmen wie SLOCCount lässt sich der Quellcode des Linux-Kernels genauer unter die Lupe nehmen. So sind es laut dem Tool nicht mehr als 9 Millionen Zeilen Quellcode, sondern exakt 6.399.191 (Source Lines of Code/SLOC), da das Programm Leerzeilen, Kommentare und einigen andere Dinge in Quellcodedateien nicht in die Berechnung mit einbezieht. Bei mehr als der Hälfte der Codezeilen handelt es sich um Hardware-Treiber; der zweitgrößte Brocken ist das Verzeichnis arch/, indem sich der Quellcode für die verschiedenen von Linux unterstützten Architekturen findet.
96,4 Prozent des Codes sind laut SLOCCount in C geschrieben, 3,3 Prozent in Assembler. Alle anderen Programmiersprachen führen ein Nischendasein: Das für einige Hilfsscripte beim Bauen eines Kernels genutzte Perl etwa schafft es auf magere 0,1 Prozent. Im Assembler-lastigen Architektur-Verzeichnis will SLOCCount zudem 41 Zeilen Pascal-Code gefunden haben – dabei dürfte es sich wohl um eine Fehlerkennung handeln.
SLOCCount versucht sich auch an einer groben Berechnung des Quellcodewertes; demnach würde es mit etwas mehr als 200 Entwicklern ungefähr neuneinhalb Jahre dauern und 267 Millionen US-Dollar kosten, den Code komplett neu zu schreiben. Man kann aber sicherlich darüber streiten, wie exakt diese Kalkulation des seit vier Jahren nicht mehr aktualisierten Programms ist; speziell die angegebenen Kosten pro Entwickler müsste man mittlerweile sicherlich höher ansetzen.
SLOCCount, Copyright (C) 2001-2004 David A. Wheeler SLOCCount is Open Source Software/Free Software, licensed under the GNU GPL. SLOCCount comes with ABSOLUTELY NO WARRANTY, and you are welcome to redistribute it under certain conditions as specified by the GNU GPL license; see the documentation for details. Please credit this data as "generated using David A. Wheeler's 'SLOCCount'."
Ein Ende des Wachstums in der mittlerweile nun schon seit einigen Jahren stetig innerhalb der Linux-2.6-Serie weiterentwickelten Kernels ist indes nicht abzusehen – mit jeder neuen Version erweitern die Kernel-Hacker den Linux-Kernel wieder um neue Funktionen und Treiber, was die Hardware-Unterstützung verbessert oder Linux flexibler, besser oder schneller macht. Ein Blick auf einige Zahlen zu den jüngsten Kernel-Versionen zeigt zudem, dass nicht nur die Zahl der Zeilen Quellcode nach und nach steigt, sondern auch die Zahl der pro Kernel-Version vorgenommenen Änderungen weiter wächst.
Weitere HintergrĂĽnde und Informationen rund um Entwicklungen im Linux-Kernel und dessen Umfeld finden sich auch in den vorangegangen Ausgaben des Kernel-Logs auf heise open:
- 17.10.2008: Was 2.6.28 bringt (2) – Netzwerk-Infrastruktur und -Treiber
- 16.10.2008: Was 2.6.28 bringt (1) – ATA-Unterstützung und Block-Layer
- 16.10.2008: neue Catalyst-Treiber, 2.6.27.1 beseitigt Ursache fĂĽr e1000e-Problem
- 15.10.2008: Dateisystem Ext4 verlässt Entwicklungsphase – ein Zwischenstopp auf dem Weg zu btrfs
- 15.10.2008: Neues zu Linux auf dem Linux-Kongress 2008
- 13.10.2008: Neue Stable-Kernel und Nvidia-Treiber, 2.6.27 wird lange gepflegt
- 10.10.2008: Viel bewegt – Die Neuerungen von Linux 2.6.27
- 06.10.2008: e1000e-Problem umschifft, Morton lobt Btrfs
- 30.09.2008: 2.6.27 nähert sich Fertigstellung, Btrfs bald im Kernel?
Ă„ltere Kernel-Logs finden sich ĂĽber das Archiv oder die Suchfunktion von heise open.