Après sept mois de développement, la version DragonFlyBSD 6.2 a été publiée. Il s'agit d'un système d'exploitation à 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 distinguer le système de fichiers versionné distribué HAMMER, le support du démarrage des « noyaux virtuels » en tant que processus utilisateurs, la possibilité de mettre en cache les données et les métadonnées du système de fichiers sur des disques SSD, les liens symboliques variant en fonction du contexte, ainsi que la possibilité de geler des processus tout en préservant leur état sur le disque. Son noyau hybride utilise des threads légers (LWKT).
Les principales améliorations ajoutées dans DragonFlyBSD 6.2 :
- Le hyperviseur NVMM a été porté depuis NetBSD, prenant en charge les mécanismes de virtualisation matériel SVM pour les CPU AMD et VMX pour les CPU Intel. Dans NVMM, seul un ensemble minimal d'enveloppes autour des mécanismes matériels de virtualisation est exécuté au niveau du noyau, tandis que tout le code d'émulation du matériel fonctionne dans l'espace utilisateur. Pour des tâches telles que la création machines virtuelles, l'allocation de mémoire et la distribution des VCPU, un outil basé sur la bibliothèque libnvmm est utilisé, et pour le lancement des systèmes invités, le paquet qemu-nvmm est appliqué.
- Le travail sur le système de fichiers HAMMER2 se poursuit, célèbre pour ses fonctionnalités telles que le montage séparé de snapshots, des snapshots accessibles en écriture, des quotas au niveau des répertoires, la miroiterie incrémentale, le support de différents algorithmes de compression des données et la miroiterie multi-maître avec répartition des données sur plusieurs hôtes. Dans cette nouvelle version, la prise en charge de la commande growfs a été mise en œuvre, permettant de modifier la taille d'une partition HAMMER2 existante. Un support expérimental pour le composant xdisk a également été inclus, permettant de monter des partitions HAMMER2 à partir de systèmes distants.
- Les composants de l'interface DRM (Direct Rendering Manager), le gestionnaire de mémoire vidéo TTM et le pilote amdgpu ont été synchronisés avec le noyau Linux 4.19, permettant ainsi la prise en charge des puces AMD jusqu'à l'APU 3400G. Le pilote drm/i915 pour les GPU Intel a été mis à jour, ajoutant le support des GPU Whiskey Lake et corrigeant un problème de plantage lors du démarrage. Le pilote Radeon a été converti pour utiliser le gestionnaire de mémoire vidéo TTM.
- Dans l'appel poll, le support de l'événement POLLHUP a été implémenté, retourné lors de la fermeture de l'autre extrémité d'un canal anonyme ou d'une FIFO.
- Le noyau a considérablement amélioré les algorithmes de gestion des pages mémoire, augmentant l'efficacité lors du choix des pages à déplacer vers l'espace d'échange et améliorant significativement le fonctionnement d'applications lourdes en ressources, comme les navigateurs, sur des systèmes avec une mémoire limitée.
- Le calcul de la valeur maxvnodes a été modifié pour réduire la consommation de mémoire par le noyau, car la mise en cache d'un trop grand nombre de vnodes peut diminuer l'efficacité du fonctionnement, par exemple, si des blocs de données sont également mis en cache au niveau du périphérique de bloc.
- Le utilitaire fstyp a ajouté la prise en charge du système de fichiers BeFS. Le makefs de FreeBSD a été doté du support du système de fichiers FAT. L'efficacité des utilitaires fsck et fdisk a été améliorée. Des erreurs dans le code ext2fs et msdosfs ont été corrigées.
- Ajout de l'ioctl SIOCGHWADDR pour obtenir l'adresse matérielle de l'interface réseau.
- Le ipfw3nat a ajouté le support NAT pour les paquets ICMP, mis en œuvre via le réemploi de l'idport icmp.
- Le pilote ichsmb a ajouté la prise en charge des contrôleurs Intel ICH SMBus pour les puces Cannonlake, Cometlake, Tigerlake et Geminilake.
- La génération des fichiers initrd a été transférée de l'utilisation de vn à makefs.
- Des fonctions getentropy(), clearenv() et mkdirat() ont été ajoutées à la bibliothèque standard libc. La compatibilité de l'implémentation de shm_open() et /var/run/shm avec d'autres systèmes a été améliorée. Des types spécifiques à différentes plateformes __double_t et __float_t ont été ajoutés. Des fonctions liées au chiffrement ont été réintégrées dans libdmsg. Les performances des pthreads ont été améliorées.
- Dans l'utilitaire dsynth, conçu pour la compilation locale et l'entretien des dépôts binaires DPort, une option « -M » et une variable PKG_COMPRESSION_FORMAT ont été ajoutées. La prise en charge du gestionnaire de paquets pkg 1.17 et de la deuxième version des métadonnées pkg a été assurée.
- La bibliothèque PAM OpenPAM Tabebuia, l'utilitaire de vérification des mots de passe passwdqc 2.0.2, ainsi que les paquets mandoc 1.14.6, OpenSSH 8.8p1, dhcpcd 9.4.1 et file 5.40 ont été importés.
- Une vulnérabilité exploitée localement dans le noyau a été corrigée, permettant à un utilisateur de rehausser ses privilèges dans le système (CVE non communiqué).
- Le pilote ndis, qui permettait d'utiliser des pilotes NDIS binaires de Windows, a été supprimé.
- La prise en charge du format de fichier exécutable a.out a été abandonnée.
Source : opennet.ru
