Menü
iX Magazin

DragonFly BSD 5.4 mit GCC8 und verbessertem NUMA

Mit leichter Verspätung ist DragonFly BSD 5.4 erschienen. Die neue Version bringt bessere Unterstützung von NUMA-Architekturen, GCC 8.1 und verbesserte Treiber.

Von
vorlesen Drucken Kommentare lesen 6 Beiträge
DragonFly BSD 5.4 mit GCC8 und verbessertem NUMA

DragonFly BSD 5.4 wurde vergangene Woche mit etwas Verspätung freigegeben. Der ursprüngliche Termin Ende November musste verschoben werden, obwohl auch er bereits über einen Monat vom üblichen halbjährlichen Release-Zyklus abwich.

DragonFly BSD entstand im Juni 2003 durch einen Fork von FreeBSD 4.8. Die damaligen Entscheidungen des FreeBSD-Teams zur Kernel-Unterstützung von Multithreading und Multiprozessorsystemen für den kommenden 5.x-Zweig empfand Matt Dillon als unzureichend. Es kam zum Streit mit den übrigen Entwicklern, in dessen Verlauf ihm der direkte Zugriff auf den Quellcode entzogen wurde – das erinnert an Theo de Raadt und dessen Streit mit dem NetBSD-Team, aus dem heraus de Raadt 1995 das auf Sicherheit und korrekten Code fokussierte OpenBSD abspaltete.

Alle BSDs haben ihre Wurzeln im ursprünglichen Bell Labs Research UNIX ab, wobei NetBSD und FreeBSD 1993 vom späteren 386BSD abgespalten wurden. 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.

Fokus auf NUMA

Seine Erfahrungen unter anderem mit der Entwicklung des DICE C-Compilers für den Amiga und der Mitarbeit am Linux- und FreeBSD-Kernel haben Matt Dillon offenbar befähigt, die richtigen Design-Entscheidungen für den Kernel seines DragonFly BSD zu treffen. Der Hybrid-Kernel – eine Art Zwischenstufe zwischen einem großen monolithischen Kernel (Linux) und einem Micro-Kernel (Minix) – ist optimiert auf Multicore- und Multisocket-Systeme und insbesondere NUMA-Architekturen (Non-Uniform Memory Access, jede CPU hat eigenen lokalen RAM).

HighEnd-Systeme auf Basis von beispielsweise AMDs Zen/Threadripper 2 profitieren von Lightweight Kernel Threads (LWKT). Hierbei erhält jeder Prozessor seinen eigenen Scheduler, zusätzlich werden Prozesse bevorzugt auf CPUs gelegt, die direkten Zugriff auf den benötigten Speicher haben. Für CPUs ohne diesen Zugriff werden Speicheranforderungen normalisiert, um deren Cache besser auszunutzen. Insgesamt könnte DragonFly BSD so zur optimalen Plattform für massiv parallele Anwendungen werden.

Schutz vor Meltdown und Spectre

Bereits seit Version 5.0 werden die notwendigen Schutzmaßnahmen gegen Meltdown- und Spectre-Angriffe für alle Intel-CPUs in DragonFly BSD eingepflegt und werden via <I>sysctl machdep.meltdown_mitigation<I> (ursprünglich: <I>machdep.isolated_user_pmap<I>) gesteuert. Laut Matt Dillon verlieren Skylake-CPUs so 5-12%, Haswell-CPUs sogar 12-53% an Leistung.

Neben vielen zusätzlichen Verbesserungen im Bereich Netzwerk und einem aktualisierten Radeon/DRM-Code wurde die Treiber für VMs/Virtualisierung verbessert.

GCC8 und Chromium

DragonFly BSD 5.4 wird mit GCC 8.1 ausgeliefert, GCC 4.7.4 und 5.4.1 sind aus Kompatibilitätsgründen ebenfalls verfügbar. Neben dem Basissystem sollen sich auch alle Anwendungen aus den dport (der angepasste Ports-Tree von FreeBSD) mit GCC8 übersetzen lassen. Der aktuelle Compiler und einige Anpassungen kommen laut Entwickler vor allem auch dem Chromium-Browser zugute, der sich in der Praxis nun auch tatsächlich so flink wie auf anderen Betriebssystemen anfühlt.

HAMMER2-Dateisystem kommt

Bereits seit DragonFly BSD 5.2 ist das HAMMER-Dateisystem dem experimentellen Status entwichen und wird als Option für das /-Dateisystem empfohlen. HAMMER und der seit 2012 entwickelte Nachfolger HAMMER2 sind ähnlich fortschrittlich wie ZFS, sollen als Fernziel aber einmal als Dateisystem über ganze Rechencluster einsetzbar sein. HAMMER legt beispielsweise automatisch alle 30-60 Sekunden einen Snapshot an, so dass Änderungen am Dateisystem mit einer Genauigkeit von einer Minute rückgängig gemacht werden können. Der Nachteil ist die Notwendigkeit, diese Snapshots regelmäßig (per cron) ausmisten zu müssen, um gerade kleine Dateisysteme nicht zu schnell überlaufen zu lassen.

DragonFly BSD steht als freies OpenSource-Betriebssystem unter der gegenüber der GPL weniger restriktiven BSD-Lizenz. Es ist seit Version 4.0 (November 2014) ausschließlich für die x86-64-Architektur (AMD64) erhältlich. Ein Live-System zur Installation liegt auf der Projektseite für CD-R/VM/VPS (.ISO) und USB-Sticks (.IMG) bereit. Dort finden sich auch die umfangreichen Release-Notes und ein etwas schwaches Online-Handbuch. (Michael Plura) / (axk)