Betriebssystemversion DragonFly BSD 5.6

Verfügbar freigeben DragonFlyBSD 5.6, ein Betriebssystem mit einem Hybridkernel, erstellt im Jahr 2003 zum Zweck der alternativen Entwicklung des FreeBSD 4.x-Zweigs. Unter den Funktionen von DragonFly BSD können wir ein verteiltes versioniertes Dateisystem hervorheben HAMMER, Unterstützung für das Laden „virtueller“ Systemkerne als Benutzerprozesse, die Möglichkeit, FS-Daten und Metadaten auf SSD-Laufwerken zwischenzuspeichern, kontextsensitive symbolische Variantenlinks, die Möglichkeit, Prozesse einzufrieren und gleichzeitig ihren Status auf der Festplatte zu speichern, ein Hybridkernel mit leichtgewichtigen Threads (LWKT) .

Haupt- Verbesserungenin DragonFlyBSD 5.6 hinzugefügt:

  • Das virtuelle Speicherverwaltungssystem wurde modernisiert. Viele Subsysteme im Zusammenhang mit virtuellem Speicher und PMAP wurden neu geschrieben.
    Der Code ist an vielen Stellen von der Sperrung befreit, einschließlich der Funktionen m_page_wakeup, vm_hold und vm_unhold. Die Effizienz der Nutzung des Prozessorcaches wurde erhöht, indem die Migration von VM-Objekten zwischen CPU-Kernen reduziert und der Overhead bei der Behandlung von Ausnahmen (Seitenfehlern) für gemeinsam genutzte Speicherbereiche reduziert wurde. Verbesserter Speicherseitenzuweisungsalgorithmus. Verzögerungen in der Funktion vm_page_alloc() wurden behoben. Die API vm_page_hash*() wurde hinzugefügt, um das Abrufen ohne Blockierung zu ermöglichen.

    Dadurch war es merklich möglich Produktivität erhöhen. Zum Beispiel
    Im Buildkernel-Test wurde die Zeit, die zum Ausführen von Vorgängen auf der Kernel-Seite benötigt wurde, um 40 % reduziert. Der Durchsatz stieg bei Verwendung von CPUs der Haswell-Familie um 7 % und bei Xeon um 14 %. Der SELF-EXEC S/DI-Benchmark zeigt eine Leistungssteigerung von 23 % für Haswell und 18 % für Xeon im Vergleich zur vorherigen Version. Im Test
    SELF-EXEC S/SH um 28 % bzw. 71 %, bei SELF-EXEC D/DI um 23 % bzw. 242 % (aufgrund des verbesserten Multithreadings), bei SELF-EXEC D/SH um 24 % bzw. 234 % FAULTZF um 17 % und 14 %, in DOCOMP um 22 % und 42 %,
    in NATIVEKERNEL um 5.1 % und 8.1 %;

  • Der DRM-Treiber und der TTM-Videospeicherverwaltungsmanager für AMD-Grafikkarten wurden erheblich aktualisiert. Unterstützung für neue Ryzen-APUs hinzugefügt. Verbesserte UEFI-Framebuffer-Unterstützung. In radeon/ttm wurde ein leistungsbeeinträchtigender Deadlock beseitigt. Die Einstellung der Verzögerungen während des Ladevorgangs wurde überarbeitet, um Konflikte zwischen dem i915-Treiber und dem X-Server zu vermeiden. DRM_IOCTL_GET_PCIINFO-Aufruf hinzugefügt, um die Mesa/Libdrm-Unterstützung zu verbessern. Viele Fehler und Mängel wurden beseitigt;
  • Der Synchronisationscode im HAMMER2-Dateisystem wurde neu geschrieben, was die Leistung dieses Dateisystems erheblich verbessert hat. Auch die Leistung sequenzieller Schreibvorgänge wurde verbessert.
    Um die Absturztoleranz zu verbessern, wurde die Abhängigkeitsverfolgung hinzugefügt, um die Aufteilung von Verzeichnissen/Dateien bei Erstellungs-, Umbenennungs- oder Löschvorgängen zu verhindern. Der Code für die Arbeit mit Snapshots wurde überarbeitet, um Verzögerungen zu reduzieren und die Konsistenz der Snapshots sicherzustellen. Verbesserte Handhabung gleichzeitiger Schreib- und Cache-Flush-Vorgänge. Verbesserte Implementierung der umount-Operation. Der Informationsgehalt von Meldungen über Integritätsverletzungen (CRC-Fehler) wurde erhöht.

    Als Standard-Root-Dateisystem wird HAMMER2 empfohlen. Clustering-Unterstützung ist noch nicht verfügbar. HAMMER2 FS zeichnet sich durch Funktionen wie separates Mounten von Snapshots, beschreibbare Snapshots, Kontingente auf Verzeichnisebene, inkrementelle Spiegelung, Unterstützung verschiedener Datenkomprimierungsalgorithmen, Multi-Master-Spiegelung mit Datenverteilung auf mehrere Hosts aus;

  • Erste Unterstützung für das FUSE-Subsystem zum Erstellen von Dateisystemen im Benutzerbereich hinzugefügt;
  • Verbesserte Leistung des PF-Paketfilters auf Multi-Core-Systemen;
  • Unterstützung für die Schutzmechanismen SMAP (Supervisor Mode Access Prevention) und SMEP (Supervisor Mode Execution Prevention) wurde implementiert, sofern diese in der CPU unterstützt werden. Mit SMAP können Sie den Zugriff auf User-Space-Daten durch privilegierten Code blockieren, der auf Kernel-Ebene ausgeführt wird. SMEP erlaubt keinen Übergang vom Kernel-Modus zur Ausführung von Code auf Benutzerebene, wodurch die Ausnutzung vieler Schwachstellen im Kernel blockiert werden kann (Shell-Code wird nicht ausgeführt, da er sich im Benutzerbereich befindet);
  • Blockierungscode hinzugefügt Anschläge MDS-Klasse (Microarchitectural Data Sampling) in Intel-Prozessoren. Erfordert aktualisierten Mikrocode, um zu funktionieren. Standardmäßig ist der Schutz über „sysctl machdep.mds_mitigation=MD_CLEAR“ deaktiviert und aktiviert. Durch die Aktivierung wird eine zusätzliche Latenz von 250 ns beim Kontextwechsel zwischen Benutzer- und Kernel-Bereich eingeführt.
  • Der Kernel ist standardmäßig mit Retpoline-Schutz gegen Spectre-Angriffe ausgestattet.
  • Viele Dienstprogramme des Basissystems wurden auf die Verwendung von LibreSSL umgestellt;
  • Aktualisierte Versionen von Komponenten von Drittanbietern, einschließlich xz 5.2.4,
    libarchive 3.3.3, libressl 2.9.1, openssh 8.0, ldns 1.7.0,
    libedit 2019. evdev, makefs, ministat, libfetch,
    dd. Die Aufrufe reallocarray(),timing_safe*(),freezero(),dup3(),recallocarray(),align_alloc(),explicit_bzero() wurden von OpenBSD nach libc verschoben. Standardmäßig wird zum Erstellen der Compiler gcc-5 anstelle von gcc-8 verwendet.

Source: opennet.ru

Kommentar hinzufügen