Dopo oltre un anno di sviluppo, è stata pubblicata la versione DragonFlyBSD 6.0, un sistema operativo con un kernel ibrido, creato nel 2003 per lo sviluppo alternativo del ramo FreeBSD 4.x. Tra le caratteristiche di DragonFly BSD si possono evidenziare il file system distribuito di versionamento HAMMER, il supporto per il caricamento di "nuclei virtuali" del sistema come processi utente, la possibilità di memorizzare cache di dati e metadati del file system su SSD, simboli simbolici variabili che tengono conto del contesto, la possibilità di congelare i processi mantenendo il loro stato su disco, e un kernel ibrido che utilizza thread leggeri (LWKT).
Le principali migliorie aggiunte in DragonFlyBSD 6.0:
- Il sistema di caching nel file system virtuale (vfs_cache) è stato modernizzato. Questa modifica ha aumentato l'affidabilità e migliorato le prestazioni dei file system. È stato migliorato il caching dei percorsi completi tramite la chiamata cache_fullpath().
- L'utilità dsynth, destinata alla creazione locale e alla gestione dei repository binari DPort, è stata notevolmente migliorata. Nella nuova versione è stata aggiunta la possibilità di specificare esplicitamente ports-mgmt/pkg per la creazione dei pacchetti, è stato implementato il supporto per l'algoritmo ZSTD, nel comando ‘prepare-system’ è stato garantito l'eliminazione dei pacchetti obsoleti e aggiunta la possibilità di utilizzare ccache durante la creazione.
- È proseguito il lavoro sul file system HAMMER2, caratterizzato da funzioni come il montaggio separato degli snapshot, snapshot scrivibili, quote a livello di directory, mirror incrementali, supporto per diversi algoritmi di compressione dei dati e mirror multi-master con distribuzione dei dati su più host. Nel nuovo rilascio è stato aggiunto il supporto iniziale per i multi-volume, permettendo di unire in un'unica partizione più dischi locali (la modalità di rete multi-master non è ancora supportata). È stata implementata la possibilità di aumentare le dimensioni della partizione (aggiunto il comando hammer2 growfs). Sono stati risolti problemi significativi di deduplica.
- Le prestazioni del file system tmpfs sono state notevolmente migliorate. È stata aggiunta l'utilità mounttmpfs per semplificare la collocazione di /tmp e /var/run in tmpfs.
- È stata aggiunta l'implementazione del file system Ext2, in cui non è presente codice sotto licenza GPL.
- Sono state apportate significative modifiche al sistema di memoria virtuale, inclusa la rimozione del supporto MAP_VPAGETABLE mmap(), necessario per il funzionamento di vkernell (nuclei virtuali eseguiti come processo utente). Nella prossima versione è prevista la restituzione di vkernel, riprogettata sulla base di HVM.
- È stata rimodellata l'implementazione delle chiamate callout*().
- Migliorato il supporto per il framebuffer EFI.
- Nel driver sysmouse è stato aggiunto il supporto per evdev.
- Aggiunte le chiamate clock_nanosleep, fexecve, getaddrinfo e timeout. Implementato il supporto fcntl(F_GETPATH) e i flag IP_SENDSRCADDR e SO_PASSCRED.
- Nel kernel è stata aggiunta la sottosistema kmalloc_obj, che consente di ridurre la frammentazione della memoria.
- È stato trasferito da FreeBSD il supporto per il driver amdsmn per la sottosistema SMN (System Management Network) dei processori AMD.
- In devd è stato garantito il riconoscimento automatico degli adattatori wireless e la creazione di interfacce di rete wlanX per essi.
- Il tipo sysclock_t è stato convertito da un valore a 32 bit a uno a 64 bit.
- Ottimizzata la catena di avvio delle chiamate di sistema.
- Ottimizzate le prestazioni in condizioni di scarsità di memoria.
- Significativamente riprogettato il meccanismo degli ambienti isolati Jail. Ristrutturati i parametri sysctl jail.*.
- Aggiunto il supporto per i controller Ethernet Intel I219 e ampliato il supporto per i chip Realtek. Nel driver bnx è stato aggiunto il supporto per i chip Broadcom NetXtreme 57764, 57767 e 57787.
- Nel stack di rete è stato aggiunto il supporto per la famiglia di indirizzi AF_ARP, che rappresenta gli indirizzi ARP.
- I componenti dell'interfaccia DRM (Direct Rendering Manager) sono stati sincronizzati con il kernel Linux 4.10.17. Aggiornato il driver drm/i915 per la GPU Intel.
- La banda in ingresso di default della porta seriale è stata aumentata da 9600 a 115200 baud.
- Nell'utilità ifconfig è stata aggiunta l'opzione "-f" e la possibilità di filtrare l'output per gruppo di interfacce.
- Sincronizzate le implementazioni delle utilità shutdown, reboot, printf, test, sh, efivar, uefisign da FreeBSD.
- Trasferiti da NetBSD i giochi ching, gomoku, monop e cgram.
- Inclusi gli strumenti efidp ed efibootmgr.
- Ampliate le capacità della libreria pthreads, aggiunto il supporto per pthread_getname_np().
- Trasferita da FreeBSD la libreria libstdbuf.
- Nel libutil è stato aggiunto il supporto per sockaddr_snprintf(), trasferito da NetBSD.
- Nelle password fornite nell'installer è consentito l'uso di caratteri speciali.
- Incluso nel pacchetto base il pacchetto zstd (versione 1.4.8).
- Aggiornate le versioni dei componenti di terze parti, tra cui dhcpcd 9.4.0, grep 3.4, less 551, libressl 3.2.5, openssh 8.3p1, tcsh 6.22.02, wpa_supplicant 2.9. Per default viene utilizzato il compilatore gcc-8.
Fonte: opennet.ru
