release , een besturingssysteem met een hybride kernel, in 2003 met het doel een alternatieve ontwikkeling van de FreeBSD 4.x tak. De kenmerken van DragonFly BSD omvatten een gedistribueerd versiebeheer bestandssysteem , ondersteuning voor het opstarten van "virtuele" kernels als gebruikersprocessen, de mogelijkheid om gegevens en metadata in het bestandssysteem in SSD-opslag te cachen, contextuele variabele symbolische links, de mogelijkheid om processen te bevriezen terwijl hun staat op schijf wordt opgeslagen, en een hybride kernel die gebruikmaakt van lichte threads (LWKT).
Belangrijkste , toegevoegd in DragonFlyBSD 5.8:
- Het hoofdonderdeel bevat het hulpprogramma , bedoeld voor het lokaal bouwen en onderhouden van eigen binaire DPort-repositories. Parallelle bouw van een willekeurig aantal poorten wordt ondersteund, rekening houdend met de afhankelijkheidsstructuur. Bij de voorbereiding van een nieuwe release in DPort zijn ook talrijke wijzigingen aangebracht om de bouw van verschillende afhankelijk pakketten te versnellen.
- In libc is een efficiënt mechanisme voor signaalmaskering geïmplementeerd, waardoor malloc*() en soortgelijke functies worden beschermd tegen problemen veroorzaakt door signalen. Voor kortetermijn blokkering en ontgrendeling van signalen zijn de functies sigblockall() en sigunblockall() voorgesteld, die werken zonder systeemaanroepen te doen. Bovendien is de functie strtok() in libc aangepast voor gebruik in multithreaded applicaties, zijn de constanten TABDLY, TAB0, TAB3 en de functie __errno_location toegevoegd ter verbetering van de ondersteuning van dports.
- De componenten van de DRM-interface (Direct Rendering Manager) zijn gesynchroniseerd met de Linux-kernel 4.9, met het porteren van specifieke mogelijkheden uit kernel 4.12 die gericht zijn op het verbeteren van de ondersteuning voor Wayland.
De drm/i915-driver voor Intel GPU's is gesynchroniseerd met de Linux-kernel 4.8.17, met de overdracht van code uit kernel 5.4 voor ondersteuning van nieuwe chips (Skylake, Coffeelake, Amber Lake, Whiskey Lake en Comet Lake). De drm/radeon-driver voor AMD grafische kaarten is gesynchroniseerd met de Linux-kernel 4.9. - Significant verbeterde algoritmes voor de uitwisseling van virtueel geheugen hebben de problemen met de gebruikersinterface vanwege geheugen tekort of geminimaliseerd. Problemen met vastlopen van Chrome/Chromium bij onvoldoende systeemgeheugen zijn opgelost.
- Verbeterde core schaalbaarheid op systemen met een groot aantal processorcores. Verminderde tijd voor het aanvragen van pagina's in virtueel geheugen. Concurrentie van SMP in situaties van geheugen tekort is verminderd. Verbeterde efficiëntie van de aanroep "open(⦠O_RDWR)".
- De generator voor pseudo-willekeurige getallen in de kernel is herzien. De RDRAND-driver is aangepast om entropie van alle CPU's te verzamelen. De intensiteit en grootte van RDRAND-doping, waarvoor voorheen 2-3% van de CPU-tijd tijdens idle werd gebruikt, is verminderd.
en de grootte van de RDRAND-aanroep, waarvoor eerder 2-3% van de CPU-tijd tijdens idle werd gebruikt. - Nieuwe systeemaanroepen realpath, getrandom en lwp_getname toegevoegd (maakte implementatie van pthread_get_name_np mogelijk).
- Ondersteuning toegevoegd voor beschermingsmechanismen SMAP (Supervisor Mode Access Prevention) en SMEP (Supervisor Mode Execution Prevention). SMAP voorkomt toegang tot gegevens in de gebruikersruimte vanuit priviliged code die op het kernel niveau draait. SMEP voorkomt dat van kernel mode naar de uitvoering van code op gebruikersniveau wordt overgeschakeld, waardoor de exploitatie van veel kwetsbaarheden in de kernel wordt geblokkeerd (shell-code wordt niet uitgevoerd, omdat deze zich in de gebruikersruimte bevindt);
- Sysctl-variabelen voor Jail-configuratie zijn herzien. Mogelijkheid toegevoegd om nullfs en tmpfs vanuit Jail te monteren.
- Een noodmodus voor het bestandssysteem HAMMER2 is toegevoegd, dat kan worden gebruikt in het geval van herstel na een falen. In deze modus is het toegestaan om snapshots te vernietigen tijdens het in-place bijwerken van inode (verwijderen van bestanden en mappen is toegestaan wanneer er geen vrije schijfruimte is en het copy-on-write mechanisme niet kan worden gebruikt). De prestaties zijn aanzienlijk verbeterd door herziening van de ondersteuning voor thread dispatching in HAMMER2. Het proces van het legen van buffers (flush) is aanzienlijk verbeterd.
- De betrouwbaarheid en prestaties van TMPFS zijn verhoogd. De efficiƫntie van de werking tijdens een gebrek aan vrije geheugen in het systeem is vergroot.
- In de netwerkstack voor IPv4 is ondersteuning voor prefixes /31 geĆÆmplementeerd ().
In tap is de verwerking van ioctl SIOCSIFMTU verbeterd voor ondersteuning van MTU > 1500. Ondersteuning toegevoegd voor SIOCSIFINFO_IN6 en SO_RERROR. - De driver iwm is gesynchroniseerd met FreeBSD met ondersteuning voor draadloze Intel-chips (toegevoegd ondersteuning voor iwm-9000 en iwm-9260).
- Compatibele functies basename() en dirname() voor Linux zijn toegevoegd ter verbetering van de compatibiliteit in ports.
- fsck_msdosfs, sys/ttydefaults.h, AF_INET / AF_INET6 zijn overgebracht van FreeBSD naar libc/getaddrinfo(), calendar(1), rcorder-visualize.sh. Functies van math.h zijn overgebracht van OpenBSD.
- De versies van externe componenten zijn bijgewerkt, waaronder Binutils 2.34, Openresolv 3.9.2, DHCPCD 8.1.3. Standaard wordt de compiler gcc-8 gebruikt.
Bron: opennet.ru
