BSD-Gurus: BSD sauberer programmiert, aber mit Treiberschwächen

Im Newsforge-Interview gaben nach Linus Torvalds auch Theo de Raadt von OpenBSD und Christos Zoulas von NetBSD ihre Meinung zum Verhältnis von BSD und Linux kund.

In Pocket speichern vorlesen Druckansicht 701 Kommentare lesen
Lesezeit: 4 Min.
Von
  • Mattias Hermannstorfer

Nach dem kontrovers diskutierten Interview mit Linus Torvalds befragte Newsforge nun auch zwei BSD-Gurus zu den technischen Unterschieden zwischen BSD und Linux. Theo de Raadt von OpenBSD und Christos Zoulas aus dem NetBSD-Team standen Newsforge Rede und Anwort.

Theo de Raadt hob die Vorteile von BSD als konsistentem Gesamtsystem hervor, das ja nicht nur aus dem Kernel bestehe, sondern auch Gerätetreiber, Bibliotheken, Entwicklungs- und Userland-Tools enthalte, während Linux streng genommen nur den Kernel und damit einen Teil eines Betriebssystems darstelle. Das BSD-Konzept erlaube im Falle von Änderungen am Systemcode die durchgängige Verfolgung der Auswirkungen bis ins Userland. Auch Reparaturen oder Schnittstellenmodifikationen seien nur dadurch schnell zu bewerkstelligen, ohne auf Umgehungshacks an falscher Stelle angewiesen zu sein.

Christos Zoulas begründete die Unterschiedlichkeit des BSD- und Linux-Kernels auch damit, dass einige komplexe Teile des NetBSD-Kernels wie das Signalhandling oder die Netzwerkpuffer bis zu 30 Jahre alt und damit zwar ausgiebig getestet, aber nur schwer zu verstehen und zu verändern seien. Andere Codesegmente wie das virtuelle Speichermanagement oder die Gerätetreiber-API seien hingegen neu, sehr sauber programmiert und leicht zu handhaben.

Stören würden Zoulas am NetBSD-Kernel vor allem Schwächen bei der Multiprocessing-Unterstützung, das Fehlen eines Dateisystems mit Journaling oder die chronisch schlechte Verfügbarkeit von Gerätetreibern. Der Linux-Kernel zeige seiner Ansicht nach hingegen besondere Probleme bei Out-Of-Memory-Situationen, was zu Speicherlecks führen könne, bei der unüberschaubaren Vielfalt an teils unzuverlässigen Dateisystemen sowie der allgemein unbefriedigenden Stabilität der Gerätetreiber.

Die Frage, ob BSD aus technischer Sicht "korrekter" sei als Linux, beantwortete Zoulas zunächst mit einem Hinweis auf das Sammelsurium der teilweise zu knappen Linux-Dokumentation aus FAQs, Howtos, Manpages und anderen Quellen, die außerdem in zu vielen unterschiedlichen Formaten vorliege. NetBSD sei sauberer programmiert und besser dokumentiert, unterstütze dafür aber nicht Funktionen wie beispielsweise das ACPI-Suspend. NetBSD könne komplett und ohne weitere Tools selbst kompiliert werden und erlaube auch Cross-Building, also die Möglichkeit, auf jeder Plattform für jede andere Plattform oder andere Betriebssysteme zu kompilieren. Insgesamt bezeichnete Zoulos NetBSD für Systemprogrammierer, Linux jedoch für den Benutzer mit Featurebedarf als besser geeignet.

Linux habe besonders im Kernel 2.6 einige Fehler erst in späteren Revisionen beseitigt, dabei aber oft neue eingefügt. NetBSD hingegen sei bis jetzt dank besserer Testmethoden von solchen Schnitzern verschont geblieben. Beide Seiten könnten jedoch intensivere Tests gut gebrauchen, gab Zoulas zu bedenken. Seit der Version 2.4 habe Linux gegenüber BSD stark aufgeholt, besonders die I/O-Probleme seien wohl auch wegen des kommerziell motivierten Engagements von IBM im Kernel und von SGI beim XFS-Dateisystems behoben worden. Zoulas hält die Kernel für technisch insgesamt etwa gleichwertig, der jeweilige Einsatzzweck gebe den Ausschlag für den einen oder anderen Kernel.

Nach Ansicht von Theo de Raadt gibt es gar keinen Codeaustausch zwischen OpenBSD und Linux, obwohl wegen der extrem liberalen BSD-Lizenz keine Hürden dafür bestünden. Die Linux-Leute würden den OpenBSD-Code schlicht meiden. Ein Austausch zwischen NetBSD und Linux findet laut Zoulas aber speziell wegen der vielen verschiedenen von NetBSD oder Linux zuerst unterstützten Architekturen durchaus statt. Auch auf Treiberebene gebe es wegen der restriktiven Informationspolitik der Hardwarehersteller einen regen Austausch zwischen NetBSD und Linux.

Die abschließende Frage nach lohnenden Codeübernahmen von Linux nach BSD beantwortete de Raadt schon wegen der GPL mit einem schlichten "Nein"; Zoulas bekundete zwar Interesse an einer besseren Unterstützung von NetBSD im Bereich Multiprocessing, Echtzeit und Verfügbarkeit von Gerätetreibern, schloss jedoch ebenso die Übernahme von Linux-Code aus Lizenz- sowie Effizienzgründen aus. (mhe)