URL: https://linuxfr.org/news/freebsd-11-1 Title: FreeBSD 11.1 Authors: David Marec Thierry Thomas, Davy Defaud, palm123, claudex, Benoît Sibaud, ZeroHeure, patrick_g, nonas et Pierre Jarillon Date: 2017年06月12日T22:28:32+02:00 License: CC By-SA Tags: bsd et freebsd Score: 40 Après la publication de versions _bêtas_ depuis le 10 juin 2017 et une première version _candidate_ le 30 juin, **FreeBSD 11.1** est disponible depuis le 26 juillet. C’est la première mise à jour dite _mineure_ de [FreeBSD 11](https://linuxfr.org/redirect/100120) ; ce qui, pour suivre le principe **POLA** (_Principle Of Least Astonishment_), ne devrait pas vous exposer à des changements de configuration contraignants. ![FREEBSD](https://www.freebsd.org/logo/logo-full-thumb.png) Pour rappel, FreeBSD est un système complet issu de la famille UNIX, qui comprend un noyau et une base d’outils et de bibliothèques, dont une suite de développement logiciel ainsi qu’un mécanisme d’installation de logiciels tiers. Cette version rassemble en premier lieu l’ensemble des correctifs publiés depuis la publication de la version 11 et branche nombre d’outils et de bibliothèques de la *base* sur les révisions officielles (_upstream_). Elle apporte la prise en charge de nouveaux matériels et de nouvelles fonctionnalités et intègre les améliorations développées tout le long du cycle de développement de la branche **11-STABLE**. Elle démine aussi le terrain en déclarant obsolète les outils ou configurations qui pourraient évoluer ou disparaître lors de la sortie de **FreeBSD 12**. Pensez à consulter les journaux du système, à la recherche d’avertissements qui auraient pu survenir : ils pourraient vous prévenir de l’utilisation de clefs ou de configurations dépréciées et donc susceptibles de disparaître lors de la prochaine mise à jour. ---- [FreeBSD](https://www.freebsd.org/) [Notes](https://www.freebsd.org/releases/11.1R/relnotes.html) [La depêche FreeBSD 11 sur LinuxFr.org](https://linuxfr.org/news/freebsd-11-0) [Calendrier](https://www.freebsd.org/releases/11.1R/schedule.html) [L’annonce](https://www.freebsd.org/releases/11.1R/announce.asc) [Errata](https://www.freebsd.org/releases/11.1R/errata.html) ---- À noter ======= Si cette nouvelle version ne devrait pas bouleverser vos habitudes, ces quelques changements intéressants sont à noter : * la suite de compilation [Clang/LLVM 4.0](http://releases.llvm.org/4.0.0/docs/ReleaseNotes.html) est désormais livrée de base ; * les [Chromebook](https://fr.wikipedia.org/wiki/Chromebook) sont pris en charge via le pilote [_chromebook_platform(4)_](http://www.freebsd.org/cgi/man.cgi?query=chromebook_platform&sektion=4&manpath=FreeBSD+11.1-RELEASE) ; * [_blacklistd(8)_](http://www.freebsd.org/cgi/man.cgi?query=blacklistd&sektion=8&manpath=FreeBSD+11.1-RELEASE), le démon venu de NetBSD qui remplit la liste noire de votre pare‐feu à l’initiative d’autres démons, écoute le serveur **OpenSSH**. Un important travail d’amélioration d’[IPsec](https://fr.wikipedia.org/wiki/Internet_Protocol_Security) a été effectué, avec, en autres, l’intégration de la pseudo‐interface réseau [_if_ipsec(4)_](http://www.freebsd.org/cgi/man.cgi?query=if_ipsec&sektion=4&manpath=FreeBSD+11.1-RELEASE), qui implémente des tunnels IPsec virtuels pour créer des routes sur VPN. Les récentes annonces concernant les failles de type « [_stackclash_](https://blog.qualys.com/securitylabs/2017/06/19/the-stack-clash) » ont été entendues et cette version propose un correctif. Procédures ========== Plusieurs moyens sont à votre disposition pour obtenir le système, de l’installation complète sur une machine physique aux images pour hyperviseurs en passant, bien sûr, par la simple mise à jour. Des DVD, manuels et autres décapsuleurs sont en vente sur le site [_FreeBSD Mall_](https://www.freebsdmall.com/cgi-bin/fm). Installation ------------ Cette version est disponible pour un grand nombre d’architectures, des classiques AMD64/x86 aux ARMv6 en passant par les PowerPC et SPARC64. Téléchargez une image depuis le [site officiel](https://download.freebsd.org/ftp/releases/ISO-IMAGES/11.1/) à graver sur CD (ISO) ou clef USB (img). Notez que les images ARM et ARM64 configurent par défaut le compte `freebsd/freebsd` sur **ssh**. Pensez à les mettre à jour, ainsi que le mot de passe du super‐utilisateur `root`. Pour installer aisément le système dans une machine virtuelle, des images au format QCOW2 (QEMU), VHD (VirtualBox), VMDK (VMware) et _raw_ (HDD), [sont proposées](https://download.freebsd.org/ftp/releases/VM-IMAGES/11.1-BETA1/) pour les architectures AMD64, x86 et AArch64. En ce qui concerne les cibles ARM64 et AArch64, une amorce [EFI modifiée](https://wiki.freebsd.org/arm64/QEMU) pour QEMU est requise pour pouvoir démarrer : ```sh % qemu-system-aarch64 -m 4096M -cpu cortex-a57 -M virt \ -bios QEMU_EFI.fd -serial telnet::4444,server -nographic \ -drive if=none,file=VMDISK,id=hd0 \ -device virtio-blk-device,drive=hd0 \ -device virtio-net-device,netdev=net0 \ -netdev user,id=net0 ``` Attention, l’architecture ARM64 présente quelques soucis décrits dans le paragraphe suivant. Des images sont aussi proposées par Amazon et Vagrant. Désormais, l’installeur, [_bsdinstall(8)_](http://www.freebsd.org/cgi/man.cgi?query=bsdinstall&sektion=8&manpath=FreeBSD+11.1-RELEASE) prend en charge les réseaux cachés lors la configuration du Wi‐Fi. De plus, il crée une partition UEFI plus grande, de 200 Mio. Mise à jour ------------- S’il ne s’agit que de mettre à jour une version antérieure, suivez la procédure habituelle : ```sh # freebsd-update upgrade -r 11.1-RELEASE ``` Acceptez ou adaptez les fichiers de configuration, puis installez le nouveau système : ```sh # freebsd-update install # shutdown -r now # freebsd-update install ``` Il est ici conseillé de mettre à jour tous les logiciels installés : ```sh # freebsd-update install ``` Errata ------ Plusieurs problèmes sont apparus sans avoir pu être corrigés avant la sortie de cette _release_, consultez les [_errata_](https://linuxfr.org/redirect/100349) pour vérifier que votre installation n’est pas concernée. ###i386### FreeBSD pourrait échouer à démarrer sur _i386_ suite à l’intégration de `kern.kstack_pages`. Pour contourner le problème, appuyer sur `Échap` dès le démarrage, pour obtenir une invite de commande et entrez : ```sh set kern.kstack_pages=4 boot ``` ### depuis les sources ### Suite à un bogue dans les anciennes versions de Clang, il est recommandé de mettre à jour les machines sous 9._x_ vers la révision r286035 et les machines sous 10._x_ vers r286033, si vous reconstruisez le système depuis les sources. ### ARM64 ### L’architecture ARM64 ne fournit pas d’horloge RTC sous EFI, le système va donc démarrer sans avoir de date correctement configurée. Les installations dont la partition racine (_root_) est sous `ZFS` peuvent refuser de démarrer. Malheureusement, il n’y a pas de solution à ce problème. ### VirtualBox ### Les systèmes qui tournent sous VirtualBox et qui ont mis à jour depuis la `RC2` doivent réinstaller le paquet `virtualbox-ose-additions` ou `virtualbox-ose-additions-nox11`. Pour assurer le démarrage après la mise à jour, désactivez `vboxguest` dans [_rc.conf(5)_](https://www.freebsd.org/cgi/man.cgi?query=rc.conf&sektion=5&manpath=FreeBSD+11.1-RELEASE). Nouveautés =========== On trouve un bon nombre de nouvelles options de configuration ou de construction dans cette publication. La plupart vous permettent d’adapter le système à vos besoins et aux limites de votre machine. Configuration -------------- Le fichier [`src.conf(5)`](http://www.freebsd.org/cgi/man.cgi?query=src.conf&sektion=5&manpath=FreeBSD+11.1-RELEASE) est destiné à configurer votre système, la base comme le noyau, lors de sa construction. Les variables suivantes amènent de nouvelles fonctions ou de nouveaux comportements : * `WITHOUT_TCP_WRAPPERS` : le service [_inetd(8)_](http://www.freebsd.org/cgi/man.cgi?query=inetd&sektion=8&manpath=FreeBSD+11.1-RELEASE) ne prend plus en charge _libwrap_ ; * `WITHOUT_LIBTHR` : la bibliothèque [_libthr(3)_](http://www.freebsd.org/cgi/man.cgi?query=libthr&sektion=3&manpath=FreeBSD+11.1-RELEASE) et les fichiers associés sont maintenant validés et supprimés lors d’un `delete-old-libs` ; * `WITH_RPCBIND_WARMSTART_SUPPORT` : elle permet de construire [_rpcbind(8)_](http://www.freebsd.org/cgi/man.cgi?query=rpcbind&sektion=8&manpath=FreeBSD+11.1-RELEASE) sans la prise en charge (`-w`) de démarrage à chaud _warmstart_ (sauvegarde des infos RPC en cas de coupure). Depuis quelques années, afin de vous permettre de configurer vos machines plus finement tout en conservant une base générique, nombre d’outils ou services incluent un répertoire ou un fichier `/usr/local/etc` pour leur configuration en plus de `/etc`. Cette révision apporte cette facilité pour les logiciels suivants : * [_cron(8)_](http://www.freebsd.org/cgi/man.cgi?query=cron&sektion=8&manpath=FreeBSD+11.1-RELEASE) lit `/usr/local/etc/cron.d` en plus de `/etc/cron.d` ; * [_syslog.conf(5)_](http://www.freebsd.org/cgi/man.cgi?query=syslog.conf&sektion=5&manpath=FreeBSD+11.1-RELEASE), lit `/etc/syslog.d` et `/usr/local/etc/syslog.d` par défaut. Les scripts [_periodic(8)_](http://www.freebsd.org/cgi/man.cgi?query=periodic&sektion=8&manpath=FreeBSD+11.1-RELEASE), qui prédéfinissent des actions à réaliser à intervalles réguliers, comprennent de nouveaux éléments : * les options `anticongestion_sleeptime` et `consolidating random sleeps` remplacent `daily_ntpd_avoid_congestion`, dont les valeurs par défaut sont de 3 600 secondes ; * ajout de `410.status-mfi` (`daily_status_mfi_enable`) pour surveiller les contrôleurs RAID [_mfi(4)_](http://www.freebsd.org/cgi/man.cgi?query=mfi&sektion=4&manpath=FreeBSD+11.1-RELEASE). Ajout de l’entrée `jail_confwarn` dans [_rc.conf(5)_](http://www.freebsd.org/cgi/man.cgi?query=rc.conf&sektion=5&manpath=FreeBSD+11.1-RELEASE) qui élimine les avertissements générés par des configuration [_jail(8)_](http://www.freebsd.org/cgi/man.cgi?query=jail&sektion=8&manpath=FreeBSD+11.1-RELEASE) obsolètes. Démarrage --------- L’option `vfs.root_mount_always_wait` est ajoutée ; elle force le noyau à attendre la fin des montages, même si le point de montage racine est présent. C’est utile en particulier pour attendre les montages sur _USB_. L’option `EARLY_AP_STARTUP` du noyau est activée par défaut sur les architectures AMD64 (_MINIMAL_ et _GENERIC_) comme **i386** ; elle active les processeurs restants ( _Application Processors_ , _grosso modo_ : mettre en route le _SMP_ ) plus tôt dans le démarrage du noyau. Ce qui devrait l’accélérer (un peu). L’amorçage EFI prend en charge `TFTPFS`, qui permet de démarrer depuis le réseau sans serveur NFS. Levez le drapeau `LOADER_TFTP_SUPPORT` lors de la construction du chargeur d’amorçage pour l’activer, depuis [_make.conf(5)_](http://www.freebsd.org/cgi/man.cgi?query=make.conf&sektion=5&manpath=FreeBSD+11.1-RELEASE). La variable `netproto` fixe la méthode avec les valeurs `NET_TFTP`, `NET_NFS` ou `NET_NONE`. En cas d’appel à _dhcp_, le choix va dépendre des options choisies. ZFS ----- Le système de fichiers phare de FreeBSD a été revu et amélioré. En particulier, l’intégration de l’outil [_zfsbootcfg(8)_](http://www.freebsd.org/cgi/man.cgi?query=zfsbootcfg&sektion=8&manpath=FreeBSD+11.1-RELEASE) permet des configurations dans le style de [_boot.config(5)_](http://www.freebsd.org/cgi/man.cgi?query=boot.config&sektion=5&manpath=FreeBSD+11.1-RELEASE) pour [_zfsboot(8)_](http://www.freebsd.org/cgi/man.cgi?query=zfsboot&sektion=8&manpath=FreeBSD+11.1-RELEASE). La clef `vfs.zfs.debug_flags` disparaît au profit de `vfs.zfs.debugflags` qui peut être appelée depuis [_loader.conf(5)_](http://www.freebsd.org/cgi/man.cgi?query=loader.conf&sektion=5&manpath=FreeBSD+11.1-RELEASE) ; donc, dès le démarrage. La clef `vfs.zfs.compressed_arc_enabled`, est activée par défaut. Elle autorise la compression en mémoire des données ARC de ZFS, ce qui permet de stocker plus de cache en mémoire. Pour compléter, [_top(1)_](http://www.freebsd.org/cgi/man.cgi?query=top&sektion=1&manpath=FreeBSD+11.1-RELEASE) présente la part du cache qui est compressée et calcule son ratio : ```top ARC: 390M Total, 49M MFU, 332M MRU, 16K Anon, 2165K Header, 6895K Other 310M Compressed, 397M Uncompressed, 1.28:1 Ratio ``` En revanche, vous ne pouvez plus créer d’instantanés (_snapshots_) ZFS directement par un `mkdir` sous le répertoire `.zfs`. Base ----- La base, appelée aussi « le monde », est l’ensemble des outils et bibliothèques livrées avec le système. Tout ou presque aurait pu être listé sous ce chapitre. J’indique ici les apports isolés auxquels je ne pouvais pas consacrer une rubrique. Le moteur de [_jail(8)_](http://www.freebsd.org/cgi/man.cgi?query=jail&sektion=8&manpath=FreeBSD+11.1-RELEASE) permet désormais d’assigner explicitement des adresses IPv4 et IPv6. Il est possible de router les sorties _stdout_ et _stderr_ de [_daemon(8)_](http://www.freebsd.org/cgi/man.cgi?query=daemon&sektion=8&manpath=FreeBSD+11.1-RELEASE) vers [_syslog(3)_](http://www.freebsd.org/cgi/man.cgi?query=syslog&sektion=8&manpath=FreeBSD+11.1-RELEASE) ou un fichier. L’outil [_ELF(1)_](http://www.freebsd.org/cgi/man.cgi?query=elf&sektion=3&manpath=FreeBSD+11.1-RELEASE) a été branché sur la révision _r3490_. En particulier, il précise désormais l’architecture ARM de l’objet. L’utilitaire [_strings(1)_](http://www.freebsd.org/cgi/man.cgi?query=strings&sektion=1&manpath=FreeBSD+11.1-RELEASE) a corrigé son statut en cas d’erreur survenue sur une liste de fichiers. L’interpréteur Shell [_tcsh_](http://www.freebsd.org/cgi/man.cgi?query=tcsh&sektion=1&manpath=FreeBSD+11.1-RELEASE) a rejoint la [version 6.20.0](https://github.com/tcsh-org/tcsh/blob/master/Announce-6.20.00). L’outil de génération d’analyseurs [byacc(1)](http://www.freebsd.org/cgi/man.cgi?query=byacc&sektion=1&manpath=FreeBSD+11.1-RELEASE) rejoint la version 20170201. À noter : nombre d’apports venus de NetBSD. L’outil [_primes(6)_](http://www.freebsd.org/cgi/man.cgi?query=primes&sektion=6&manpath=FreeBSD+11.1-RELEASE) liste des nombres premiers au‐delà de `3825123056546413050`, jusqu’à 2^(64) - 1 (en fait, `(uint64_t)(-1)`). reproducible.org ---------------- Des efforts ont été fournis pour suivre les recommandations de [_reproducible-builds.org_](https://reproducible-builds.org/) et ainsi permettre de mieux cerner et corriger les problèmes rencontrés par les utilisateurs. Par exemple, [_groff(1)_](http://www.freebsd.org/cgi/man.cgi?query=groff&sektion=1&manpath=FreeBSD+11.1-RELEASE) utilise la première date du fichier `CHANGELOG`, donc la plus récente, plutôt que celle du fichier à traiter. À noter que ce vénérable outil sera déclaré obsolète dès FreeBSD 12. Amélioration de [_mandoc(1)_](http://www.freebsd.org/cgi/man.cgi?query=mandoc&ektion=1&manpath=FreeBSD+11.1-RELEASE) pour rendre sa sortie plus cohérente. En particulier, l’ordre de parcours des fichiers est prédéterminé, les pages et leurs liens, triés. Le script `sys/conf/newvers.sh` comprend les options (`-[rR]`) qui permettent d’exclure les métadonnées (`hostname`, `username`) de la construction du noyau. Vous pouvez fixer cette option dans [`src.conf`](http://www.freebsd.org/cgi/man.cgi?query=src.conf&sektion=5&manpath=FreeBSD+11.1-RELEASE) par `WITH_REPRODUCIBLE_BUILD`. Le système de démarrage UEFI fixe l’horodatage des objets PE/COFF à une valeur arbitraire, mais connue. Noyau et ABI ------------- Cette rubrique s’adresse surtout aux développeurs et à ceux qui aiment se concocter un noyau aux petits oignons ou améliorer la sécurité de l’ensemble. Quand l’horloge temps réel (_RTC_) est mise à jour, par [_clock_settime(2)_](http://www.freebsd.org/cgi/man.cgi?query=clock_settime&sektion=2&manpath=FreeBSD+11.1-RELEASE), les fils d’exécution (_threads_) en sommeil sont réveillés et leur valeur de « temps de sommeil » est réévaluée. La bibliothèque _libmd_ (chiffrement) ajoute des fonctions qui prennent comme argument un descripteur plutôt qu’un nom de fichier. Correction d’un bogue qui date d’une importation de BSD4.4-Lite (il y a 23 ans) : la routine [_kvm_close(3)_](http://www.freebsd.org/cgi/man.cgi?query=kvm_close&sektion=3&manpath=FreeBSD+11.1-RELEASE) renvoie un masque correspondant aux erreurs survenues depuis le dernier appel à [_close(2)_](http://www.freebsd.org/cgi/man.cgi?query=close&sektion=2&manpath=FreeBSD+11.1-RELEASE) au lieu de `0`. Arrivée de [_clock_nanosleep(2)_](http://www.freebsd.org/cgi/man.cgi?query=nanosleep&sektion=2&manpath=FreeBSD+11.1-RELEASE), _ex-nanosleep(2)_, pour se conformer à [[POSIX]]. L’extension [_reallocarray(3)_](http://www.freebsd.org/cgi/man.cgi?query=reallocarray&sektion=3&manpath=FreeBSD+11.1-RELEASE) [venue d’OpenBSD](http://man.openbsd.org/reallocarray), déjà incluse dans la _libc_, est utilisée en lieu et place de [_realloc_](http://www.freebsd.org/cgi/man.cgi?query=realloc&sektion=3&manpath=FreeBSD+11.1-RELEASE) dans nombre de bibliothèques (dont la _libc_ elle‐même) pour mieux contrôler les débordements. Suite aux récentes découvertes sur les [_stack clashes_](https://www.qualys.com/2017/06/19/stack-clash/stack-clash.txt), le drapeau `MAP_GUARD` a été intégré à l’allocateur mémoire [_mmap(2)_](http://www.freebsd.org/cgi/man.cgi?query=mmap&sektion=2&manpath=FreeBSD+11.1-RELEASE) pour poser une barrière sous la pile. Ces barrières sont aussi utilisées par [_rtld(1)_](http://www.freebsd.org/cgi/man.cgi?query=rtld&sektion=1&manpath=FreeBSD+11.1-RELEASE), si le noyau le permet. Notez que [HardenedBSD](https://hardenedbsd.org/article/shawn-webb/2017-06-25/stack-clash-mitigations) a choisi une implémentation différente pour protéger le système. ### Développer, Compiler, déboguer ### La chaîne de compilation est portée à la [version 4](http://releases.llvm.org/4.0.0/docs/ReleaseNotes.html) de [LLVM/CLang](http://llvm.org/), sur toutes les architectures. Vous pouvez enfin utiliser [_lldb_](http://www.freebsd.org/cgi/man.cgi?query=lldb&sektion=1&manpath=FreeBSD+11.1-RELEASE) et son [interface utilisateur](https://www.lapinbilly.eu/index.php/s/H83gu44vm07F1mP) depuis la base. Plus triviale, mise à jour des en‐têtes pour fournir les entrées suivantes : * définition de `max_align_t` pour assurer la compatibilité [C11](https://en.wikipedia.org/wiki/C11_%28C_standard_revision%29) ; * ajout du qualificatif `nullability` dans la _libc_ ; * l’attribut **GNU** `__nonnull__` a été remplacé par le `nullability` de **Clang** ; Les portages compilés avant janvier 2017 ([r312860](https://svnweb.freebsd.org/base?view=revision&revision=312860)) devront être reconstruits. Enfin, l’option `WITH_LLD_AS_LD` a été ajoutée ; elle installe [_ldd(1)_](http://www.freebsd.org/cgi/man.cgi?query=ldd&sektion=1&manpath=FreeBSD+11.1-RELEASE) sur `/usr/bin/ld`. Quel que soit ce réglage, l’éditeur de liens (_linker_) reste [_ld(1)_](http://www.freebsd.org/cgi/man.cgi?query=ld&sektion=1&manpath=FreeBSD+11.1-RELEASE) pour le noyau et le monde. Ce réglage n’est activé par défaut que sur ARM64. Notre [_bmake_](http://www.freebsd.org/cgi/man.cgi?query=make&sektion=1&manpath=FreeBSD+11.1-RELEASE) à nous intègre la version 20170510, en coopération avec NetBSD. Pour déboguer plus aisément, [_ptrace(2)_](https://www.freebsd.org/cgi/man.cgi?query=ptrace&apropos=0&sektion=2&manpath=FreeBSD+11.0-RELEASE+and+Ports&arch=default&format=html) prend en charge les événements de [_vfork(2)_](https://www.freebsd.org/cgi/man.cgi?query=vfork&apropos=0&sektion=2&manpath=FreeBSD+11.0-RELEASE+and+Ports&arch=default&format=html). Les vidages mémoire (_core dumps_) contiennent maintenant les identifiants des processus (_PID_) et les arguments précisés en ligne de commande. On ne peut plus accéder à `/dev/kmem` via [_mmap(2)_](http://www.freebsd.org/cgi/man.cgi?query=mmap&sektion=2&manpath=FreeBSD+11.1-RELEASE). Pour cela, vous devez utiliser les appels `read()` et `write()`. Manipulation de variables _UEFI_ via [_efivar(8)_](http://www.freebsd.org/cgi/man.cgi?query=efivar&sektion=8&manpath=FreeBSD+11.1-RELEASE). Bacs à sable ------------ L’intégration des solutions d’accès cloisonnés aux ressources, [Capsicum](https://www.cl.cam.ac.uk/research/security/capsicum/) et [_cloudabi_](https://github.com/NuxiNL/cloudlibc), continue... **Capsicum** est pris en charge par [_bspatch(1)_](http://www.freebsd.org/cgi/man.cgi?query=bspatch&sektion=1&manpath=FreeBSD+11.1-RELEASE). [_cloudabi(4)_](http://www.freebsd.org/cgi/man.cgi?query=cloudabi&sektion=4&manpath=FreeBSD+11.1-RELEASE) comprend les binaires 32 bits dans un environnement 64 bits si l’option du noyau `COMPAT_CLOUDABI32` est activée. Plusieurs routines peuvent maintenant être appelées en mode cloisonné : * [_getdtablesize(2)_](https://www.freebsd.org/cgi/man.cgi?query=getdtablesize&sektion=2&manpath=FreeBSD+11.1-RELEASE) ; * [_cpuset_getaffinity(2)_](https://www.freebsd.org/cgi/man.cgi?query=cpuset_getaffinity&sektion=2&manpath=FreeBSD+11.1-RELEASE) et son pendant [_cpuset_setaffinity(2)_](https://www.freebsd.org/cgi/man.cgi?query=cpuset_getaffinity&sektion=2&manpath=FreeBSD+11.1-RELEASE) ; * on peut désormais accéder au nombre de descripteurs ouverts, par la ressource `kern.proc.nfds`, dans ce mode. L’hyperviseur _bhyve_ est en cours de « capsicumisation ». Réseau ====== Que ce soit sur la pile réseau elle‐même, les fonctionnalités ou sur la prise en charge de nouvelles cartes, cette version apporte de nombreuses nouveautés, à commencer par le travail sur les protocoles liés à [_IPsec(4)_](http://www.freebsd.org/cgi/man.cgi?query=ipsec&sektion=4&manpath=FreeBSD+11.1-RELEASE). IPsec ----- Les modules `ipsec` et `tcpmd5` ont été ajoutés ; ils sont chargés automatiquement si l’option `IPSEC_SUPPORT` est activée dans le noyau. Ceux‐ci apportent l’interface [_if_ipsec(4)_](http://www.freebsd.org/cgi/man.cgi?query=if_ipsec&sektion=4&manpath=FreeBSD+11.1-RELEASE). Dans les configurations, l’option `IPSEC_FILTERTUNNEL` du noyau a été abandonnée au profit des clefs `net.inet.ipsec.filtertunnel` et `net.inet6.ipsec6.filtertunnel`. Pour les développeurs, le code associé a été déplacé vers `sys/netipsec`. Prise en charge par défaut de `NAT-T`. L’option du noyau `IPSEC_NAT_T` a été supprimée. Modification de [_setkey(8)_](http://www.freebsd.org/cgi/man.cgi?query=setkey&sektion=8&manpath=FreeBSD+11.1-RELEASE) pour afficher la configuration _NAT-T_. Les commutateurs `-g` et `-t` permettent d’afficher respectivement les règles globales et virtuelles, associés aux drapeaux `-D` et `-P`. Suppression de l’encapsulation de type `UDP_ENCAP_ESPINUDP_NON_IKE`. Pare‐feu -------- Quelques modifications majeures du pare‐feu [_ipfw(4)_](http://www.freebsd.org/cgi/man.cgi?query=ipfw&sektion=4&manpath=FreeBSD+11.1-RELEASE) : * accès aux états dynamiques par un nom ; * ajout du module `ipfw_nptv6`, implémentation de _Network Prefix Translation for IPv6_ de la RFC 6296 ; * ajout du module `ipfw_nat64`, implémentation de règles NAT64 _stateless_ et _stateful_ ; * ajout du module `ipfw_pmod`, conçu pour manipuler les paquets de n’importe quel protocole, mais qui ne comprend que _TCP MSS_` actuellement. **OpenSSH** prend en charge (_enfin_) [_blacklistd(8)_](http://www.freebsd.org/cgi/man.cgi?query=blacklistd&sektion=8&manpath=FreeBSD+11.1-RELEASE). Pour l’activer, ajoutez l’option `UseBlacklist=yes` dans votre [_sshd_config(5)_](http://www.freebsd.org/cgi/man.cgi?query=sshd_config&sektion=5&manpath=FreeBSD+11.1-RELEASE) ou `sshd_flags="-o UseBlacklist=yes"` dans votre [_src.conf(5)_](http://www.freebsd.org/cgi/man.cgi?query=rc.conf&sektion=5&manpath=FreeBSD+11.1-RELEASE). Le drapeau `keep state` d’IPFilter n’inclut plus par défaut `keep frags`, pour respecter la spécification. Pile ----- La pile réseau comprend l’appel `ip6_tryforward()`, qui en réduisant le nombre de contrôles améliore les performances. Correction d’un cafouillage lors de l’émission de message UDP `log_in_vain` ou d’appel de `inet_ntoa()` dans un contexte concurrentiel. Amélioration du redimensionnement automatique du tampon de réception de la pile TCP ; elle se déclenche par période de RTT (temps estimé d’une transmission suivie d’un acquittement). De plus, ce redimensionnement partage une fonction commune entre la méthode standard et les modules _fastpath_ et n’est plus réinitialisé lors des réceptions en mode _bulk_ (gros volumes). Tout ceci a permis un bond de performance d’environ 3 Mio/s à 100 Mio/s des téléchargements sous AWS S3. Prise en charge des retransmissions GARP (_gratuitous ARP_), la nouvelle clef `net.link.ether.inet.garp_rexmit_count` en fixe le nombre maximum. Venu de NetBSD, [_getaddrinfo(1)_](http://www.freebsd.org/cgi/man.cgi?query=getaddrinfo&sektion=1&manpath=FreeBSD+11.1-RELEASE) a débarqué. Protocoles ---------- Le client NFS est corrigé pour gérer correctement l’erreur `NFS4ERR_BAD_SESSION`. Il prend désormais en charge l’`Elastic File System (EFS)` d’Amazon. Le client RPC du noyau évite de créer une nouvelle connexion TCP à la réception d’un `ERESTART` depuis un [`sosend()`](http://www.freebsd.org/cgi/man.cgi?query=sosend&sektion=9&manpath=FreeBSD+11.1-RELEASE). Il est possible désormais de sauvegarder un mot de passe de plus de 18 caractères sur **SMBFS**. Matériel --------- Le pilote [_cxgbe(4)_](https://www.freebsd.org/cgi/man.cgi?query=cxgbe&sektion=4&manpath=FreeBSD+11.1-RELEASE), dont le micrologiciel est porté à la version 1.16.45.0, s’attache aux cartes **Chelsio T6**. De plus, la fonctionnalité _VFS_ (_virtual functions_) de ces modèles est apportée par le pilote [_cxgbev(4)_](https://www.freebsd.org/cgi/man.cgi?query=cxgbev&sektion=4&manpath=FreeBSD+11.1-RELEASE). Pour aider au débogage de ces cartes, l’outil [_cxgbetool(8)_](http://www.freebsd.org/cgi/man.cgi?query=cxgbetool&sektion=8&manpath=FreeBSD+11.1-RELEASE) a été introduit. Les pilotes suivants ont été ajoutés : * [_bnxt_](http://www.freebsd.org/cgi/man.cgi?query=bnxt&sektion=4&manpath=FreeBSD+11.1-RELEASE), pour les cartes Ethernet BCM57301/2/4 et BCM57402/4/6 ; * [_miibus(4)_](http://www.freebsd.org/cgi/man.cgi?query=miibus&sektion=4&manpath=FreeBSD+11.1-RELEASE), pour les contrôleurs Ethernet Microchip/Micrel KSZ9031 ; * [_alc(4)_](http://www.freebsd.org/cgi/man.cgi?query=miibus&sektion=4&manpath=FreeBSD+11.1-RELEASE), pour les contrôleurs Ethernet Atheros® Killer E2500TM ; * [_qlnxe(4)_](http://www.freebsd.org/cgi/man.cgi?query=qlnxe&sektion=4&manpath=FreeBSD+11.1-RELEASE), dont le micrologiciel a été porté à 8.30.0.0, pour les contrôleurs Ethernet basés sur Cavium® QlogicTM 45000. L’interface pour commutateur Ethernet [_etherswitch(4)_](http://www.freebsd.org/cgi/man.cgi?query=etherswitch&sektion=4&manpath=FreeBSD+11.1-RELEASE) ajoute les cartes RTL8366RB et RTL8366SR à sa collection. le module [_ctl(4)_](http://www.freebsd.org/cgi/man.cgi?query=ctl&sektion=4&manpath=FreeBSD+11.1-RELEASE) ne prend plus en compte les périphériques iSCSI. C’est désormais le rôle de [_cfiscsi(4)_](http://www.freebsd.org/cgi/man.cgi?query=cfiscsi&sektion=4&manpath=FreeBSD+11.1-RELEASE). Ajoutez `WITH_ISCSI=yes` dans [_src.conf(5)_](http://www.freebsd.org/cgi/man.cgi?query=src.conf&sektion=5&manpath=FreeBSD+11.1-RELEASE) pour que les outils [_ctladm(8)_](http://www.freebsd.org/cgi/man.cgi?query=ctladm&sektion=8&manpath=FreeBSD+11.1-RELEASE) et [_ctld(8)_](http://www.freebsd.org/cgi/man.cgi?query=ctld&sektion=8&manpath=FreeBSD+11.1-RELEASE) le prennent en charge. D’un point de vue général, [_devctl(8)_](http://www.freebsd.org/cgi/man.cgi?query=devctl&sektion=8&manpath=FreeBSD+11.1-RELEASE) ajoute la commande `clear driver` qui supprime une assignation forcée par `set driver`. Obsolescence programmée ======================= Dans l’idée de promouvoir [_lldb_](http://www.freebsd.org/cgi/man.cgi?query=lldb&sektion=1&manpath=FreeBSD+11.1-RELEASE), _the debugger_, les débogueurs [_gdb_](http://www.freebsd.org/cgi/man.cgi?query=gdb&sektion=1&manpath=FreeBSD+11.1-RELEASE) et [_kgdb_](http://www.freebsd.org/cgi/man.cgi?query=kgdb&sektion=1&manpath=FreeBSD+11.1-RELEASE) sont dépréciés. Si leur disparition de la base est prévue pour la prochaine version majeure, cela ne devrait pas être le cas sur toutes les architectures. Outre `groff` déjà mentionné, la série des vénérables « r-outils », `rlogin`, `rwho` et autres `rsh`, ainsi que les démons associés sont déclarés obsolètes. Il est prévu de les supprimer dans la version 12. Du côté des pilotes, on annonce la fin de la prise en charge des périphériques et outils suivants : * les interfaces séries [_digi(4)_](http://www.freebsd.org/cgi/man.cgi?query=digi&sektion=4&manpath=FreeBSD+11.1-RELEASE), [_si(4)_](http://www.freebsd.org/cgi/man.cgi?query=si&sektion=4&manpath=FreeBSD+11.1-RELEASE), [_spic(4)_](http://www.freebsd.org/cgi/man.cgi?query=spic&sektion=4&manpath=FreeBSD+11.1-RELEASE) et [_sicontrol(8)_](http://www.freebsd.org/cgi/man.cgi?query=sicontrol&sektion=8&manpath=FreeBSD+11.1-RELEASE) ; * les lecteurs CD, [_mcd(4)_](http://www.freebsd.org/cgi/man.cgi?query=mcd&sektion=4&manpath=FreeBSD+11.1-RELEASE) et [_scd(4)_](http://www.freebsd.org/cgi/man.cgi?query=scd&sektion=4&manpath=FreeBSD+11.1-RELEASE) ; * l’interface réseau [_ie(4)_](https://www.freebsd.org/cgi/man.cgi?query=ie&apropos=0&sektion=4&manpath=FreeBSD+10.0-RELEASE&arch=i386&format=html) ; * l’interface radio [_wl(4)_](https://www.freebsd.org/cgi/man.cgi?query=wl&apropos=0&sektion=4&manpath=FreeBSD+10.0-RELEASE&arch=i386&format=html) et l’outil [_wlconfig(8)_](https://www.freebsd.org/cgi/man.cgi?query=wl&apropos=0&sektion=8&manpath=FreeBSD+10.0-RELEASE&arch=i386&format=html). Afin de respecter le **POLA**, _Principle Of Least Astonishment_, le système vous avertit pour toute déclaration d’un pilote, d’un outil ou d’une clef dépréciée. Matériel ======== En vrac, FreeBSD prend en charge, améliore ou intègre de nouvelles fonctions aux périphériques suivants : * apport du module [_cfumass(4)_](http://www.freebsd.org/cgi/man.cgi?query=cfumass&sektion=4&manpath=FreeBSD+11.1-RELEASE), qui fournit une interface aux matériels USB **On‐The‐Go** pour les déclarer en tant que lecteurs de mémoire Flash ; * [_jedec_ts(4)_](https://www.freebsd.org/cgi/man.cgi?query=jedec_ts&apropos=0&sektion=4&manpath=FreeBSD+11.1-RELEASE&arch=default&format=html) prend en charge les sondes de température pour les extensions mémoire ; actuellement, ce pilote comprend les cartes compatibles avec la spécification _JEDEC JC 42.4_ ; * le pilote [_mpr(4)_](http://www.freebsd.org/cgi/man.cgi?query=mpr&sektion=4&manpath=FreeBSD+11.1-RELEASE) comprend le _tri‐mode (SAS/SATA/PCIe)_ des contrôleurs de disques Broadcom® et intègre plus de sorties de diagnostic apportées par NetFlix ; * prise en charge des cartes _ARM_ **Allwinner A13** ; * le pilote de clavier [_atkbdc(4)_](http://www.freebsd.org/cgi/man.cgi?query=atkbdc&sektion=4&manpath=FreeBSD+11.1-RELEASE) prend en charge les pavés tactiles via la clef `hw.psm.elantech_support` de [_loader.conf(5)_](http://www.freebsd.org/cgi/man.cgi?query=loader.conf&sektion=5&manpath=FreeBSD+11.1-RELEASE) ; * prise en charge des contrôleurs CPIO pour Intel® Bay TrailTM via [_bytgpio(4)_](http://www.freebsd.org/cgi/man.cgi?query=bytgpio&sektion=4&manpath=FreeBSD+11.1-RELEASE). Le pilote des cartes SD [_mmcsd(4)_](http://www.freebsd.org/cgi/man.cgi?query=mmcsd&sektion=4&manpath=FreeBSD+11.1-RELEASE) dépend aussi de [_geom_flashmap_](http://www.freebsd.org/cgi/man.cgi?query=geom_flashmap&sektion=4&manpath=FreeBSD+11.1-RELEASE). De plus, ce pilote dépend maintenant explicitement de celui de son bus [mmc](http://www.freebsd.org/cgi/man.cgi?query=mmc&sektion=4&manpath=FreeBSD+11.1-RELEASE). Virtualisation ============== Le transfert (_passthrough_) de périphériques PCI de [_bhyve(4)_](http://www.freebsd.org/cgi/man.cgi?query=bhyve&sektion=4&manpath=FreeBSD+11.1-RELEASE) permet une configuration plus dynamique en autorisant l’affectation de périphériques vers l’hôte ou l’invité au‐delà du chargement de [_vmm_](http://www.freebsd.org/cgi/man.cgi?query=vmm&sektion=4&manpath=FreeBSD+11.1-RELEASE). La clef `hw.vmm.iommu.enable` désactive cette fonction. Chez Microsoft®, Hyper-VTM [propose des machines virtuelles FreeBSD](https://docs.microsoft.com/en-us/windows-server/virtualization/hyper-v/supported-freebsd-virtual-machines-on-hyper-v) : * prise en charge de ces derniers _passthrough PCI_ ; * le pilote de réseau virtuel [_hv_netvsc(4)_](http://www.freebsd.org/cgi/man.cgi?query=hv_netvsc&sektion=4&manpath=FreeBSD+11.1-RELEASE) implémente une interface pour gérer les cartes qui permettent le partage de ressources, [_Virtual Function_ (VF)](https://docs.microsoft.com/en-us/windows-hardware/drivers/network/sr-iov-architecture), c.‐à‐d. les cartes réseau Mellanox® Connect-X3TM ; ceci afin de permettre une migration sans coupure ; * mise à jour du [chargeur UEFI](https://www.freebsd.org/cgi/man.cgi?query=uefi&apropos=0&sektion=8&manpath=FreeBSD+11.1-RELEASE+and+Ports&arch=default&format=html) pour pouvoir amorcer des [machines virtuelles de deuxième génération](https://technet.microsoft.com/en-us/library/dn282285(v=ws.11).aspx) ; * prise en charge des claviers _synthetic keyboards_. Chez Amazon® EC2TM : * activation de l’IPv6 par défaut ; * intégration du module [_ena(4)_](http://www.freebsd.org/cgi/man.cgi?query=en4&sektion=4&manpath=FreeBSD+11.1-RELEASE), soit la nouvelle génération de l’_Elastic Network Adapter_. Correctifs ========== Les logiciels suivants ont été modifiés pour corriger un défaut de sécurité : * **bhyve :** [élévation de privilèges](https://www.freebsd.org/security/advisories/FreeBSD-SA-16:32.bhyve.asc) et [accès à la mémoire de l’hôte](https://www.freebsd.org/security/advisories/FreeBSD-SA-16:38.bhyve.asc) ; * **openssh :** corrections multiples ; * **telnetd :** [injection via _login(1)_](https://www.freebsd.org/security/advisories/FreeBSD-SA-16:36.telnetd.asc) ; * **libc :** [_link_ntoa(3)_](http://www.freebsd.org/cgi/man.cgi?query=link_ntoa&sektion=3&manpath=FreeBSD+11.1-RELEASE) : [dépassement de tampon](https://www.freebsd.org/security/advisories/FreeBSD-SA-16:37.libc.asc) ; * **ntpd :** plusieurs séries d’alertes ; * **ipfilter :** [fuite possible](https://www.freebsd.org/security/advisories/FreeBSD-SA-17:04.ipfilter.asc) lors du contrôle des fragments de paquets, avant un crash ; * **heimdal (Kerberos) :** découverte d’un [nom de service KDC-REP](https://security.freebsd.org/advisories/FreeBSD-SA-17:05.heimdal.asc) en clair sur un jeton. Les logiciels suivants ont été corrigés : * **loader :** blocage au démarrage si la dernière partition n’était pas [un multiple de 4](https://www.freebsd.org/security/advisories/FreeBSD-EN-16:18.loader.asc) ; * **tzcode :** suppression d’[alertes obsolètes](https://www.freebsd.org/security/advisories/FreeBSD-EN-16:19.tzcode.asc) ; * **tzdata :** mise à jour de la base, notamment sur les zones [avec changement d’heure](https://www.freebsd.org/security/advisories/FreeBSD-EN-16:20.tzdata.asc) ; * **localedef :** mauvaise gestion de [caractères Unicode réservés](https://www.freebsd.org/security/advisories/FreeBSD-EN-16:21.localedef.asc) ; * **pcie :** blocage lors du démarrage [si le branchement à chaud sur PCI-express est activé sur certains périphériques](https://www.freebsd.org/security/advisories/FreeBSD-EN-17:01.pcie.asc) ; * **yp :** les mises à jour depuis le maître n’étaient pas poussées vers les esclaves et [pouvaient provoquer un crash](https://www.freebsd.org/security/advisories/FreeBSD-EN-17:02.yp.asc) ; * **hyperv :** compatibilité avec Hyper-V/storage [depuis les correctifs KB3172614 ou KB3179574](https://www.freebsd.org/security/advisories/FreeBSD-EN-17:03.hyperv.asc) ; * **xen :** amélioration des [migrations inter‐hôtes sans interruption](https://www.freebsd.org/security/advisories/FreeBSD-EN-17:05.xen.asc). À venir ======== La troisième édition d’_Absolute FreeBSD_ est [en préparation](https://blather.michaelwlucas.com/archives/2972). Le dépôt de logiciels [_portmaster_](https://www.freshports.org/ports-mgmt/portmaster/) sera‐t‐il toujours maintenu ? Rendez‐vous à l’[EuroBSDCon](https://linuxfr.org/news/eurobsdcon-2017-en-septembre-a-paris) qui se déroulera à Paris du 21 au 24 septembre 2017.

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