URL: https://linuxfr.org/news/netbsd-7-0 Title: NetBSD 7.0 Authors: Nils Ratusznik palm123, Benoît Sibaud, bubar🦥, ZeroHeure, Nicolas Casanova, Xavier Teyssier et M5oul Date: 2014年08月13日T15:22:52+02:00 License: CC By-SA Tags: netbsd, arm et raspberry_pi Score: 37 La fondation NetBSD a [annoncé ce 8 octobre 2015](http://www.netbsd.org/releases/formal-7/NetBSD-7.0.html) la disponibilité d'une nouvelle version majeure de NetBSD, estampillée 7.0. NetBSD est un système d’exploitation libre, de type UNIX, dérivé de Net/2, 4.3BSD et 386BSD. Il est ainsi un héritier tout droit issu de BSD UNIX et, en réalité, le premier projet à avoir posé les bases de ce qu’allait devenir « un projet communautaire ». Ce système met l’accent sur la propreté de son code source, sa lisibilité et, par extension, sa portabilité. Il est aussi connu pour avoir été la base d’OpenBSD. Cette nouvelle version majeure fait suite aux versions 6.0 et 6.1, disponibles pour leur part depuis octobre 2012 et juin 2013. Une partie des changements est détaillée en seconde partie de cet article, et reprend en grande partie la page d'annonce. ---- [The NetBSD Project](http://www.netbsd.org/) [DLFP : NetBSD 6.1.5 et 6.0.6](http://linuxfr.org/news/netbsd-6-1-5-et-6-0-6) [DLFP : NetBSD 6.1](http://linuxfr.org/news/netbsd-6-1) [DLFP : pkgsrc 2015Q3](http://linuxfr.org/news/pkgsrc-2015q3) [Annonce de NetBSD 7.0](http://www.netbsd.org/releases/formal-7/NetBSD-7.0.html) [Liste des changements](http://ftp.netbsd.org/pub/NetBSD/NetBSD-7.0/CHANGES-7.0) [NetBSDfr](http://www.netbsdfr.org) [Interview de Jeff Rizzo sur Beastie.pl](http://beastie.pl/deweloperzy-netbsd-7-0-jeff-rizzo/) [Interview de Leonardo Taccari sur Beastie.pl](http://beastie.pl/deweloperzy-netbsd-7-0-leonardo-taccari/) ---- # Noyau Le noyau en lui-même dispose des améliorations suivantes : * prise en compte de [sendmmsg(2)](http://man.netbsd.org/7.0/usr/share/man/html2//sendmmsg.html) et de [recvmmsg(2)](http://man.netbsd.org/7.0/usr/share/man/html2//recvmmsg.html) ; * les instructions BPF_COP/BPF_COPX sont utilisables grâce à un coprocesseur BPF ; * ajout des appels système [fdiscard(2)](http://man.netbsd.org/7.0/usr/share/man/html2//fdiscard.html) and [posix_fallocate(2)](http://man.netbsd.org/7.0/usr/share/man/html2//posix_fallocate.html) ; * une limite supplémentaire, RLIMIT_NTHR, pour restreindre le nombre de processus par utilisateur, accompagnée d'un appel _sysctl_ : _kern.maxlwp_ ; * import du compilateur JIT (just in time) sljit et ajout de BPF ; * les variables kern.uidinfo.* sont maintenant disponibles dans _sysctl_ ; * création d'une option de configuration "options MODULAR_DEFAULT_AUTOLOAD", ajoutée par défaut aux noyaux configurés pour utiliser "options MODULAR" : cela active le chargement automatique de modules au démarrage, et permet une désactivation simple en commentant ou retirant cette ligne ; * vous voulez utiliser NetBSD comme baromètre ? Challenge accepté ! [envsys(4)](http://man.netbsd.org/7.0/usr/share/man/html4//envsys.html) se voit ajouter _%rH_ (humidité relative) à ses senseurs. # Réseau De nouveaux appels _sysctl_ (en provenance d'OpenBSD) font leur apparition, et ont pour but d'empêcher des attaques par déni de service sur réseau IPv6 : * _net.inet6.ip6.neighborgcthresh_, ayant pour valeur par défaut 2048 ; * _net.inet6.ip6.maxifprefixes_, positionné à 16 ; * _net.inet6.ip6.maxifdefrouters_, qui vaut aussi 16 par défaut ; * et enfin _net.inet6.ip6.maxdynroutes_, qui vaut 4096. [shmif(4)](http://man.netbsd.org/7.0/usr/share/man/html4//shmif.html) est une interface réseau prévue pour fonctionner dans un noyau de type RUMP. Dans NetBSD 7.0, elle fonctionne désormais lorsqu'elle est associée à un bridge. Toujours côté _sysctl_, on notera l'apparition de _net.inet6.ip6.prefer_tempaddr_ pour favoriser l'utilisation d'adresses IPv6 temporaires comme adresse source. Afin d'obtenir des informations sur une session TCP, NetBSD 7.0 prend maintenant en charge l'option _TCP_INFO_ dans un socket. # Stockage Navré de décevoir ceux qui attendaient une version stable de ZFS, ce n'est pas pour tout de suite. En revanche, quelques améliorations notables sont disponibles, comme l'ajout (expérimental) d'une option "discard" ou "trim" pour le stockage principal avec une mémoire flash (disques SSD, clé USB, carte mémoire). On appréciera aussi le fait que les partitions FFS pourront être montées même si le journal WAPBL est corrompu. Les attributs étendus UFS1 sont maintenant activés dans la configuration noyau GENERIC, et dans les configurations basées dessus. Enfin, il sera possible, côté ptyfs, d'autoriser plusieurs fois le montage. # Sécurité [rnd(4)](http://man.netbsd.org/7.0/usr/share/man/html4//rnd.html) est le générateur de nombres aléatoires de NetBSD. Celui-ci s'améliore avec la version 7.0, en acceptant les senseurs de la machine comme source d'entropie. De plus, il récoltera encore plus d'entropie au début du démarrage et en utilisant presque tout ce qu'il peut : timings autoconf, paramètres sysctl, le nom d'hôte de la machine, le contenu des premiers paquets réseau, voire même les valeurs de différents senseurs. Toujours dans le domaine de la génération de nombres aléatoires, il est possible d'utiliser [viornd(4)](http://man.netbsd.org/7.0/usr/share/man/html4//viornd.html), un pilote pour VirtIO, qui permettra d'avoir suffisamment d'entropie sur une machine virtuelle QEMU, KVM, ou Google Compute Engine. [NPF(7)](http://man.netbsd.org/7.0/usr/share/man/html7//npf.html) est un outil de filtrage de paquets, à l'image de PF, mais spécifique à NetBSD et apparu dans la version 6.0. Sa principale raison d'être réside dans l'adaptation de son code pour le multi-processeur SMP. La version 7.0 de NetBSD lui apporte quelques améliorations : * NPF utilise le byte-code BPF (Berkeley Packet Filter), qui a la particularité d'avoir une compilation JIT (just-in-time) par défaut ; * prise en charge de règles dynamiques ; * possibilité de mettre en place un NAT statique (stateless) ; * on peut dorénavant mettre en place de la translation de préfixe réseau IPv6 vers IPv6, comme spécifié dans la [RFC 6296](https://tools.ietf.org/html/rfc6296) ; * enfin, NPF est capable d'utiliser des tables basées sur CDB. On déplorera l'absence de LibreSSL, mais celui-ci est encore en cours d'intégration dans pkgsrc-wip : [wip/libressl](http://pkgsrc.se/wip/libressl). Les contributeurs sont les bienvenus :) # Pilotes de périphériques NetBSD apporte beaucoup de nouveautés dans ce domaine, en particulier côté graphique, grâce à un port du code DRM/KMS de Linux 3.15 : cela se traduit par la possibilité d'utiliser des cartes Intel et Radeon modernes, et de disposer de l'accélération matérielle. Si vous évoluez encore avec du matériel du siècle dernier, vous n'êtes pas oubliés : parmi les pilotes framebuffer, on trouvera entre autres gffb pour les cartes GeForce2 MX et tdvfb pour les Voodoo1 et Voodoo2. On notera aussi l'arrivée de nombreux pilotes réseau, filaires et sans fil, dont quelques-uns importés d'OpenBSD ou de FreeBSD. On peut citer par exemple le pilote VMware VMXNET3 [vmx(4)](http://man.netbsd.org/7.0/usr/share/man/html4/x86/vmx.html) ainsi que l'ajout de nombreuses puces dont BCM57762 (Apple Thunderbolt Gigabit Ethernet Adapter) dans [bge(4)](http://man.netbsd.org/7.0/usr/share/man/html4//bge.html). De manière plus générique, on pourra aussi remarquer que tout le sous-système USB est maintenant compatible multi-processeur. # Plateformes matérielles L'une des principales nouveautés de NetBSD 7.0 réside dans le nombre de SoC ARM officiellement pris en charge de manière stable, avec en premier lieu la gamme Raspberry Pi, complètement gérée, incluant la fréquence CPU, le GPU VideoCore IV, le son, ainsi que les 4 coeurs dans le cas du Raspberry Pi 2. D'autres cartes sont elles aussi prises en charge, comme l'ODROID-C1, le BeagleBone (TI AM335x), le BeagleBoard-xM (TI DM37XX), le Kobo Touch (Freescale i.MX50), le Banana Pi ou les SoC Marvell Armada XP. De manière plus générale pour les ports ARM, diverses nouveautés sont à apprécier, comme la prise en charge du SMP ou du processeur Cortex-A9. Il convient de remarquer que tous les ports ARM ayant en commun la MACHINE_ARCH génèrent maintenant les mêmes binaires en espace utilisateur. Tous les sets, à l'exception de _etc.tgz_ sont donc binairement identiques. Enfin, le format de fichier binaire est maintenant EABI. Vous avez un ordinateur portable [MIPS Lemote Yeeloong](http://www.lemote.com/en/products/Notebook/2010/0310/112.html) ? Félicitations, vous pouvez installer NetBSD 7.0 dessus ! Les utilisateurs PowerPC ne sont pas en reste, avec la prise en charge des processeurs de type ppc601. Le port Amiga bénéficie de nombreux ajouts de pilotes matériels, comme [xsh(4)](http://man.netbsd.org/7.0/usr/share/man/html4//xsh.html), [empb(4)](http://man.netbsd.org/7.0/usr/share/man/html4//empb.html), [em4k(4)](http://man.netbsd.org/7.0/usr/share/man/html4//em4k.html) ou encore [empm(4)](http://man.netbsd.org/7.0/usr/share/man/html4//empm.html). Ce dernier est d'autant plus pratique qu'il permet d'éteindre complètement la machine. Revenons à des architectures plus traditionnelles, en commençant par le port amd64 qui est capable maintenant de gérer 256 processeurs ! Dans un registre moins impressionnant mais probablement plus utilisable au quotidien, NetBSD 7 intègre un pilote pour gérer le SMC (System Management Controller), qui permet par exemple de voir et de modifier la vitesse des ventilateurs de sa machine Apple. La plateforme i386 quant à elle bénéficie de l'ajout du pilote _soekrisgpio_ pour les modèles net6501 de chez Soekris. Par contre, l'option noyau COMPAT_FREEBSD est désactivée par défaut. Certains pilotes d'affichage sont aussi retirés (vga@isa et pcdisplay@isa) du noyau GENERIC, mais sont inclus dans une une nouvelle configuration noyau, nommée LEGACY. # Outils utilisateurs Un nouvel outil fait son apparition dans NetBSD 7.0 : [blacklistd(8)](http://man.netbsd.org/7.0/usr/share/man/html8//blacklistd.html). Il s'agit d'un démon qui s'intègre aux dispositifs de filtrage de paquets pour protéger certains démons réseau, comme ssh, named et ftpd de tentatives d'intrusion par force brute. On peut le comparer à [fail2ban](http://pkgsrc.se/security/fail2ban). Remarquons aussi l'apparition d'une commande [service(8)](http://man.netbsd.org/7.0/usr/share/man/html8//service.html) basée sur le script FreeBSD, qui permet de lancer, arrêter ou vérifier l'état d'un démon. Exemples : ``` # service sshd restart Stopping sshd. Starting sshd. $ service -v inetd status inetd is located in /etc/rc.d inetd is running as pid 1713. ``` L'outil gkermit se voit remplacé par [ekermit(1)](http://man.netbsd.org/7.0/usr/share/man/html1//ekermit.html), qui lui est sous licence BSD. Pour ceux qui souhaitent conserver leurs habitudes, gkermit est disponible en paquet pkgsrc sous [comms/gkermit](http://pkgsrc.se/comms/gkermit). La commande [ftp(1)](http://man.netbsd.org/7.0/usr/share/man/html1//ftp.html) se voit ajouter la prise en charge du protocole HTTPS. Cela peut sembler étrange à première vue (après tout, pourquoi un client FTP permettrait autre chose que ce protocole ?), mais en fait cette fonctionnalité enlève une épine du pied à tous ceux qui maintiennent des paquets dans pkgsrc. En effet, des dépôts populaires de sources ne sont accessibles que via HTTPS, comme Github ou PyPI, obligeant à demander que l'archive source soit copiée sur ftp.netbsd.org ou à obliger pkgsrc à télécharger les sources en utilisant curl ou wget. Du côté de [zgrep(1)](http://man.netbsd.org/7.0/usr/share/man/html1//zgrep.html), on appréciera que le nom du fichier ne soit plus préfixé à la sortie de la commande, car cela permet d'avoir un comportement identique à [grep(1)](http://man.netbsd.org/7.0/usr/share/man/html1//grep.html). Signalons aussi diverses mises à jours dans les programmes fournis de base : * BIND 9.10.2-P4 ; * IPFilter 5.1.1 ; * LLVM 3.6.1 ; * OpenLDAP 2.4.39 ; * OpenSSH 6.8 ; * OpenSSL 1.0.1p ; * SQLite 3.8.3.1 ; * [atf(7)](http://man.netbsd.org/7.0/usr/share/man/html7//atf.html) 0.20 ; * binutils 2.23.2 ; * byacc 20130304 ; * [bzip2(1)](http://man.netbsd.org/7.0/usr/share/man/html1//bzip2.html) 1.0.6 ; * dhcp 4.3.0 ; * [dhcpcd(8)](http://man.netbsd.org/7.0/usr/share/man/html8//dhcpcd.html) 6.7.1 ; * [file(1)](http://man.netbsd.org/7.0/usr/share/man/html1//file.html) 5.19 ; * flex 2.5.39 ; * [gcc(1)](http://man.netbsd.org/7.0/usr/share/man/html1//gcc.html) 4.8.4 ; * [gdb(1)](http://man.netbsd.org/7.0/usr/share/man/html1//gdb.html) 7.7.1 ; * [kerberos(8)](http://man.netbsd.org/7.0/usr/share/man/html8//kerberos.html) Heimdal-1-5-branch ; * [less(1)](http://man.netbsd.org/7.0/usr/share/man/html1//less.html) 458 ; * libevent 2.0.22-stable ; * libpcap 1.5.2 ; * [lua(1)](http://man.netbsd.org/7.0/usr/share/man/html1//lua.html) 5.3.0 ; * mDNSResponder 258.14 ; * ntp 4.2.8p2 ; * [openpam(3)](http://man.netbsd.org/7.0/usr/share/man/html3//openpam.html) 20140912 (Ourouparia) ; * openresolv 3.6.0 ; * pcc 1.1.0.DEVEL 20120325 ; * pppd 2.4.7 ; * [pigz(1)](http://man.netbsd.org/7.0/usr/share/man/html1//pigz.html) 2.3.1 ; * [postfix(1)](http://man.netbsd.org/7.0/usr/share/man/html1//postfix.html) 2.11.4 ; * [tcpdump(8)](http://man.netbsd.org/7.0/usr/share/man/html8//tcpdump.html) 4.5.1 ; * [tmux(1)](http://man.netbsd.org/7.0/usr/share/man/html1//tmux.html) 1.9a ; * tzdata 2015f ; * wpa_supplicant/hostapd 2.4. Les utilisateurs intéressés par des versions plus récentes (par exemple pour BIND, dhcp, ou gcc) pourront se tourner vers pkgsrc. # Divers Le répertoire _/usr/share/doc_ fait l'objet d'une réorganisation, et au passage, ses fichiers sont maintenant formatés au lieu d'être présents sous forme de sources nroff. Au démarrage, le fichier _/etc/modules.conf_ sera pris en compte avant la mise en place de la fonctionnalité _securelevel_, afin de charger un module sans disposer d'un chargeur de démarrage pouvant les prendre directement en compte. Enfin, un script _resize_root_ a été ajouté à _rc.d_. Si la variable _resize_root_ est définie à YES dans _/etc/rc.conf_ (ce n'est pas le cas par défaut), alors le système tente de redimensionner la partition racine afin de remplir tout le disque, avant de la monter en écriture. Cela s'avère particulièrement pratique si vous installez NetBSD en copiant une image disque d'un système déjà installé (comme par exemple l'image [rpi.img.gz](http://ftp.netbsd.org/pub/NetBSD/NetBSD-7.0/evbarm-earmv6hf/binary/gzimg/) pour un Raspberry Pi). # L’inévitable nettoyage Il est parfois nécessaire de retirer certains logiciels, certaines portions de code. Les raisons sont variées, comme certains programmes devenus inutiles, ou si peu utilisés qu'il devient trop dur de justifier un effort de maintenance. Parfois, certains outils ne fonctionnent même plus, ou alors personne n'a le courage de les corriger. Depuis l'arrivée de tmux dans le système de base, l'outil "window" n'avait plus lieu d'être. Les nostalgiques pourront le retrouver dans pkgsrc : [misc/window](http://pkgsrc.se/misc/window). La pile réseau OSI a aussi été retirée. Enfin, l'option FAST_IPSEC a été renommée IPSEC, suite au retrait de l'ancienne implémentation, KAME IPSEC. # Autour de NetBSD Le site polonais [Beastie.pl](http://beastie.pl) réalise en ce moment des entrevues de développeurs NetBSD, disponibles en anglais. Pour le moment, deux entrevues ont été réalisées, la première avec Jeff Rizzo, membre de la _Release Engineering team_, et la seconde avec Leonardo Taccari.

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