Veröffentlichung des Betriebssystems DragonFly BSD 5.8

Verfügbar Release DragonFlyBSD 5.8, 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.8:

  • Das Hauptpaket enthält das Dienstprogramm dsynth, das für den lokalen Aufbau und die Wartung eigener binärer DPort-Repositories vorgesehen ist. Es wird die Parallelisierung des Aufbaus einer beliebigen Anzahl von Ports unter Berücksichtigung des Abhängigkeitsbaums unterstützt. Bei der Vorbereitung einer neuen Version in DPort wurden auch zahlreiche Änderungen vorgenommen, die darauf abzielen, den Aufbau mehrerer abhängiger Pakete zu beschleunigen.
  • In der libc wurde ein effektiver Mechanismus zur Maskierung von Signalen implementiert, der malloc*() und ähnliche Funktionen vor Problemen durch Interrupt-Signale schützt. Für kurzfristiges Blockieren und Freigeben von Signalen wurden die Funktionen sigblockall() und sigunblockall() vorgeschlagen, die ohne Systemaufrufe arbeiten. Darüber hinaus wurde in der libc die Funktion strtok() für die Verwendung in Multithread-Anwendungen angepasst, und es wurden die Konstanten TABDLY, TAB0, TAB3 und die Funktion __errno_location hinzugefügt, um die Unterstützung für dports zu verbessern.
  • Die Komponenten der DRM (Direct Rendering Manager)-Schnittstelle wurden mit dem Linux-Kernel 4.9 synchronisiert, wobei Funktionen aus dem Kernel 4.12 portiert wurden, die darauf abzielen, die Unterstützung für Wayland zu verbessern.
    Der drm/i915-Treiber für Intel-GPUs wurde mit dem Linux-Kernel 4.8.17 synchronisiert und enthält Code aus dem Kernel 5.4 zur Unterstützung neuer Chips (Skylake, Coffelake, Amber Lake, Whiskey Lake und Comet Lake). Der drm/radeon-Treiber für AMD-Grafikkarten wurde mit dem Linux-Kernel 4.9 synchronisiert.
  • Die Algorithmen für das Paging des virtuellen Speichers wurden erheblich verbessert, wodurch Probleme mit der Benutzeroberflächenreaktionsfähigkeit beim Speichermangel beseitigt oder minimiert werden konnten. Probleme mit dem Einfrieren von Chrome/Chromium bei unzureichendem Systemspeicher wurden behoben.
  • Die Skalierung des Kernels auf Systemen mit einer großen Anzahl von Prozessorkernen wurde verbessert. Die Zeit für das Anfordern von Seiten im virtuellen Speicher wurde verkürzt. Die SMP-Konkurrenz unter Bedingungen des Speichermangels wurde reduziert. Die Effizienz des Aufrufs "open(… O_RDWR)" wurde erhöht.
  • Der Zufallszahlengenerator im Kernel wurde überarbeitet. Der RDRAND-Treiber wurde angepasst, um Entropie von allen CPUs zu sammeln. Die Intensität
    und der Umfang der RDRAND-Versorgung wurden reduziert, worauf zuvor 2-3 % der CPU-Zeit im Leerlauf verwendet wurden.
  • Neue Systemaufrufe realpath, getrandom und lwp_getname wurden hinzugefügt (letzterer ermöglicht die Implementierung von pthread_get_name_np).
  • Unterstützung für die Schutzmechanismen SMAP (Supervisor Mode Access Prevention) und SMEP (Supervisor Mode Execution Prevention) hinzugefügt. SMAP ermöglicht es, den Zugriff auf Daten im Benutzerspeicher aus privilegierten Code, der im Kernel-Modus ausgeführt wird, zu blockieren. SMEP verhindert, dass der Kernel-Modus auf Benutzermodus-Code zugreift, was die Ausnutzung vieler Schwachstellen im Kernel blockiert (Shell-Code wird nicht ausgeführt, da er sich im Benutzerspeicher befindet).
  • Die sysctl-Variablen für die Jail-Konfiguration wurden überarbeitet. Unterstützung für das Einhängen von nullfs und tmpfs aus der Jail hinzugefügt.
  • Ein Notfallmodus für das HAMMER2-Dateisystem wurde hinzugefügt, der im Wiederherstellungsprozess nach einem Ausfall verwendet werden kann. In diesem Modus ist es zulässig, Snapshots beim Aktualisieren von Inodes vor Ort zu zerstören (erlaubt das Löschen von Dateien und Verzeichnissen bei fehlendem freien Speicherplatz, wenn der Mechanismus copy-on-write nicht verwendet werden kann). Die Leistung wurde erheblich verbessert, dank der Überarbeitung der Unterstützung von Thread-Dispatching in HAMMER2. Der Prozess zum Entleeren von Puffern (Flush) wurde deutlich verbessert.
  • Die Zuverlässigkeit und Leistung von TMPFS wurde erhöht. Die Effizienz bei der Verarbeitung von Bedingungen mit unzureichendem freiem Speicher im System wurde verbessert.
  • Im Netzwerk-Stack für IPv4 wurde Unterstützung für Präfixe /31 implementiert (RFC 3021).
    In tap wurde die Verarbeitung von ioctl SIOCSIFMTU zur Unterstützung von MTU > 1500 verbessert. Unterstützung für SIOCSIFINFO_IN6 und SO_RERROR hinzugefügt.
  • Der iwm-Treiber wurde mit Unterstützung für drahtlose Intel-Chips synchronisiert (Unterstützung für iwm-9000 und iwm-9260 hinzugefügt).
  • Kompatible Funktionen basename() und dirname() für eine bessere Kompatibilität in Ports hinzugefügt.
  • fsck_msdosfs, sys/ttydefaults.h, AF_INET / AF_INET6 in libc/getaddrinfo(), calendar(1) und rcorder-visualize.sh wurden von FreeBSD übertragen. Funktionen aus math.h wurden von OpenBSD übertragen.
  • Die Versionen von Drittanbieterkomponenten wurden aktualisiert, darunter Binutils 2.34, Openresolv 3.9.2 und DHCPCD 8.1.3. Standardmäßig wird der Compiler gcc-8 verwendet.

Quelle: opennet.ru

60GB SSD 8Gb DDR4