DragonFly BSD

Screenshot der Software:
DragonFly BSD
Softwarebeschreibung:
Version: 5.2.2 Aktualisiert
Upload-Datum: 22 Jun 18
Entwickler: The DragonFly Team
Lizenz: Frei
Popularität: 50

Rating: 5.0/5 (Total Votes: 1)

DragonFly BSD ist ein Open-Source-BSD-Betriebssystem, das als logische Fortsetzung der FreeBSD-4.x OS-Serie entwickelt wurde. Es ist sehr ähnlich zu anderen BSD-basierten Distributionen wie FreeBSD, NetBSD oder OpenBSD. Es ist sozusagen eine Weggabelung, die der BSD-Basis die Möglichkeit gibt, in eine völlig neue Richtung zu gehen, die sich von der der FreeBSD-5-Serie unterscheidet. Darüber hinaus enthält es eine einzigartige Reihe von Funktionen, die es von anderen ähnlichen Betriebssystemen unterscheiden.


HAMMER ist die Hauptattraktion

HAMMER ist die Hauptattraktion von DragonFly, ein modernes, leistungsstarkes Dateisystem mit Funktionen für den historischen Zugriff und integrierter Spiegelung. Der Kernel ist auch einer der Gründe, warum DragonFly eine bessere BSD-Distribution ist.

Bietet zwei verschiedene Scheduler für den Kernel

Der Kernel von DragonFly enthält zwei verschiedene Scheduler, einen, der alle ausführbaren Einheiten plant (Lightweight Kernel Thread) und einen anderen, der für jeden Prozessor einen einzelnen Benutzer-Thread gleichzeitig auswählt und Benutzer-Threads abstrahiert (User Thread Scheduler). Zusätzlich enthält der Kernel einen komplexen Kernel-Speicherzuordner, der aus einem objektorientierten Speicherzuordner und einem Basis-Kernel-Malloc namens kmalloc (), dem DeviceFiles-Dateisystem (DEVFS), einem virtuellen Kernel (VKERNEL), NFS V3-RPC-Asynchronization und einem Festplatten-I / O-Scheduler-Framework (dsched).


Funktionen, viele Funktionen

Neben anderen interessanten Features können wir den NULL Dateisystem Layer (NULLFS) erwähnen, der Mountpoints ohne Looping unterstützt, TMPFS (Temporary Filesystem VFS), transparente Festplattenverschlüsselung, Managed SSD (Solid Storage Device) Unterstützung, Variante (Kontext) -sensitive) Symlinks, DNTPD (DragonFly Network Time Daemon) und DMA (DragonFly Mail Agent). Darüber hinaus können Benutzer jederzeit Prozesse auf der Festplatte überprüfen oder anhalten. Die Distribution bietet starke AHCI-Treiber, stabile Gerätenamen sowie eine fundierte Verschlüsselung und Datenträgerverwaltung.

Unterste Zeile

Insgesamt erweist sich DragonFly als ein modernes, benutzerfreundliches und sehr zugängliches UNIX-ähnliches Betriebssystem. Es kann täglich als Desktop-System oder als leistungsstarker BSD-Server verwendet werden.

Was ist neu in dieser Version:

  • DragonFly Version 5.2.1 wurde veröffentlicht, mit Meltdown / Spectre Schadensbegrenzung, vielen Verbesserungen zu HAMMER2, ipfw und beschleunigtem Video, plus (in 5.2.1 Update) Update für CVE-2018-8897.

Was ist neu in der Version:

  • Christian Groessler (1):
  • telnetd: Systeminformationen (Betriebssystem und Architektur) vor der Anmeldeaufforderung drucken.
  • Matthew Dillon (7):
  • hammer2 - Fix dividiere durch 0 Rennen
  • Kernel - selective MFC des Kerns umtx Arbeit von Master
  • kernel - Update umtx Dokumentation
  • libc und pthreads - Beheben Sie Probleme mit atfork mit nmalloc, update dmalloc
  • hammer2 - Fix Rename Rennen umbenennen
  • hammer2 - optimieren Sie hammer2_pfs_memory_wakeup ()
  • hammer2 - Fix unbestimmte schmutzige Ketten wegen umbenennen
  • Sascha Wildner (5):
  • hammer2.8: Tippfehler korrigieren.
  • Sagen Sie an verschiedenen Stellen "Hammer2" statt "Hammer".
  • mtree: Behebt den Eigentümer für mehrere Verzeichnisse in / usr / share.
  • libc / nls: Verwendet das aktuelle Gebietsschema (durch den Thread festgelegt).
  • libarchive: Setzen Sie das Commit zurück, das nicht gepusht werden soll.

Was ist neu in Version 4.8.1:

  • Kernel:
  • Refactor-Puffer-Cache-Code, um dynamische KVA-Reservierungen zu entfernen. Stattdessen ist alle KVA beim Booten reserviert. Speichert uns vor unnötigen IPIs und ermöglicht eine deutliche Vereinfachung des Puffer-Cache-Codes.
  • Fügen Sie vfs.repurpose_enable hinzu (im Test, standardmäßig deaktiviert). Diese Funktion kann aktiviert werden, um die IPI- und VM-Verwaltungslast auf einer Maschine, die große Mengen an Datei-E / A ausführt, z. B. von einer NVMe-SSD, durch Umgehung des normalen VM-Seitenwiederaufbereitungsmechanismus erheblich zu reduzieren. Wenn diese Option aktiviert ist, wird die Funktion nur bei hohen E / A-Lasten ausgelöst. Es funktioniert, indem die VM-Seiten, die einem Puffer an Ort und Stelle (wenn möglich) zugrunde liegen, neu zugewiesen werden, um die Seiten in der KVA des Puffers nicht löschen zu müssen. Die normale Wiederverwendung der VM-Seite (die sonst durch die E / A-Last überlastet würde) wird ebenfalls umgangen.
  • Ändern Sie, wie die IPIQ verarbeitet wird, insbesondere erstellen Sie einen unabhängigen Xinterrupt-Vektormechanismus für Seiten-Invalidierungen, die ignorieren (werden), selbst wenn ein kritischer Abschnitt gehalten wird. Implementieren Sie machdep.optimized_invltlb (standardmäßig deaktiviert, im Test), wodurch vermieden wird, dass tbl-Invalidisierungs-IPIs in den Leerlaufzustand versetzt werden.
  • Behebe zahlreiche Rennen, die unter extremen Belastungen auftreten können. Die meisten Anwendungsfälle würden diese niemals auslösen, aber unsere Baukästen haben gelegentlich getan. Zum Beispiel gab es ein Rennen mit zwei Anweisungen, bei dem das CPU-Bit für eine PMAP gelöscht wurde (für zwei Anweisungen) und bewirken, dass ein TLB-IPI gleichzeitig auf einer anderen CPU für dieselbe PMAP nicht erkannte, dass CPU die PMAP verwendete . Das Problem besteht darin, die CR3-Neuladeoptimierung für den LWP- & gt; LWP-Switch (selbe proc) zu deaktivieren.
  • Behebung eines HAMMER-Fehlers, der dazu führen kann, dass ein DATA CRC-Fehler nicht korrekt gemeldet wird.
  • Repariere einen Doppelschreibvorgang, der durch die Art und Weise ausgelöst wird, wie HAMMER cluster_write () verwendet. Dies verbessert die Schreibleistung von HAMMER erheblich.
  • Zahlreiche andere HAMMER-Bereinigungen und -Fixes sind ebenfalls eingegangen.
  • Behebt eine harte Sperre, die in getpbuf * () aufgrund einer Fehlinterpretation des Rückgabewerts einer atomaren Operation auftreten konnte.
  • Behebung eines Stacking-Interrupts, der in einem 10-Anweisungsfenster auftreten kann, das möglicherweise (aber nicht frei verfügbar) den Kernel-Stack ausführt.
  • Pmap-bezogene IPIs werden für bestimmte Puffer-Cache-Operationen halbiert, indem nicht darauf geachtet wird, den TLB ungültig zu machen, und auf der anderen Seite der TLB beim Eingeben eines neuen PTE immer ungültig gemacht wird, selbst wenn der vorherige Inhalt ungültig war. Dies verbessert die Leistung und vereinfacht das Debuggen, indem eine problematische Optimierung entfernt wird.
  • Repariere eine Anzahl von schwer auszulösenden SMP-Rassen, insbesondere eine, die sich auf gleichzeitige Umnotierungen verschiedener Mount-Punkte bezieht, die der Bulk-Build auslösen könnte. Fixiere auch ein mountctl vs umount Rennen.
  • Verringern Sie die Anzahl der atomaren Ops im Switch-Pfad.
  • Repariere einen Namenscache-Race / Panic, der bei extremer Belastung zusammen mit vielen mount / umount-Aktivitäten auftreten kann.
  • Schränken Sie% rip sampling auf root ein.
  • Behebung eines Problems mit getpid () in vfork () beim Threading. Insbesondere können gleichzeitige vfork () s in einem Thread-Programm bewirken, dass die falsche PID von getpid () im untergeordneten Element vor exec zurückgegeben wird.
  • Repariere ein seltenes Tsleep- / Callout-Rennen, wenn der Callout-Timer auslöst, bevor das tsleep () vollständig eingerichtet ist.
  • Bereinigen Sie die Nachrichtencache-Standnachrichten auf der Konsole. Geben Sie insbesondere die richtige verstrichene Zeit und den td_comm des betreffenden Threads an.
  • Reduzieren Sie Speicher-Testing und Frühstart-Nullung, um die Startzeiten auf Systemen mit großen RAM-Mengen zu verbessern.
  • Entfernen Sie den leeren Seiten-Nullstellungscode vollständig. Das Nullen einer Seite auf einer modernen CPU bei Bedarf ist aus vielen Gründen besser und kann aufgrund von Cache-Effekten in Kombination mit dem Verbraucher, der auf Daten auf der Seite zugreift, tatsächlich schneller sein. Entfernen Sie PG_ZERO, weil es nicht mehr benötigt wird. Das Entfernen von PG_ZERO macht den Kernel auch mehr debuggbar, indem eine weitere mögliche Quelle für Kreuzkontamination entfernt wird.
  • Refaktorieren und beenden Sie die Implementierung der CPU-Lokalisierung für Kernel-Speicherzuweisungen. Kombinieren Sie mit NUMA Bewusstsein. Dies funktioniert für cpu-lokalisierte oder kurzlebige Kernel-Datenstrukturen. Die beiden werden in unserer PQ_L2_SIZE-Abstraktion kombiniert, die früher der Malcode der VM-Seite war. Dieser Code behandelt jetzt auch die CPU-Lokalisierung und NUMA-Erkennung.
  • Behebt viele Probleme mit vkernel und verbessert die vkernel-Leistung erheblich.
  • Aktualisieren Sie kern.proc.pathname, ein sysctl, das von Programmen verwendet wird, um den Pfad des laufenden Programms zu finden. Diese sysctl wurde ursprünglich implementiert, bevor wir genügend Daten gespeichert haben, um einen vollständigen, richtigen Pfad zurückzugeben.
  • Synchronisieren Sie ACPICA von Intel (dies tritt regelmäßig auf).
  • Fix die memcpy () Assembly ABI. Die Assembly gab das ursprüngliche Argument (dst) nicht zurück. Behebt keine bekannten Probleme, schließt aber ein Loch, wenn GCC manchmal beschließt, memcpy während der Code-Generierung aufzurufen.
  • Viele Commits zur Beseitigung von -O2-Warnungen und Fehlern. Der Kernel ist jetzt standardmäßig mit -O2 kompiliert.
  • Fügen Sie eine Problemumgehung für einen fehlerhaften Ertrag im ACPI-Pfad hinzu (auch Buggy-ACPI-Code genannt).
  • Repariere einen STOP / CONT-Lauf, der durch ein anstehendes Signal zur falschen Zeit ausgelöst werden könnte.
  • Threaded Coredump behebt und repariert eine Sperre, die sich auf dieselbe bezieht, wenn mehrere Threads desselben Prozesses gleichzeitig segmentieren.
  • Behebung eines CAM / VM-Deadlocks, der aufgrund eines Fehlers in uiomove_nofault () auftreten konnte. Dies könnte einen 'unbestimmten Wartepuffer' während des starken Paging / Swappings verursachen.
  • Fügen Sie Code hinzu, um verlorene IPIs zu erkennen und damit umzugehen. Dies ist hauptsächlich für vkernels, bei denen einige virtuelle Hosts IPIs verlieren können. Echte CPUs sollen keine IPIs verlieren.
  • Verschiedene Korrekturen zu clock_gettime ().
  • Entfernen Sie weitere Spuren des MPLOCK. Alle kritischen Pfade sind seit langem von dieser Sperre entfernt, aber es gibt noch einige unkritische Stellen, die sie benutzen.
  • Überarbeiten Sie den Code zum Löschen von Prozessen mit geringem Arbeitsspeicher und beheben Sie eine Reihe von Rassen, die das Funktionieren der Funktion verhindern könnten.
  • Korrigieren Sie eine Systemsperre mit VMM und refaktorieren Sie den VMX-Code.
  • Behebt einen Deadlock, wenn numvnodes maxvnodes erreicht, was unter schweren Lasten auftreten kann. Fixiere auch einen kleinen Kernel-Speicherleck, wenn 'df' oder Dateisystem-Sync einen Unmount synchronisiert. Reduzieren Sie auch die maxvnodes-Berechnung geringfügig. Beispiel: Eine Maschine mit 8 GB RAM setzt jetzt maxvnodes auf 478483 statt 598103.
  • Behebt eine seltene Panik, die durch vm_object_page_remove () ausgelöst werden kann, wenn user_yield () nicht richtig aufgerufen wird, während ein Spinlock gehalten wird, und dann entschlatet.
  • Verringern Sie die Größe einiger dynamisch zugewiesener Kernel-Strukturen. Insbesondere sind übermäßig große Inode-Hash-Tabellenzuordnungen nun kleiner. Betrifft in erster Linie UFS (die DragonFlyBSD nicht viel verwendet).
  • Hinzufügung einer Problemumgehung für AMD erratum 793.
  • Behebung eines Deadlocks, der bei Stacked Cluster _ * () E / A-Aufrufen auftreten kann.
  • Es wurde ein Fehler behoben, bei dem das Laden rekursiver Module zum Deadlock führen konnte.
  • Beheben Sie einen dummen Fehler im NFS-Code "silverlusame" (NFS auf der Serverseite), der dazu führen könnte, dass der "sillyrename" -Code des NFS-Servers die Datei "alberne umbenannt" nie entfernt. Wie dumm!
  • Bessere Arbeit mit High-NCPU + Low-Memory-Konfigurationen.
  • Refactored shared spinlocks, um die Menge an Spin zu reduzieren, die auftreten kann, wenn mehrere CPUs gleichzeitig einen gemeinsamen Spinlock erhalten.
  • Überarbeiten Sie Namenscache-Operationen, um die SMP-Konkurrenz noch weiter zu reduzieren. Dadurch wird die simultane, nicht konfliktbehaftete Einzelkomponentenleistung auf Systemen mit vielen Kernen um mindestens das 25-fache verbessert und die ref- und unref-Operationen von vnode und mount structure erheblich reduziert.
  • Überholen Sie zahlreiche andere Kernel-Strukturen, um die Cache-Lokalität zu verbessern und das Prellen der Cache-Zeilen zu reduzieren.
  • Es wurde ein Fehler im SMBFS-Dateiumbenennungscode behoben.
  • Implementieren Sie RLIMIT_RSS, einen pro-process-RSS-Limiter, der lokales Paging pro Prozess erzwingt. Diese Funktion kann verwendet werden, um zu verhindern, dass ein Prozess den Rest der Maschine in einen Hard Case verwandelt.
  • Erhöhen Sie den maximal unterstützten Swap Space. Das Maximum ist jetzt hauptsächlich durch RAM begrenzt und wird in den Zehntel Terabytes liegen (wenn Sie genug RAM für die unterstützenden Verwaltungsstrukturen haben). Erhöhen Sie auch den KVM des Kerns von 128G auf 511G.
  • Dynamische Pmap-Löschung implementieren (standardmäßig deaktiviert). Dadurch wird der PMAP-Code angewiesen, Zwischenseiten-Tabellenseiten und PDs aus der PMAP im laufenden Betrieb zu löschen. Dies kann nützlich sein, wenn der Arbeitsspeicher knapp ist. Beachten Sie jedoch, dass die Ausführung von Programmen verlangsamt wird, die Speicher mit hoher Geschwindigkeit zuweisen und freigeben.
  • Refaktorieren Sie, wie benutzerfreundliche Ebenen funktionieren, und machen Sie die ausgewählten netten Werte wichtiger als zuvor.
  • Fügen Sie DragonFly einen leistungsstarken nativen NVME-Treiber hinzu, der von Matt Dillon geschrieben wurde. Dieser Treiber verwendet MSI-X-Vektoren und alle verfügbaren Warteschlangen, die vom Gerät unterstützt werden, per-cpu-Lokalisierung ohne Sperren oder minimales Sperren (in den meisten Fällen keine SMP-Konflikte) und ist in der Lage, IOPS und Durchsatz zu verfälschen.
  • Grafiken:
  • Stabilisiert Broadwell und Skylake, bringt uns zum Linux 4.6 äquivalenten DRM.
  • Implementieren Sie die Linux i2c-API, um die Portierung zu vereinfachen.
  • Repariere ein paar alte Fehler, einschließlich einer Sperrreihenfolge, die die Videowiedergabe (und den Rest von X) ausbremsen könnte.
  • Behebung eines Kernel-Drm-Thread-Prioritätsfehlers, der es Benutzerprozessen erlaubte, eine höhere Priorität als der drm-Helper-Thread zu haben. Dies behebt die meisten vorübergehenden Videostalle, die in Browsern gemeldet werden.
  • Behandeln Sie den EFI-Framebuffer, der an DRM übergeben wird, verbessern Sie das Syscon-VT-Switching und beheben Sie einen zugehörigen Deadlock. Lassen Sie den Kernel auch versuchen, von der X-Konsole zurück in die Konsole zu wechseln, wenn eine Panik auftritt.
  • Vernetzung:
  • Viele Verbesserungen auf der ganzen Linie.
  • iwm - Behebt ein Problem, das durch invertierte Logik verursacht wird. Zahlreiche weitere Verbesserungen verbessern die Leistung erheblich.
  • wlan - Unterstützung für asynchronen bg-Scan und andere hinzugefügte Funktionen.
  • Andere Treiber:
  • nvme - Der Standard-Kernel-Build sowie Fixes und Leistungsverbesserungen wurden hinzugefügt.
  • mmcsd - Signifikante eMMC-Unterstützung für DragonFly.
  • ahci - Einige Kompatibilitätsanpassungen und weitere Macken wurden hinzugefügt, um kaputte Chipsätze, insbesondere Port-Multiplier, zu unterstützen. Implementieren Sie auch FBS (FIS-Based-Switching), wenn es vom Chipsatz unterstützt wird.
  • Unterstützung für Trackpoint und Elantech hinzugefügt.
  • Benutzerland:
  • systat erweitert, um mehrere Interrupts zu reduzieren, die zum selben Treiber gehören, da es oft zu viele gibt, um sie jetzt aufzulisten.
  • systat -vm 1 wurde erheblich verbessert und überarbeitet, um nützlichere Informationen zu melden und Felder zu entpacken, damit sie nicht ineinander übergehen. Und fügen Sie 'nvme' zur Block-Gerät-Übereinstimmung hinzu. Passen Sie auch die erweiterte vmstats-Anzeige an und ändern Sie, wie ozfod und nzfod gemeldet werden.
  • 'vmstat 1' Ausgabe refaktoriert. Alle Felder gingen ineinander über wegen der hohen Leistung einer modernen Maschine, die vor 30 Jahren existierte.
  • Ändern Sie die mount / mountd-Signalisierung, um unnötige Mountlist-Scans und -Befehle von mount_null- und mount_tmpfs-Operationen zu reduzieren. Nur unter starker gleichzeitiger Verwendung von mount / umount ist dies wirklich wichtig, aber der Massenaufbau erzeugt diese Situation.
  • Repariere zahlreiche fork / exec * () -Lecks, die libc auslösen kann, weil O_CLOEXEC nicht atomar verwendet wird. Fügen Sie Funktionen wie popen () und mk * stemp * () verschiedene O_CLOEXEC-Features hinzu (fügen Sie mkostemp () und mkostemps () hinzu). Korrigiert ein Datei-Deskriptor-Leck in popen (), wenn es in einer Thread-Umgebung ausgeführt wird.
  • Seien Sie netter bei Pthreads in vfork (), indem Sie dem neuen Unterprozess lwp die gleiche TID geben wie dem, der vfork () aufgerufen hat. Dies ermöglicht es, dass pThread-Unterstützungsfunktionen in dem Kind während der Vfork ausgeführt werden, ohne Pthreads zu implodieren.
  • Viele Kompatibilitätskorrekturen in den Headern, um Bulk-Builds für dps zu verbessern.
  • Mehrere OpenSSL-Importe für Sicherheitsfixes.
  • Resynchronisieren Sie OpenSSH, um die Aktualität zu verbessern.
  • Trennen Sie Kernel-C-Flags, indem Sie den Kernel-Build KCFLAGS anstelle von CFLAGS verwenden.
  • Entfernen Sie zahlreiche alte ISA-Treiber vollständig aus dem Baum. Da DragonFlyBSD jetzt nur 64-Bit-fähig ist, können wir damit beginnen, alte Treiber zu entfernen, die auf 64-Bit-Plattformen nicht existieren.
  • Führen Sie WORLD_CFLAGS und WORLD_CCOPTLEVEL ein, standardmäßig auf -O. Dies erleichtert das Kompilieren von World-O2 oder was auch immer (z. B. WORLD_CCOPTLEVEL = 2). Wir raten jedoch von 3 oder mehr Gebrauch ab. Gültige Werte sind 0, 1, 2, 3, s, g und 'fast'.
  • Passen Sie die STATUS-Formatierung für ps an, um sie lesbarer zu machen und nicht mehr verwendbare uralte Flags zu entfernen und nur Unordnung zu erzeugen.
  • Fix malloc () -Ausrichtung für kleine Zuweisungen. Die minimale Ausrichtung ist jetzt 16 für Zuordnungen im Bereich von 16-128 Byte statt 8. Beachten Sie, dass Zuweisungen von Zweierpotenz immer auf natürliche Weise ausgerichtet wurden, einige Programme jedoch Vielfache von (z. B. 16) wie "48" und nehme 16-Byte-Ausrichtung an.
  • Fortune factored, hinzugefügt.
  • powerd - Ergänzen Sie das temperaturbasierte Management mit einer neuen Option -H lotemp: hightemp. Diese Funktion ist besonders nützlich bei Laptops mit schlechter Kühlung und bei BIOS-Modellen, die absichtlich bei zu hoher Temperatur drosseln. Powerd erkennt nun auch Zustandsänderungen (die die Liste der verfügbaren Frequenzen ändern können) und wechselt den Dienst ordnungsgemäß, wenn eine Änderung des Leistungsstatus auftritt.
  • Viele Korrekturen von libthread_xu / pthreads und Anpassungen zur Verbesserung der DDP-Kompatibilität.
  • Fügen Sie dem vkernel Funktionen zum Kopieren und Schreiben hinzu. Beispielsweise können mehrere vkernels ein einzelnes Festplatten-Image verwenden, indem sie jede interne COW-Änderung intern rammen.
  • / usr / src / secure rewired, Konflikte aus libmd, libcrypt.
  • entfernt
  • Verschiedene Tools wurden im Basissystem aktualisiert:
  • Der Compiler wurde auf GCC 5.4.1 aktualisiert.
  • Wir haben jetzt einen Goldlinker mit LTO.
  • binutils 2.25
  • weniger 481.
  • OpenSSL / LibRessL wurde komplett überarbeitet. Base verwendet jetzt liquessl.
  • Mehrere Zeitzonenupdates.
  • Hammer Status:
  • Verschiedene Verbesserungen. Eine Sache, die es nicht in die Veröffentlichung geschafft hat, war ein Versionssprung, um einen schnelleren CRC-Algorithmus mit einem anderen Polynom zu verwenden. Diese Arbeit wird MFC-to-Release sein, sobald der Test abgeschlossen ist. Benutzer sollten sich jedoch nicht zu viele Gedanken darüber machen, da der schwerwiegendste Performance-Fix in der Version enthalten ist (ein Fix für den cluster_write () - Code für Dateisystem-Schreibvorgänge).
  • Hammer2 Status:
  • Die Entwicklung geht weiter, aber noch kein Wort zu einer ersten Veröffentlichung.
  • Clang-Status:
  • Ein Start-Framework wurde hinzugefügt, um clang als alternativen Basis-Compiler in DragonFly zu verwenden, um gcc 4.7 zu ersetzen. Es ist noch nicht abgeschlossen. Clang kann natürlich als Paket hinzugefügt werden.
  • 64-Bit-Status:
  • Beachten Sie, dass DragonFly ab 4.6 ein 64-Bit-Betriebssystem ist und nicht auf 32-Bit-Hardware ausgeführt werden kann.
  • AMD Ryzen Unterstützung ist in der Veröffentlichung und weitere Arbeit wird in neuen Ryzen Entwicklungen auftreten. Es gibt einige cpu-berichtete Topologie-Probleme, die behoben werden und MFC'd. Es gibt einige Stabilitätsprobleme, die momentan auf einem AMD Microcode-Update warten, um zu lösen / erneut zu testen. Ryzen-Nutzer können sicher sein, dass wir den Überblick behalten!

Was ist neu in Version 4.8.0:

  • Kernel:
  • Refactor-Puffer-Cache-Code, um dynamische KVA-Reservierungen zu entfernen. Stattdessen ist alle KVA beim Booten reserviert. Speichert uns vor unnötigen IPIs und ermöglicht eine deutliche Vereinfachung des Puffer-Cache-Codes.
  • Fügen Sie vfs.repurpose_enable hinzu (im Test, standardmäßig deaktiviert). Diese Funktion kann aktiviert werden, um die IPI- und VM-Verwaltungslast auf einer Maschine, die große Mengen an Datei-E / A ausführt, z. B. von einer NVMe-SSD, durch Umgehung des normalen VM-Seitenwiederaufbereitungsmechanismus erheblich zu reduzieren. Wenn diese Option aktiviert ist, wird die Funktion nur bei hohen E / A-Lasten ausgelöst. Es funktioniert, indem die VM-Seiten, die einem Puffer an Ort und Stelle (wenn möglich) zugrunde liegen, neu zugewiesen werden, um die Seiten in der KVA des Puffers nicht löschen zu müssen. Die normale Wiederverwendung der VM-Seite (die sonst durch die E / A-Last überlastet würde) wird ebenfalls umgangen.
  • Ändern Sie, wie die IPIQ verarbeitet wird, insbesondere erstellen Sie einen unabhängigen Xinterrupt-Vektormechanismus für Seiten-Invalidierungen, die ignorieren (werden), selbst wenn ein kritischer Abschnitt gehalten wird. Implementieren Sie machdep.optimized_invltlb (standardmäßig deaktiviert, im Test), wodurch verhindert wird, dass tbl-Invalidisierungs-IPIs in den Leerlaufzustand versetzt werden.
  • Behebe zahlreiche Rennen, die unter extremen Belastungen auftreten können. Die meisten Anwendungsfälle würden diese niemals auslösen, aber unsere Baukästen haben gelegentlich getan. Zum Beispiel gab es ein Rennen mit zwei Anweisungen, bei dem das CPU-Bit für eine PMAP gelöscht wurde (für zwei Anweisungen) und bewirken, dass ein TLB-IPI gleichzeitig auf einer anderen CPU für dieselbe PMAP nicht erkannte, dass CPU die PMAP verwendete . Das Problem besteht darin, die CR3-Neuladeoptimierung für den LWP- & gt; LWP-Switch (selbe proc) zu deaktivieren.
  • Behebung eines HAMMER-Fehlers, der dazu führen kann, dass ein DATA CRC-Fehler nicht korrekt gemeldet wird.
  • Repariere einen Doppelschreibvorgang, der durch die Art und Weise ausgelöst wird, wie HAMMER cluster_write () verwendet. Dies verbessert die Schreibleistung von HAMMER erheblich.
  • Zahlreiche andere HAMMER-Bereinigungen und -Fixes sind ebenfalls eingegangen.
  • Behebt eine harte Sperre, die in getpbuf * () aufgrund einer Fehlinterpretation des Rückgabewerts einer atomaren Operation auftreten konnte.
  • Behebung eines Stacking-Interrupts, der in einem 10-Anweisungsfenster auftreten kann, das möglicherweise (aber nicht frei verfügbar) den Kernel-Stack ausführt.
  • Pmap-bezogene IPIs werden für bestimmte Puffer-Cache-Operationen halbiert, indem nicht darauf geachtet wird, den TLB ungültig zu machen, und auf der anderen Seite der TLB beim Eingeben eines neuen PTE immer ungültig gemacht wird, selbst wenn der vorherige Inhalt ungültig war. Dies verbessert die Leistung und vereinfacht das Debuggen, indem eine problematische Optimierung entfernt wird.
  • Repariere eine Anzahl von schwer auszulösenden SMP-Rassen, insbesondere eine, die sich auf gleichzeitige Umnotierungen verschiedener Mount-Punkte bezieht, die der Bulk-Build auslösen könnte. Fixiere auch ein mountctl vs umount Rennen.
  • Verringern Sie die Anzahl der atomaren Ops im Switch-Pfad.
  • Repariere einen Namenscache-Race / Panic, der bei extremer Belastung zusammen mit vielen mount / umount-Aktivitäten auftreten kann.
  • Schränken Sie% rip sampling auf root ein.
  • Behebung eines Problems mit getpid () in vfork () beim Threading. Insbesondere können gleichzeitige vfork () s in einem Thread-Programm bewirken, dass die falsche PID von getpid () im untergeordneten Element vor exec zurückgegeben wird.
  • Repariere ein seltenes Tsleep- / Callout-Rennen, wenn der Callout-Timer auslöst, bevor das tsleep () vollständig eingerichtet ist.
  • Bereinigen Sie die Nachrichtencache-Standnachrichten auf der Konsole. Geben Sie insbesondere die richtige verstrichene Zeit und den td_comm des betreffenden Threads an.
  • Reduzieren Sie Speicher-Testing und Frühstart-Nullung, um die Startzeiten auf Systemen mit großen RAM-Mengen zu verbessern.
  • Entfernen Sie den leeren Seiten-Nullstellungscode vollständig. Das Nullen einer Seite auf einer modernen CPU bei Bedarf ist aus vielen Gründen besser und kann aufgrund von Cache-Effekten in Kombination mit dem Verbraucher, der auf Daten auf der Seite zugreift, tatsächlich schneller sein. Entfernen Sie PG_ZERO, weil es nicht mehr benötigt wird. Das Entfernen von PG_ZERO macht den Kernel auch mehr debuggbar, indem eine weitere mögliche Quelle für Kreuzkontamination entfernt wird.
  • Refaktorieren und beenden Sie die Implementierung der CPU-Lokalisierung für Kernel-Speicherzuweisungen. Kombinieren Sie mit NUMA Bewusstsein. Dies funktioniert für cpu-lokalisierte oder kurzlebige Kernel-Datenstrukturen. Die beiden werden in unserer PQ_L2_SIZE-Abstraktion kombiniert, die früher der Malcode der VM-Seite war. Dieser Code behandelt jetzt auch die CPU-Lokalisierung und NUMA-Erkennung.
  • Behebt viele Probleme mit vkernel und verbessert die vkernel-Leistung erheblich.
  • Aktualisieren Sie kern.proc.pathname, ein sysctl, das von Programmen verwendet wird, um den Pfad des laufenden Programms zu finden. Diese sysctl wurde ursprünglich implementiert, bevor wir genügend Daten gespeichert haben, um einen vollständigen, richtigen Pfad zurückzugeben.
  • Synchronisieren Sie ACPICA von Intel (dies tritt regelmäßig auf).
  • Fix die memcpy () Assembly ABI. Die Assembly gab das ursprüngliche Argument (dst) nicht zurück. Behebt keine bekannten Probleme, schließt aber ein Loch, wenn GCC manchmal beschließt, memcpy während der Code-Generierung aufzurufen.
  • Viele Commits zur Beseitigung von -O2-Warnungen und Fehlern. Der Kernel ist jetzt standardmäßig mit -O2 kompiliert.
  • Fügen Sie eine Problemumgehung für einen fehlerhaften Ertrag im ACPI-Pfad hinzu (auch Buggy-ACPI-Code genannt).
  • Repariere einen STOP / CONT-Lauf, der durch ein anstehendes Signal zur falschen Zeit ausgelöst werden könnte.
  • Threaded Coredump behebt und repariert eine Sperre, die sich auf dieselbe bezieht, wenn mehrere Threads desselben Prozesses gleichzeitig segmentieren.
  • Behebung eines CAM / VM-Deadlocks, der aufgrund eines Fehlers in uiomove_nofault () auftreten konnte. Dies könnte einen 'unbestimmten Wartepuffer' während des starken Paging / Swappings verursachen.
  • Fügen Sie Code hinzu, um verlorene IPIs zu erkennen und damit umzugehen. Dies ist hauptsächlich für vkernels, bei denen einige virtuelle Hosts IPIs verlieren können. Echte CPUs sollen keine IPIs verlieren.
  • Verschiedene Korrekturen zu clock_gettime ().
  • Entfernen Sie weitere Spuren des MPLOCK. Alle kritischen Pfade sind seit langem von dieser Sperre entfernt, aber es gibt noch einige unkritische Stellen, die sie benutzen.
  • Überarbeiten Sie den Code zum Löschen von Prozessen mit geringem Arbeitsspeicher und beheben Sie eine Reihe von Rassen, die das Funktionieren der Funktion verhindern könnten.
  • Korrigieren Sie eine Systemsperre mit VMM und refaktorieren Sie den VMX-Code.
  • Behebt einen Deadlock, wenn numvnodes maxvnodes erreicht, was unter schweren Lasten auftreten kann. Fixiere auch einen kleinen Kernel-Speicherleck, wenn 'df' oder Dateisystem-Sync einen Unmount synchronisiert. Reduzieren Sie auch die maxvnodes-Berechnung geringfügig. Beispiel: Eine Maschine mit 8 GB RAM setzt jetzt maxvnodes auf 478483 statt 598103.
  • Behebt eine seltene Panik, die durch vm_object_page_remove () ausgelöst werden kann, wenn user_yield () nicht richtig aufgerufen wird, während ein Spinlock gehalten wird, und dann entschlatet.
  • Verringern Sie die Größe einiger dynamisch zugewiesener Kernel-Strukturen. Insbesondere sind übermäßig große Inode-Hash-Tabellenzuordnungen nun kleiner. Betrifft in erster Linie UFS (die DragonFlyBSD nicht viel verwendet).
  • Hinzufügung einer Problemumgehung für AMD erratum 793.
  • Behebung eines Deadlocks, der bei Stacked Cluster _ * () E / A-Aufrufen auftreten kann.
  • Es wurde ein Fehler behoben, bei dem das Laden rekursiver Module zum Deadlock führen konnte.
  • Beheben Sie einen dummen Fehler im NFS-Code "silverlusame" (NFS auf der Serverseite), der dazu führen könnte, dass der "sillyrename" -Code des NFS-Servers die Datei "alberne umbenannt" nie entfernt. Wie dumm!
  • Bessere Arbeit mit High-NCPU + Low-Memory-Konfigurationen.
  • Refactored shared spinlocks, um die Menge an Spin zu reduzieren, die auftreten kann, wenn mehrere CPUs gleichzeitig einen gemeinsamen Spinlock erhalten.
  • Überarbeiten Sie Namenscache-Operationen, um die SMP-Konkurrenz noch weiter zu reduzieren. Dadurch wird die simultane, nicht konfliktbehaftete Einzelkomponentenleistung auf Systemen mit vielen Kernen um mindestens das 25-fache verbessert und die ref- und unref-Operationen von vnode und mount structure erheblich reduziert.
  • Überholen Sie zahlreiche andere Kernel-Strukturen, um die Cache-Lokalität zu verbessern und das Prellen der Cache-Zeilen zu reduzieren.
  • Es wurde ein Fehler im SMBFS-Dateiumbenennungscode behoben.
  • Implementieren Sie RLIMIT_RSS, einen pro-process-RSS-Limiter, der lokales Paging pro Prozess erzwingt. Diese Funktion kann verwendet werden, um zu verhindern, dass ein Prozess den Rest der Maschine in einen Hard Case verwandelt.
  • Erhöhen Sie den maximal unterstützten Swap Space. Das Maximum ist jetzt hauptsächlich durch RAM begrenzt und wird in den Zehntel Terabytes liegen (wenn Sie genug RAM für die unterstützenden Verwaltungsstrukturen haben). Erhöhen Sie auch den KVM des Kerns von 128G auf 511G.
  • Dynamische Pmap-Löschung implementieren (standardmäßig deaktiviert). Dadurch wird der PMAP-Code angewiesen, Zwischenseiten-Tabellenseiten und PDs aus der PMAP im laufenden Betrieb zu löschen. Dies kann nützlich sein, wenn der Arbeitsspeicher knapp ist. Beachten Sie jedoch, dass die Ausführung von Programmen verlangsamt wird, die Speicher mit hoher Geschwindigkeit zuweisen und freigeben.
  • Refaktorieren Sie, wie benutzerfreundliche Ebenen funktionieren, und machen Sie die ausgewählten netten Werte wichtiger als zuvor.
  • Fügen Sie DragonFly einen leistungsstarken nativen NVME-Treiber hinzu, der von Matt Dillon geschrieben wurde. Dieser Treiber verwendet MSI-X-Vektoren und alle verfügbaren Warteschlangen, die vom Gerät unterstützt werden, per-cpu-Lokalisierung ohne Sperren oder minimales Sperren (in den meisten Fällen keine SMP-Konflikte) und ist in der Lage, IOPS und Durchsatz zu verfälschen.
  • Grafiken:
  • Stabilisiert Broadwell und Skylake, bringt uns zum Linux 4.6 äquivalenten DRM.
  • Implementieren Sie die Linux i2c-API, um die Portierung zu vereinfachen.
  • Repariere ein paar alte Fehler, einschließlich einer Sperrreihenfolge, die die Videowiedergabe (und den Rest von X) ausbremsen könnte.
  • Behebung eines Kernel-Drm-Thread-Prioritätsfehlers, der es Benutzerprozessen erlaubte, eine höhere Priorität als der drm-Helper-Thread zu haben. Dies behebt die meisten vorübergehenden Videostalle, die in Browsern gemeldet werden.
  • Behandeln Sie den EFI-Framebuffer, der an DRM übergeben wird, verbessern Sie das Syscon-VT-Switching und beheben Sie einen zugehörigen Deadlock. Lassen Sie den Kernel auch versuchen, von der X-Konsole zurück in die Konsole zu wechseln, wenn eine Panik auftritt.
  • Vernetzung:
  • Viele Verbesserungen auf der ganzen Linie.
  • iwm - Behebt ein Problem, das durch invertierte Logik verursacht wird. Zahlreiche weitere Verbesserungen verbessern die Leistung erheblich.
  • wlan - Unterstützung für asynchronen bg-Scan und andere hinzugefügte Funktionen.
  • Andere Treiber:
  • nvme - Der Standard-Kernel-Build sowie Fixes und Leistungsverbesserungen wurden hinzugefügt.
  • mmcsd - Signifikante eMMC-Unterstützung für DragonFly.
  • ahci - Einige Kompatibilitätsanpassungen und weitere Macken wurden hinzugefügt, um kaputte Chipsätze, insbesondere Port-Multiplier, zu unterstützen. Implementieren Sie auch FBS (FIS-Based-Switching), wenn es vom Chipsatz unterstützt wird.
  • Unterstützung für Trackpoint und Elantech hinzugefügt.
  • Benutzerland:
  • systat erweitert, um mehrere Interrupts zu reduzieren, die zum selben Treiber gehören, da es oft zu viele gibt, um sie jetzt aufzulisten.
  • systat -vm 1 wurde erheblich verbessert und überarbeitet, um nützlichere Informationen zu melden und Felder zu entpacken, damit sie nicht ineinander übergehen. Und fügen Sie 'nvme' zur Block-Gerät-Übereinstimmung hinzu. Passen Sie auch die erweiterte vmstats-Anzeige an und ändern Sie, wie ozfod und nzfod gemeldet werden.
  • 'vmstat 1' Ausgabe refaktoriert. Alle Felder gingen ineinander über wegen der hohen Leistung einer modernen Maschine, die vor 30 Jahren existierte.
  • Ändern Sie die mount / mountd-Signalisierung, um unnötige Mountlist-Scans und -Befehle von mount_null- und mount_tmpfs-Operationen zu reduzieren. Nur unter starker gleichzeitiger Verwendung von mount / umount ist dies wirklich wichtig, aber der Massenaufbau erzeugt diese Situation.
  • Repariere zahlreiche fork / exec * () -Lecks, die libc auslösen kann, weil O_CLOEXEC nicht atomar verwendet wird. Fügen Sie Funktionen wie popen () und mk * stemp * () verschiedene O_CLOEXEC-Features hinzu (fügen Sie mkostemp () und mkostemps () hinzu). Korrigiert ein Datei-Deskriptor-Leck in popen (), wenn es in einer Thread-Umgebung ausgeführt wird.
  • Seien Sie netter bei Pthreads in vfork (), indem Sie dem neuen Unterprozess lwp die gleiche TID geben wie dem, der vfork () aufgerufen hat. Dies ermöglicht es, dass pThread-Unterstützungsfunktionen in dem Kind während der Vfork ausgeführt werden, ohne Pthreads zu implodieren.
  • Viele Kompatibilitätskorrekturen in den Headern, um Bulk-Builds für dps zu verbessern.
  • Mehrere OpenSSL-Importe für Sicherheitsfixes.
  • Resynchronisieren Sie OpenSSH, um die Aktualität zu verbessern.
  • Trennen Sie Kernel-C-Flags, indem Sie den Kernel-Build KCFLAGS anstelle von CFLAGS verwenden.
  • Entfernen Sie zahlreiche alte ISA-Treiber vollständig aus dem Baum. Da DragonFlyBSD jetzt nur 64-Bit-fähig ist, können wir damit beginnen, alte Treiber zu entfernen, die auf 64-Bit-Plattformen nicht existieren.
  • Führen Sie WORLD_CFLAGS und WORLD_CCOPTLEVEL ein, standardmäßig auf -O. Dies erleichtert das Kompilieren von World-O2 oder was auch immer (z. B. WORLD_CCOPTLEVEL = 2). Wir raten jedoch von 3 oder mehr Gebrauch ab. Gültige Werte sind 0, 1, 2, 3, s, g und 'fast'.
  • Passen Sie die STATUS-Formatierung für ps an, um sie lesbarer zu machen und nicht mehr verwendbare uralte Flags zu entfernen und nur Unordnung zu erzeugen.
  • Fix malloc () -Ausrichtung für kleine Zuweisungen. Die minimale Ausrichtung ist jetzt 16 für Zuordnungen im Bereich von 16-128 Byte statt 8. Beachten Sie, dass Zuweisungen von Zweierpotenz immer auf natürliche Weise ausgerichtet wurden, einige Programme jedoch Vielfache von (z. B. 16) wie "48" und nehme 16-Byte-Ausrichtung an.
  • Fortune factored, hinzugefügt.
  • powerd - Ergänzen Sie das temperaturbasierte Management mit einer neuen Option -H lotemp: hightemp. Diese Funktion ist besonders nützlich bei Laptops mit schlechter Kühlung und bei BIOS-Modellen, die absichtlich bei zu hoher Temperatur drosseln. Powerd erkennt nun auch Zustandsänderungen (die die Liste der verfügbaren Frequenzen ändern können) und wechselt den Dienst ordnungsgemäß, wenn eine Änderung des Leistungsstatus auftritt.
  • Viele Korrekturen von libthread_xu / pthreads und Anpassungen zur Verbesserung der DDP-Kompatibilität.
  • Fügen Sie dem vkernel Funktionen zum Kopieren und Schreiben hinzu. Beispielsweise können mehrere vkernels ein einzelnes Festplatten-Image verwenden, indem sie jede interne COW-Änderung intern rammen.
  • / usr / src / secure rewired, Konflikte aus libmd, libcrypt.
  • entfernt
  • Verschiedene Tools wurden im Basissystem aktualisiert:
  • Der Compiler wurde auf GCC 5.4.1 aktualisiert.
  • Wir haben jetzt einen Goldlinker mit LTO.
  • binutils 2.25
  • weniger 481.
  • OpenSSL / LibRessL wurde komplett überarbeitet. Base verwendet jetzt liquessl.
  • Mehrere Zeitzonenupdates.
  • Hammer Status:
  • Verschiedene Verbesserungen. Eine Sache, die es nicht in die Veröffentlichung geschafft hat, war ein Versionssprung, um einen schnelleren CRC-Algorithmus mit einem anderen Polynom zu verwenden. Diese Arbeit wird MFC-to-Release sein, sobald der Test abgeschlossen ist. Benutzer sollten sich jedoch nicht zu viele Gedanken darüber machen, da der schwerwiegendste Performance-Fix in der Version enthalten ist (ein Fix für den cluster_write () - Code für Dateisystem-Schreibvorgänge).
  • Hammer2 Status:
  • Die Entwicklung geht weiter, aber noch kein Wort zu einer ersten Veröffentlichung.
  • Clang-Status:
  • Ein Start-Framework wurde hinzugefügt, um clang als alternativen Basis-Compiler in DragonFly zu verwenden, um gcc 4.7 zu ersetzen. Es ist noch nicht abgeschlossen. Clang kann natürlich als Paket hinzugefügt werden.
  • 64-Bit-Status:
  • Beachten Sie, dass DragonFly ab 4.6 ein 64-Bit-Betriebssystem ist und nicht auf 32-Bit-Hardware ausgeführt werden kann.
  • AMD Ryzen Unterstützung ist in der Veröffentlichung und weitere Arbeit wird in neuen Ryzen Entwicklungen auftreten. Es gibt einige cpu-berichtete Topologie-Probleme, die behoben werden und MFC'd. Es gibt einige Stabilitätsprobleme, die momentan auf einem AMD Microcode-Update warten, um zu lösen / erneut zu testen. Ryzen-Nutzer können sicher sein, dass wir den Überblick behalten!

Was ist neu in Version 4.6.0:

  • mmcsd (4): Tippfehler in disk_create () args beheben. Ermöglicht den Zugriff auf & 1 SD- / MMC-Karte.
  • Entpacken (1) hinzufügen. Wenn du sie nicht schlagen kannst, schließe dich ihnen an
  • Wiederherstellungsfähigkeit für die Masterwelt, um Release 4.4 zu erstellen
  • buildworld - Erlauben-Release wird auf Master erstellt
  • etc / rc.d - Einstellungen ohne Festplatte
  • kernel - Fügen Sie kqueue Unterstützung zu NFS hinzu (reparieren Sie firefox Probleme w / nfs)
  • Importieren Sie OpenSSL 1.0.1s.
  • Lokale Anpassungen für OpenSSL 1.0.1s.
  • Synchronisieren Sie die zoneinfo-Datenbank mit tzdata2016b von ftp://ftp.iana.org/tz/releases
  • zic (8) / zdump (8): Warne nicht vor Abkürzungen wie '-05'.
  • zic (8): Entferne ein 'Register', das sich beim letzten Commit eingeschlichen hat.
  • kernel / acpi_timer: Fügen Sie nach dem Timer-Test eine fehlende cpu_enable_intr () hinzu.
  • em.4: Erwähnen Sie i219-Unterstützung.
  • ig_hal / em / emx: Füge I219 (Skylake) Unterstützung hinzu
  • sys / vfs / hammer: Fehler beim Löschen des Volume-Headers behoben
  • sbin / hammer: Zugriff nicht über 16 KB des HAMMER-Userspace-Puffers
  • sbin / hammer: Fügen Sie die Option obfuscate zu hammer show
  • hinzu
  • sys / vfs / hammer: Temporäre Korrektur für Kernel Panic auf Volume-del

Was ist neu in Version 4.4.3 / 4.6.0 RC2:

  • mmcsd (4): Tippfehler in disk_create () args beheben. Ermöglicht den Zugriff auf & 1 SD- / MMC-Karte.
  • Entpacken (1) hinzufügen. Wenn du sie nicht schlagen kannst, schließe dich ihnen an
  • Wiederherstellungsfähigkeit für die Masterwelt, um Release 4.4 zu erstellen
  • buildworld - Erlauben-Release wird auf Master erstellt
  • etc / rc.d - Einstellungen ohne Festplatte
  • kernel - Fügen Sie kqueue Unterstützung zu NFS hinzu (reparieren Sie firefox Probleme w / nfs)
  • Importieren Sie OpenSSL 1.0.1s.
  • Lokale Anpassungen für OpenSSL 1.0.1s.
  • Synchronisieren Sie die zoneinfo-Datenbank mit tzdata2016b von ftp://ftp.iana.org/tz/releases
  • zic (8) / zdump (8): Warne nicht vor Abkürzungen wie '-05'.
  • zic (8): Entferne ein 'Register', das sich beim letzten Commit eingeschlichen hat.
  • kernel / acpi_timer: Fügen Sie nach dem Timer-Test eine fehlende cpu_enable_intr () hinzu.
  • em.4: Erwähnen Sie i219-Unterstützung.
  • ig_hal / em / emx: Füge I219 (Skylake) Unterstützung hinzu
  • sys / vfs / hammer: Fehler beim Löschen des Volume-Headers behoben
  • sbin / hammer: Zugriff nicht über 16 KB des HAMMER-Userspace-Puffers
  • sbin / hammer: Fügen Sie die Option obfuscate zu hammer show
  • hinzu
  • sys / vfs / hammer: Temporäre Korrektur für Kernel Panic auf Volume-del

Was ist neu in Version 4.4.3:

  • mmcsd (4): Tippfehler in disk_create () args beheben. Ermöglicht den Zugriff auf & 1 SD- / MMC-Karte.
  • Entpacken (1) hinzufügen. Wenn du sie nicht schlagen kannst, schließe dich ihnen an
  • Wiederherstellungsfähigkeit für die Masterwelt, um Release 4.4 zu erstellen
  • buildworld - Erlauben-Release wird auf Master erstellt
  • etc / rc.d - Einstellungen ohne Festplatte
  • kernel - Fügen Sie kqueue Unterstützung zu NFS hinzu (reparieren Sie firefox Probleme w / nfs)
  • Importieren Sie OpenSSL 1.0.1s.
  • Lokale Anpassungen für OpenSSL 1.0.1s.
  • Synchronisieren Sie die zoneinfo-Datenbank mit tzdata2016b von ftp://ftp.iana.org/tz/releases
  • zic (8) / zdump (8): Warne nicht vor Abkürzungen wie '-05'.
  • zic (8): Entferne ein 'Register', das sich beim letzten Commit eingeschlichen hat.
  • kernel / acpi_timer: Fügen Sie nach dem Timer-Test eine fehlende cpu_enable_intr () hinzu.
  • em.4: Erwähnen Sie i219-Unterstützung.
  • ig_hal / em / emx: Füge I219 (Skylake) Unterstützung hinzu
  • sys / vfs / hammer: Fehler beim Löschen des Volume-Headers behoben
  • sbin / hammer: Zugriff nicht über 16 KB des HAMMER-Userspace-Puffers
  • sbin / hammer: Fügen Sie die Option obfuscate zu hammer show
  • hinzu
  • sys / vfs / hammer: Temporäre Korrektur für Kernel Panic auf Volume-del

Was ist neu in Version 4.4.2:

  • virtio_blk: Verwenden Sie contigmalloc / contigfree für vtblk_request Zuordnungen.
  • drm / radeon: Wir brauchen die physikalische Adresse der Dummy-Seite, nicht die virtuelle
  • if_iwm: Wende einige Änderungen von OpenBSD an, if_iwm.c rev 1.39 - & gt; 1.42
  • if_iwm: Einfach den struct firmware pointer speichern, wie if_iwn.
  • if_iwm: Entferne Kommentare bezüglich Linux iwlwifi Quelldateinamen.
  • if_iwm: Behebung der IEEE80211_ADDR_COPY () - Verwendung.
  • if_iwm: Bereinigen Sie den Einrichtungscode für die Ratensteuerung.
  • etc / rc.d: Aktualisiere rtsold
  • i915 - Fügen Sie eine Verzögerung nach dem Anhängen hinzu, um Konsolen- / X-Rennen zu vermeiden
  • kernel - Verringern Sie lwp_signotify () Latenz
  • devfs - Repariert Panik bei zusätzlichen devfs Mounts, wenn Regeln vorhanden sind
  • ssh - Entfernen der nicht dokumentierten Roaming-Unterstützung CVE-2016-0777 CVE-2016-0778
  • kernel - Fügen Sie Macken für xhci (usb)
  • hinzu
  • hammer - entferne das Debugging kprintf
  • libc / stdtime: Fixiere zwei Fälle, in denen ein NULL-Zeiger frei () 'd.
  • sein könnte
  • kernel / vga: Entferne falsches lwkt_reltoken (). Es ist an diesem Punkt nicht aufgenommen.
  • libc / nls: Synchronisieren Sie str {error, signal} () Nachrichten mit.
  • w (1): inet_addr () gibt INADDR_NONE bei einem Fehler zurück.
  • ee (1): Fix eine nicht initialisierte Variable.
  • kernel: Fixieren Sie die kern.dumpdev sysctl.
  • Importieren Sie OpenSSL 1.0.1r.
  • Lokale Anpassungen für OpenSSL 1.0.1r.
  • gcc50 / libconv_supc: cp-demangle.c benötigt HAVE_CONFIG_H.
  • Synchronisieren Sie die zoneinfo-Datenbank mit tzdata2016a von ftp://ftp.iana.org/tz/releases
  • make upgrade: Fügen Sie eine veraltete Zeitzone hinzu.
  • igb: Fix DMACR Einstellungen
  • ifconfig: Fix inet6 Adresslöschung

Was ist neu in Version 4.4.1:

  • Kernel:
  • Verbesserte CPU-Energiespareinstellungen
  • Reduzierte Dateizuordnung / freie Konkurrenz
  • Reduzieren Sie die Warteschlangenkonkurrenz
  • Implementierter lwp_setname (2) Systemaufruf
  • Feste Unterstützung für dsp (4) nicht blockierende Operationen
  • Fügen Sie aperf (4) -Treiber hinzu, um die effektive CPU-Frequenz anzuzeigen
  • Zahlreiche Aufräumarbeiten und Korrekturen an HAMMER
  • Synchronisieren Sie ACPICA mit 20151124
  • Meistens ist das Entfernen von i386 (32-Bit) -Bits
  • abgeschlossen
  • Passen Sie den Bootloader-Heap an, um größere MD-Images zu verarbeiten
  • Cleanup Weitergabe von totem Kernel-Code (syslink bleibt, etc)
  • dsched wurde entfernt (Probleme mit Fehlern und funktioniert nicht gut mit SSDs)
  • Pager-Algorithmen für wenig Arbeitsspeicher und Arbeitsspeicher ablehnen
  • Grafiken:
  • drm / i915- und drm / radeon-Treiber entsprechen jetzt dem Linux-Kernel 3.18
  • i915 unterstützt ValleyView / Baytrail und Cherryview Atom SOCs
  • Broadwell GPUs sind jetzt vollständig beschleunigt
  • Vorbereitende Arbeiten für Skylake-Unterstützung
  • Die Systemkonsole unterstützt jetzt standardmäßig drm-Grafiken. Virtuelle Terminals zeigen nicht mehr nur einen schwarzen Bildschirm, nachdem Xorg gestartet wurde und eines der kms-Kernel-Module geladen wurde.
  • Verbesserte Energieverwaltung. Panel Self Refresh verfügbar auf i915 Hardware
  • Temperatursensoren werden jetzt auf Radeon Hardware unterstützt
  • Vernetzung:
  • Realtek 8168H Unterstützung in re (4)
  • iwm (4) Treiber hinzugefügt
  • rtadvd aktualisiert, rtadvctl hinzugefügt
  • Asynchrone UDP-Verbindungen, um eine viel größere Last zu handhaben
  • Neues größeres TCP-Startfenster für Verbindungen mit hoher Latenz
  • Kernel nmbcluster Werte sind live-einstellbar, für extremen Traffic Networking:
  • Stabilisieren Sie den UNIX-Domänen-Socket
  • Neuer GC-Code für die fd-Weitergabe über Unix-Domain-Sockets
  • Verschiedene IPv6-Synchronisation mit FreeBSD
  • Verbesserte Leistung von Socket (2) für TCP und UDP
  • Verbesserte TCP-Verbindung (2) lokale Portauswahl
  • Akzeptiert (4) Systemaufruf
  • Unterstützung für SOCK_CLOEXEC und SOCK_NONBLOCK socket (2) und accept4 (2) Flags
  • hinzugefügt
  • Machen Sie HW-Flusssteuerungsfunktionen für ifconfig verfügbar
  • Fügen Sie einstellbare Parameter hinzu, damit NFSROOT iosize und readahead gesetzt werden können
  • Bringe das erweiterte ipfw von FreeBSD (genannt ipfw3 in DFly)
  • mit
  • Andere Treiber:
  • MIDI-Unterstützung wurde erneut gesendet.
  • Viele Bugfixes für den Geräte-Mapper
  • dm-delay und dm-flkey wurden dem Geräte-Mapper
  • hinzugefügt
  • USB-Modems funktionieren besser (oder stört den Kernel nicht)
  • Verbesserter Zugriff auf ram ECC-Funktionen und Status
  • wlan wurde von FreeBSD aktualisiert (bis kurz vor dem Entfernen des Split-Geräts)
  • Benutzerland:
  • Die Regex-Bibliothek wurde durch die Multi-Byte- und im Allgemeinen viel leistungsfähigere TRE-Regex-Bibliothek ersetzt. Es entspricht OSX in Funktionen. (DF ist der erste BSD, der nach MacOS zu TRE wechselt)
  • libm wurde durch die OpenBSD Version ersetzt (dies ist eine kollaborative Arbeit in Arbeit)
  • libc bietet jetzt die Symbol-Versionierung, mit der Binärdateien, die mit Release 4.4 erstellt wurden, in DragonFly jahrelang ausgeführt werden können.
  • Komplette Überarbeitung und Aktualisierung von Gebietsschemata, einschließlich der Implementierung der Kollatierung.
  • malloc.h entfernt (DragonFly ist der erste BSD, der diesen Header entfernt)
  • gcc50 libstdc ++ wurde modifiziert, um die volle Nutzung von C99-Funktionen bei Clang zu ermöglichen
  • Als Folge der Aktualisierung der Sprachumgebungen hat sich die Ausgabe des ls (1) langen Formats und des -T-Formats geändert, wenn benannte Sprachumgebungen verwendet werden. Insbesondere werden die langen Formatmonate immer in Englisch abgekürzt (unter Verwendung der POSIX-Definitionen, die somit garantiert schnell und drei Buchstaben breit sind) und die Jahr-, Stunden- und Sekundeninformationen werden immer angezeigt. Unter dem C / POSIX-Gebietsschema gibt es keine Änderung in der Ausgabe von ls (1) außer der zukünftigen Zeitstempelbehandlung, die korrigiert wurde, um den POSIX-Standardanforderungen zu entsprechen.
  • Wenn WPA-Supplicant von der Basis verwendet wird, gibt es beim Booten eine Verzögerung von 10 Sekunden, da eine Meldung angezeigt wird, die dringend empfiehlt, stattdessen die DPorts-Version (security / wpa_supplicant) zu verwenden.
  • Verbesserte powerd (8)
  • Verbesserte Ausgabe von top (1) und ps (1) für LWPs und Kernel-Threads
  • Die Unterstützung für pthread_set_name_np (3)
  • wurde korrigiert
  • Portierter tcpdrop (8)
  • Hinzufügung vieler neuer Gebietsschemas, einschließlich sechs arabischer Gebietsschemas (VAE, Saudi-Arabien, Ägypten, Jordanien, Marokko, Katar), zusätzlicher spanischer Gebietsschemas (Mexiko, Argentinien, Costa Rica), zusätzliche englische Lokalitäten (Phillipinen, Singapur, Hongkong) , korrigierte norwegische Gebietsschemata (nur nb und nn), erweiterte schwedische (Finnland), samische (Finnland, Norwegen), serbische Sprache, jetzt in kyrillischer und lateinischer Form. ('locale -a' enthält eine vollständige Liste.)
  • rtadvc von FreeBSD importiert
  • Verschiedene Tools wurden im Basissystem aktualisiert:
  • nvi2 wurde auf Version 2.1.3 aktualisiert
  • libexecinfo wurde hinzugefügt (von FreeBSD synchronisiert)
  • iconv synchronisiert mit FreeBSD
  • openssl wurde auf 1.0.1q aktualisiert
  • xz wurde auf 5.2.2 aktualisiert
  • libedit aktualisiert auf Version 2015-03-25
  • binutils wurde auf 2.25.1 aktualisiert
  • grep wurde auf 2.22 aktualisiert
  • tcsh wurde auf 6.19.00 aktualisiert
  • libdialog wurde auf v1.2-20150920
  • aktualisiert
  • (tn) ftp aktualisiert auf "10. Oktober 2015"
  • gcc wurde auf 5.2 aktualisiert
  • acpica aktualisiert auf 20150717
  • sort (1), das von NetBSD stammt, wurde durch die FreeBSD-Version
  • ersetzt
  • localedef (1), internes Tool mit Ursprung auf Illumos
  • cldr2def, internes Tool mit Ursprüngen im verlassenen FreeBSD-Projekt, aber erweitert für DF
  • Wurde vom Basissystem entfernt:
  • hostapd (neueste Version verfügbar über dports: net / hostapd)
  • mklocale (ersetzt durch localedef)
  • colldef (ersetzt durch localedef)
  • HAMMER Verbesserungen:
  • Viele, viele Aufräumarbeiten und Korrekturen an Hammer1, dank Tomohiro Kusumi
  • Weitere Verbesserungen:
  • DPorts zählen etwa 22.800 Ports. Viele zuvor kaputte Ports wurden von regulären Benutzern aufgrund von Beiträgen, die durch den Pull Request-Mechanismus von GitHub angeboten wurden, behoben. (Danke!)
  • Sechs "offizielle" Sets von DragonFly-Wallpaper gibt es unter x11-themes / libelle-wallpaper (pkg install libelle-wallpapers). Diese werden automatisch für KDE-Benutzer installiert und vorausgewählt und automatisch für XFCE4-Benutzer installiert, aber die Hintergrundbilder müssen immer noch manuell mit diesem Desktop ausgewählt werden (zumindest für den Moment). Sie werden bei share / wallpapers installiert, die mit share / backgrounds / libelle verlinkt sind.

Ähnliche Software

Core Droid
Core Droid

14 Apr 15

TeX Live
TeX Live

20 Feb 15

SmartOS
SmartOS

17 Aug 18

i2c-tiny-usb
i2c-tiny-usb

7 Mar 16

Kommentare zu DragonFly BSD

Kommentare nicht gefunden
Kommentar hinzufügen
Schalten Sie auf die Bilder!