Posts mit dem Label OpenBSD werden angezeigt. Alle Posts anzeigen
Posts mit dem Label OpenBSD werden angezeigt. Alle Posts anzeigen

Montag, 10. Oktober 2011

Warum OpenBSD nie so viele Features wie Linux haben wird

Ich möchte einmal über meine speziellen Erfahrungen mit dem OpenBSD-Projekt berichten. Ich war besonders in den ersten Jahren nach dem Jahrtausendwechsel relativ aktiv daran beteiligt, Patches an OpenBSD zu senden, doch die Projektmitglieder schafften es, mich zu vergraulen. Dieses Posting ist keine Rache und auch keine komplette Zerlegung von OpenBSD -- das wäre auch nicht angebracht. Ich beschreibe den Grund, weshalb der Feature-Reichtum von OpenBSD so gering ist.

1. OpenBSD akzeptiert nur wenige Patches von Dritten

Ich hatte in den vergangenen Jahren diverse Patches für OpenBSD geschrieben, etwa hatte ich die Funktionalität von Solaris' psig und Solaris' tar-exclude-Parameter (regex) auf OpenBSD portiert, tcpdump-Ausgaben für das Cisco Discovery Protokoll leicht verbessert und das Clearing des IPv4-Reserved-Flags von Snort und norm auf OpenBSD portiert. Diese Veränderungen (teilweise sehr minimal) wurden alle abgelehnt. Features, die OpenBSD seit Jahren haben könnte.

Kürzlich hatte Remi Pointel die xz-Kompression als Flag für OpenBSDs tar (compress/decompress) bereitgestellt. Im Gegensatz zu meinen Erweiterungen hängt diese Veränderung von den OpenBSD-Ports ab und so folgte die Reaktion des Projektleiters Theo de Raadt zügig. Dennoch: Es brach zumindest eine Diskussion auf der Tech-Mailingliste los, die sich mit dem Thema auseinandersetzte.

Diese Strategie bewahrt OpenBSD vor für das relativ kleine Team unbezwingbarer Komplexität und ist daher nicht automatisch schlecht, sondern durchaus eine gerechtfertigte Entscheidung, doch sind so im Laufe der Jahre sehr viele Features nicht implementiert worden, die heute zur Verfügung stünden. Somit wird OpenBSD nicht mit dem Featurewachstum von Linux und Co. mithalten können, dafür aber stabiler und sicherer sein. Die Frage ist selbstverständlich: Muss so viel Featurereichtum für ein Spezialsystem überhaupt sein? Ich möchte sie hier nicht beantworten, sondern nur in den Raum stellen.

2. OpenBSDs Ports sind nicht immer aktuell, weshalb viele Features fehlen

Das Primärziel des OpenBSD-Projekts ist Security -- ein Ziel, dass für das Basissystem sicherlich sehr gut umgesetzt wird und in meinen Augen ist OpenBSD eine großartige Wahl für Hochsicherheitssysteme. Dennoch: Benötigt ein Benutzer 3rd-Party-Software (also Software aus den Ports), dann ist diese oftmals nicht aktuell (damit steigt die Gefahr für Sicherheitslöcher). Zwar gibt man sich bei den wichtigen Ports (etwa Firefox und KDE) Mühe, diese zumindest sicher zu halten, doch kann man die Versionen der Ports nicht aktuell nennen (Firefox 3.6.x und KDE 4.4.5 sind hierfür Beispiele der aktuellen Development-Version). Der Grund hierfür dürfte in der fehlenden Manpower liegen, womit die Lösung, nicht ganz aktuelle Versionen zu verwenden, sicherlich nicht falsch ist.

Problematisch ist in diesem Zusammenhang die fehlende Upgrade-Fähigkeit. Sicherheits-Upgrades müssen als Sourcecode-Patches ins System eingespielt werden und auch der Portstree muss von Hand aktualisiert werden (cvs up -d) , was durchaus zu Inkonsistenzen im System führen kann, da es vorkommen kann, dass im Laufe der Zeit zueinander inkompatible 3rd-Party Software auf dem System installiert wird. Gängige Linux-Distributionen lösen dieses Problem durch ihre versionabhängigen Software-Repositories, in denen alle Software-Packages aufeinander abgestimmt sind -- das ist klever und dadurch möglich, dass es keine Trennung zwischen Base-System und 3rd-Party-Software, sondern einfach nur "Software-Packages" gibt (egal, ob es sich hierbei um den Kernel, den gcc, die glibc oder GNOME handelt). Die Trennung von Base-System und Ports ist für BSD-Systeme historisch bedingt und wurde bis heute beibehalten.

Nun wird man klassisch gegen mein Posting argumentieren und sagen: OpenBSD sei nicht für den Desktop-Bereich gedacht. Wäre das wahr, könnte OpenBSD auf einen Großteil seiner Ports verzichten und wohl auch viele User verlieren.

Kurz: OpenBSDs Base-System ist ein großartiges Betriebssystem für Firewalls, Gateways, VPNs, dynamisches Routing und zentrale Dienste, aber viele Features fehlen gegenüber Linux-Systemen dennoch. Letztlich muss ein Benutzer entscheiden, was ihm wichtiger ist: Komfort (etwa ein vernünftiger vi mit Patches und Bedienkomfort) oder ein perfektioniertes Base-System.