Studie: Open Source bietet bessere Code-Qualität

Reasoning untersucht TCP/IP in Linux und kommerziellen Betriebssystemen

Verfechter von Open-Source-Software bemühen oft das Argument, offene Software weise eine höhere Code-Qualität auf. Reasoning, Anbieter von automatisierten Software-Inspektions-Services, versuchte nun diese Behauptung anhand der TCP/IP-Implementierung von Linux im Vergleich zu fünf kommerziellen TCP/IP-Implementierungen zu überprüfen.

Artikel veröffentlicht am ,

Um einen fairen Vergleich ziehen zu können, beschränkte man sich bei diesem Vergleich auf die Implementierung gleicher Funktionalität, in diesem Fall TCP/IP, da Reasoning bereits zuvor einige kommerzielle TCP/IP-Implementierungen überprüft hat, einem der bekanntesten und am häufigsten implementierten Protokolle.

Für Linux trat dabei der TCP/IP-Code des Kernels 2.4.19 an, während Reasoning mit Rücksicht auf seine Kunden zu den kommerziellen Implementierungen nur vage Angaben macht. So sind drei der kommerziellen Implementierungen Teil kommerzieller Mehrzweck-Betriebssysteme und über zehn Jahre alt, zwei davon Unix-Varianten. Die anderen beiden kommerziellen Implementierungen werden in speziellen Kommunikationsgeräten eingesetzt, wobei eines mit vier Jahren recht jung, das andere aber auch über zehn Jahre alt ist.

In der TCP/IP-Implementierung von Linux fand Reasoning in 81.852 Code-Zeilen (ohne Leerzeilen, Kommentare und Header-Dateien) acht Fehler: Je eine nicht initialisierte Variable und ein Memory Leak sowie je drei NULL-Pointer-Dereferenzen und Out-of-Bounds-Array-Zugriffe. Dies entspricht 0,1 Fehlern pro 1.000 Codezeilen.

Damit liegt die TCP/IP-Implementierung im oberen Drittel des von Reasoning ermittelten Industriedurchschnitts, der auf 160 untersuchten Projekten mit zusammen 22 Millionen Code-Zeilen basiert. 33 Prozent der untersuchten Projekte haben eine Fehlerrate von unter 0,15 Fehlern pro 1.000 Code-Zeilen, 33 Prozent zwischen 0,15 und 0,35 und das letzte Drittel drüber.

Bei dem in der Linux-Implementierung gefundenen Memory Leak handelte es sich um einen echten Fehler, der in Linux 2.4.20 beseitigt ist. Die Out-of-Bounds-Array-Zugriffe hingegen sind nach Meinung der Linux-Entwickler keine echten Fehler, da der Kernel in diesem Fall gar nicht funktionieren würde. Auch bei der nicht initialisierten Variable handelt es sich um keinen wirklichen Fehler, ist diese doch Teil eines kleinen Interpreters und repräsentiert Variablen in der Interpreter-Sprache. Lediglich zu den drei NULL-Pointer-Dereferenzen liegen Reasoning bislang keine Angaben vor. Von den acht gefundenen Fehlern ist demnach einer echt aber beseitigt, vier keine Fehler und bei dreien sind noch Fragen offen.

Im Gegensatz dazu weisen die kommerziellen Implementierungen deutlich höhere Fehlerraten auf. Lediglich eine der beiden Embedded-Implementierungen liegt mit fünf Fehlern bei 64.800 Code-Zeilen besser. Die anderen enthalten zwischen 27 und 183 Fehler in 64.300 bis 269.100 Code-Zeilen. Die Fehlerraten liegen demnach von einer Ausnahme abgesehen zwischen 0,32 und 0,68 Fehlern pro 1.000 Code-Zeilen.

Aber auch die Rate der beseitigen Fehler liegt bei Linux mit 0,013 deutlich am niedrigsten. Vor dem Hintergrund, dass Entwickler selbst am besten wissen, welche der gefundenen Fehler zu beseitigen sind, wertet Reasoning dies ebenfalls als positiv für den Open-Source-Verteter. Bei den kommerziellen Vertretern lag die Korrekturquote zwischen 0,08 und 0,58 Fehlern pro 1.000 Code-Zeilen.

So kommt Reasoning zu dem Schluss, dass die Open-Source-Implementierung des TCP/IP-Protokolls im Linux-Kernel eine klar bessere Code-Qualität besitzt als die kommerziellen Implementierungen von TCP/IP im Mehrzweck-Betriebssystem.

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


peter5 02. Jul 2007

peter5 02. Jul 2007

firdancer 29. Mär 2005

Schmarrn. Die Frage war nicht "was ist das erfolgreichere System?" sondern "was ist das...

Ron Sommer 19. Feb 2003

Schon klar. Ich wollte nur deutlich machen: Dass Open Source Code *qualitativ* besser...



Aktuell auf der Startseite von Golem.de
Whistleblower
Ehemaliger US-Konteradmiral äußert sich zu Außerirdischen

Wieder hat sich in den USA ein ehemals hochrangiger Militär und Beamter über Kontakte mit Aliens geäußert.

Whistleblower: Ehemaliger US-Konteradmiral äußert sich zu Außerirdischen
Artikel
  1. Schadstoffnorm 7: Neue Grenzwerte für Abrieb gelten auch für E-Autos
    Schadstoffnorm 7
    Neue Grenzwerte für Abrieb gelten auch für E-Autos

    Die neue Euronorm 7 legt nicht nur Grenzwerte für Bremsen- und Reifenabrieb fest, sondern auch Mindestanforderungen für Akkus.

  2. Ramjet: General Electric testet Hyperschalltriebwerk
    Ramjet
    General Electric testet Hyperschalltriebwerk

    Das Triebwerk soll Flüge mit Mach 5 ermöglichen.

  3. Elektroautos: Mercedes und Stellantis übernehmen komplette Umweltprämie
    Elektroautos
    Mercedes und Stellantis übernehmen komplette Umweltprämie

    Nach dem abrupten Aus der staatlichen Förderung springen erste Hersteller von Elektroautos ein.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    • Daily Deals • Last-Minute-Angebote bei Amazon • Avatar & The Crew Motorfest bis -50% • Xbox Series X 399€ • Cherry MX Board 3.0 S 49,95€ • Crucial MX500 2 TB 110,90€ • AVM FRITZ!Box 7590 AX + FRITZ!DECT 500 219€ [Werbung]
    •  /