släpp , ett operativsystem med en hybridkärna, 2003 för alternativ utveckling av FreeBSD 4.x-grenen. Bland funktionerna i DragonFly BSD kan vi lyfta fram ett distribuerat versionsformat filsystem , stöd för att ladda "virtuella" systemkärnor som användarprocesser, möjligheten att cachelagra FS-data och metadata på SSD-enheter, kontextkänsliga varianter av symboliska länkar, möjligheten att frysa processer samtidigt som de sparar deras tillstånd på disken, en hybridkärna som använder lätta trådar (LWKT).
Den huvudsakliga lagt till i DragonFlyBSD 5.6:
- Det virtuella minneshanteringssystemet har moderniserats. Många delsystem relaterade till virtuellt minne och PMAP har skrivits om.
Koden är fri från låsning på många ställen, inklusive funktionerna m_page_wakeup, vm_hold och vm_unhold. Effektiviteten av att använda processorcachen har ökats genom att minska migreringen av VM-objekt mellan CPU-kärnor och minska overheaden vid hantering av undantag (sidfel) för delade minnesområden. Förbättrad minnesidallokeringsalgoritm. Fördröjningar i funktionen vm_page_alloc() har åtgärdats. API:et vm_page_hash*() har lagts till för att tillåta hämtning utan att blockera.Som ett resultat var det möjligt att märkbart . Till exempel
i buildkernel-testet minskade tiden som krävs för att utföra operationer på kärnan med 40 %. Genomströmningen ökade med 7 % vid användning av Haswell-familjens processorer och med 14 % för Xeon. SELF-EXEC S/DI-riktmärket visar en prestandaökning på 23 % för Haswell och 18 % för Xeon jämfört med föregående utgåva. I testet
SELF-EXEC S/SH 28% respektive 71%, i SELF-EXEC D/DI - 23% och 242% (på grund av förbättrad multi-threading), i SELF-EXEC D/SH med 24% och 234%, i FAULTZF med 17 % och 14 %, i DOCOMP med 22 % och 42 %,
i NATIVEKERNEL med 5.1% och 8.1%; - DRM-drivrutinen och TTM-videominneshanteraren för AMD-videokort har uppdaterats avsevärt. Lagt till stöd för nya Ryzen APU:er. Förbättrat stöd för UEFI framebuffer. I radeon/ttm har ett prestandapåverkande dödläge eliminerats. Inställningen av fördröjningar under laddningsprocessen har ändrats för att undvika konflikter mellan i915-drivrutinen och X-servern. Lade till DRM_IOCTL_GET_PCIINFO-anrop för att förbättra mesa/libdrm-stödet. Många fel och brister har eliminerats;
- Synkroniseringskoden i filsystemet HAMMER2 har skrivits om, vilket avsevärt har förbättrat prestandan för detta filsystem. Prestandan för sekventiella skrivoperationer har också förbättrats.
För att förbättra kraschtoleransen har beroendespårning lagts till för att eliminera katalog-/fildelning under skapa, byta namn eller ta bort operationer. Koden för att arbeta med ögonblicksbilder har omarbetats för att minska förseningar och säkerställa konsistens i ögonblicksbilder. Förbättrad hantering av samtidiga skriv- och cache-spolningsoperationer. Förbättrad implementering av umount-operationen. Informationsinnehållet i meddelanden om integritetsbrott (CRC-fel) har utökats.HAMMER2 rekommenderas som standardrotfilsystem. Klustringsstöd är ännu inte tillgängligt. HAMMER2 FS är känd för sådana funktioner som separat montering av ögonblicksbilder, skrivbara ögonblicksbilder, katalognivåkvoter, inkrementell spegling, stöd för olika datakomprimeringsalgoritmer, multi-masterspegling med datadistribution till flera värdar;
- Lade till initialt stöd för FUSE-undersystemet för att skapa filsystem i användarutrymmet;
- Förbättrad prestanda för PF-paketfiltret på system med flera kärnor;
- Stöd för skyddsmekanismerna SMAP (Supervisor Mode Access Prevention) och SMEP (Supervisor Mode Execution Prevention) har implementerats när de stöds i CPU. SMAP låter dig blockera åtkomst till användarutrymmesdata från privilegierad kod som körs på kärnnivå. SMEP tillåter inte övergången från kärnläge till exekvering av kod som ligger på användarnivå, vilket gör det möjligt att blockera utnyttjandet av många sårbarheter i kärnan (skalkod kommer inte att exekveras, eftersom den finns i användarutrymmet);
- Lade till blockeringskod MDS-klass (Microarchitectural Data Sampling) i Intel-processorer. Kräver uppdaterad mikrokod för att fungera. Som standard är skyddet inaktiverat och aktiverat via 'sysctl machdep.mds_mitigation=MD_CLEAR'. Aktivering av det introducerar ytterligare 250ns latens vid kontextväxling mellan användar- och kärnutrymme;
- Kärnan är byggd som standard med retpolinskydd mot Spectre-attacker.
- Många verktyg från bassystemet har konverterats för att använda LibreSSL;
- Uppdaterade versioner av tredjepartskomponenter, inklusive xz 5.2.4,
libarchive 3.3.3, libressl 2.9.1, openssh 8.0, ldns 1.7.0,
libedit 2019-03-24. evdev, makefs, ministat, libfetch,
dd. Anropen reallocarray(), timing_safe*(), freezero(), dup3(), recallocarray(), aligned_alloc(), explicit_bzero() har flyttats från OpenBSD till libc. Som standard används gcc-5-kompilatorn för att bygga istället för gcc-8.
Källa: opennet.ru
