DragonFly BSD ist ein freies Unix-Derivat. Das Betriebssystem basiert auf den Quelltexten von FreeBSD-STABLE 4.8 vom 16. Juni 2003 und gehört somit zu der Familie der BSD-Betriebssysteme. Es läuft auf PCs mit x86-64-basiertem Prozessor.

Geschichte Das DragonFly-Projekt wurde vom ehemaligen FreeBSD-Entwickler Matt Dillon initiiert, der mit den Designentscheidungen für die Architektur des FreeBSD-5.x-Kernels – insbesondere bezüglich Kernel-Threading und SMP – nicht zufrieden war und sich kurz zuvor mit den anderen FreeBSD-Entwicklern überworfen hatte. Es sieht sich als Fortsetzung des FreeBSD-4.x-STABLE-Zweigs. Matt Dillon, der in Vollzeit am Projekt entwickelt, wird mittlerweile von über fünfzig weiteren Entwicklern unterstützt.

Funktionen Da DragonFly BSD als neues Betriebssystem zu Beginn keine Benutzerbasis hatte, musste die Codebasis nicht abwärtskompatibel sein, so dass eine Reihe von APIs modernisiert und einige experimentelle Änderungen vorgenommen werden konnten.

Ein weiteres Merkmal der Entwicklung von DragonFly BSD ist, dass neue Sicherheitskonzepte und Innovationen auf diesem Gebiet, beispielsweise die – verglichen mit klassischen Ansätzen als sicherer geltende – malloc-Implementierung des OpenBSD-Projektes, sehr schnell in den Entwicklungszweig aufgenommen werden.

Als Portmanager wurden zunächst FreeBSD-Ports, ab Version 1.4 das von NetBSD stammende pkgsrc verwendet. Aufgrund des zu hohen Wartungsaufwands von pkgsrc-Ports kommt seit DragonFly BSD 3.4 zusätzlich DPorts, ein auf den FreeBSD-Ports basierendes Portsystem, zum Einsatz. Die Installation und Verwaltung von Binärpaketen erfolgt bei DPorts wie in FreeBSD und PC-BSD per pkgng. Der Release-Zyklus beträgt etwa sechs Monate, ist jedoch auch abhängig von Funktionserweiterungen des Systems.

SMP-Unterstützung Ein Fokus der DragonFly-BSD-Entwickler lag von vornherein auf einer besseren Unterstützung moderner Mehrprozessorsysteme. Verschiedene Verbesserungen der Skalierbarkeit wie ein neuer Slab allocator, der ohne Mutexes auskommt, wurden insbesondere im Kernel vorgenommen.

Lightweight Kernel Threads Bei den Lightweight Kernel Threads (LWKT) handelt es sich um ein Kernelsubsystem, das dabei helfen soll, den Wettstreit zwischen den Prozessoren zu reduzieren. Hierbei erhält jeder Prozessor seinen eigenen Prozess-Scheduler, Prozesse werden an einen bestimmten Prozessor gebunden und können nur von IPI-Prozessen unterbrochen werden.

Messaging API DragonFly BSD verwendet ein Nachrichtenaustauschsystem ähnlich dem von AmigaOS und anderen Microkerneln. Dieses dient der Kommunikation zwischen den einzelnen Lightweight-Kernel-Threads (LWKT). Jeder einzelne LWKT unterstützt dabei drei Arten von Nachrichtenports, die Nachrichten in Empfang nehmen können:

Threadports Spinports Serializerports

Nachrichten, die an Threadports eingehen, dürfen nur vom Besitzer des jeweiligen Ports empfangen werden. Nachrichten an Spin- und Serializerports können von mehreren Threads gleichzeitig abgerufen und bearbeitet werden. Sowohl synchrones als auch asynchrones Antworten auf diese Nachrichten ist möglich.

Anwendungs-Snapshots Anstelle des in Betriebssystemen üblichen prelinking fertigt DragonFly BSD bei Bedarf einen vollständigen Schnappschuss einer laufenden Anwendung mit all ihren dynamisch gelinkten Bibliotheken an, so dass weitere Instanzen schneller geladen werden können. Davon sollen vor allem große Programmpakete wie KDE profitieren können, die viele Bibliotheken nachladen müssen.

HAMMER Mit DragonFly BSD 2.0 wurde das nunmehr ausgereifte HAMMER als 64-Bit-Cluster-Dateisystem in DragonFly BSD vorgestellt. HAMMER unterstützt unter anderem unbegrenzt viele dynamische Snapshots einzelner Dateisysteme, Spiegelung und Partitionsgrößen von bis zu 1 Exbibyte. Die Verzeichnisstruktur wird mittels B-Bäumen gebildet.

Am 8. Februar 2012 wurde die Entwicklung des Nachfolgedateisystems HAMMER2 angekündigt. Zu den geplanten neuen Funktionen zählen inkrementelle Verzeichnisspiegelung, mehrere Stammverzeichnisse sowie die Unterstützung mehrerer Kompressionsalgorithmen, darunter LZ4 und zlib.

Erste Teile von HAMMER2 wurden mit DragonFly BSD 3.6 veröffentlicht. Seit DragonFly BSD 5.0 wird es standardmäßig ausgeliefert, ist jedoch vorerst noch experimentell gekennzeichnet.

Versionen VersionVeröffentlichungWesentliche Änderungen1.012. Juli 2004neues BSD-Installationsprogramm, Lightweight Kernel Threads (LWKT), variable symbolische Verknüpfungen (variant symlinks)1.28. April 2005überarbeiteter TCP-Stack, Unterstützung für X11 und pkgsrc1.47. Januar 2006GCC 3.4 wird verwendet, pkgsrc wird zum Standard, CITRUS-Framework für mehrsprachige Programmierung wurde aus NetBSD übernommen1.624. Juli 2006neuer Zufallszahlengenerator, Stabilitätsverbesserungen1.830. Januar 2007Implementierung virtueller Kernel1.106. August 2007Unterstützung für AHCI und GPT1.1226. Februar 2008Bluetooth-Unterstützung, GCC 4.1, eigener MTA (DMA), experimentelle Unterstützung für die x86-64-Plattform und das HAMMER-Dateisystem2.021. Juli 2008Verbesserungen des HAMMER-Dateisystems2.217. Februar 2009erste stabile Version von HAMMER, weitere Stabilitätsverbesserungen2.416. September 2009Unterstützung von devfs, NFS-Verbesserungen, neuer AHCI-Treiber2.66. April 2010tmpfs, swapcache, verschiedene Verbesserungen2.830. Oktober 2010WLAN-Stack aus FreeBSD, dm-crypt, LVM-Unterstützung2.1026. April 2011GCC 4.4, neu geschriebenes Bridging-System, enorme Geschwindigkeitsverbesserungen3.022. Februar 2012mehrprozessorfähiger Kernel ist Standard, ACPI-Verbesserungen, Unterstützung TrueCrypt-kompatibler Verschlüsselung, Unterstützung von ECC-Speicher3.23. November 2012Unterstützung für USB-3.0 und puffs, Geschwindigkeitsverbesserungen3.429. April 2013GCC 4.7, Einführung von DPorts als neues Portsystem3.625. November 2013SMP-Verbesserungen, Hardwarebeschleunigung für Intel-Grafikprozessoren3.84. Juni 2014USB4BSD als Standardtreiber, neue Grafiktreiber, letzte Versionsreihe mit i386-Unterstützung4.025. November 2014nur noch in 64 Bit verfügbar, Unterstützung von Haswell-GPUs und OpenGL-Beschleunigung, bis 256 CPUs werden gleichzeitig unterstützt4.229. Juni 2015GCC 5.1, verbesserte DRM-Unterstützung, eigener DragonFly Mail Agent (DMA) ersetzt sendmail4.47. Dezember 2015neuer Linker, neue Radeon- und Intel-i915-Treiber, überarbeitetes Locale-System, OpenSSL 1.0.1q4.62. August 2016verbesserte Grafikkarten- und SMP-Unterstützung, vorläufige Unterstützung für das Starten via EFI4.827. März 2017Zusammenarbeit mit EFI verbessert, bessere Kernel-Performance, Starten von eMMC-Laufwerken5.016. Oktober 2017Dateisystem HAMMER2 implementiert, Überarbeitung von IPFW5.2.218. Juni 2018Dateisystem HAMMER2 überarbeitet5.4November 2018neuer System-Compiler in GCC 8, verbesserte NUMA-Unterstützung, Netzwerk- und VM-Treiber-Updates 5.4.2 22. April 2019behebt ein seltenes potenzielles HAMMER2-Korruptionsproblem 5.4.3 20. Mai 2019 5.6.0 17. Juni 2019 bringt ein verbessertes virtuelles Memorysystem, enthält ein update für radeon und ttm und Performanceverbesserungen 5.6.1 19. Juni 2019 Behebt eine Fehlkonfiguration in sshd und behebt einen Lockup Fehler in ttm. 5.8.0 3. März 2020 6.0.0 10. Mai 2021 signifikante Arbeiten am dsynth (Paketbau), viele Verbesserungen an der System-Software, Arbeit am HAMMER2-Filesystem setzt sich fort (viele Verbesserungen von Tomohiro Kusumi) 6.2.1 9. Januar 2022 6.4.0 30. Dezember 2022

Trivia

Das Logo zeigt eine Libelle, die aufgrund der Form der Hinterflügel keine Großlibelle (Dragonfly) darstellt (siehe Abbildung), sondern eher einer Kleinlibelle (Damselfly) ähnelt.

Siehe auch Vergleich von BSD-Betriebssystemen

Einzelnachweise

Weblinks Offizielle Website (englisch) DragonFly-BSD-Ankündigung auf der FreeBSD-CURRENT-Mailingliste

Kategorie:Freies BSD-Betriebssystem Kategorie:Live-CD Kategorie:FreeBSD