URL: https://linuxfr.org/news/netbsd-6-0 Title: NetBSD 6.0 Authors: Nils Ratusznik Joris Dedieu, Nils Ratusznik, Davy Defaud, Sygne, baud123, nonas, iMil, _GuiGui2_, wolowizard, rootix, Florent Zara, Brndan, B16F4RV4RD1N, Benoît Sibaud, Patrick Lamaizière et apkwa Date: 2012年07月04日T00:24:57+02:00 License: CC By-SA Tags: bsd, netbsd, distribution et debian Score: 77 La Fondation NetBSD est fière de vous annoncer la disponibilité de NetBSD 6.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 à NetBSD 5.0 et 5.1, disponibles pour leur part depuis avril 2009 et novembre 2010. Les changements sont détaillés en seconde partie de cet article. **NdA. :** cette dépêche est une formidable aventure collective ; merci donc à _iMil_, _d-jo_, _baud123_, _apkwa_, _B16F4RV4RD1N_, _nonas_, _GuiGui2_, _Sygne_, Patrick Lamaizière, _Brndan_ et _wolowizard_ pour leur participation plus que soutenue à l’écriture de cet article ! ---- [NetBSD](http://www.netbsd.org/) [Liste des changements significatifs](http://www.netbsd.org/changes/changes-6.0.html) [Liste des architectures prises en charge](http://netbsd.org/ports/) [NetBSDfr](http://www.netbsdfr.org) [Annonce de NetBSD 6.0](http://www.netbsd.org/releases/formal-6/NetBSD-6.0.html) [Télécharger NetBSD 6.0 selon l’architecture](http://ftp.netbsd.org/pub/NetBSD/NetBSD-6.0/) ---- # Rappel de l’esprit de NetBSD # Dans un [entretien](http://www.unixmen.com/meet-martin-husemann-and-netbsd-interview/), Martin Husemann, un développeur influent de NetBSD, précise ce que signifie concrètement la devise « _Of course, it runs NetBSD_ ». Il explique cette formule par une autre : « _One OS fits them all_ ». Qu’est‐ce à dire ? Des procédures de test sont créées pour trouver dans le noyau de NetBSD les portions de code qui ne sont pas indépendantes de l’architecture. Et tout l’effort de l’équipe de NetBSD consiste à nettoyer le noyau de ces scories. Ainsi, NetBSD aspire à pouvoir planter son drapeau sur n’importe quelle architecture matérielle — ce qui définit l’extension spatiale de NetBSD. Cela est avantageux pour qui doit travailler sur plusieurs architectures matérielles : pouvoir n’utiliser qu’un seul système d’exploitation facilite l’administration et simplifie la vie. Husemann qualifie en outre le mode de développement de NetBSD de conservateur : support à très long terme des anciennes versions et compatibilité binaire assurée entre les versions. Cela permet, par exemple, à une vieille application propriétaire de pouvoir fonctionner dans un environnement moderne. NetBSD n’est pourtant pas fermé aux progrès informatiques. Au contraire, son développement consiste à les intégrer, mais sans rupture, comme le montre la suite de la dépêche. Intégrer dans la continuité, c’est ce qui définit l’extension temporelle de NetBSD. Avoir une extension spatiale et temporelle aussi large que possible est le principe qui guide le développement de NetBSD. # Prise en charge du matériel # ## Processeurs ## La gestion de l’architecture ARM s’améliore avec la prise en charge des [Cortex-A8](http://www.arm.com/products/processors/cortex-a/cortex-a8.php) et de nouvelles cartes comme la [_mini2440_](http://www.friendlyarm.net/products/mini2440). Sachez donc que votre _smartphone_ ou votre tablette pourraient très prochainement fonctionner sous NetBSD. On notera également la gestion du mode 64 bits de l’architecture [MIPS](http://www.mips.com/products/architectures/mips64) et un nouveau portage vers l’architecture [eMIPS](http://research.microsoft.com/en-us/projects/emips). La prise en charge des [_Raspberry PI_ est en cours d’implémentation](http://blog.netbsd.org/tnf/entry/wanna_raspberry). Il ne sera sans doute que partiellement inclus dans la 6.0. ## Côté pilotes ## ### Réseau ### Quelques nouveaux modules et pilotes font leur apparition, permettant une meilleure prise en charge du matériel réseau, et en particulier des adaptateurs Wi‐Fi. Nouveautés ou réécritures : * [_age_](http://netbsd.gw.com/cgi-bin/man-cgi?age++NetBSD-6.0) : _Attansic L1 10/100/Gigabit ;_ * [_alc_](http://netbsd.gw.com/cgi-bin/man-cgi?alc++NetBSD-6.0) : _Atheros AR813x/AR815x Ethernet device ;_ * [_ale_](http://netbsd.gw.com/cgi-bin/man-cgi?ale++NetBSD-6.0) : _Atheros AR8121/AR8113/AR8114 10/100/Gigabit Ethernet device ;_ * [_atphy_](http://netbsd.gw.com/cgi-bin/man-cgi?atphy++NetBSD-6.0) : _Attansic Technology F1 10/100/1000 Ethernet PHY ;_ * [_bwi_](http://netbsd.gw.com/cgi-bin/man-cgi?bwi++NetBSD-6.0) : _Broadcom BCM430x/4318 IEEE 802.11b/g ;_ * [_cas_](http://netbsd.gw.com/cgi-bin/man-cgi?cas++NetBSD-6.0) : _Cassini/Cassini+ (GigaSwift) Ethernet device ;_ * [_et_](http://netbsd.gw.com/cgi-bin/man-cgi?et++NetBSD-6.0) : _Agere/LSI ET1310/ET1301 10/100/Gigabit Ethernet ;_ * [_etphy_](http://netbsd.gw.com/cgi-bin/man-cgi?etphy++NetBSD-6.0) : _Agere/LSI ET1011 TruePHY Gigabit Ethernet PHY ;_ * [_otus_](http://netbsd.gw.com/cgi-bin/man-cgi?otus++NetBSD-6.0) : _Atheros USB IEEE 802.11a/g/n wireless network device ;_ * [_smsh_](http://netbsd.gw.com/cgi-bin/man-cgi?smsh++NetBSD-6.0) : SMSC LAN9118/LAN9218 Family Ethernet interfaces ; * [_upgt_](http://netbsd.gw.com/cgi-bin/man-cgi?upgt++NetBSD-6.0) : _Conexant/Intersil PrismGT SoftMAC USB IEEE 802.11b/g wireless ;_ * [_urndis_](http://netbsd.gw.com/cgi-bin/man-cgi?urndis++NetBSD-6.0) : _USB Remote NDIS Ethernet device ;_ * [_vte_](http://netbsd.gw.com/cgi-bin/man-cgi?vte++NetBSD-6.0) : _Vortex86 RDC R6040 Fast Ethernet ;_ * [_urtw_](http://netbsd.gw.com/cgi-bin/man-cgi?urtw++NetBSD-6.0) : _Realtek RTL8187B/L USB IEEE 802.11b/g ;_ * [_urtwn_](http://netbsd.gw.com/cgi-bin/man-cgi?urtwn++NetBSD-6.0) : _Realtek RTL8188CU/RTL8192CU USB IEEE 802.11b/g/n_. ### ACPI, hotkeys, etc. ### Un gros travail a été fait du côté de l’[ACPI](http://netbsd.gw.com/cgi-bin/man-cgi?acpi++NetBSD-6.0) avec, entre autres, la prise en charge de la version 4.0 et la réorganisation de l’arborescence _hw.acpi_. Il est également possible, sous certaines conditions, de sortir une machine de veille à partir du clavier. Enfin, il faut savoir que l’ACPI est désormais désactivé par défaut pour les machines dont le BIOS est antérieur à l’an 2000. Nouveautés ou réécritures : * [_acpicpu_](http://netbsd.gw.com/cgi-bin/man-cgi?acpicpu++NetBSD-6.0) : _ACPI-based processor functionality ;_ * [_acpipmtr_](http://netbsd.gw.com/cgi-bin/man-cgi?acpipmtr++NetBSD-6.0) : _ACPI power meters ;_ * [_acpismbus_](http://netbsd.gw.com/cgi-bin/man-cgi?acpismbus++NetBSD-6.0) : _ACPI SMBus Control Method Interface ;_ * [_acpivga_](http://netbsd.gw.com/cgi-bin/man-cgi?acpivga++NetBSD-6.0) : _ACPI video extension ;_ * [_acpiwdrt_](http://netbsd.gw.com/cgi-bin/man-cgi?acpiwdrt++NetBSD-6.0) : _ACPI Watchdog Timer (WDRT) ;_ * [_acpiwmi_](http://netbsd.gw.com/cgi-bin/man-cgi?acpiwmi++NetBSD-6.0) : _Windows Management Instrumentation support for ACPI ;_ * [_btmagic_](http://netbsd.gw.com/cgi-bin/man-cgi?btmagic++NetBSD-6.0) : _Apple Magic Mouse driver ;_ * [_fujbp_](http://netbsd.gw.com/cgi-bin/man-cgi?fujbp++NetBSD-6.0) : _Fujitsu Brightness, Pointer and Hotkeys ;_ * [_fujhk_](http://netbsd.gw.com/cgi-bin/man-cgi?fujhk++NetBSD-6.0) : _Fujitsu Brightness, Pointer, and Hotkeys ;_ * [_hpacel_](http://netbsd.gw.com/cgi-bin/man-cgi?hpacel++NetBSD-6.0) : _HP 3D DriveGuard accelerometer ;_ * _lom : LOMlite lights out management module ;_ * _powsw : Power switch monitor ;_ * [_uthum_](http://netbsd.gw.com/cgi-bin/man-cgi?uthum++NetBSD-6.0) : _TEMPer and TEMPerHUM USB temperature and humidity sensor_. ### Multimédia ### Les pilotes audio sont désormais _mpsafe_. Un nouvel outil, [`audiocfg(1)`](http://netbsd.gw.com/cgi-bin/man-cgi/man?audiocfg+1+NetBSD-6.0), fait son entrée dans le système de base. Il gère les différents liens vers les cartes et les mixeurs. Un _framework_ pour la télévision numérique a également été écrit ([_dtv_](http://netbsd.gw.com/cgi-bin/man-cgi/man?dtv+4+NetBSD-6.0)). Il est partiellement compatible avec la couche [DVB](http://fr.wikipedia.org/wiki/DVB "Définition Wikipédia") de Linux. Nouveautés : * [_auvitek_](http://netbsd.gw.com/cgi-bin/man-cgi/man?auvitek++NetBSD-6.0) : _Auvitek AU0828 video capture device _; * [_hdaudio_](http://netbsd.gw.com/cgi-bin/man-cgi/man?hdaudio++NetBSD-6.0) : _Intel High Definition Audio device _; * _cxdtv : digital video cards based on the Conexant CX23881, CX23882, CX23883, and CX23884 multimedia bridges _; * [_emdtv_](http://netbsd.gw.com/cgi-bin/man-cgi/man?emdtv++NetBSD-6.0) : _Empia Technology EM28xx based cards _; * _gcscaudio : AMD Geode CS5536 audio._ ### Consoles ### Le chargeur de démarrage permet désormais de paramétrer directement les extensions VESA du BIOS pour les architectures _i386_ et _amd64_. Il est donc possible d’avoir sur ces systèmes une console en mode _framebuffer_ en utilisant le pilote générique [`genfb(4)`](http://netbsd.gw.com/cgi-bin/man-cgi?genfb+4+NetBSD-6.0) qui sait récupérer ces informations. [`vesafb(4)`](http://netbsd.gw.com/cgi-bin/man-cgi?vesafb+4+NetBSD-5.1) qui reposait sur une bidouille est abandonné. Exemple : ```menu=Boot NetBSD:vesa 1280x800;boot netbsd``` Nouveautés ou réécritures : * _cgtwelve : Sun CG12 / Matrox SG3 graphics boards _; * _gfb : Sun XVR-1000 graphics cards _; * _omapfb : OMAP 3530’s built-in video controller _; * _pm2fb : Permedia2-based graphics cards like Sun’s PGX32 _; * _udl : DisplayLink DL-1x0 / DL-1x5 graphic chips _; * _valkyriefb : Apple’s Valkyrie onboard video controller _; * _videopll : iic-controlled PLLs used in early Apple onboard video hardware _; * _zx : Sun ZX display adapter_. En ce domaine la principale nouveauté est la réécriture du pilote [_gpio_](http://fr.wikipedia.org/wiki/gpio "Définition Wikipédia"), afin qu’il profite de la sécurité apportée par [`kauth(9)`](http://netbsd.gw.com/cgi-bin/man-cgi?kauth+9+NetBSD-6.0). Nouveautés ou réécritures : * [_gpioiic_](http://netbsd.gw.com/cgi-bin/man-cgi?gpioiic++NetBSD-6.0) : _GPIO I2C controller _; * [_gpiopwm_](http://netbsd.gw.com/cgi-bin/man-cgi?gpiopwm++NetBSD-6.0) : _support for pulsing GPIO pins in software _; * [_gpioiic_](http://netbsd.gw.com/cgi-bin/man-cgi?gpioiic++NetBSD-6.0) : _create an I2C bus using GPIO pins _; * [_gpiosim_](http://netbsd.gw.com/cgi-bin/man-cgi?gpiosim++NetBSD-6.0) : _simulate a [1380]gpio device _; * _efa : FastATA 1200 EIDE controller, manufactured by ELBOX Computer _; * [_nside_](http://netbsd.gw.com/cgi-bin/man-cgi?nside++NetBSD-6.0) : _National Semiconductor PC87415 IDE controller _; * _mppb : Prometheus Zorro III _; * _p5pb : Phase5 PCI bridge _; * [_pwdog_](http://netbsd.gw.com/cgi-bin/man-cgi?pwdog++NetBSD-6.0) : _Quancom PWDOG1 watchdog timer device _; * [_rdcide_](http://netbsd.gw.com/cgi-bin/man-cgi?rdcide++NetBSD-6.0) : _RDC IDE disk controllers _; * [_rdcpcib_](http://netbsd.gw.com/cgi-bin/man-cgi?rdcpcib++NetBSD-6.0) : _RDC PCI/ISA bridge and watchdog timer _; * [_s390rtc_](http://netbsd.gw.com/cgi-bin/man-cgi?s390rtc++NetBSD-6.0) : _Seiko Instruments S-35390 real-time clock _; * [_schide_](http://netbsd.gw.com/cgi-bin/man-cgi?schide++NetBSD-6.0) : _SCH IDE _; * [_sdmmc_](http://netbsd.gw.com/cgi-bin/man-cgi?sdmmc++NetBSD-6.0) : _SD bus _; * [_wb_](http://netbsd.gw.com/cgi-bin/man-cgi?wb++NetBSD-6.0) : _Winbond W83L518D Integrated Media Reader_. ### Sécurité ### Nous serons tous rassurés de voir qu’en chargeant le module [`tpm(4)`](http://netbsd.gw.com/cgi-bin/man-cgi?tpm++NetBSD-6.0) nous pourrons désormais participer à l’[informatique de confiance](http://www.trustedcomputinggroup.org) ! ## Systèmes de fichiers, stockage ## Outre l’importation de la dernière version de [ZFS](http://fr.wikipedia.org/wiki/ZFS "Définition Wikipédia") depuis OpenSolaris, le changement majeur est l’obsolescence des [_softupdates_](http://en.wikipedia.org/wiki/softupdates "Définition Wikipédia") au profit de la journalisation. Le système de quotas a également été revu. [`raid(4)`](http://netbsd.gw.com/cgi-bin/man-cgi?raid+4+NetBSD-6.0) a été amélioré pour permettre une reconstruction plus rapide en cas de crash, et il prend en charge les volumes de plus de 2 To. Les stockages de type Flash et NAND disposent maintenant de leur sous‐système particulier. Un nouveau système de fichiers nommé [CHFS](http://en.wikipedia.org/wiki/CHFS "Définition Wikipédia"), dédié aux Flash, a d’ailleurs été ajouté. On notera également quelques améliorations autour de [LVM](http://fr.wikipedia.org/wiki/lvm "Définition Wikipédia") et de [FUSE](http://fr.wikipedia.org/wiki/fuse "Définition Wikipédia"), ainsi qu’un nouveau type de disque mémoire : [`altmem(4)`](http://netbsd.gw.com/cgi-bin/man-cgi?altmem+4+NetBSD-6.0). Enfin, de nombreuses clés USB et lecteurs de cartes SD, jusqu’à présent inutilisables, sont désormais pris en charge. Toujours au chapitre du stockage, NetBSD dispose désormais d’un initiateur [iSCSI](http://fr.wikipedia.org/wiki/ISCSI "Définition Wikipédia") en mode noyau. Un bon point de départ pour découvrir ses fonctionnalités sont les pages de manuel de [`iscsictl`](http://netbsd.gw.com/cgi-bin/man-cgi?iscsictl++NetBSD-6.0) et [`iscsid`](http://netbsd.gw.com/cgi-bin/man-cgi?iscsid++NetBSD-6.0). # Installation # [_Sysinst_](http://netbsd.gw.com/cgi-bin/man-cgi?sysinst++NetBSD-6.0), l’installateur, évolue au niveau des choix par défaut et des questions posées. Ainsi, FFSv2 devient le système de fichiers par défaut, avec l’activation de l’option _log_, grâce à [`wapbl(4)`](http://netbsd.gw.com/cgi-bin/man-cgi/man?wapbl+4+NetBSD-6.0). Toujours pour les disques durs, il est possible d’utiliser _tmpfs_ au lieu de _mfs_ pour `/tmp`. En outre, l’installateur ne propose plus de choisir l’algorithme de chiffrement des mots de passe utilisateur, et utilise SHA1 par défaut. Le format de [`/etc/pwd.db`](http://netbsd.gw.com/cgi-bin/man-cgi?pwd_mkdb+8+NetBSD-6.0) ayant changé, [`postinstall(8)`](http://netbsd.gw.com/cgi-bin/man-cgi?postinstall++NetBSD-6.0) vérifiera sa compatibilité et le régénérera le cas échéant. Un nouveau _set_ fait son apparation : `modules.tgz`. Il contient les modules noyau, qui faisaient partie de `base.tgz` auparavant. À noter que, sur les plate‐formes _i386_ et _amd64_, le chargeur peut désormais charger des modules. Les tables de partitions [GPT](http://fr.wikipedia.org/wiki/GPT "Définition Wikipédia") sont également prises en charge. Notons aussi l’arrivée d’un menu supplémentaire, permettant d’activer le démarrage de certains services dès le redémarrage de la machine, mais surtout d’installer et de configurer [_pkgin_](http://pkgin.net), le gestionnaire de paquets binaires. ![pkgin](http://imil.net/gfx/NetBSD-6-0-BETA2-pkgin.png) # Système et réseau # ## Compatibilité POSIX ## L’introduction d’une implémentation en mode noyau de [_posix_spawn_](http://pubs.opengroup.org/onlinepubs/009695399/functions/posix_spawn.html) a sans doute été l’un des changements les plus intrusifs lors du passage de 5 à 6. Martin Husemann [rapporte](http://blog.netbsd.org/tnf/entry/posix_spawn_syscall_added) en détail sur le _blog_ de NetBSD, les écueils qu’il a rencontrés lors de l’intégration de cette fonctionnalité. À noter que le but recherché n’est pas uniquement le surcroît de compatibilité POSIX, mais une alternative _thread-safe_ à [`vfork(2)`](http://netbsd.gw.com/cgi-bin/man-cgi?vfork++NetBSD-6.0). La compatibilité POSIX s’est également accrue, grâce à l’ajout des fonctions de la famille [_getdate_](http://pubs.opengroup.org/onlinepubs/9699919799/functions/getdate.html) et [_getline_](http://pubs.opengroup.org/onlinepubs/9699919799/functions/getline.html). Quelques bogues en relation avec cette spécification ont été corrigés dans la gestion des sémaphores et du temps ([_timeval_, _timespec_](http://netbsd.gw.com/cgi-bin/man-cgi?timespec++NetBSD-6.0)). ## 2038 ## Pour les inquiets, sachez que NetBSD 6.0 ne souffrira pas du [bogue de l’an 2038](http://fr.wikipedia.org/wiki/bug de l\'an 2038 "Définition Wikipédia"). Il ne vous reste toutefois plus que 26 ans pour faire une mise à jour. > _Change time_t and dev_t to be 64 bit quantities._ ## rc ## [`rc(8)`](http://netbsd.gw.com/cgi-bin/man-cgi?rc++NetBSD-6.0) dispose désormais d’une option permettant de supprimer l’affichage de messages dans la console. Elle s’active en positionnant l’option ```rc_silent="YES"``` dans le [`rc.conf`](http://netbsd.gw.com/cgi-bin/man-cgi?rc.conf++NetBSD-6.0), ou en démarrant en mode silencieux (```boot netbsd -z```). ## SQLite ## [SQLite](http://fr.wikipedia.org/wiki/SQLite "Définition Wikipédia") fait son entrée dans le système de base. Elle est utilisée par _pkgin_, mais également pour la base de données des pages de manuel ([_apropos_](http://netbsd.gw.com/cgi-bin/man-cgi?apropos++NetBSD-6.0), [_whatis_](http://netbsd.gw.com/cgi-bin/man-cgi?whatis++NetBSD-6.0)) et pour les _maps_ de [Postfix](http://netbsd.gw.com/cgi-bin/man-cgi?postfix++NetBSD-6.0). ## Constant DataBase ## Un nouveau format de base de données, optimisé pour les données constantes fait son apparition : [`cdb(5)`](http://netbsd.gw.com/cgi-bin/man-cgi?cdb+5+NetBSD-6.0). C’est un format très simple, mais ne permettant pas de mise à jour des enregistrements. Il se caractérise par un en‐tête faible au niveau de la taille des données, un correspondance mémoire complète des données et un faible coût des recherches (utilisation d’un _hash_ parfait comme index). Il est dès à présent utilisé pour la base de données des services ([`/etc/services`](http://netbsd.gw.com/cgi-bin/man-cgi?services++NetBSD-6.0)), qu’il devrait faire maigrir de près de 50 %. [`services_mkdb`](http://netbsd.gw.com/cgi-bin/man-cgi?services_mkdb++NetBSD-6.0) reste toutefois compatible avec l’ancien format. Il est également utilisé pour les bases de données des périphériques (`dev.db`) et `terminfo`. ## Syslog ## De [nombreuses améliorations](http://2008.eurobsdcon.org/talks/martinschuette_js.html) de [_syslog_](http://netbsd.gw.com/cgi-bin/man-cgi?syslog++NetBSD-6.0) ont été « commitées », de sorte que celui‐ci respecte maintenant la [RFC 5424](http://www.rfc-editor.org/rfc/rfc5424.txt). Les améliorations sont détaillées dans une [présentation](http://fara.cs.uni-potsdam.de/~mschuett/uni/syslog-protocols-080522.pdf) de Martin Schütte, qui se résume en quelques points : * utilisation de TLS ; * gestion de TCP ; * signature des messages ; * protocole étendu (horodatage, [FQDN](https://fr.wikipedia.org/wiki/Fully_qualified_domain_name), UTF-8) et mieux structuré. Il est à parier que cette évolution, qui propose une modernisation radicale du protocole, sans pour autant rompre avec sa tradition _unixienne_, fera des émules. ## PGP ## [`netpgp(1)`](http://blog.netbsd.org/tnf/entry/netpgp), une implémentation de [PGP](http://fr.wikipedia.org/wiki/PGP "Définition Wikipédia") sous licence BSD a été importée dans le système de base. Ce travail est basé sur [OpenPGPsdk](http://openpgp.nominet.org.uk). En plus de l’utilitaire lui‐même, une bibliothèque ([libnetpgp](http://netbsd.gw.com/cgi-bin/man-cgi?libnetpgp++NetBSD-6.0)) est fournie en remplacement de _gpgme_. ## Pare‐feu NPF ## [NPF](http://netbsd.gw.com/cgi-bin/man-cgi?npf++NetBSD-6.0) (_NetBSD Packet Filter_) est un nouveau pare‐feu, réécrit depuis zéro. Il se veut avant tout plus facile à maintenir que [PF](http://fr.wikipedia.org/wiki/Packet_Filter "Définition Wikipédia") et [IPFilter](http://fr.wikipedia.org/wiki/IPFilter "Définition Wikipédia") qui — étant des projets externes — sont souvent difficiles à adapter. Trois axes majeurs ont présidé à son développement : facilité d’utilisation, performances, extensibilité. Pour le premier point, il a été décidé de conserver une syntaxe proche de _Packet Filter_ (syntaxe historique héritée de IPF), des outils également équivalents et de fournir quelques mécanismes essentiels : traduction d’adresses bidirectionnelle, serveur mandataire FTP, journal des paquets configurables... En ce qui concerne les performances, ce pare‐feu se base sur un mécanisme proche de [BPF](http://fr.wikipedia.org/wiki/Filtre_BPF "Définition Wikipédia") et sur des structures de données performantes (_red‐black tree_, _fast hash‐tables_). Il est _mp‐safe_ et exempt de verrou. Enfin, il propose plusieurs mécanismes intéressants, tels que des [AGL](http://en.wikipedia.org/wiki/Application-level_gateway) pouvant être utilisées par des programmes tiers comme `traceroute`, et une API permettant la création d’extensions sous la forme de modules noyau. ## ZeroConf ## La prise en charge de [ZeroConf](http://fr.wikipedia.org/wiki/ZeroConf "Définition Wikipédia") avance avec l’inclusion de [_mDNSResponder_](https://developer.apple.com/bonjour). Vous pourrez donc désormais utiliser [`dns-sd(1)`](http://netbsd.gw.com/cgi-bin/man-cgi/man?dns-sd+1+NetBSD-6.0) et [`mdnsd(8)`](http://netbsd.gw.com/cgi-bin/man-cgi?mdnsd+8+NetBSD-6.0) pour découvrir des services. ## Expressions régulières ## Depuis quelque temps, un travail est en cours pour intégrer [TRE](https://github.com/GerHobbelt/libtre) dans la _libc_, en lieu et place de l’implémentation existante. Ce travail, également mené par [FreeBSD](http://svnweb.freebsd.org/base/user/gabor/tre-integration/), est sur le point d’aboutir. Il est désormais possible de recompiler son système en utilisant TRE. L’intérêt est multiple. Tout d’abord, TRE semble beaucoup plus efficace que l’implémentation de base, elle présente nativement une interface POSIX, elle implémente un mécanisme de recherche par approximation, et a pour ambition de fournir de nombreuses fonctionnalités, telles que les extensions GNU (ce qui permettrait de se passer de la bibliothèque _GNU Regex_, sans introduire de régression dans `grep`). ## Où est Charlie ? ## Le _shell_ par défaut du super utilisateur (_root_) passe de `/bin/csh` à `/bin/sh`, afin de fournir, dès l’installation, les fonctionnalités qu’un utilisateur est en droit d’attendre d’un système d’exploitation moderne (complètement automatique, édition de la ligne de commande...). Sous NetBSD, `/bin/sh` est basé sur l’implémentation de Kenneth Almquist, datant de 1989. _Almquist shell_, _A Shell_ ou _ash_ est un _shell_ léger et puissant. Il est également utilisé pour fournir `sh` dans FreeBSD, DragonFlyBSD et Minix, mais également Debian et Ubuntu, qui utilisent _Debian’s ash_ (_dash_). Une bonne partie du code du _sh_ de Busybox en est issue. ## Logiciels externes ## Parmi les mises à jour de logiciels externes on peut citer : * t_zdata 2012e ; * [BYACC](http://netbsd.gw.com/cgi-bin/man-cgi?yacc++NetBSD-6.0) 20110908 ; * [flex](http://netbsd.gw.com/cgi-bin/man-cgi?flex++NetBSD-6.0) 2.5.35 ; * [BIND](http://netbsd.gw.com/cgi-bin/man-cgi?named++NetBSD-6.0) 9.9.1-P2 ; * binutils 2.21.1a ; * [ISC cron](http://netbsd.gw.com/cgi-bin/man-cgi?cron++NetBSD-6.0) 4.1 ; * [cvs](http://netbsd.gw.com/cgi-bin/man-cgi?cvs++NetBSD-6.0) 1.12.13 ; * [dhcpcd](http://netbsd.gw.com/cgi-bin/man-cgi?dhcpcd++NetBSD-6.0) 5.5.4 ; * [file](http://netbsd.gw.com/cgi-bin/man-cgi?file++NetBSD-6.0) 5.09 ; * [gcc](http://netbsd.gw.com/cgi-bin/man-cgi?gcc++NetBSD-6.0) 4.5.3 ; * heimdal 1.5pre1 ; * [less](http://netbsd.gw.com/cgi-bin/man-cgi?less++NetBSD-6.0) 444 ; * [Lua](http://netbsd.gw.com/cgi-bin/man-cgi?lua++NetBSD-6.0) 5.1.4 ; * NTP 4.2.6p5 ; * Le [m4](http://netbsd.gw.com/cgi-bin/man-cgi?m4++NetBSD-6.0) de OpenBSD remplace GNU m4 ; * [OpenLDAP](http://netbsd.gw.com/cgi-bin/man-cgi?ldap++NetBSD-6.0) 2.4.23 ; * [OpenSSH](http://netbsd.gw.com/cgi-bin/man-cgi?ssh++NetBSD-6.0) 5.9 ; * [OpenSSL](http://netbsd.gw.com/cgi-bin/man-cgi?openssl++NetBSD-6.0) 1.0.1c ; * [Postfix](http://netbsd.gw.com/cgi-bin/man-cgi?postfix++NetBSD-6.0) 2.8.12 ; * openresolv 3.4.5. # Virtualisation # Fruit du travail, entre autres, de Cherry G. Matthew, la gestion multiprocesseur pour les invités Xen (_domU_) a été [annoncée] (http://mail-index.netbsd.org/netbsd-announce/2012/03/06/msg000146.html) en mars 2012, et se trouve naturellement incluse dans cette nouvelle version. Un autre ajout de taille est l’accès direct au PCI (_pass‐through_) de Xen 3. Enfin, notons en vrac la gestion du mode PAE pour les _dom0_ _i386_, l’activation du bit _NX_ pour _i386_ (PAE) et _amd64_, l’activation de l’allocation dynamique de la mémoire vive avec [`balloon(4)`](http://netbsd.gw.com/cgi-bin/man-cgi?balloon+.x86+NetBSD-6.0), pour tous les noyaux Xen, le chargement de micro‐code processeur via `cpuctl(8)`, la suppression de Xen 2 et la prise en charge expérimentale de la mise en veille pour les _domU_ NetBSD. La prise en charge de NetBSD comme système invité s’améliore pour beaucoup d’hyperviseurs. [`Virtio(4)`](http://netbsd.gw.com/cgi-bin/man-cgi?virtio++NetBSD-6.0) permet de prendre en charge les disques et périphériques réseau présentés par Qemu, KVM et Virtualbox. [`vmt(4)`](http://netbsd.gw.com/cgi-bin/man-cgi?vmt+.x86+NetBSD-6.0), une implémentation en mode noyau des _VMware Tools_, améliore la compatibilité de NetBSD avec cet hyperviseur propriétaire. [Rump(3)](http://netbsd.gw.com/cgi-bin/man-cgi?rump++NetBSD-6.0), _Runnable Userspace Meta Program_, est un projet de NetBSD permettant d’exécuter certains modules noyau dans l’espace utilisateur, sans modification de code. Rump fut introduit dans la branche 5.0 comme étant expérimental. Rump est considéré comme stable dans NetBSD 6. Les cas pratiques dans Rump sont principalement : - la virtualisation : chaque « noyau » Rump a sa propre instance, il est donc possible d’avoir une pile réseau propre à chacun ; - la sécurité : puisque Rump s’instancie en espace utilisateur, il est possible de monter des systèmes de fichiers non sûrs (tels que ceux des clés USB) directement sur celui‐ci, en isolant complètement le système hôte ; - tests des parties du code noyau : le code noyau peut être testé sans risque sur l’hôte de test. En revanche, [Gaols](http://2008.asiabsdcon.org/papers/P3A-paper.pdf), un projet de conteneur façon [_jail_](http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/jails.html) implémenté grâce au _framework_ [`kauth(9)`](http://netbsd.gw.com/cgi-bin/man-cgi?kauth++NetBSD-6.0), ne sera finalement pas au rendez‐vous. # pkgsrc # Dernière version en date à la rédaction de cette dépêche, _pkgsrc 2012Q3_, apporte quelques ajouts notables comme GRUB 2, OpenAFS, _sysbuild_ et _sysupgrade_ (outils de mises à jour source et binaire), ainsi que de gros travaux de compatibilité avec le compilateur _clang_ et de paquets binaires pour DragonFlyBSD et SmartOS (basé sur Illumos). La version précédente, _pkgsrc 2012Q2_, apportait quant à elle : Apache 2.4, Python 3.2, PHP 5.4 et des mises à jour autour de X11. Quelques chiffres sur pkgsrc-2012Q3 : >- 12 014 paquetages au total ;>- 11 618 paquetages binaires amd64 compilés avec gcc pour NetBSD-current ;>- 11 374 paquetages binaires amd64 compilés avec _clang_ pour NetBSD-current ;>- 10 875 entrées _pkgsrc_. 135 paquets ont été ajoutés lors de cette version, 95 ont été supprimés, et 1 280 ont été mis à jour. # pkgin # ![pkgin](http://pkgin.net/gfx/pkgin-icon-new.png) Comme signalé plus haut dans la dépêche, [_pkgin_](http://pkgin.net) est désormais disponible dès [`sysinst(8)`](http://netbsd.gw.com/cgi-bin/man-cgi?sysinst++NetBSD-6.0), le système d’installation de NetBSD. Il s’agit d’un gestionnaire de paquets binaires avec résolution des dépendances, un peu comme APT ou YUM. Il permet donc bien plus de confort que les classiques outils _pkg__*_ . Ce logiciel en est à la version 0.6.2.2, et est l’œuvre d’[_iMil_](http://imil.net). Tout comme [_pkgsrc_](http://netbsd.gw.com/cgi-bin/man-cgi?pkgsrc++NetBSD-6.0), _pkgin_ est pensé pour être portable, et se base sur les outils traditionnels du monde BSD UNIX ([_libarchive_](http://netbsd.gw.com/cgi-bin/man-cgi?libarchive++NetBSD-6.0), [_libfetch_](http://netbsd.gw.com/cgi-bin/man-cgi?fetch++NetBSD-6.0), [_queue.h_](http://netbsd.gw.com/cgi-bin/man-cgi?queue++NetBSD-6.0)), ainsi que sur une base de données SQLite. Il fonctionne à l’heure actuelle, en plus de NetBSD, sur : DragonFlyBSD 2 et 3, Solaris 10 / SunOS 5.10, Opensolaris / SunOS 5.11, Debian GNU/Linux 5 et 6, Mac OS X 10.5 et 10.6, ainsi que Minix 3.2.0. Exemple d’usage : ```bash # # Configurer un dépôt echo ftp://ftp.fr.netbsd.org/pub/pkgsrc/packages/NetBSD/i386/6.0/All> /usr/pkg/etc/pkgin/repositories.conf # # mettre à jour la base de données pkgin update # ou pkgin up # # installer foo(1) et ses dépendances pkgin install foo # ou pkgin in foo # # mettre à jour l'ensemble des paquets pkgin full-upgrade # ou pkgin fug ``` # Fondation NetBSD et mode de développement # Fondation à but non‐lucratif, la Fondation NetBSD détient les droits de la marque _NetBSD_ et a pour but de « promouvoir le développement du système d’exploitation NetBSD et des logiciels afférents ». Ses [statuts](http://www.netbsd.org/foundation/bylaws.html) indiquent que NetBSD doit être « correctement architecturé », « stable », « véloce », « honnête », « complet », « portable », « interopérable », « sécurisé » et « ouvert ». La fondation n’est donc pas seulement un organe administratif pour le projet NetBSD, elle définit aussi les objectifs du développement logiciel, et organise l’activité des développeurs. Elle a pour membres les développeurs de NetBSD qui sont choisis par cooptation — à ce jour, [257 développeurs](http://www.netbsd.org/people/developers.html) ont accès au dépôt CVS. Les membres ayant eu une activité dans l’année sur la forge élisent un bureau de 3 à 9 personnes, et ce bureau nomme les différents comités exécutifs. Le bureau actuel est composé de Soren Jacobsen, Julio Merino, Jeremy C. Reed, Matthias Scheler, S. P. Zeidler, Christos Zoulas et Julian Coleman. Parmi ces comités, le [_NetBSD Core group_](http://www.netbsd.org/people/core.html) a pour charge d’organiser le développement de NetBSD : > _Members of the core group set the direction and goals of the NetBSD Project as a whole, promote people’s interest in the NetBSD Project and the system it produces, and consider the serious architectural questions that need to be addressed if the NetBSD Project is going to keep producing a viable system._ Le _NetBSD core group_ est composé de Alan Barrett, Alistair Crooks, Matthew Green, Chuck Silvers, Matt Thomas, Yamamoto Takashi et Christos Zoulas. # Visibilité médiatique et communauté # L’un des mots d’ordre du projet NetBSD est «_ No Hype Required _». Cette attitude peu mercantile a un effet regrettable pour ce système qui bénéficie d’une couverture médiatique très faible, alors que de par sa nature, il est employé dans un nombre important de matériels propriétaires. On retrouve tout ou partie de NetBSD dans bon nombre d’équipements réseau professionnels, comme, par exemple, les commutateurs‐routeurs [_Force10_](http://www.force10networks.com/), mais également domestiques. D’insistantes rumeurs font état d’_Apple AirStations_ [fonctionnant sous NetBSD](http://www.feyrer.de/NetBSD/bx/blosxom.cgi/nb_20070217_2355.html). On notera en outre une récente [discussion](http://mail-index.netbsd.org/tech-userlevel/2012/07/25/msg006571.html) sur _tech-userlevel@_, issue du mainteneur de [_Bionic_](http://en.wikipedia.org/wiki/Bionic_%28software%29), la _libc_ d’Android, qui envisage l’homogénéisation de Bionic autour de la _libc_ de NetBSD. [Minix](http://wiki.minix3.org/en/SummerOfCode2011/NetbsdUserland) a récemment suivi ce chemin avec succès. Malgré cette faible visibilité, NetBSD dispose d’une communauté active. Chaque événement communautaire autour des systèmes dérivés de BSD UNIX voit au moins l’un des développeurs du projet présenter de nouvelles fonctionnalités, et de multiples rencontres uniquement dédiées au système NetBSD ont lieu un peu partout autour du globe. En France, le groupe [_NetBSDfr_](http://www.NetBSDfr.org) regroupe plusieurs développeurs NetBSD officiels, il organise chaque année un _Hackathon_ au succès grandissant, et participe tant que faire se peut aux grandes rencontres autour du logiciel libre dans l’Hexagone.

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