Nach sieben Monaten intensiver Entwicklung wurde die DragonFlyBSD 6.2 veröffentlicht, ein Betriebssystem mit hybridem Kernel, das 2003 mit dem Ziel ins Leben gerufen wurde, eine alternative Entwicklung des FreeBSD 4.x-Zweigs voranzutreiben. Zu den Besonderheiten von DragonFly BSD gehören das verteilte, versionsbasierte Dateisystem HAMMER, die Unterstützung für das Booten „virtueller“ Systemkerne als Benutzerprozesse, die Möglichkeit, Daten und Metadaten des Dateisystems auf SSD-Speicher zu cachen, kontextabhängige variable symbolische Links, die Option, Prozesse einzufrieren und deren Zustand auf der Festplatte zu speichern sowie ein hybrider Kernel, der leichtgewichtige Threads (LWKT) verwendet.
Die wichtigsten Verbesserungen, die in DragonFlyBSD 6.2 hinzugefügt wurden:
- Der Hypervisor NVMM wurde aus NetBSD übernommen und unterstützt die Hardwarevirtualisierungsmechanismen SVM für AMD-CPUs und VMX für Intel-CPUs. Im NVMM wird im Kernel nur das absolut notwendige Set an Schnittstellen um die Hardwarevirtualisierungsmechanismen ausgeführt, während der gesamte Code zur Hardwareemulation im Benutzerspeicher läuft. Für Aufgaben wie die Erstellung virtuellen Maschinen, die Zuweisung von Speicher und Verteilung von VCPU erfolgt mithilfe von Werkzeugen auf Basis der Bibliothek libnvmm, und zur Ausführung von Gastsystemen wird das Paket qemu-nvmm verwendet.
- Die Arbeit an dem Dateisystem HAMMER2 wurde fortgesetzt, das durch Funktionen wie das separate Einbinden von Snapshots, schreibbare Snapshots, Verzeichniskontingente, inkrementelles Mirroring und Unterstützung verschiedener Datenkomprimierungsalgorithmen sowie Multi-Master-Mirroring mit Datenverteilung auf mehrere Hosts hervorsticht. In dieser neuen Version wurde die Unterstützung des Befehls growfs implementiert, der das Ändern der Größe eines bestehenden HAMMER2-Partitions ermöglicht. Zusätzlich wurde experimentelle Unterstützung für die Komponente xdisk hinzugefügt, die es ermöglicht, HAMMER2-Partitionen von entfernten Systemen einzubinden.
- Die Komponenten der Schnittstelle DRM (Direct Rendering Manager), der Speicherverwaltung TTM und der amdgpu-Treiber sind mit dem Linux-Kernel 4.19 synchronisiert worden, was die Unterstützung von AMD-Chips bis hin zum APU 3400G ermöglicht. Der treiber drm/i915 für Intel-GPUs wurde aktualisiert und bietet jetzt Unterstützung für GPUs der Reihe Whiskey Lake sowie eine Lösung für Startabstürze. Der Radeon-Treiber wurde auf die Verwendung des Speicherverwaltungssystems TTM umgestellt.
- Im Poll-Aufruf wurde die Unterstützung für das POLLHUP-Ereignis implementiert, das zurückgegeben wird, wenn das andere Ende eines anonymen Kanals oder FIFO geschlossen wird.
- Im Kernel wurden die Algorithmen für die Arbeit mit Speicherseiten erheblich verbessert, die Effizienz bei der Auswahl von Seiten für den Austausch erhöht und das Verhalten ressourcenintensiver Anwendungen, wie beispielsweise Browser, auf Systemen mit begrenztem Arbeitsspeicher erheblich verbessert.
- Die Berechnung des Wertes von maxvnodes wurde geändert, um den Speicherverbrauch des Kernels zu reduzieren, da das Caching einer zu hohen Anzahl von vnodes die Effizienz verringern kann, insbesondere wenn die Datenblöcke zusätzlich auf Blockgeräteebene zwischengespeichert werden.
- In das Dienstprogramm fstyp wurde die Unterstützung für das Dateisystem BeFS integriert. Die Unterstützung für das FAT-Dateisystem wurde aus FreeBSD nach makefs übertragen. Die Funktionalität der Dienstprogramme fsck und fdisk wurde verbessert. Fehler im Code von ext2fs und msdosfs wurden behoben.
- Der ioctl Befehl SIOCGHWADDR wurde hinzugefügt, um die Hardwareadresse des Netzwerkinterfaces zu erhalten.
- In ipfw3nat wurde die Unterstützung für NAT für ICMP-Pakete hinzugefügt, implementiert durch die Wiederverwendung der icmp idport.
- Im Treiber ichsmb wurde die Unterstützung für Intel ICH SMBus-Controller für die Chips Cannonlake, Cometlake, Tigerlake und Geminilake hinzugefügt.
- Die Datei-Generierung von initrd wurde von vn auf makefs umgestellt.
- Die Standardbibliothek libc erhielt die Funktionen getentropy(), clearenv() und mkdirat(). Die Kompatibilität der Implementierung von shm_open() und /var/run/shm mit anderen Systemen wurde verbessert. Plattform-spezifische Typen __double_t und __float_t wurden hinzugefügt. In libdmsg wurden die Funktionen im Zusammenhang mit der Verschlüsselung zurückgebracht. Die Leistung von pthreads wurde gesteigert.
- Das dsynth-Tool zur lokalen Erstellung und Pflege binärer DPort-Repositories wurde um die Option „-M“ und die Variable PKG_COMPRESSION_FORMAT erweitert. Die Unterstützung des Paketmanagers pkg 1.17 und der zweiten Version von pkg-Metadaten wurde bereitgestellt.
- Die PAM-Bibliothek OpenPAM Tabebuia, das Passwortprüf-Tool passwdqc 2.0.2, die Pakete mandoc 1.14.6, OpenSSH 8.8p1, dhcpcd 9.4.1 und file 5.40 wurden importiert.
- Eine lokal ausnutzbare Sicherheitsanfälligkeit im Kernel, die es einem Benutzer ermöglichte, seine Privilegien im System zu erhöhen (CVE wird nicht angegeben), wurde behoben.
- Der ndis-Treiber, der die Verwendung von binären NDIS-Treibern aus Windows ermöglichte, wurde entfernt.
- Die Unterstützung für das ausführbare Dateiformat a.out wurde eingestellt.
Quelle: opennet.ru
