lansare , un sistem de operare cu un nucleu hibrid, în 2003 cu scopul de a dezvolta alternativ ramura FreeBSD 4.x. Printre caracteristicile DragonFly BSD se numără sistemul de fișiere distribuit și versionat , suport pentru încărcarea „nucleelor” virtuale ale sistemului ca procese utilizator, capacitatea de a salva datele și metadatele FS pe SSD-uri, luând în considerare contextul, link-uri simbolice opționale, posibilitatea de a îngheța procesele păstrându-le starea pe disc, un nucleu hibrid care folosește fire ușoare (LWKT).
Principalele , adăugate în DragonFlyBSD 5.8:
- În setul principal a fost inclusă utilitarul , destinat construirii locale și întreținerii propriilor repository-uri binare DPort. Este suportat paralelismul în compilarea unui număr arbitrar de porturi, având în vedere arborele de dependențe. La pregătirea unei noi versiuni în DPort, au fost introduse, de asemenea, numeroase modificări menite să accelereze compilarea mai multor pachete interdependente.
- În libc a fost implementat un mecanism eficient de mascarea semnalelor, care a permis protejarea malloc*() și funcții similare de probleme cauzate de întreruperea lor de un semnal. Pentru blocarea și deblocarea temporară a semnalelor, au fost propuse funcțiile sigblockall() și sigunblockall(), care funcționează fără a efectua apeluri de sistem. În plus, în libc funcția strtok() a fost adaptată pentru utilizarea în aplicații multi-threaded, au fost adăugate constantele TABDLY, TAB0, TAB3 și funcția __errno_location pentru a îmbunătăți suportul pentru dports.
- Componentele interfeței DRM (Direct Rendering Manager) sunt sincronizate cu kernelul Linux 4.9, portând din kernelul 4.12 caracteristici specifice, menite să îmbunătățească suportul pentru Wayland.
Driverul drm/i915 pentru GPU-uri Intel este sincronizat cu kernelul Linux 4.8.17, cu mutarea codului din kernelul 5.4 pentru suportul noilor cipuri (Skylake, Coffelake, Amber Lake, Whiskey Lake și Comet Lake). Driverul drm/radeon pentru plăcile grafice AMD este sincronizat cu kernelul Linux 4.9. - Algoritmii de swap pentru memoria virtuală au fost semnificativ îmbunătățiți, permițând eliminarea sau minimizarea problemelor de reacție în interfața utilizatorului în cazul lipsei de memorie. Problemele cu blocările Chrome/Chromium din cauza lipsei de memorie sistemică au fost rezolvate.
- Scalarea kernelului pe sistemele cu un număr mare de nuclee de procesor a fost îmbunătățită. Timpul de solicitare a paginilor de memorie virtuală a fost redus. Competiția SMP în condiții de memorie insuficientă a fost diminuată. Eficiența apelului «open(… O_RDWR)» a fost crescută.
- Generatorul de numere pseudo-aleatoare din kernel a fost reworked. Driverul RDRAND a fost adaptat pentru a acumula entropie de la toate CPU-urile. Intensitatea
și dimensiunea alimentării RDRAND, care anterior consuma 2-3% din timpul CPU în timpul idle-ului, a fost redusă. - Au fost adăugate noi apeluri de sistem realpath, getrandom și lwp_getname (a permis implementarea pthread_get_name_np).
- A fost adăugat suport pentru mecanismele de protecție SMAP (Supervisor Mode Access Prevention) și SMEP (Supervisor Mode Execution Prevention). SMAP permite blocarea accesului la datele din spațiul utilizatorului din codul privilegiat care rulează la nivel de kernel. SMEP împiedică trecerea din modul kernel la execuția codului aflat la nivelul utilizatorului, ceea ce permite blocarea exploatării multor vulnerabilități din kernel (codul shell nu va fi executat, deoarece se află în spațiul utilizatorului);
- Au fost reproiectate variabilele sysctl pentru configurarea Jail. A fost adăugată posibilitatea de a monta nullfs și tmpfs din Jail.
- A fost adăugat un mod de urgență pentru sistemul de fișiere HAMMER2, care poate fi aplicat în procesul de recuperare după o defecțiune. În acest mod se permite distrugerea snapshot-urilor la actualizarea inode-ului în loc (permițând ștergerea fișierelor și directoarelor în absența spațiului liber pe disc, când mecanismul copy-on-write nu poate fi folosit). Performanța a fost semnificativ îmbunătățită, datorită reproiectării suportului pentru managementul firelor în HAMMER2. Procesul de golire a bufferelor (flush) a fost semnificativ îmbunătățit.
- Fiabilitatea și performanța TMPFS au fost îmbunătățite. Eficiența de funcționare în condiții de lipsă de memorie liberă în sistem a fost crescută.
- În stiva de rețea pentru IPv4 a fost implementat suport pentru prefixele /31 ().
În tap a fost îmbunătățită manipularea ioctl SIOCSIFMTU pentru suportul MTU > 1500. A fost adăugat suport pentru SIOCSIFINFO_IN6 și SO_RERROR. - Driverul iwm, sincronizat cu FreeBSD, are suport pentru cipurile wireless Intel (a fost adăugat suport pentru iwm-9000 și iwm-9260).
- Au fost adăugate funcții compatibile cu Linux, basename() și dirname(), pentru a îmbunătăți compatibilitatea în porturi.
- Au fost transferate din FreeBSD fsck_msdosfs, sys/ttydefaults.h, AF_INET/AF_INET6 în libc/getaddrinfo(), calendar(1), rcorder-visualize.sh. Au fost transferate funcții din OpenBSD din math.h.
- Versiunile componentelor externe au fost actualizate, inclusiv Binutils 2.34, Openresolv 3.9.2, DHCPCD 8.1.3. Compilerul gcc-8 este folosit în mod implicit.
Sursa: opennet.ro
