• IT-Karriere:
  • Services:

Linux-Kernel: Machine-Learning allein findet keine Bugs

Mittels KI sucht der Linux-Kernel-Entwickler Sasha Levin nach Patches für die stabilen Zweige, die Code verbessern. Aber kann er mit dem System auch Patches finden, die Bugs enthalten? Für Levin ist das eine schwer lösbare Aufgabe, aber er hat ein paar Anhaltspunkte dafür, wie das gehen könnte.

Artikel veröffentlicht am ,
Fehler im Linux-Kernel zu finden, bevor der Code eingepflegt wird, geht wohl nicht.nur mit Machine Learning.
Fehler im Linux-Kernel zu finden, bevor der Code eingepflegt wird, geht wohl nicht.nur mit Machine Learning. (Bild: Liam Quinn,flickr.com/CC-BY-SA 2.0)

Der bei Microsoft angestellte Entwickler Sasha Levin pflegt gemeinsam mit Greg Kroah-Hartman die sogenannten Stable-Zweige des Linux-Kernels. Um die dafür notwendigen Patches für Verbesserungen zu finden, setzt Levin unter anderem auf einen Machine-Learning-Ansatz. Wie der Entwickler in seinem Vortrag auf dem diesjährigen Open Source Summit Europe in Lyon berichtet, sei er wegen seiner Arbeiten mehrfach gefragt worden, ob damit nicht auch Bugs gefunden werden könnten, bevor diese überhaupt in den Kernel eingepflegt werden. Die Antwort darauf ist laut Levin aber alles andere als einfach, wie er in einer ausführlichen Analyse vorstellt.

Stellenmarkt
  1. DRÄXLMAIER Group, Garching
  2. BUND Naturschutz Marketing GmbH, Leipzig

Denn wie viele Entwickler wissen, ist das Erkennen von fehlerhaftem Code keine überschaubare Aufgabe. Zwar gebe es bereits eine Vielzahl von Werkzeugen zum Auffinden von Fehlern, etwa per statischer Code-Analyse. Doch aus Sicht von Levin ist die größte Fehlerquelle in der Entwicklung des Linux-Kernels dessen Entwicklungsprozess selbst. Das versucht der Entwickler durch eigene Analysen zu untermauern.

Objektive Analyse schwer umsetzbar

Aus seiner persönlichen Erfahrung als Maintainer weiß Levin, dass vor allem Reviews, also das Überprüfen des Codes durch Dritte, sowie das Testen von Code das Einführen von Bugs vermeiden helfen. Dabei spiele es durchaus eine Rolle, wer das Review durchführt, wie viel Zeit dies in Anspruch nimmt oder auch wie ausführlich die mögliche Kritik dazu ausformuliert wird.

Zwar sei es schwierig, diese und weitere Dinge tatsächlich zu quantifizieren. Das gelte vor allem auch für die Frage, was im Sinne der ursprünglichen Fragestellung und Untersuchung überhaupt als Bug gewertet werden sollte. Dennoch habe Levin versucht, einige dieser Überlegungen an Hand einer vorausgewählten Menge von Code-Beiträgen zum Kernel in ein Machine-Learning-Modell zu überführen.

Golem Akademie
  1. Ansible Fundamentals: Systemdeployment & -management
    26.-30. April 2021, online
  2. Advanced Python - Fortgeschrittene Programmierthemen
    3./4. Mai 2021, online
Weitere IT-Trainings

Das Modell hat dabei natürlich zwangsläufig Schwächen und kann auch nicht direkt dafür benutzt werden, um tatsächlich fehlerhaften Code zu finden, bevor dieser in den Hauptzweig des Kernels eingepflegt wird. Für Levin bietet die so durchgeführte Untersuchung dennoch einige sehr wichtige Anhaltspunkte.

Schnelle Patches kurz vor der Deadline haben mehr Bugs

Die wohl wichtigste Erkenntnis hierbei ist laut Levin, dass die Wahrscheinlichkeit Fehler in Beiträgen einzuführen, dreimal höher ist als normal, wenn der Code erst spät in RC-Kernel eingepflegt wird. Das erscheint zunächst kontraintuitiv, da nach einer zweiwöchigen Phase zum Einreichen neuer Funktionen für die kommende Linux-Version (Merge-Window) eine meist achtwöchige Testphase mit Bug-Fixes und den Release-Candidates (RC) folgt, bevor eine neue Linux-Version erscheint.

Laut Levin bestätigt dieses Ergebnis aber seine Vermutungen in Bezug auf die Reviews. So durchlaufen neue Funktionen und größere Änderungen oft eine lange Review-Phase und die Patches dazu werden meist ausgiebig diskutiert. In der späten RC-Phase der Kernel-Entwicklung ist der Prozess zum Einpflegen jedoch sehr viel schneller und oft finde gar kein Review statt.

Levin habe für diese Entwicklungsphase eine Menge Patches gefunden, deren Code an einzigem Tag geschrieben, eingereicht und eingepflegt worden ist. Bei einer derart schnellen Entwicklung steigt natürlich das Fehlerpotenzial.

Ob und was aus dieser Erkenntnis aber langfristig für den Entwicklungsprozess des Linux-Kernels folgt, ist für Levin nicht wirklich klar. Er habe zwar einige Ideen, diese ließen sich wohl aber nur schwer umsetzen. Dazu gehöre etwa eine echte Freeze-Phase in der Entwicklung, um die Neuerungen ausgiebig zu testen. Möglicherweise verschiebt das das Einpflegen kurzfristig erstellter Patches aber auch nur weiter nach hinten.

Ebenso könnte sich Levin eine Art standardisiertes Vorgehen zur Akzeptanz von Patches in den Hauptzweig vorstellen. Als Voraussetzung für eine Aufnahme könnte hierbei eine Mindestanzahl an Tagen sein, die die Patches in dem Linux-Next-Zweig vor Aufnahme in den Hauptzweig vorhanden sein müssen. Ebenso könnten ausführliche Reviews oder Tests erzwungen werden oder auch sogenannte Sign-off-Tags. Letztere würden in diesem Fall in etwa "abgesegnet von" bedeuten.

All diese Vorgaben würden laut Levin bei einem nicht vernachlässigbaren Anteil an Entwicklern und Maintainern wohl auf Widerstand stoßen und sind damit nicht umsetzbar.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


Anzeige
Top-Angebote
  1. (1TB für 41,65€, 5TB für 92,65€)
  2. (u. a. Hitman 3 - Epic Games Store Key für 34,49€, Medieval Dynasty für 8,99€)
  3. 2.449,00€
  4. gratis (bis 22.04.)

Eheran 30. Okt 2019

In der Statistik eben genau nicht. Da bleiben die Standardabweichungen der Wert gleich...

schnedan 30. Okt 2019

KI ist ein Brute-Force Tool, das man nimmt um schnell eine 80% Lösung zu haben, das man...


Folgen Sie uns
       


Peloton - Fazit

Im Video stellt Golem.de-Redakteur Peter Steinlechner das Bike+ von Peloton vor. Mit dem Spinning-Rad können Sportler fast schon ein eigenes Fitnessstudio in ihrer Wohnung einrichten.

Peloton - Fazit Video aufrufen
Programm für IT-Jobeinstieg: Hoffen auf den Klebeeffekt
Programm für IT-Jobeinstieg
Hoffen auf den Klebeeffekt

Aktuell ist der Jobeinstieg für junge Ingenieure und Informatiker schwer. Um ihnen zu helfen, hat das Land Baden-Württemberg eine interessante Idee: Es macht sich selbst zur Zeitarbeitsfirma.
Ein Bericht von Peter Ilg

  1. Arbeitszeit Das Sechs-Stunden-Experiment bei Sipgate
  2. Neuorientierung im IT-Job Endlich mal machen!
  3. IT-Unternehmen Die richtige Software für ein Projekt finden

Weclapp-CTO Ertan Özdil: Wir dürfen nicht in Schönheit und Perfektion untergehen!
Weclapp-CTO Ertan Özdil
"Wir dürfen nicht in Schönheit und Perfektion untergehen!"

Der CTO von Weclapp träumt von smarter Software, die menschliches Eingreifen in der nächsten ERP-Generation reduziert. Deutschen Perfektionismus hält Ertan Özdil aber für gefährlich.
Ein Interview von Maja Hoock


    Fiat 500 als E-Auto im Test: Kleinstwagen mit großem Potenzial
    Fiat 500 als E-Auto im Test
    Kleinstwagen mit großem Potenzial

    Fiat hat einen neuen 500er entwickelt. Der Kleine fährt elektrisch - und zwar richtig gut.
    Ein Test von Peter Ilg

    1. Vierradlenkung Elektrischer GMC Hummer SUV fährt im Krabbengang seitwärts
    2. MG Cyberster MG B Roadster mit Lasergürtel und Union Jack
    3. Elektroauto E-Auto-Prämie übersteigt in 2021 schon Vorjahressumme

      •  /