URL: https://linuxfr.org/news/freebsd-90-est-disponible Title: FreeBSD 9.0 est disponible Authors: David DURIEUX claudex, Laurent Cligny, Patrick Lamaizière, Joris Dedieu, Bapt, Nÿco, Frédéric Perrin, reno, Anonyme, Thierry Thomas, inico, Michaël, elf32, Manuel Menal, bubar🦥, GeneralZod, Florent Zara et Nils Ratusznik Date: 2011年11月20日T23:34:58+01:00 License: CC By-SA Tags: freebsd, bsd, dennis_ritchie et postgresql Score: 70 _Avec l'évolution de FreeBSD, les changements visibles par l'utilisateur devraient être les moins déroutants possible. Par exemple, un réarrangement arbitraire des variables de démarrage du système dans le fichier /etc/defaults/rc.conf viole ce principe (POLA--principe du moindre étonnement). Les développeurs prennent en compte ce principe quand ils s'intéressent aux changements du système visibles par les utilisateurs._ Cette définition de la POLA (Principle Of Least Astonishment) tirée du [freebsd-glossary](http://www.freebsd.org/doc/fr/books/handbook/freebsd-glossary.html#POLA) donne une bonne idée du processus de développement de FreeBSD. Les décisions sont consensuelles, la compatibilité binaire est assurée, les changements ne doivent pas perturber les utilisateurs. C'est ce qui fait — qualités techniques mises à part — de FreeBSD un OS particulièrement stable et agréable à utiliser en production. Alors que l'été avait été particulièrement [trollesque](http://lists.freebsd.org/pipermail/freebsd-arch/2011-August/011412.html) sur le ton « Linux va nous bouffer — on va tous mourir », ce processus tranquille fait preuve une fois de plus de son efficacité démontrant aux sceptiques que cette _stabilité_ n’empêche pas l’innovation. Et c'est finalement une version 9 riche en nouveautés et en améliorations que nous livre le projet. Il y aura sans doute des benchmarks, des tests précis et millimétrés. Mais sans les attendre, on peut déjà affirmer sans crainte que l'amélioration des performances sur le réseau et le smp est simplement hallucinante. NdM : grand coup de chapeau pour cet article rédigé de manière collaborative par 19 contributeurs en près de 300 révisions ! Merci à reno, Manuel Menal, Bapt, Michaël, d-jo, Thierry Thomas, inico, Nils Ratusznik, Laurent Cligny, GeneralZod, Xavier Claude, Patrick Lamaizière, Frédéric Perrin, Stéphane Aulery, elf32_ pour avoir contribué à cet article ! ---- [Notes de version](http://www.freebsd.org/releases/9.0R/relnotes.html) [FreeBSD](http://www.freebsd.org/fr/) [What's cooking for FreeBSD 9?](http://ivoras.net/freebsd/freebsd9.html) [FreeBSD 9 sur le site du Zéro](http://www.siteduzero.com/news-62-41504-p1-freebsd-9.html) [Annonce](http://www.freebsd.org/releases/9.0R/announce.html) [L'annonce sur GCU-Squad](http://www.gcu-squad.org/2012/01/ceci-est-une-revolution-avec-de-boules-rouges/) ---- # Nouveautés # ## USB 3.0 ## Le pilote USB gère dorénavant la version 3.0 du protocole et du matériel associé. USB 3.0 dispose d'une bande passante théorique de 4.8 Gbit/s, tout en étant rétro-compatible avec USB 2.0. ## Capsicum ## Pour simplifier, Capsicum peut fournir un meilleur niveau de sécurité pour les programmes l'utilisant. L'application « star » pouvant utiliser Capsicum est Chrome/Chromium (pour simplifier l'implémentation de sa [sandbox](http://fr.wikipedia.org/wiki/Sandbox_%28s%C3%A9curit%C3%A9_informatique%29)), et pour l'instant il semble que dans la base, seul [hastctl(8)](http://www.freebsd.org/cgi/man.cgi?query=hastctl&apropos=0&sektion=8&arch=default&format=html) soit « Capsicumisé ». FreeBSD9 est le premier OS « grand public » à fournir une gestion des permissions par [capabilities](http://en.wikipedia.org/wiki/Capability-based_security), cependant Capsicum n'est pas activé par défaut dans cette release. Il y a des ports de Capsicum en cours, un vers OpenBSD (Matthew Dempsky) et un autre vers Linux (Heradon Douglas). La gestion fine des privilèges par [Capsicum](http://2011.eurobsdcon.org/papers/watson/2010usenix-security-capsicum-website.pdf) est intégrée. Pour rappel, Capsicum a déjà été détaillé dans un très bon [article précédent sur LinuxFR](http://linuxfr.org/news/capsicum-une-s%C3%A9paration-fine-des-privil%C3%A8ges-pour-unix). ## UFS avec soft updates journalisées (SU+J) ## [L'Unix File System](http://en.wikipedia.org/wiki/Unix_File_System) avec [soft updates](http://en.wikipedia.org/wiki/Soft_updates) a été amélioré en implémentant un journal. La technique des soft updates permet de garantir la cohérence du système du fichier mais demande un [fsck(8)](http://www.freebsd.org/cgi/man.cgi?query=fsck&apropos=0&sektion=8&arch=default&format=html) qui peut être très long avec la taille des disques récents. Ceci dit, le fsck peut être effectué en arrière-plan (background) en faisant un snapshot du système de fichier mais malheureusement cela charge fortement la machine. [Les soft updates journalisées (SU+J)](http://2010.eurobsdcon.org/presentations-schedule/paper-detail-view/?tx_ptconfmgm_controller_detail_paper%5Buid%5D=1&tx_ptconfmgm_controller_detail_paper%5Bpid%5D=299) permettent de se passer du [fsck(8)](http://www.freebsd.org/cgi/man.cgi?query=fsck&apropos=0&sektion=8&arch=default&format=html) en journalisant ces soft-updates (ie les méta-données). Le journal est donc normalement très petit. Il est possible d'utiliser les SU+J sur un système de fichiers UFS existant (mais pas à chaud). Contrairement à d'autres nouveautés, les SU+J ne seront pas backportées en FreeBSD 8.X puisqu'elles cassent l'ABI (mais il y a des patchs). ## Packet Filter ## Le pare-feu d'OpenBSD, Packet Filter a été mis à jour dans sa version 4.5 (auparavant 4.1). Cette version apporte des modifications de syntaxe qui obligeront peut-être à revoir les règles. Parmi les ajouts on peut spécifier une plage d'adresses avec l'opérateur '-' (ex 10.0.0.1 - 10.0.0.50). À noter que pflow, qui est une sonde [netflow](http://en.wikipedia.org/wiki/Netflow), n'est pas encore implémentée dans FreeBSD. ## Intégration des disques ATA dans CAM ## Les disques ATA sont maintenant pris en charge par la couche CAM(4) (Common Access Method). Par un exemple un disque ATA n'apparaît plus sous /dev/adX mais /dev/adaX. Pour faciliter la mise à jour, un lien symbolique est créé. ## Nouveaux timers noyau ## Un nouveau sous-système de timers, [eventtimers](http://www.freebsd.org/cgi/man.cgi?query=eventtimers&apropos=0&sektion=0&manpath=FreeBSD+9-current), a été ajouté au noyau. Ces timers sont utilisés pour les générer des interruptions périodiquement et/ou à un moment précis. ## Noyau « tickless » ## Le noyau prend en charge les fréquences d'interruption dynamiques par défaut, évitant la consommation de cycles processeurs inutiles lorsque le système n'a rien à faire. Ainsi les performances des installations virtualisées et l'autonomie des ordinateurs portables fonctionnant sous FreeBSD se trouvent améliorées. L'ancien système d'interruption noyau reste disponible pour ceux qui en ont l'usage. ## Nouvel installeur ## Deux nouveaux installateurs font leur apparition : * `pc-sysinstall(8)`, l'installateur provenant de PC-BSD, entièrement écrit en shell et permettant d'« automatiser » les installations de manière plus souple que ce que ne permettait le vénérable `sysinstall(8)`. Le problème principal de `pc-sysinstall` est qu'il ne dispose pas d'interface utilisateur en console et qu'il ne dispose pas encore d'un bon support des architectures autres que i386/amd64. * `bsdinstall(8)` disposant d'un « backend » en shell et d'une interface graphique console en shell + C. Il s'agit de l'installateur par défaut de FreeBSD 9. Il a été décidé de fusionner à l'avenir les deux projets, bsdinstall(8) devenant l'interface graphique de pc-sysinstall(8). On regrette toutefois que l'installation ZFS-root ne soit toujours pas possible via installateur directement, mais elle est possible via pc-sysinstall(8). ## RCTL ## FreeBSD propose désormais un système de [contrôle des ressources hiérarchiques](http://wiki.freebsd.org/Hierarchical_Resource_Limits). On peut limiter la quantité de RAM, le temps CPU, le nombre de sémaphores, etc., par classe de login, utilisateur, processus ou jail. L'application la plus attendue se situe sans doute au niveau des jails, qui, avec cette fonctionnalité, se rapprochent encore plus des containers à la OpenVZ ou des Zones Solaris. Mais ce n'est pas la seule. L'une des particularités de `rctl` est que l'action entreprise en cas de dépassement est très finement paramétrable, allant du simple log au déclenchement d'un script. Cela permet d'envisager des choses assez évoluées en terme de contrôle et de priorités entre les différents services. ### Petit aperçu ### ```bash rctl -a user:kevin:vmem:deny=1g ``` Ceci empêche l'utilisateur « kevin » d'allouer plus de 1 Go de mémoire virtuelle. Si l'un des processus de Kévin essaie de dépasser cette limite, l'allocation mémoire sera refusée. ```bash rctl -a jail:www:pctcpu:log=50 ``` Cette règle enverra une alerte chaque fois que la jail « `www` » utilise plus que 50 % du CPU. On peut vérifier l'utilisation des ressources de cette jail avec `rctl -hu jail:www`. ## Améliorations SMP et NUMA ## Des améliorations de la structure du noyau SMP permettent dorénavant de prendre en compte un nombre supérieur à 32 processeurs, ouvrant la voie à une meilleure prise en charge des grands systèmes multiprocesseurs. Une prise en charge initiale de Non_Uniform_Memory_Access limitant les problèmes d'accès concurrents à la mémoire lors de la présence d'un grand nombre de processeurs sur architecture SMP. Une implémentation complète de NUMA dans le futur pourrait grandement faciliter l'utilisation de FreeBSD dans des architectures de type « cluster ». ## SSH haute performance ## Le code du projet [HPN-SSH](http://www.psc.edu/networking/projects/hpn-ssh/) a été incorporé. Il faut noter d'une part une amélioration significative des performances en terme de bande passante par une meilleure utilisation des mémoires tampons destinées aux contrôles de flux SSH. Cette amélioration est particulièrement sensible dans le cas des liens à haut débit et latence élevée. D'autre part, HPN-SSH embarque une implémentation multiprocesseur de l'algorithme de chiffrement [AES-CTR](http://fr.wikipedia.org/wiki/Mode_d%27op%C3%A9ration_%28cryptographie%29#Chiffrement_bas.C3.A9_sur_un_compteur_:_.C2.AB_CounTeR_.C2.BB_.28CTR.29), ce qui diminue la charge CPU sur les machines à plusieurs cœurs. ## Clang/LLVM ## Clang/LLVM est intégré de base dans sa version LLVM 3.0 et permet de compiler le « monde » et le noyau [FreeBSD Clang](http://wiki.freebsd.org/BuildingFreeBSDWithClang). C'est un premier pas pour avoir une chaîne de compilation sans GPL, les binutils sont toujours utilisés. Plus d'informations sur cet effort : [bsd toolchain](http://wiki.freebsd.org/BSDToolchain). ## Hast ## [Hast](http://wiki.freebsd.org/HAST) est un système permettant de créer, via l'interface GEOM, une unité de stockage (cluster) en miroir au travers d'un réseau de manière transparente, à la façon de [[DRDB]] sous Linux. À ce jour, HAST souffre de quelques limitations : * Configuration du cluster en maître-esclave uniquement, avec une limite de deux nœuds au total par cluster. * Sur trois modes de synchronisation envisagés, un seul est implémenté pour le moment. Il s'agit du mode « fullsync » qui comme sont nom l'indique, ne considère les données comme synchronisées que lorsque l'écriture locale et distante des données sont terminées. Il s'agit du mode le plus sûr mais aussi le plus lent. Toutefois, couplé à des outils tels que [Heartbeat](http://fr.wikipedia.org/wiki/Heartbeat_%28programme%29) ou [CARP](http://fr.wikipedia.org/wiki/Common_address_redundancy_protocol), Hast est une solution intéressante pour mettre en place de la haute disponibilité dans un environnement FreeBSD. ## Dtrace en espace utilisateur ## L'environnement de détection d'anomalies DTrace gère maintenant le traçage des applications en espace utilisateur, ouvrant la voie à de meilleurs débogages et diagnostics des programmes hors noyau. Ainsi les fonctionnalités de traçage dynamiques présentes, par exemple, dans [PostgreSQL](http://docs.postgresqlfr.org/9.1/dynamic-trace.html) et [X.org](http://www.x.org/wiki/Releases/7.3) sont utilisables sous FreeBSD 9.0. ## Grep ## GNU grep a été remplacé par [une implémentation propre](http://wiki.freebsd.org/BSDgrep) issue d'une fusion entre [FreeGrep](https://github.com/howardjp/freegrep) et du code en provenance de [[OpenBSD]]. Pour ce changement la question des performances et de la compatibilité avec l'existant a été centrale. Mike Haertel (l'auteur de GNU grep) a [défendu chèrement son bébé]( http://lists.freebsd.org/pipermail/freebsd-current/2010-August/019310.html). Par défaut, le binaire reste lié avec la bibliothèque GNU regexp pour des raisons de compatibilité. À noter que [TRE](http://laurikari.net/tre/) devrait bientôt remplacer l'implémentation de base des regexp sous FreeBSD et accroitre encore les performances de cet outil. GNU grep reste disponible dans l'arbre des ports sous textproc/gnugrep. ## ZFS v28 ## ZFS a été mis à jour et intègre la version 28, avec au programme : * RAID-Z3 (triple parité - un disque de parité de plus que le RAID-6) ; * Déduplication de fichiers ; * Meilleur support de récupération pendant l'import ; * Snapshot-level diff (comme le diff traditionnel mais sur un système de fichiers) ; * zpool split (séparer un RAID-1 / mirroir de disques en zpools séparés/indépendants). # Intervention manuelle avant mise à jour # Vous avez déjà un FreeBSD 7 ou 8 installé, et vous voulez installer via les mises à jour binaires ? L'outil de mise à jour de FreeBSD, [`freebsd-update`](http://www.daemonology.net/freebsd-update/), a besoin d'une petite mise à jour avant d'installer la nouvelle release. La [notice d'errata](http://security.freebsd.org/advisories/FreeBSD-EN-12:01.freebsd-update.asc) explique comment faire cela. Plus de détails ont été donnés dans l'[annonce de la dernière RC](http://lists.freebsd.org/pipermail/freebsd-stable/2011-December/064770.html) : freebsd-update effectue des tests de cohérence sur les nouveaux fichiers installés. Entre autres, il vérifie que les noms des fichiers sont raisonnables. Or, la nouvelle version contient des fichiers dont le nom comprend `@` ou `%`, qui sont rejetés. # La suite # Si vous avez déjà fait le tour de cette version ou que vous êtes impatient connaître la suite de l'histoire, sachez que quelques projets intéressants pourront vous en donner un avant-goût certain : * [DIFFUSE](http://caia.swin.edu.au/urp/diffuse/intro.html) (DIstributed Firewall and Flow-shaper Using Statistical Evidence), un outil de contrôle du trafic réseau distribué, basé sur ipfw ; * [BHyVe](http://wiki.freebsd.org/BHyVe), l'hyperviseur de machines virtuelles contribué par NetApp ; * [pkgng](http://wiki.freebsd.org/pkgng), le nouvel outil de gestion des paquets binaires. Et peut-être la fin — ou pas — de quelques vieux trolls comme la suppression de named, le script de démarrage des jails, ou pourquoi pas la fin de [sbin](http://freebsd.1045724.n5.nabble.com/The-strangeness-called-sbin-td4980917.html). # À la mémoire de # La release de FreeBSD 9.0 est dédiée à Dennis Ritchie. Merci monsieur.

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