DragonFly BSD

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
DragonFly BSD
Logo
Bildschirmfoto
DragonFly BSD 2.10.1 boot loader screenshot.png
Bootloader von DragonFly BSD 2.10.1
Basisdaten
Entwickler Matt Dillon und andere
Aktuelle Version 4.0.1
(25. November 2014)
Abstammung BSD
↳ FreeBSD
↳ DragonFly BSD
Kernel Hybridkernel
Architekturen x86-64
Lizenz BSD-Lizenz
Website www.dragonflybsd.org

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[Bearbeiten]

Das DragonFly-Projekt wurde vom ehemaligen FreeBSD-Entwickler Matt Dillon, der mit den Designentscheidungen für die Architektur des FreeBSD-5.x-Kernels, insbesondere bezüglich Kernel-Threading und SMP, nicht zufrieden war[1] und sich kurz zuvor mit den anderen FreeBSD-Entwicklern überworfen hatte,[2] initiiert. 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.[3]

Funktionen[Bearbeiten]

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[4] 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[Bearbeiten]

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[Bearbeiten]

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.[5]

Messaging API[Bearbeiten]

DragonFly BSD verwendet ein Nachrichtenaustauschsystem ähnlich dem von AmigaOS und anderen Microkerneln. Dieses dient der Kommunikation zwischen den einzelnen LWKT.[6] Jeder einzelne Lightweight-Kernel-Thread unterstützt dabei drei Arten von Nachrichtenports, die Nachrichten im Empfang nehmen können:

  • Threadports
  • Spinports[7]
  • Serializerports[8]

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.[9]

Anwendungs-Snapshots[Bearbeiten]

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[Bearbeiten]

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.[10] Zu den geplanten neuen Funktionen zählen inkrementelle Verzeichnisspiegelung, mehrere Stammverzeichnisse sowie die Unterstützung mehrerer Kompressionsalgorithmen, darunter LZ4 und zlib.[11]

Eine erste Version von HAMMER2 wurde mit DragonFly BSD 3.6 veröffentlicht.[12]

Versionen[Bearbeiten]

Version Veröffentlichung Wesentliche Änderungen
1.0 12. Juli 2004 neues BSD-Installationsprogramm, Lightweight Kernel Threads (LWKT), variable symbolische Verknüpfungen (variant symlinks)
1.2 8. April 2005 überarbeiteter TCP-Stack, Unterstützung für X11 und pkgsrc
1.4 7. Januar 2006 GCC 3.4 wird verwendet, pkgsrc wird zum Standard, CITRUS-Framework für mehrsprachige Programmierung wurde aus NetBSD übernommen
1.6 24. Juli 2006 neuer Zufallszahlengenerator, Stabilitätsverbesserungen
1.8 30. Januar 2007 Implementierung virtueller Kernel
1.10 6. August 2007 Unterstützung für AHCI und GPT
1.12 26. Februar 2008 Bluetooth-Unterstützung, GCC 4.1, eigener MTA (DMA), experimentelle Unterstützung für die x86-64-Plattform und das HAMMER-Dateisystem
2.0 21. Juli 2008 Verbesserungen des HAMMER-Dateisystems
2.2 17. Februar 2009 erste stabile Version von HAMMER, weitere Stabilitätsverbesserungen
2.4 16. September 2009 Unterstützung von devfs, NFS-Verbesserungen, neuer AHCI-Treiber
2.6 6. April 2010 tmpfs, swapcache, verschiedene Verbesserungen
2.8 30. Oktober 2010 WLAN-Stack aus FreeBSD, dm-crypt, LVM-Unterstützung
2.10 26. April 2011 GCC 4.4, neu geschriebenes Bridging-System, enorme Geschwindigkeitsverbesserungen
3.0 22. Februar 2012 mehrprozessorfähiger Kernel ist Standard, ACPI-Verbesserungen, Unterstützung TrueCrypt-kompatibler Verschlüsselung, Unterstützung von ECC-Speicher
3.2 3. November 2012 Unterstützung für USB-3.0 und puffs, Geschwindigkeitsverbesserungen
3.4 29. April 2013 GCC 4.7, Einführung von DPorts als neues Portsystem
3.6 25. November 2013 SMP-Verbesserungen, Hardwarebeschleunigung für Intel-Grafikprozessoren, experimentelle Version von HAMMER2
3.8 4. Juni 2014 USB4BSD als Standardtreiber, neue Grafiktreiber, letzte Versionsreihe mit i386-Unterstützung
4.0 25. November 2014 nur noch in 64 Bit verfügbar, Unterstützung von Haswell-GPUs und OpenGL-Beschleunigung, bis 256 CPUs werden gleichzeitig unterstützt

Siehe auch[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. Vorlage:Internetquelle/Wartung/Datum nicht im ISO-FormatMatthew Dillon: Behind DragonFly BSD. 8. Juli 2004, abgerufen am 9. Februar 2014 (englisch): „DragonFly split off from FreeBSD-5 over major architectural differences, not anything else. We really do feel that FreeBSD-5 is taking the wrong approach to SMP and building something that is so complex that it will ultimately not be maintainable.“
  2. Vorlage:Internetquelle/Wartung/Datum nicht im ISO-FormatWarner Losh: Slashdot: FreeBSD Core Developer Thrown Out. 4. Februar 2003, abgerufen am 9. Februar 2014 (englisch): „[T]his action was taken due to Matt's interdeveloper relation skills, not due to Matt's technical skills.“
  3. DragonFlyBSD: team. Abgerufen am 9. Februar 2014.
  4. Vorlage:Internetquelle/Wartung/Datum nicht im ISO-FormatJustin Sherrill: Any new packages? 29. September 2013, abgerufen am 9. Februar 2014.
  5. Jeffrey M. Hsu: The DragonFlyBSD Operating System. S. 2 f., abgerufen am 9. Februar 2014 (PDF).
  6. Vorlage:Internetquelle/Wartung/Datum nicht im ISO-FormatDavid Chisnall: DragonFly BSD: UNIX for Clusters? 15. Juni 2007, abgerufen am 9. Februar 2014.
  7. spinlock(9) – DragonFly BSD Kernel Developer’s Manual
  8. serializer(9) – DragonFly BSD Kernel Developer’s Manual
  9. msgport(9) – DragonFly BSD Kernel Developer’s Manual
  10. Vorlage:Internetquelle/Wartung/Datum nicht im ISO-FormatMatt Dillon: DESIGN document for HAMMER2. 8. Februar 2012, abgerufen am 9. Februar 2014.
  11. Vorlage:Internetquelle/Wartung/Datum nicht im ISO-FormatDaniel Flores: Google Summer of Code: HAMMER2 compression feature final report. 27. September 2013, abgerufen am 9. Februar 2014 (englisch).
  12. DragonFly Release 3.6. Abgerufen am 9. Februar 2014.

Weblinks[Bearbeiten]