Original-URL des Artikels: https://www.golem.de/news/kernel-2-6-code-analyse-zeigt-sinkende-fehlerrate-in-linux-1407-107977.html    Veröffentlicht: 18.07.2014 15:20    Kurz-URL: https://glm.io/107977

Kernel 2.6

Code-Analyse zeigt sinkende Fehlerrate in Linux

Eine Studie französischer Wissenschaftler analysiert die Fehler im 2.6er-Zweig des Linux-Kernels: Sie zeigen sinkende Fehlerraten und stellen Tools bereit, um Ergebnisse mit aktuellen Kernels zu erhalten.

Seit einer 2001 erschienenen Studie zur Codequalität des Linux-Kernels hat sich sehr viel an dem Entwicklungsmodell geändert, weshalb ein Forscherteam verschiedener französischer Institute die Studie mit dem Code des 2.6er-Zweigs wiederholt hat. Die größte Erkenntnis ist, dass die Rate der aufgefundenen Fehler trotz wachsenden Codes abnimmt.

Zwar findet sich nach der Studie in den Treibern nach wie vor die größte Anzahl an Fehlern, diese umfassen aber auch mehr als die Hälfte des gesamten Kernel-Codes. Die größte Fehlerrate hat der Code in dem Arch-Verzeichnis, betrifft also die architekturabhängigen Funktionen.

In etwa einem Drittel der Fehler wird ein zurückgegebener Wert nicht daraufhin überprüft, ob es sich um einen Nullzeiger handelt. "Über 90 % der arch-Fehler sind außerhalb der x86/i386-Verzeichnisse, wobei viele Fehler im Ppc- und Powerpc-Code sind." Selbst die Staging-Treiber, die wegen ihrer schlechten Qualität nicht für die Verwendung durch Endnutzer gedacht sind, weisen im Jahr 2011 eine geringere Fehlerrate auf als der Arch-Code.

Für die Studie beschränkten sich die Autoren auf eine sehr kleine Menge von klar definierten Fehlern. Neben dem fehlenden Test auf Nullzeiger suchten sie nach Aufrufen von geblockten Funktionen, der Verwendung von freigegebenem Speicher und prüften, ob die Grenzen von Array eingehalten werden.

Fehler finden und beheben

Werden die Fehler gefunden, entweder durch Werkzeuge oder durch die Kernel-Hacker selbst, dauert es der Studie zufolge im Schnitt zwischen drei und sechs Monate, bis die Patches im Stable-Zweig veröffentlicht werden. Die Analyse des Codes könnte aber auch zeigen, wie lang ein Fehler überhaupt in Linux existiert.

Eine derartige Untersuchung werde aber von vielen Annahmen beeinflusst, so dass die Angaben mit Vorsicht zu bewerten seien, erklären die Autoren in der Studie. Ihren angesetzten Maßstäben nach betrage die Lebensrate der Fehler durchschnittlich 2.93 Jahre.

Analyse-Werkzeuge frei verfügbar

Mit der Veröffentlichung der Studie erhoffen sich die Autoren, dass die Ergebnisse zu einer Verbesserung des Codes insgesamt beitragen, da Entwickler dadurch um besonders fehleranfällige Bestandteile wissen.

Um langfristig reproduzierbare Ergebnisse zu erhalten und ähnliche Statistiken über neuere Kernel anfertigen zu können, wird in der Studie die Vorgehensweise sehr genau beschrieben. Zudem sind die verwendeten Werkzeuge Coccinelle und Herodotos als Open Source verfügbar.  (sg)


Verwandte Artikel:
Google: Chromebooks bekommen "Linux-VMs" und "Terminal"   
(27.02.2018, https://glm.io/133030 )
Microsofts Stylecop wird Open Source   
(27.04.2010, https://glm.io/74753 )
Bpfilter: Linux-Kernel könnte weitere Firewall-Technik bekommen   
(22.02.2018, https://glm.io/132933 )
Systemanalyse: Wie Dtrace auf Linux kommen könnte   
(15.02.2018, https://glm.io/132799 )
Freedreno: Google will Mainline-Linux-Support für Snapdragon 845   
(14.02.2018, https://glm.io/132774 )

© 1997–2020 Golem.de, https://www.golem.de/