Login
Newsletter
Werbung

Fr, 14. Februar 2003, 00:02

Qualität des Linux TCP/IP-Stacks

Der IP-Stack von Linux ist von sechs untersuchten Systemen einer der korrektesten, stellte eine Studie von Reasoning Inc fest.

Aus dieser Tatsache und dem Faktum, daß die anderen fünf untersuchten Stacks proprietärer Natur sind, folgert die Firma, daß Open-Source-Implementierungen generell robuster sind. Die Experten haben nach eigenen Angaben bereits hunderte kommerzieller Applikationen untersucht und können Open-Source-Anwendungen ganz generell eine höhere Qualität als den geschlossenen bescheinigen.

Die Gründe dafür sind im Wesentlichen altbekannt:

  • Benutzer können nicht nur Fehler melden, sondern sie bis zur eigentlichen Ursache zurückverfolgen und eventuell auch gleich korrigieren.
  • Viele Entwickler sehen den Code der anderen Entwickler, wodurch viele Fehler entdeckt werden.
  • Open-Source-Projekte organisieren sich oft in einer Weise, daß die besten Programmierer die kritischsten Teile schreiben und auch den Code der anderen begutachten (und ggf. ablehnen).
  • Open-Source-Projekte sehen sich nicht den Zeit- und Ressourcenproblemen gegenübergestellt, denen kommerzielle Projekte ständig ausgesetzt sind. Die Folge sind längere Testphasen und mehr Gelegenheit zur Prüfung des Codes.

TCP/IP ist das Protokoll des Internets und damit wohl derzeit das wichtigste Protokoll überhaupt. Im TCP/IP-Stack von Linux, der in Kernel 2.4.19 81.852 Zeilen Code umfaßt, fand Reasoning ganze 8 »Defekte«: Ein Speicherleck, drei mögliche Dereferenzierungen von NULL-Pointern (würden zu einer Kernel Panic führen, wenn sie eintreten würden), drei mögliche Array-Zugriffe außerhalb der Grenzen und eine nicht initialisierte Variable. Diese Resultate wurden an die Kernel-Entwickler weitergegeben. Dabei stellte sich heraus, daß das Speicherleck in Kernel 2.4.20 bereits behoben wurde, da es bereits von jemand anderem entdeckt wurde - eine schöne Bestätigung der oben genannten vier Punkte.

Die Array-Zugriffe seien keine echten Fehler, stellten die Kernel-Entwickler fest. Hier versagten offenbar die Werkzeuge oder Analyse-Methoden von Reasoning. Auch die uninitialisierte Variable stellt kein Problem dar. Die drei möglichen NULL-Pointer-Zugriffe sind dagegen noch nicht endgültig geklärt.

Im Vergleich dazu schnitten die proprietären Implementierungen schlecht ab. Zwei davon sind mit 65.000 Codezeilen etwas kleiner, zwei annähernd gleich groß und eine mit 269.000 Zeilen sehr viel größer als die Linux-Implementierung. Letztere wies mit 183 die größte Zahl von Defekten auf, die anderen 39, 58, 5 und 27. Somit ist lediglich eine proprietäre Implementierung aus dem Bereich eingebetteter Kommunikationsgeräte »besser« als Linux. Auch den anderen Projekten wurden die gefundenen Fehler gemeldet, die daraufhin zumindest teilweise (im Falle der 5 Fehler sogar zu 100%) behoben wurden.

Die Studie wird zum Download zur Verfügung gestellt, wenn man eine kostenlose Registrierung vornimmt.

Werbung
Kommentare (Insgesamt: 41 || Alle anzeigen )
Re[2]: Vergeßt diese Studie! (fbe, Fr, 21. Februar 2003)
Re: der Link (Sven, Di, 18. Februar 2003)
Re: der Link (Kai Lahmann, Di, 18. Februar 2003)
Re[5]: wer? (Graf Zahl, Mo, 17. Februar 2003)
No comment (drake, Mo, 17. Februar 2003)
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung