Release des Betriebssystems DragonFly BSD 5.6

Verfügbar Release DragonFlyBSD 5.6, ein Betriebssystem mit hybridem Kernel, das im Jahr 2003 mit dem Ziel der alternativen Entwicklung des FreeBSD 4.x-Zweigs gegründet wurde. Zu den Besonderheiten von DragonFly BSD zählt das verteilte Versionsdateisystem HAMMER, die Unterstützung des Bootens von 'virtuellen' Systemkernen als Benutzerprozesse, die Möglichkeit der Daten- und Metadaten-Caching auf SSD-Laufwerken, kontextabhängige symbolische Links, die Möglichkeit, Prozesse einzufrieren und deren Zustand auf der Festplatte zu speichern, sowie einen hybriden Kernel, der leichtgewichtige Threads (LWKT) verwendet.

Haupt- Verbesserungen, hinzugefügt in DragonFlyBSD 5.6:

  • Das System zur Verwaltung des virtuellen Speichers wurde aktualisiert. Viele Teilsysteme, die mit virtualem Speicher und PMAP zu tun haben, wurden neu geschrieben.
    In vielen Bereichen wurde der Code von Sperren befreit, unter anderem in den Funktionen m_page_wakeup, vm_hold und vm_unhold. Die Effizienz der Nutzung des CPU-Caches wurde durch die Reduzierung der Migration von VM-Objekten zwischen CPU-Kernen und die Minimierung der Overheadkosten bei der Verarbeitung von Ausnahmen (Seitenfehler) für gemeinsam genutzte Speicherbereiche verbessert. Der Algorithmus zur Speicherzuweisung wurde optimiert. Verzögerungen bei der Funktion vm_page_alloc() wurden behoben. Die API vm_page_hash*() wurde hinzugefügt, um Abfragen ohne Sperren zu ermöglichen.

    Insgesamt konnte die Leistung deutlich steigern. Zum Beispiel,
    Im buildkernel-Test konnte die Zeit für Kernel-Operationen um 40 % reduziert werden. Die Durchsatzrate stieg um 7 % beim Einsatz von CPUs der Haswell-Familie und um 14 % bei Xeon. Im TEST SELF-EXEC S/DI gab es im Vergleich zur vorherigen Version einen Leistungszuwachs von 23 % für Haswell und 18 % für Xeon. Im Test
    SELF-EXEC S/SH entsprechend 28 % und 71 %, bei SELF-EXEC D/DI — 23 % und 242 % (aufgrund der Verbesserung der Multithreading-Leistung), bei SELF-EXEC D/SH um 24 % und 234 %, bei FAULTZF um 17 % und 14 %, bei DOCOMP um 22 % und 42 %,
    bei NATIVEKERNEL um 5,1 % und 8,1 %;

  • Der DRM-Treiber und der Manager für das Videoram-Management TTM für AMD-Grafikkarten wurden erheblich aktualisiert. Unterstützung für die neuen APU Ryzen wurde hinzugefügt. Die Unterstützung für den UEFI-Bildschirmpuffer wurde verbessert. In radeon/ttm wurde eine gegenseitige Sperre, die sich negativ auf die Leistung auswirkte, beseitigt. Das Timeout-Handling beim Booten wurde refaktoriert, um Konflikte zwischen dem i915-Treiber und dem X-Server zu vermeiden. Ein DRM_IOCTL_GET_PCIINFO-Aufruf wurde zur Verbesserung der Unterstützung für mesa/libdrm hinzugefügt. Viele Fehler und Unzulänglichkeiten wurden behoben;
  • Der Synchronisierungscode im HAMMER2-Dateisystem wurde umgeschrieben, was die Leistung dieses FS erheblich verbessert hat. Auch die Leistung von sequentiellen Schreibvorgängen wurde gesteigert.
    Um die Fehlertoleranz zu erhöhen, wurde eine Überwachung der Abhängigkeiten hinzugefügt, um die Aufteilung von Verzeichnissen/Dateien während der Operationen zum Erstellen, Umbenennen oder Löschen auszuschließen. Der Code zur Arbeit mit Snapshots wurde überarbeitet, um Verzögerungen zu verringern und die Konsistenz des Snapshots zu gewährleisten. Die Verarbeitung gleichzeitiger Schreibvorgänge und das Flushen des Caches auf die Festplatte wurden verbessert. Die Implementierung der umount-Operation wurde optimiert. Die Informationsdichte der Meldungen über Integritätsverletzungen (CRC-Fehler) wurde erhöht.

    HAMMER2 wird als Standard für das Root-Dateisystem empfohlen. Die Unterstützung für Cluster-Technologie ist derzeit nicht verfügbar. Das HAMMER2-Dateisystem zeichnet sich durch Funktionen wie das separate Einbinden von Snapshots, schreibbare Snapshots, Verzeichnisquoten, inkrementelles Spiegeln, Unterstützung verschiedener Datenkompressionsalgorithmen und Multi-Master-Spiegelung mit der Verteilung von Daten auf mehrere Hosts aus.

  • Erste Unterstützung für das FUSE-Subsystem wurde hinzugefügt, um Dateisysteme im Benutzerspeicher zu erstellen.
  • Die Leistung des Paketfilters PF auf Mehrkernsystemen wurde erhöht.
  • Die Unterstützung für die Schutzmechanismen SMAP (Supervisor Mode Access Prevention) und SMEP (Supervisor Mode Execution Prevention) wurde implementiert, vorausgesetzt, dass diese von der CPU unterstützt werden. SMAP ermöglicht es, den Zugriff auf Daten im Benutzerspeicher durch privilegierten Code, der im Kernel läuft, zu blockieren. SMEP verhindert den Übergang vom Kernelmodus zur Ausführung von Code auf Benutzerebene, was die Ausnutzung vieler Kernel-Sicherheitslücken einschränkt (Shellcode wird nicht ausgeführt, da er im Benutzerspeicher ist).
  • Ein Code zur Blockierung wurde hinzugefügt. Angriffe Klasse MDS (Microarchitectural Data Sampling) in Intel-Prozessoren. Für den Betrieb ist ein aktualisierter Mikrokode erforderlich. Standardmäßig ist der Schutz deaktiviert und kann über 'sysctl machdep.mds_mitigation=MD_CLEAR' aktiviert werden. Die Aktivierung führt zu einer zusätzlichen Verzögerung von etwa 250 ns beim Kontextwechsel zwischen Benutzer- und Kernelmodus.
  • Der Kernel wird standardmäßig mit Schutzmaßnahmen gegen Spectre-Angriffe durch Retpoline kompiliert.
  • Viele Dienstprogramme aus dem Basissystem wurden auf die Verwendung von LibreSSL umgestellt;
  • Die Versionen von Drittanbieter-Komponenten wurden aktualisiert, einschließlich xz 5.2.4,
    libarchive 3.3.3, libressl 2.9.1, openssh 8.0, ldns 1.7.0,
    libedit 2019-03-24. Von FreeBSD wurden evdev, makefs, ministat, libfetch,
    dd übernommen. Aus OpenBSD wurden die Aufrufe reallocarray(), timing_safe*(), freezero(), dup3(), recallocarray(), aligned_alloc(), explicit_bzero() in libc übernommen. Standardmäßig wird bei der Kompilierung der Compiler gcc-8 anstelle von gcc-5 verwendet.

Quelle: opennet.ru

60GB SSD 8Gb DDR4