DragonFly BSD 3.8

Posté par  (site web personnel) . Édité par François Tigeot, BAud, Enj0lras, Nÿco, claudex, palm123 et patrick_g. Modéré par NeoX. Licence CC By‑SA.
46
5
juin
2014
DragonFly BSD

DragonflyBSD 3.8 est désormais disponible au téléchargement. Cette version apporte notamment une nouvelle pile USB, la prise en charge de PAM et NSS, des améliorations concernant i915 et KMS, ainsi que de nombreuses améliorations de performance des pilotes réseaux et la gestion des C-state pour les CPU Intel.

Les détails concernant cette version se trouvent dans la suite de la dépêche.

Sommaire

Noyau

ACPI

Le module ACPI pour les Thinkpad a été synchronisé avec celui de FreeBSD, ce qui devrait aider à une meilleure gestion de l'énergie sur ces machines.

Le code d'ACPI a quand a lui été mis à jour, et c'est la dernière version disponible upstream qui est présente dans le noyau.

Gestion des C-states

Sepherosa Ziehau a amélioré la gestion des C-state pour les processeurs Intel. Le noyau peut désormais faire entrer le processeur dans les C-state les plus profonds, ce qui a un effet bénéfique sur la consommation d'énergie.
L'ajustement des C-state peut se faire de manière automatique en le configuration via un appel sysctl:

sysctl machdep.mwait.cpu_idle_hlt=1
sysctl machdep.mwait.CX.idle=AUTODEEP

Pilotes graphiques

Le pilote drm/i915 avait été initialement porté depuis FreeBSD. Un travail de synchronisation avec la version présente dans la branche Linux 3.8 est maintenant en cours. Le but, à moyen terme, est de pouvoir utiliser les GPU inclus dans les processeurs Haswell et ValleyView/Bay trail. Les GPU pris en charge sont actuellement limités au HD4000 de la génération de processeurs Ivy Bridge.

Même si ce but n'est pas atteint, la synchronisation partielle avec l'implémentation drm/i915 de Linux 3.8 a déjà permis de résoudre de nombreux bugs et d'améliorer la stabilité du pilote.

Le gestionnaire de mémoire drm/ttm, utilisé par le pilote drm/radeon a été partiellement synchronisé avec la version présente dans Linux 3.9, améliorant également sa stabilité. De nombreux problèmes demeurent néanmoins et l'utilisation du pilote drm/radeon par Xorg n'est en conséquence pas activée par défaut.

Pilotes réseau

Un pilote bwn pour les cartes wifi Broadcom BCM43xx a été importé

Le pilote iwn pour les cartes wifi Intel a été synchronisé avec FreeBSD, apportant ainsi la prise en charge de plusieurs cartes Intel Centrino.

Le pilote ix pour cartes Ethernet Intel 10Gb/s a été synchronisé avec le pilote Intel ixgbe-2.5.15. La gestion des interruptions MSI-X a été ajoutée et utilise maintenant plusieurs anneaux pour la transmission de données.

Virtualisation

Le pilote virtio-net a été mis à jour. Ce changement concerne les installations de DragonFly dans VirtualBox ou QEMU par exemple.

Nouvelle pile USB

La version 3.6 avait vu l'import de USB4BSD depuis FreeBSD. En revanche, cette pile USB était désactivée en raison de manquements au niveau de la gestion de l'USB 3. Les problèmes ont été corrigés et USB4BSD est désormais la pile USB par défaut.

Hammer2

Matt Dillon a continué le travail sur Hammer2 cependant le système de fichier n'est pas encore prêt pour une utilisation en production.

Amélioration des performances réseau

  • Le nombre d'interruptions inter-processeur (IPI) non nécessaires a été réduit
  • Plusieurs jetons sont maintenant utilisés pour le verrouillage des ports réseau, ce qui a amélioré la performance des ouvertures de sockets TCP par l'appel système connect(2).
  • L'ancien verrou multi-processeur global du noyau était encore utilisé pour certaines opérations, ce qui n'est plus le cas maintenant.

Suppression de protocoles réseau et systèmes de fichier obsolètes

Les restes du protocole NS (Xerox Network System) ont été supprimés

Les protocoles ATM, IPX et NCP ont également étés supprimés. Le système de fichier Netware (NWFS), qui utilisait ces deux derniers, a subi le même sort.

Espace utilisateur

Création de /lib

Les programmes de /bin et /sbin sont désormais des binaires liés dynamiquement, ce qui rend l'utilisation des technologies NSS1 et PAM2possible. Pour l'occasion, une image ramdisk a été créée. Ce nouvel initrd permet de monter les systèmes de fichiers chiffrés ou encore de démarrer un mode de dépannage minimal.

Sémaphores Posix 1003 1b

La gestion des sémaphores nommés (sem_open(3), sem_unlink(3)) a été ajoutée trop tard pour être présente dans la version 3.8, mais elle sera peut être présente dans la prochaine version mineure, si aucun bug n'apparaît et que le changement est jugé utile.

Sémaphores SYS V en espace utilisateur

Une implémentation des sémaphores system V en espace utilisateur est désormais disponible. Elle est issue d'un projet du GSOC. Au lieu d'utiliser des appels systèmes avec le noyau se chargeant de la sémantique des sémaphores, les processus communiquent avec un daemon dédié à travers un socket unix pour obtenir un descripteur de fichier vers une zone mémoire partagée. La sémantique des sémaphores est ensuite gérée par la libc en utilisant cette zone mémoire.

Toutefois, même si les performances sont comparables, l'implémentation en espace noyau est pour l'instant toujours utilisée par défaut.

Mise à jour de logiciels tiers

Mise à jour de wpa_supplicant et hostapd

wpa_supplicant et hostapd ont été mis à jour. On passe ainsi de la version 0.6.10 à la version 2.1. Toutefois, au même titre que l'ajout de sémaphores Posix 1003 1b, il a été jugé que ce changement n'a pas encore été assez testé pour être dans cette version. Il est toutefois probable que cette mise à jour soit incluse dans une prochaine version mineure de DragonFly BSD.

Mise à jour de tcplay

tcplay est une implémentation libre de TrueCrypt écrite pour DragonFly et disponible pour Linux. Il permet de chiffrer des volumes ou des disques physiques dans un format 100% compatible avec le format TrueCrypt, permettant ainsi une interopérabilité avec d'autres systèmes d'exploitation, du moins si une implémentation de TrueCrypt reste disponible pour ces systèmes. S'agissant d'un sujet d'actualité, tcplay est une bonne alternative au logiciel TrueCrypt, mais il faut toutefois noter que son interface est en ligne de commande (même si des GUI tierces sont disponibles).

Il a été mis à jour en version 2.0.

Mise à jour de bmake

L'utilitaire bmake a été mis à jour en version 20131001. Cette mise à jour a entraîné quelques corrections sur sysctl.

Mise à jour d'OpenSSL

OpenSSL a été mis à jour vers la version 1.0.1g qui comble la faille heartbleed. À noter que Dragonfly BSD 3.6.2, sortie le 9 avril dernier, avait déjà pris soin de mettre à jour OpenSSL.

Mise à jour de mdocml

mdocml, l'outil permettant de générer les pages de manuels, a été mis à jour vers la version 1.12.3.

Mise à jour de dma

dma, le DragonFly Mail Agent, a été mis-à-jour vers la version 0.9. Pour rappel, dma est un Mail Transfer Agent (MTA) léger qui accepte la réception de mails localement et gère aussi l'envoi, à la fois localement et vers l'extérieur. Bien que très simple, il supporte SSL/TLS et l'authentification SMTP et est également disponibles pour d'autres systèmes tels que Linux ou Solaris.

Mise à jour de binutils

binutils a été mis à jour vers la version 2.24.

Mise à jour de libpcap

libpcap, la bibliothèque de capture de traffic réseau, a été mise à jour en version 1.4.0.

Mise à jour de tzdata

tzdata, la base de données contenant des informations sur les fuseaux horaires, a été mise à jour vers la version tzdata2014c.

Mise à jour de ACPICA

ACPICA a été mis à jour en version 20140424, apportant son lot de corrections et améliorations.

Mise à jour de ee

ee, l'éditeur de texte en console, a été mis à jour vers la version 1.5.2.

Mise à jour de file

file a été mis à jour en version 5.18.

Performances

François Tigeot a eu accès à une machine à base de processeurs Xeon comprenant 20 cœurs pour 40 threads et 128Gb de RAM. Il en a donc profité pour refaire sa série de benchmarks PostgreSQL avec la version 3.6.1 de DragonFly BSD. La dépêche précédente relatant la sortie de la version 3.6.0 de DragonFly BSD évoquait un gain de performances considérable pour les machines SMP. Cela se traduit dans ces nouveaux benchmarks, dont les résultats complets sont disponibles ici.

pgbench

L'axe des abscisses représente le nombre de clients tandis que l'axe des ordonnées représente le nombre de transactions par seconde.

Il est toujours bon de rappeler que ce benchmark n'est pas entièrement représentatif des performances effectives de PostgreSQL en conditions réelles. En effet, les processus clients et les processus serveurs sont en compétition pour l'accés aux ressources partagées sur la même machine, alors que dans des conditions réelles d'utilisation, les clients se connectent en général via le réseau à une machine serveur. C'est ce qui fait de pgbench un bon test pour les performances de l'ordonnanceur ainsi que celles de la gestion de la mémoire virtuelle sur une grosse machine. Il permet ainsi de mesurer les progrès réalisés pour le passage à l'échelle du noyau

Notes de mise à jour

Cette version est la dernière proposant une version 32-bit de l'OS. Pour les gens suivant l'OS de près, ce n'est pas un secret que la version 32-bit commençait à accumuler des problèmes significatifs par rapport à la version 64-bit. Il est ainsi difficile d'exploiter un nombre important de cœurs processeur et certaines opérations mémoires nécessaires à la gestion des pilotes graphiques sont tout simplement impossibles. La question de la fin du support du 32-bit a été évoquée de nombreuses fois sur IRC ou encore sur la mailing list et il semble que cette fois-ci une décision ait été prise. La version 32-bit est donc destinée aux anciens systèmes sur lesquels la version 64-bit ne peut pas être installée. À noter également que plus aucun paquet pré-compilé n'est disponible pour la version i386. Les utilisateurs devront donc passer par la case compilation via les dports afin d'installer des logiciels tiers.

La mise à jour vers DragonFly BSD 3.8 se fait de la manière habituelle:

cd /usr/src
git fetch origin
git branch DragonFly_RELEASE_3_8 origin/DragonFly_RELEASE_3_8
git checkout DragonFly_RELEASE_3_8
make buildworld && make buildkernel && make installkernel && make installworld && make upgrade
reboot

À noter également que lors de la mise à jour, /boot/kernel/initrd.img sera supprimé et remplacé par /boot/kernel/initrd.img.gz.
Pour les informations de mise-à-jour détaillées, prenez le temps de consulter /usr/src/UPDATING.

En ce qui concerne une nouvelle installation, l'instruction habituelle concernant les systèmes de fichiers est toujours d'actualité: utilisez UFS plutôt que Hammer pour les disques de moins de 50G.


  1. Le Name Service Switch permet de remplacer certains fichiers, comme /etc/passwd, par un programme, permettant, par exemple, d'avoir des utilisateurs stockés dans un annuaire LDAP. 

  2. Le Pluggable Authentication Modules permet de définir différents systèmes pour authentifier les utilisateurs, par exemple, en utilisant des informations biométriques 

Aller plus loin

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.