Après plus d'un an de développement, la version DragonFlyBSD 6.0 a été publiée, un système d'exploitation doté d'un noyau hybride, créé en 2003 pour un développement alternatif de la branche FreeBSD 4.x. Parmi les caractéristiques de DragonFly BSD, on peut souligner un système de fichiers versionné distribué HAMMER, la prise en charge du démarrage de « noyaux » virtuels du système comme processus utilisateur, la possibilité de mise en cache des données et des métadonnées du système de fichiers sur des disques SSD, prenant en compte des liens symboliques variant selon le contexte, la possibilité de geler les processus tout en conservant leur état sur disque, et un noyau hybride utilisant des threads légers (LWKT).
Améliorations majeures apportées dans DragonFlyBSD 6.0 :
- Le système de mise en cache dans le système de fichiers virtuel (vfs_cache) a été modernisé. Ce changement a permis d'améliorer la fiabilité et d'accroître les performances des systèmes de fichiers. Le mise en cache des chemins complets a été amélioré grâce à l'appel cache_fullpath().
- L'outil dsynth, conçu pour la construction locale et la maintenance des dépôts binaires DPort, a été considérablement amélioré. La nouvelle version permet désormais de spécifier explicitement ports-mgmt/pkg pour la construction de paquets, ajoute la prise en charge de l'algorithme ZSTD, supprime les paquets obsolètes dans la commande ‘prepare-system’ et permet d'utiliser ccache lors de la construction.
- Le travail sur le système de fichiers HAMMER2 se poursuit, caractérisé par des fonctions telles que le montage séparé des instantanés, les instantanés accessibles en écriture, les quotas au niveau des répertoires, la mise en miroir incrémentielle, la prise en charge de divers algorithmes de compression de données, et la mise en miroir multi-maîtres avec répartition des données sur plusieurs hôtes. La nouvelle version ajoute un soutien initial aux multi-partitions (multi-volume), permettant de combiner plusieurs disques locaux en une seule partition (le mode multi-maître réseau n'est pas encore pris en charge). La possibilité d'augmenter la taille de la partition a été mise en œuvre (ajout de la commande hammer2 growfs). Des problèmes majeurs de déduplication ont été résolus.
- La performance du système de fichiers tmpfs a été considérablement améliorée. L'outil mounttmpfs a été ajouté pour faciliter le placement de /tmp et /var/run dans tmpfs.
- Une implémentation du système de fichiers Ext2 a été ajoutée, dont le code n'est pas sous licence GPL.
- Des modifications significatives ont été apportées au système de mémoire virtuelle, y compris la suppression du support de mmap() MAP_VPAGETABLE, nécessaire au fonctionnement de vkernell (noyaux virtuels exécutés en tant que processus utilisateur). Dans la prochaine version, vkernel sera réintroduit, re-désigné sur la base de HVM.
- La mise en œuvre des appels callout*() a été refaite.
- Le support du framebuffer EFI a été amélioré.
- Le driver sysmouse a été mis à jour pour ajouter le support d'evdev.
- Des appels clock_nanosleep, fexecve, getaddrinfo et timeout ont été ajoutés. Le support de fcntl(F_GETPATH) et des flags IP_SENDSRCADDR et SO_PASSCRED a été mis en œuvre.
- Une nouvelle sous-système kmalloc_obj a été ajoutée au noyau, permettant de réduire la fragmentation de la mémoire.
- Le support du driver amdsmn pour la sous-système SMN (System Management Network) des processeurs AMD a été transféré depuis FreeBSD.
- Dans devd, la reconnaissance automatique des adaptateurs sans fil et la création d'interfaces réseau wlanX leur correspondantes ont été mises en place.
- Le type sysclock_t a été converti d'une valeur 32 bits à une valeur 64 bits.
- La chaîne de lancement des appels système a été optimisée.
- Les performances en cas de pénurie de mémoire ont été optimisées.
- Le mécanisme des environnements isolés Jail a été considérablement retravaillé. La restructuration des paramètres sysctl jail.* a été effectuée.
- Le support des contrôleurs Ethernet Intel I219 a été ajouté et le support des puces Realtek a été étendu. Le driver bnx a été mis à jour pour inclure le support des puces Broadcom NetXtreme 57764, 57767 et 57787.
- Le support de la famille d'adresses AF_ARP, représentant des adresses ARP, a été ajouté à la pile réseau.
- Les composants de l'interface DRM (Direct Rendering Manager) ont été synchronisés avec le noyau Linux 4.10.17. Le driver drm/i915 pour les GPU Intel a été mis à jour.
- Le débit par défaut du port série a été augmenté de 9600 à 115200 bauds.
- L'outil ifconfig a été mis à jour pour ajouter l'option « -f » et la possibilité de filtrer la sortie par groupe d'interfaces.
- Les mises en œuvre des outils shutdown, reboot, printf, test, sh, efivar, uefisign ont été synchronisées depuis FreeBSD.
- Les jeux ching, gomoku, monop et cgram ont été transférés depuis NetBSD.
- Les outils efidp et efibootmgr ont été inclus.
- Les fonctionnalités de la bibliothèque pthreads ont été étendues, avec l'ajout du support pour pthread_getname_np().
- La bibliothèque libstdbuf a été transférée depuis FreeBSD.
- Le support de sockaddr_snprintf() a été ajouté à libutil, transféré depuis NetBSD.
- Les mots de passe définis dans l'installateur peuvent désormais contenir des caractères spéciaux.
- Le package zstd (version 1.4.8) a été inclus dans la distribution de base.
- Les versions des composants tiers ont été mises à jour, y compris dhcpcd 9.4.0, grep 3.4, less 551, libressl 3.2.5, openssh 8.3p1, tcsh 6.22.02, wpa_supplicant 2.9. Le compilateur gcc-8 est utilisé par défaut.
Source : opennet.ru
