Nachdem ich nun endlich meinen neuen DSL Anschluss habe, konnte ich einen Plan in die Tat umsetzen: Linux loswerden Der Nachfolger meiner Wahl: FreeBSD.
Kurzer Einschub an dieser Stelle: Schade, dass es kein wirklich passendes Unterforum hier gibt. Linux ist ja nicht das einzige "alternative" OS für x86 / x86_64. Die anderen sind noch wesentlich weniger verbreitet, daher ist es sicher sinnvoll, ihnen keine separaten Foren zu spendieren -- aber könnte dieses Forum nicht vielleicht "Linux und andere Unix-artige Systeme" heißen oder sowas?
Zurück zum Thema, ich möchte einfach mal kurz meine bisherigen Erfahrungen schildern:
Positives:
- Die UNIX Philosophe lebt und FreeBSD macht das spürbar. Die Lösungen auf FreeBSD sind meist simpel und elegant. Beispielsweise sind Pakete nichts weiter als .txz Archive mit binaries. Das Build-System für Pakete basiert auf "Ports", eine einfache Sammlung von Makefiles und Patches, die mit Hilfe eines immer gleichen make-basierten Frameworks originale Software im Quellcode herunterlädt, für FreeBSD compiliert und paketiert -- alles ohne übermäßig komplizierte Tools. Auch der Boot-Prozess läuft erfrischend einfach und traditionell -- mit einem shellscript-basierten Framework zum starten und stoppen von Services. Wer Service-Monitoring ala systemd braucht, kann zusätzliche Tools installieren, die ebenfalls einfach gestrickt sind, und nicht wie systemd versuchen, alle nur erdenklichen "Probleme" auf einmal zu lösen.
- Stabilität wird groß geschrieben, und das gilt auch für APIs (selbst innerhalb des Kernels, aber nicht nur). Direkt positiv aufgefallen ist mir die Umsetzung von Sound auf FreeBSD. Wer Linux kennt, kennt den verschlungenen Pfad zur heute hochkomplexen Lösung mit PulseAudio und ALSA, die mit etwas Glück einfach funktioniert, einem ansonsten gerne mal graue Haare wachsen lässt. FreeBSD ist einfach bei OSS geblieben (/dev/dsp). Das funktioniert wie eh und je, allerdings hat man völlig transparent für Anwendungscode eine Schicht eingezogen, die jedem Client sein eigenes Device zuweist beim öffnen und damit Software-Mixing für verschiedene Anwendungen erlaubt. Etwas das bei Linux angeblich nicht möglich war, damals einer der Gründe, das schon viel zu komplexe ALSA einzuführen. Wenn man wirklich mehr braucht (Sound über Netzwerk, Lautstärke pro Stream, etc) bietet FreeBSD mit sndio (übernommen von OpenBSD) eine super schlanke und simple Alternative zu PulseAudio.
- Selbst Binärkompatibilität ist ein Thema, ganz im Gegensatz zu Linux. FreeBSD ist standardmäßig viele Versionen zurück binärkompatibel. Dazu kommt noch Binärkompatibilität zu 32bit und 64bit Linux -- um damit Linux-Binaries laufen zu lassen müssen aber natürlich auch alle dazu nötigen Linux libs usw installiert sein, was in der Praxis leider nicht ganz so simpel ist.
- FreeBSD ist nicht nur ein Kernel sondern beinhaltet auch ein minimales Userland für ein vollständiges System (also viele grundlegende Tools, C-Compiler und Shell, usw). All das "aus einem Guss" verhindert böse Überraschungen bei Upgrades -- ob man eine neue Version selbst compiliert oder per freebsd-update installiert, danach hat man auf jeden Fall ein funktionierendes Basis-System. Zu diesem gehören auch so nette Dinge wie cu(1), was mich sehr positiv überrascht hat -- mit nur der Basisinstallation kann ich also schon problemlos an eine serielle Konsole (von meinem Server oder meinem Switch).
- Die Dokumentation ist hervorragend. Allein das Handbuch erklärt schon fast alles, was man jemals braucht .. dabei waren auch Dinge wie "Link aggregation" von mehreren Netzwerkkabeln zwischen Server und Switch. Wenn das nicht mehr reicht hat FreeBSD auch einen perfekt gepflegten Satz von "man-pages". Wer Linux kennt weiß, dass es da (trotz vieler Bemühungen) leider lange nicht so gut aussieht -- in aller Regel bemüht man dann doch schnell Google in der Hoffnung, ein Forums- oder Blog-posting zu finden.
- OpenZFS ist fester Bestandteil von FreeBSD. Zum Filesystem selbst schreibe ich hier nichts, kann man selbst nachlesen (es ist eine der besten Lösungen, die es gibt, beinhaltet auch RAID und Volume management). Auf Linux ist es zwar nutzbar, wird aber höchstwahrscheinlich nie offizieller Bestandteil werden.
- FreeBSD hat schon sehr lange "jails" -- virtuelle Container, die auf dem Host-Kernel laufen, also im Prinzip das, was Docker macht. Jails gibt es allerdings schon sehr viel länger, sie sind seit vielen Jahren produktiv erprobt und ebenfalls fester Bestandteil des Basis-Systems. Ich nutze sie problemlos als virtuelle Server, außerdem sind sie nützlich als saubere Build-Umgebungen für Software, da sie (zusammen mit ZFS) in Sekunden bereitstehen und nutzbar sind und genauso schnell wieder weggeschmissen werden können.
- Mit "bhyve" ist auch ein Hypervisor Bestandteil des Basissystems, ich nutze ihn im Moment für eine kleine Firewall-VM (die exklusiven Zugriff auf die Netzwerkkarten hat) und einen virtuellen Windows-Server -- funktioniert perfekt.
Negatives:
- Für FreeBSD existiert weniger Software als für Linux. Opensource Software kann meistens mit mehr oder weniger Aufwand portiert werden, bei closed source bietet sich der Weg über die Linux Binärkompatibilität oder eben Wine (für Windows-Software) an. Das funktioniert oft, aber leider nicht immer. Beispielsweise der Citrix Receiver für Linux läuft bei mir perfekt unter FreeBSD (in gewisser Weise besser als damals das Debian Paket) -- dagegen gibt es z.B. für Teamviewer keine zufriedenstellende Lösung.
- Auch bei Hardwareunterstützung bietet FreeBSD weniger als Linux. Es kann passieren, dass man für eine bestimmte Hardware einfach keinen funktionierenden Treiber findet
Speziell für Grafiktreiber wurden Linux-kompatible APIs im Kernel eingeführt, wodurch mittlerweile viele moderne Grafikchips unterstützt werden. Im Moment suche ich noch nach einer Lösung für zwei Karten (Telefon und SAT-TV), bin mal gespannt. Notfalls muss es mit Virtualisierung laufen. Wer "bleeding edge" Hardware hat, sollte jedenfalls vor einem Test von FreeBSD bereits damit rechnen, dass eventuell nicht alles unterstützt wird ...
Also, falls hier noch andere die immer höhere Komplexität und Undurchschaubarkeit moderner Linux-Systeme stört, ich kann nur empfehlen, auch mal was anderes auszuprobieren Ich bin bisher mit meiner Wahl sehr zufrieden!