FreeBSD 13 ist da: Mehr Leistung, bessere Tools – und viel WireGuard-Drama

Seite 2: Mehr Leistung für alle

Inhaltsverzeichnis

Da FreeBSD überlicherweise in einen ZFS-Pool installiert wird, kann das System bei fehlgeschlagenen Updates über Boot-Environments oder Snapshots problemlos in einen lauffähigen Zustand versetzt werden.

Wie immer gibt es viele Neuerungen unter der viel strapazierten Haube, die der FreeBSD-Anwender nicht sieht, aber vielleicht spürt. Der Kernel wechselt an praktisch allen kritischen Stellen von klassischen Locks zu Epochs, also lockfreier Synchronisation. Das hilft massiv vor allem großen, stark parallelisierenden Maschinen mit mehr als 64 Kernen und entsprechenden Workloads. Im kleineren Maßstab, also in Appliances und vor allem auf dem Desktop macht sich das durch flinkere Reaktionen des Systems bemerkbar. Im Rahmen der Umstellung wurden diverse Kernelsubsysteme modernisiert und teilweise neu geschrieben, was nochmal Geschwindigkeitsvorteile bringt.

Die AMD64-Plattform läuft nun auch auf Hygon-Dhyana-Prozessoren. Dabei handelt es sich um eine Variante AMD EPYC-CPU (also den Zen-1-Core), die AMD bereits 2016 über ein kompliziertes Joint Venture an chinesische Prozessorhersteller lizensiert hat. China will damit technologische und wirtschaftliche Abhängigkeiten von ausländischen Produzenten reduzieren. Auf dem Hygon-Dhyana-SoC wurde AES durch chinesische Krypto-Hardware SM2, SM3 und SM4 ersetzt.

Die Unterstützung von Intels 5-Level-Paging (LA57) erlaubt es FreeBSD 13, statt über bisher 48 Bit für virtuelle Adressen und damit 256 TiB Speicher nun 57 Bit (0-56) und damit bis zu 128 PiB anzusprechen. Entsprechende Hardware gibt es ab Ice-Lake-Prozessoren. Auch der native FreeBSD-Hypervisor Bhyve kann damit via "five layer nested page tables" umgehen.

Was etwas wirr klingt, ist die Entwicklung der i386-Plattform unter FreeBSD. 1993 erblickte FreeBSD auf einem Intel 80386 (i386) das Licht der Welt. Da i386-CPUs wichtige Funktionen fehlen, wurde FreeBSD/i386 seit einiger Zeit für mindestens die i486-CPU compiliert. Wer tatsächlich einen i386 einsetzen wollte, musste sich das komplette System selbst übersetzen. Der i386-Port rutscht mit FreeBSD 13 in Tier-Level 2 ab, soll aber trotzdem fast wie Tier 1 gepflegt werden. Das machen die FreeBSD-Entwickler nicht den Hardware-Nostalgikern zu Liebe, sondern um über die 32-Bit-Plattform auch Fehler in amd64 zu finden und vor allem, um viele Appliances und Embedded Devices auf Basis der alten x86-Prozessoren zu unterstützen. Da diese Systeme in der Regel mit i686-kompatiblen Prozessoren arbeiten, wird FreeBSD/i386 ab FreeBSD 13 auf i686 optimiert (default CPUTYPE=686). Damit entfällt die ungewöhnliche und archaische PC98-Architektur (NEC PC-98x1) komplett.

Die PowerPC-Architektur wurde vom alten GCC endlich auch komplett auf die LLVM-Infrastrutur umgestellt, womit die Toolchain nun der von amd64 entspricht. Gleichzeitig wechselte man zur ELFv2-ABI (Application Binary Interface, Binärschnittstelle). Dadurch sind Binaries aus FreeBSD-Versionen vor 13.0 nicht mehr unter 13.x lauffähig – außer sie laufen in einer Jail oder als chroot, da der Kernel nach wie vor ELFv1 unterstützt. Die Plattform erhielt auch weitere Netzwerk- und RAID-Controller-Treiber wie VirtIO für virtuelle Maschinen oder aacraid für Adaptec-Controller.

Der neue powerpc64le-Zweig (64-bit little endian) zielt auf POWER8- und POWER9-Prozessoren ab. Detailverbesserungen sollen deutlich mehr Geschwindigkeit bringen, beispielsweise verspricht ein Treiber für den XIVE-Interrupt-Controller ein Plus von 10 Prozent oder die Konversion von PMAP-Treibern zu ifunc (context switching) 20 Prozent mehr Leistung. Insgesamt soll das Compilieren beispielsweise mindestens 60 Prozent schneller laufen.

Mit einem gigantischen Patch rutscht die SPARC64-Architektur von Tier 2 auf Tier 4 ab und erhält damit keinen Support mehr. RISC-V hingegen ist von Tier 3 auf Tier 2 aufgestiegen und sollte in absehbarer Zukunft auch in der Praxis einsetzbar sein. Bei den diversen MIPS-Port (auch Tier 2) ist es recht ruhig geblieben. Andere alte Architekturen wie IA-64 (Itanium) wurden nur bis FreeBSD 10.4, die DEC-Alphas sogar nur bis FreeBSD 6.4 unterstützt.