Dienstag, 8. Juli 2008

Freie Betriebssysteme: Ein Vergleich

Ich habe mich in den letzten Monaten mal etwas mehr mit dem befasst was der Markt an freien Betriebssystemen alles so hergibt. Deswegen habe ich mich hier mit den Alternativen FreeBSD und OpenSolaris befasst. Sicherlich bin ich nicht so weit in die unterschiedlichen Systeme eingetaucht das ich einen wirklich allumfassenden Bericht abliefern könnte aber ich hoffe trotzdem einen kleinen Einblick geben zu können.
Ich werde im folgenden einfach mal einen Vergleich zwischen den 3 Systemen anstellen die ich hier hauptsächlich laufen habe: Kubuntu 8.04.1, FreeBSD 7.0-RELEASE-p2 und OpenSolaris 2008.05 snv_91.

Packaging System


Kubuntu:

Hier kommt das weitverbreitete APT System aus der Debianwelt zum Zuge. Zusammen mit einer fast unerschöpflichen Auswahl an Paketen ist es sicher absolut ungeschlagen wenn es um eine Kollektion freier Software geht. Es ist schnell und leicht in der Anwendung und durch zusätzliche Repos flexibel und erweiterbar. Ein Nachteil den ich persönlich empfinde ist, das das selber packen ziemlich umständlich ist im Vergleich zu anderen Systemen. Es gibt mehrere Skriptverfahren zur Auswahl mit denen man seine Software verschnüren kann und zusätzlich noch Prä- und Postinstallationsskripte welche sich darum kümmern die Software einzurichten.
Fazit: +

FreeBSD:
Hier scheiden sich bei mir die Geister. Sicherlich ist das Ports-System von FreeBSD sehr mächtig und steht mit einer Auswahl von 18.000+ Paketen sicherlich nicht schlechter da als viele andere Systeme, doch ist die Handhabung meiner Meinung nach alles andere als zeitgemäß. Es gibt einen ganzen Berg an Tools für den Umgang mit diesem System und viele davon machen das gleiche... nur anders. Die pkg_* Familie (die jetzt nicht direkt was mit den Ports zu tun hat, sondern dafür zuständig ist vorkompilierte Pakete zu verwalten), dazu portsnap, portmaster, portupgrade, portaudit und vermutlich noch andere die ich vergessen oder noch nie gesehen habe. Es ist allerdings sehr einfach seine Software selbst zu kompilieren und gegebenenfalls auf seine Ansprüche zuzuschneiden. Dennoch:
Fazit: --

OpenSolaris:
Ian Murdock, Vater der Debian Distribution und inzwischen Mitarbeiter von Sun hat für OpenSolaris das IPS System entwickelt. Es ist komplett in Python geschrieben und versucht die Vorteile vieler Packagesysteme zu vereinigen. Besonders interessant ist das IPS vor jedem Update einen Snapshot des Systems anlegt, was dem Benutzer ermöglicht zurückzuspringen wenn z.B. das Update nicht geglückt ist. Auch lässt sich das System "branchen" so das man unterschiedliche Instanzen seines Systems gleichzeitig auf der Festplatte haben kann (alle bootbar). Gespeichert werden lediglich die Unterschiede zueinander und das völlig transparent und performant. All diese Optionen lassen sich mit wenigen einfachen Befehlen steuern. Auch hier gibt es Repos die das System flexibeler machen (auch ist das Aufsetzten eines eigenen Repos kinderleicht). Selbst Pakete bauen ist ebenfalls einfach und bequem realisiert, da sie ähnlich wie die Handhabung eines SVN abläuft.
Fazit:++

Filesystem

Kubuntu:
Ext3. Der Fels in der Brandung und leider auch genauso aktuell. Sicherlich zeichnet es sich durch hervorragende Stabilität aus dennoch sind die immer wiederkommenden Filesystem-Checks bei immer größer werdenden Festplatte einfach nur noch zeitaufwendig und lästig. Ebenso ist das System nach dem Aufsetzen starr und lässt sich nur bei einem vorher aufgesetztem LVM halbwegs elegant erweitern. Derzeit befindet sich ext4 in der Entwicklung, aber auf einen produktiven Einsatz wird man wohl noch lange warten müssen.
Fazit:-

FreeBSD:
Vorteilhaft ist hier das der Filesystemcheck bei UFS2 im Hintergrund abläuft. Das spart Zeit und Nerven (vor allem bei großen Platten welche heutzutage einfach Standard sind). Leider habe ich mich nicht besonders mit dem GEOM System befasst welches ein sehr starkes Konzept zu seinen scheint. Darum kann ich hierzu leider nicht viel sagen.
Fazit:+

OpenSolaris:
The Last Word in Filesystems. Damit preist Sun sein Filesystem ZFS an. Nicht ganz zu unrecht. Scheint es doch nichts zu geben was ZFS nicht bewerkstelligen kann: Softwareraids, Mirroring, Striping, dynamisch wachsenden Partitionen, Snapshots, Clones, inkrementelle Backups die sich über SSH verschicken lassen, transparente Kompression und sogar Selbstheilung. ZFS ist wie viele sagen eine eierlegende Wollmilchsau. Jetzt mag man glauben das sich ein solches Filesystem kaum handhaben lässt und ungemein kompliziert ist. In Wirklichkeit lassen sich alle diese Funktionen mit nur 2 einfachen Befehlen steuern ohne dabei irgendetwas von ihrer Mächtigkeit zu verlieren. Alles in allem: Ein hochmodernes einfach handzuhabendes Filesystem welches einem völlig neue Möglichkeiten eröffnet.
Fazit: ++

Kernel und Userland

Kubuntu:

Hier wird wie die meisten sicher wissen der weit verbreitete Linuxkernel verwendet. Er verfügt über eine große Anzahl an Treibern und ist relativ stabil. Als Userland wird das GNU-Userland verwendet welches vom Linuxkernel eigentlich unabhängig ist. Dies führt dazu das sich beides hin und wieder nicht im Einklang befindet, sprich das neue Features des Kernels sich nicht unbedingt auf das Userland auswirken. Auf großen Systemen wird allerdings immer wieder bemängelt das der Linux Kernel schlecht skaliert (ab 4 oder 8 CPUs geht die Performance bergab) Dies kann ich selber nicht bestätigen sondern muss mich hier auf das Wort von Experten verlassen.
Fazit: +

FreeBSD:

Wie bei allen anderen BSDs auch kommt hier alles aus einem Guss. Userland sowie Kernel werden zusammen entwickelt und dementsprechend lässt sich das System erstklassig darüber bedienen. Im Gegensatz zum Linuxkernel handelt es sich beim FreeBSD Kernel um einen echten Nachkommen von BSD Unix. Derzeit werden viele neue Fähigkeiten die ihren Ursprung in Solaris in den FreeBSD Kernel integriert wie z.b. ZFS und dtrace (beides ist unter Linux derzeit aus Lizenzgründen nicht möglich). Das System soll sich durch extreme Stabilität auszeichnen. Dennoch habe ich es geschafft durch vermutlich etwas dämlichen Einsatz zum UnionFS das System zu einer Panic zu bringen. Auch skaliert das System durch den neuen ULE Scheduler (welcher auch in den nächsten Mac OS X Kernel aufgenommen werden soll) sehr gut.
Wie Linux auch verfügt FreeBSD über eine Vielzahl von Treibern und auch NVidia liefern einen Treiber für ihre Grafikkarten (allerdings nur als 32-Bit Version) aus.
Fazit:++

OpenSolaris:
Auch hier ist alles aus einem Guss und durch dtraceprobes lässt sich dem System so ziemlich alles an Informationen entlocken die man zum administrieren und entwickeln so braucht oder immer schon mal haben wollte. Da das Geschäft von Sun große Rechner sind, verwundert es nicht das Solaris extrem gut skaliert und auch noch auf Systemen mit vielen CPUs (angeblich bis zu 64 Stück) ohne Performanceverlust arbeitet. Solaris verfügt über eine Vielzahl einzigartiger und mächtiger Tools und Features (ZFS, dtrace, SMF, Zones etc) welche sowohl auf dem Desktop als auch auf dem Server neue und spannende Anwendungen eröffnen. Um Treiber ist es im Moment etwas schlecht bestellt, dennoch werden alle paar Wochen neue Treiber zum System hinzugefügt. Auch hier bieten NVidia Treiber für ihre Grafikkarten an. Solaris stammt ebenfalls von BSD ab und ist somit ein echtes Unix.
Fazit:++

Oberfläche

Kubuntu:
Wird standardmäßig mit KDE ausgeliefert, ebenso existiert eine KDE4 Version welche
jedoch eher für Entwickler und nicht für den Endanwender gedacht ist.
Fazit:++

FreeBSD:
Kommt ohne installierte GUI und läßt sich somit frei einrichten. Derzeit wird noch an einer Portierung von KDE4 gearbeitet die nach Aussage von Martin Wilke inzwischen kompiliert und läuft.
Fazit:+

OpenSolaris:
Ist derzeit nur mit Gnome erhältlich, dennoch wird auch hier KDE4 portiert. Experimentelle Tarballs sind bereits unter www.bionicmutton.org/solaris/ erhältlich. Ab der kommenden Version von OpenSolaris soll es möglich sein auf die Installation einer GUI zu verzichten.
Fazit:+

Dokumentation

Linux:
Eine wirklich gute Anlaufstelle für Dokumentation gibt es für Linux leider nirgends. Es gibt zwar viele Wikis von denen sehr viele veraltet sind. Oft muss man sich passende Howtos per Google raussuchen welche auch selten über Grundwissen hinausgehen. Auch macht es einem die Menge an unterschiedlichen Distributionen welche Probleme oft sehr unterschiedlich behandeln alles andere als leicht.
Fazit:--

FreeBSD:
FreeBSD bietet auf seiner Seite ein umfangreiches Handbuch an welches so ziemlich jedes Thema abdeckt auf das man beim benutzen und administrieren seines Systems stoßen kann. Alles ist umfassend erklärt und in unterschiedlichen Sprachen erhältlich.
Fazit:+

OpenSolaris:
Besonders angetan hat er mir der Dokumentationsserver von Sun. docs.sun.com bietet so ziemlich die ausführlichste Datenbank an Informationen die man zu einem System erhalten kann. Alles als PDF herunterladbar, sowie in mehreren Sprachen verfügbar. Alles auf dem neusten Stand versteht sich. Absolut vorbildlich!
Fazit:++

Wenn es um Paketvielfalt und Einfachheit geht, hat hier Kubuntu ganz klar das Rennen gemacht. Dennoch halte ich OpenSolaris für einen extrem vielversprechenden Kandidaten (vor allem da das System in dieser Form erst seit 3 Monaten erhältlich ist). Mit mehr Paketen würde es sich hier definitiv um eine ernstzunehmende Alternative handeln. FreeBSD taugt für mich leider gar nicht für den Desktop (Ok, der Vergleich ist schon etwas unfair da es eher für Server gedacht ist ;). PC-BSD soll hier allerdings Abhilfe schaffen.

Das war ein kleiner Einblick in das von mir Erlebte zu den unterschiedlichen Systemen. Sicherlich wird das ein oder andere Urteil etwas sehr subjektiv ausgefallen sein, aber naja. Ich hoffe es war trotzdem aufschlussreich :).

Informationen zu den unterschiedlichen Systemen wie z.B. ausgewählte Artikel findet man übrigens auch bei Distrowatch.

Kommentare:

Marcus hat gesagt…

Hi xRaich[o]²x,

eine wirklich gelungene Übersicht hast du da erstellt. Ich habe nur eine kleine Anmerkung zu FreeBSD und den Ports. Du solltest vll. deutlich machen, dass die pkg_* Familie vorkompilierte Pakete installiert, während die Software aus den Ports aus den Quellen kompiliert wird. Die anderen von dir genannten Tools haben alle mit den Ports zu tun, nur halt die pkg_*s nicht.

Viele Grüße

Marcus/mcas

xRaich[o]²x hat gesagt…

Hi. Du hast recht. Da war ich wohl etwas zu ungenau ;)

Solarix hat gesagt…

Hallo, eine gute Übersicht. :-)

Was das Ports System angeht, es mag auf den ersten Blick "veraltet" sein, dafür glänzt es aber mit den Punkten Anpassbarkeit der Pakete die sonst kein System bietet, bei großen Paketen wie Samba, Apache, KDE und anderen üblichen Verdächtigen kann man genau die Optionen auswählen die man möchte, man ist nicht gezwungen sich Module auf die Platte zu hauen die man evtl. gar nicht braucht. Das ermöglicht einem ein sauberes System nach genauen Anforderungen zu bauen. Meiner Meinung ist das schon ein sehr sehr guter Punkt den man nicht übersehen sollte. :)

Was das Systemupdate des Betriebsystems an sich betrifft, kann man auf das Tool freebsd-update verweisen. Patchen wird zu einem Kinderspiel und was ich an FreeBSD mag ist die Transparenz die in der Linuxwelt immer mehr verschwindet.

Gerade in Sachen Patchbarkeit ist es nach meiner persönlichen Erfahrung das ausgereifteste System. Als Solaris und Linuxknecht kann ich das glaub ganz gut beurteilen. :)