URL: https://linuxfr.org/news/sortie-de-la-version-dragonfly-3-4 Title: Sortie de la version DragonFly 3.4 Authors: Enj0lras Nÿco, Loïc Blot, Benoît Sibaud, patrick_g et Nicolas Casanova Date: 2013年04月29日T11:05:18+02:00 License: CC By-SA Tags: Score: 35 DragonFly BSD est un système d'exploitation BSD de type Unix. Après 1500 commits par 23 committers pendant 6 mois de développement, la version 3.4 apporte son lot de nouveautés, avec un nouveau système de gestion des paquets et des performances améliorées. ![DragonFly BSD](https://www.dragonflybsd.org/images/small_logo.png) ---- [Site officiel](https://www.dragonflybsd.org/) [Notes de version 3.4](https://www.dragonflybsd.org/release34/) [Téléchargement](https://www.dragonflybsd.org/mirrors/) ---- # Espace utilisateur ## Logiciels tiers Jusqu'à présent, il était possible d'installer des logiciels tiers grâce au système [pkgsrc](http://www.pkgsrc.org). Principalement développé par et pour le système d'exploitation [NetBSD](http://www.netbsd.org/), ce système de gestion de paquets sources qui a pour but d'être portable est disponible pour de nombreux OS, comme GNU/Linux, divers BSD, Solaris ou Minix. Le principal mainteneur de pkgsrc pour dragonfly a décidé de porter un autre système de gestion des paquets qui convenait mieux à ses attentes. DragonFly BSD 3.4 est donc livré avec pkgsrc ainsi qu'avec DPorts. [DPorts](https://github.com/jrmarino/DPorts) est une adaptation du système de ports de FreeBSD pour le faire fonctionner sur DragonFly. Uniquement les paquets pouvant être compilés sur dragonfly y sont présent. DPorts est fortement lié au gestionnaire de paquets binaires [pkgng](https://github.com/pkgng/pkgng#readme) développé pour les ports FreeBSD. Il est donc possible d'installer des logiciels en les compilant ou depuis un dépôt binaire, et de mélanger les deux méthodes si par exemple les options par défaut des paquets binaires ne conviennent pas. Actuellement, il y a plus de 19000 paquets binaires disponibles, dont xfce ou KDE 4.10. Il faut noter que pkgsrc et Dports ne peuvent en théorie pas être utilisés en même temps, pour éviter les conflits, en particulier entre les bibliothèques partagées. Un [tutoriel sur l'utilisation simple des ports](https://www.dragonflybsd.org/docs/howtos/HowToDPorts) est disponible, pour une utilisation avancée, on peut se référer à la documentation FreeBSD. ## Compilateur par défaut Lors de la version 3.2, GCC 4.7 avait été introduit dans le système de base. Cependant, c'était toujours GCC 4.4 qui était utilisé par défaut. C'est maintenant GCC 4.7 qui remplit le rôle de compilateur par défaut. GCC 4.7 introduit diverses améliorations, comme les [Link Time Optimizations (LTO)](http://en.wikipedia.org/wiki/Link-time_optimization). De plus, le support d'[OpenMP](http://openmp.org), une API pour la programmation concurrente et parallèle en C/C++, a été ajouté pour GCC 4.7 sur DragonFly. Toutefois, GCC 4.4 est toujours la version par défaut pour DPorts le temps que certains problèmes de compilation soient réglés. ## Divers Comme à chaque version, une partie des outils a reçu des mises à jours ou des améliorations provenant de divers autres BSD, souvent depuis FreeBSD, et les logiciels et bibliothèques tiers distribués dans le système de base ont été mis à jour. De plus, l'implémentation de make utilisée par le système de base est désormais [bmake](http://www.crufty.net/help/sjg/bmake.html), une version portable dérivée du make de NetBSD. Il est aussi maintenant possible de choisir l'addresse MAC et le numéros de série des interfaces virtuelles et des disques associés aux vkernels. Pour rappel, un vkernel permet l'exécution d'un noyau DragonFly en espace utilisateur, permettant ainsi de déboguer/développer rapidement un noyau sans avoir à redémarrer la machine. # Noyau ## Advanced Vector Extensions (AVX) Le support du jeu d'instructions [AVX](http://en.wikipedia.org/wiki/Advanced_Vector_Extensions), permettant de faire du calcul vectoriel sur les nouveaux processeurs Intel et AMD a été ajouté au noyau pour l'architecture x86_64. Les programmes en espace utilisateur peuvent désormais en tirer partie si le compilateur utilisé supporte ce jeu d'instruction (ce qui est le cas de GCC 4.7). ## Poudriere : quand le noyau fait BOOM [Poudriere](https://fossil.etoilebsd.net/poudriere) est un outil permettant de compiler à la volée des paquets et de les tester, le tout dans des jails et en parallèle. L'utilisation intensive de poudriere sur DragonFly a permis de mettre en évidence plusieurs points de contention dans différentes parties du noyau lors d'une utilisation massivement parallèle, notamment sur un système opteron à 48 cœurs, ce qui a permis d'améliorer le passage à l'échelle du noyau. Ces améliorations concernent par exemple la [gestion du swap](http://gitweb.dragonflybsd.org/dragonfly.git/commit/7fa8d3ba49288bc90bd4d3f654520d236f8a999b), [le système de fichier en mémoire tmpfs](http://gitweb.dragonflybsd.org/dragonfly.git/commit/6f2f854f2066ba30dc73c6d75d3c68578423fbc4), [la mémoire virtuelle et les syscalls fork/exec](http://gitweb.dragonflybsd.org/dragonfly.git/commit/ce94514e6b38abad5c78107e3d1ac401117df5c4) ou [la résolution des noms de fichier](http://gitweb.dragonflybsd.org/dragonfly.git/commit/6363f2683b09cd5c4cd7b92ec1963bb66da04543). ![Charge CPU lors d'une utilisation de poudrière](http://lists.dragonflybsd.org/pipermail/kernel/attachments/20130423/527f39c9/attachment-0001.png) Ce graphique illustre les avancées obtenues. Il représente la charge CPU lors deux exécutions de ~12h de poudrière sur la machine opteron de 48 cœurs. La première partie est une exécution avec un noyau récent, similaire au noyau 3.4, et la deuxième partie avec un noyau plus proche du noyau 3.2. Le noyau récent permet d'utiliser beaucoup mieux le temps CPU alors que le noyau 3.2 est sujet à des problèmes de contention qui limitent l'utilisation CPU. Le temps de compilation des 19000 paquets de DPorts sur l'opteron [a été amélioré de plus de 60 %](http://lists.dragonflybsd.org/pipermail/kernel/attachments/20130421/414fcd45/attachment-0002.pdf). ## tmpfs Le système de fichier en RAM tmpfs a été fortement amélioré. L'utilisation du MPLOCK [a été supprimée](http://gitweb.dragonflybsd.org/dragonfly.git/commit/aa1adbf0f3aad9f5b7161d3c66ddad5313a5692d), et tmpfs fonctionne désormais avec un verrou par point de montage. D'autres [améliorations](http://gitweb.dragonflybsd.org/dragonfly.git/commit/2446b819bcf812e200b119f5f2fa37aee3f8a426) et corrections de bugs ont conduit à une amélioration drastique des performances de tmpf (presque 100%), comme le montre [ce PDF](http://lists.dragonflybsd.org/pipermail/kernel/attachments/20130421/414fcd45/attachment-0003.pdf). ## Réseau Comme d'habitude, la pile réseau et les pilotes ont fait l'objet d'une multitude de commits. Ces commits ont permis une amélioration des performances réseau, notamment via l'utilisation de files multiples, et de diminuer la latence. L'exemple le plus concret est sur le pilote [igb(4)](http://leaf.dragonflybsd.org/cgi/web-man?command=igb§ion=4) (Intel 10G) dont l'original plafonnait à 1.5 Gbit/sec et le nouveau à 8.9 Gbit/sec Quand le noyau a fini de traiter un paquet, le pilote le place dans la file de transmission de la carte réseau pour qu'il soit traité par celle ci. Toutefois, un nombre croissant de cartes réseau modernes supporte plusieurs files de transmission. Elles sont désormais gérées par le noyau et les pilotes [igb(4)](http://leaf.dragonflybsd.org/cgi/web-man?command=igb§ion=4), [emx(4)](http://leaf.dragonflybsd.org/cgi/web-man?command=emx§ion=4), [bce(4)](http://leaf.dragonflybsd.org/cgi/web-man?command=bce§ion=4). Ce travail, ainsi que diverses optimisations, améliore fortement les performances du forwarding de paquets, comme détaillé [dans ce mail](http://lists.dragonflybsd.org/pipermail/users/2013-February/053123.html). # Projet ## Distribution DragonFly est disponible sous forme d'iso et d'img disque bootables, ainsi que d'image disque bootable contnenant un environnement graphique et quelques logiciels pré-installés. ## Google Summer of Code DragonFly a été accepté comme organisation pour la 5^e année consécutive, et participera donc au GSoC 2013.

AltStyle によって変換されたページ (->オリジナル) /