FreeBSD 12 mit Optimierungen für AMD Zen und VMs in Jails
Im neuen Release des freien Betriebssystems FreeBSD gibt es für viele Bereiche viele Verbesserungen im Detail: CPUs, Virtualisierung, Treiber und Sicherheit.
- Michael Plura
- Moritz Förster
Genau nach Plan veröffentlichte das FreeBSD-Team den neuen 12/stable-Zweig seines OpenSource-Betriebssystems. Neben Anpassungen an AMDs Zen-Architektur und Bhyve-VMs, die sich aus Jails heraus starten lassen, gibt es viele Verbesserungen im Detail.
Alle BSDs (etwa FreeBSD, NetBSD, OpenBSD, DragonFly BSD) haben ihre Wurzeln im ursprünglichen Bell Labs Research UNIX. Die "Berkeley Software Distribution" entstand in den 1970er-Jahren als Unix-Variante an der University of California at Berkeley (UCB). Sun-Mitbegründer Bill Joy gab 1977 eine modifizierte Zusammenstellung der damals frei verfügbaren Unix-Quellen der AT&T Bell Labs als 1BSD an andere Universitäten heraus.
NetBSD und FreeBSD wurden 1993 vom späteren 386BSD abgespalten, das ein direkter Abkömmling von 4.3BSD war. Das verbindet sie unter anderem mit den Klassikern SunOS, NeXTSTEP, DEC Ultrix, Tru64 Unix und letztlich Apple iOS/Mac OS. Coherent, Minix und Linux sind separate, unix-artige Eigenentwicklungen. Die letzte Software-Version der UCD war das berühmte 4.4BSD-Lite2, das die Fortschritte der freien Varianten aufnahm und endgültig von allen AT&T-Rechten an UNIX frei war. Es wurde dann selbst zur Grundlage für die weiteren Software-Entwicklungen-
Neuerungen
FreeBSD 12.0 läuft auf amd64-Plattformen nun standardmäßig mit aktiviertem Non-Uniform Memory Access (NUMA). Einige CPUs der AMD-Zen-Architektur unterstützen NUMA, das Zugriffe auf direkt an die jeweilige CPU angebundenen Speicher priorisiert. Das verringert Latenzen im Speicher, verlangsamt aber die maximal nutzbare Speicherbandbreite. Auch mit AMDs Hardware-Verschlüsselung kann das Betriebssystem umgehen, soll jedoch im Vergleich zu Intels AES-NI leistungsschwächer sein. Für Intel-CPUs bietet FreeBSD nun die von anderen Systemen bekannte Option, Microcode-Updates vor dem Laden des Kernels in die CPU einzupflegen.
Eine verschlüsselte Installation in ein UFS/ZFS-Dateisystem lässt sich mit FreeBSD 12 auch auf UEFI-Systemen (UEFI+GELI) durchführen. UEFI unterstützt das Projekt mittlerweile auf allen UEFI-Plattformen (amd64, arm6/7 und aarch64) vollständig.
Im Bereich Netzwerk optimierten die Entwickler viele Treiber, vor allem für 100-GbE-NICs. Neu ist ein Treiber für Microchips LAN78xx-USB3-GBit-Ethernet-Adapter, dafür fielen etliche 10/100-MBit-Treiber, etwa für alte NE-2000- und 3Com-Karten, heraus. Auch das Token-Ring- und das Arcnet-Protokoll wurden zu Grabe getragen. Aktuelle Grafikkarten-Treiber für moderne ATI/AMD- und Intel-Chips hält künftig die Ports-Collection vor.
Bhyve im Jail, pf im Jail
Der native FreeBSD-Hypervisor bhyve erlaubt es nun, CPU-Topologien aus dem Userland heraus zu definieren. Neu ist die virtio_scsi(4)-Unterstützung sowie eine NVMe-Emulation. Über sysctl security.jail.vmm_allowed darf der Nutzer Bhyve-VMs sogar aus Jails (Containern) heraus starten. Innerhalb von Jails funktioniert außerdem endlich der Paketfilter pf. Weitere Anpassungen betreffen FreeBSD-12-Instanzen in virtuellen Umgebungen wie Amazons EC2.
Das leichtgewichtige Sandbox-Framework Capsicum zum Einschränken der Zugriffe auf Namespaces, für das FreeBSD die Referenzplattform darstellt, ist künftig auf armv6/armv7 standardmäßig aktiviert. Für alle Architekturen pflegte das Projekt Capsicum in viele Software-Pakete, beispielsweise in shhd(4), ein. Neu ist eine Manualpage zu arch(7), die Unterschiede der Application Binary Interfaces (ABI) zwischen den unter FreeBSD 12 verfügbaren CPU-Architekturen und Plattformen dokumentiert. Apropos: Wer sich durch die vorbildliche lokale Dokumentation wühlt, stellt fest, dass less das angestaubte more ersetzt.
Für mit UFS/FFS formatierte SSDs aktiviert FreeBSD 12 TRIM standardmäßig, bei ZFS wurde die Überprüfung der Integrität per scrub optimiert. Schließlich wurde die Entwicklungsumgebung aus Clang/LLVM, LLD, LLDB, compiler-rt und libc++ komplett auf Version 6.0.1 aktualisiert.
Das FreeBSD-12.0-RELEASE steht unter der freien BSD-Lizenz und ist als ISO-, USB-Stick- oder SD-Card-Image für die Architekturen amd64, i386, powerpc, powerpc64, powerpcspe, sparc64, armv6, armv7 und aarch64 herunterladbar. Cloud-Images stehen auf Amazon EC2, Google Computer Engine und für Hashicorp/Atlas Vagrant zur Verfügung. Alle Neuerungen beschreiben die Release Notes auf der FreeBSD-Projektseite im Detail. (fo)