NetBSD 11.0 est disponible, dix neuvième version majeure du projet, et les deux ajouts qui méritent votre attention sont un portage RISC-V 64 bits à part entière et un noyau MICROVM pour x86 qui démarre en une dizaine de millisecondes. Le travail RISC-V couvre les cartes StarFive JH71xx comme la VisionFive 2, la PINE64 STAR64 et QEMU, ce qui vous permet d'essayer sans rien acheter. MICROVM réduit le noyau au démarrage PVH et aux périphériques VirtIO MMIO, la configuration qui rend crédible une machine virtuelle par requête. Autour de ces deux nouveautés, la version ajoute le Snapdragon X Elite, onze appels système Linux et le filtrage de niveau 2 dans npf.
The short answer
NetBSD 11.0 est la dix neuvième version majeure. Elle ajoute un portage RISC-V 64 bits couvrant les cartes StarFive JH71xx, la PINE64 STAR64 et QEMU, ainsi qu'un noyau MICROVM pour x86 qui démarre en une dizaine de millisecondes grâce à PVH et VirtIO MMIO. Le Qualcomm Snapdragon X Elite reçoit une première prise en charge sur aarch64, avec batterie, chargeur, GPIO et I2C. La couche de compatibilité Linux gagne epoll, inotify, clone3, statx et sept autres appels. npf gagne le filtrage de niveau 2 et le filtrage par utilisateur et groupe, ZFS accélère unlink, et la version s'aligne sur POSIX.1-2024 et C23.
La réputation de NetBSD, c'est la portabilité, et la plaisanterie qui l'accompagne dit qu'il tourne sur des grille pain. La plaisanterie sous estime ce que la portabilité rapporte quand une nouvelle architecture apparaît. NetBSD 11.0 a un portage RISC-V parce que l'arbre a été bâti pour en accueillir un, et la même version embarque un noyau qui démarre en dix millisecondes parce que le même découpage permet d'en retirer presque tout.
Le RISC-V, et où l'essayer concrètement
L'ajout principal est un portage vers le RISC-V 64 bits. Les plateformes nommées sont la famille StarFive JH71xx, qui couvre la VisionFive 2, et la PINE64 STAR64.
QEMU est la troisième cible et celle que la plupart des lecteurs utiliseront. Un premier portage d'architecture s'évalue plutôt qu'il ne se déploie, et l'évaluer en émulation ne coûte qu'une compilation et aucun matériel. Ce que vous regardez, c'est si le userland qui vous intéresse compile et se comporte bien, pas si la carte est rapide.
Réglez vos attentes en conséquence. Cette version prend en charge plus de soixante plateformes, de machines plus âgées que la plupart des gens qui lisent ces lignes jusqu'au matériel ARM et x86 actuel, et ces portages anciens portent des décennies de corrections. Une première version RISC-V, non. C'est un vrai portage, pas un aperçu, mais un portage jeune.
Le noyau MICROVM est l'ingénierie la plus intéressante
Un nouveau noyau MICROVM pour x86 démarre en une dizaine de millisecondes sur des processeurs de l'ère 2020. La manière d'y arriver mérite d'être comprise, car ce chiffre découle de deux décisions et non d'une micro optimisation.
D'abord, il démarre via PVH. Cela évite le micrologiciel hérité et toute la progression mode réel vers mode protégé vers mode long, et rend la main à un point d'entrée noyau dans un état déjà sain.
Ensuite, son modèle de périphériques est VirtIO MMIO plutôt qu'un bus PCI simulé. Il n'y a pas d'énumération à parcourir, pas d'arborescence de matériel hérité émulé à sonder. On indique au noyau où sont les périphériques.
Dix millisecondes placent le noyau invité sous le seuil de bruit de presque tout ce que vous construiriez autour. Si vous aviez étudié les machines virtuelles par requête ou par tâche et conclu que l'isolation valait le coup mais pas le coût de démarrage, le calcul change quand l'invité démarre à ce prix.
Il existe un second ajout de virtualisation, plus modeste : un portage virt68k qui fait tourner le portage Motorola 68000 sous QEMU avec des périphériques paravirtualisés. Celui là est pour le plaisir, et c'est aussi un bon test de résistance de la propreté des abstractions de périphériques.
La compatibilité Linux, et ce que la liste raconte
Onze appels système ont atterri dans compat_linux : epoll, files de messages POSIX, statx, readahead, close_range, waitid, renameat2, clone3, sync_file_range, syncfs et inotify.
Lisez cette liste comme un rapport de bogues. epoll et inotify sont ce qu'utilisent tout démon, tout surveillant de fichiers et toute boucle d'événements moderne. clone3 est la façon dont glibc récent crée des threads, autrement dit l'appel qui décide si un binaire démarre tout court. renameat2 sert au remplacement atomique de fichiers. statx est le stat moderne. Ce ne sont pas des interfaces exotiques, ce sont celles qu'un binaire Linux courant appelle dans sa première seconde de vie.
La couche reste une couche de compatibilité, et tout ce qui sort de l'ensemble implémenté échoue encore. Mais les échecs qui subsistent seront plus intéressants que « impossible de créer un thread ».
Matériel, systèmes de fichiers et pile réseau
Une première prise en charge du Qualcomm Snapdragon X Elite arrive sur aarch64, avec des pilotes pour la batterie, le chargeur, les GPIO et les contrôleurs I2C. C'est le début d'une histoire de portable, pas la fin, et c'est le bon lot de pilotes à traiter en premier.
Côté stockage, ZFS a reçu du travail de performance sur rm et unlink, l'opération qui fait le plus sûrement remarquer qu'un système de fichiers est lent.
Côté réseau, npf gagne le filtrage de niveau 2 et le filtrage par utilisateur et groupe. Le premier permet aux règles d'agir sur les trames Ethernet avant le routage, ce que l'on veut sur un pont ou une passerelle. Le second laisse une règle suivre l'identité propriétaire d'une socket plutôt que l'adresse qu'elle utilise, ce qui remplace sur un hôte multi utilisateur une pile de contournements par service en une seule ligne.
Le serveur X.Org gagne des chemins accélérés SIMD sur aarch64, et la version s'aligne sur POSIX.1-2024 et C23.
Une note de calendrier
Le projet a indiqué que les demandes de remontée encore ouvertes rejoindront la branche stable après la 11.0 et sortiront en 11.1, attendue sous deux mois environ. Le conseil habituel pour une x.0 s'applique : testez la maintenant sur des machines que vous pouvez casser, et faites de la 11.1 celle que vous déployez.
Sources et pour aller plus loin
- Annonce officielle de la version NetBSD 11.0
- Le blog NetBSD : NetBSD 11.0 released
- Phoronix : NetBSD 11.0 released with RISC-V support and enhanced Linux system call compatibility
- NetBSD : changements et actualités récentes
- Le projet NetBSD
Questions fréquentes
Sur quel matériel RISC-V NetBSD 11.0 tourne t il vraiment ?
Le portage vise le RISC-V 64 bits, et les plateformes citées dans la version sont la famille StarFive JH71xx, celle qui équipe la carte VisionFive 2, et la PINE64 STAR64. QEMU est pris en charge à côté, et c'est honnêtement le point de départ de la plupart des gens : vous pouvez construire une image NetBSD RISC-V et la démarrer en émulation dès aujourd'hui, sans chercher une carte. Considérez qu'il s'agit d'un premier portage et non d'un portage mûr. Il arrive dans la même version qui prend en charge plus de soixante plateformes au total, et les portages anciens ont derrière eux des décennies de polissage qu'une première version RISC-V n'a pas.
À quoi sert le noyau MICROVM et en quoi diffère t il d'un noyau normal ?
C'est un noyau x86 allégé construit pour une seule tâche : démarrer dans un hyperviseur le plus vite possible. Il démarre via PVH, ce qui évite complètement le micrologiciel hérité et la valse mode réel vers mode protégé vers mode long, et il dialogue avec des périphériques VirtIO MMIO au lieu de sonder une machine PCI simulée complète. Le projet annonce des démarrages autour de dix millisecondes sur des processeurs x86 de l'ère 2020. Ce chiffre rend viable toute une classe de conceptions, celles où une machine virtuelle est créée par requête ou par tâche plutôt que maintenue au chaud. Si vous aviez étudié l'isolation par micro machines virtuelles et trouvé que le côté invité était le maillon lent, c'est le noyau qui répond à ce problème.
Les nouveaux appels système Linux permettent ils d'exécuter des binaires Linux ?
NetBSD dispose depuis longtemps d'une couche de compatibilité Linux, compat_linux. Ce que fait la 11.0, c'est combler les manques que les binaires modernes rencontrent réellement : epoll, files de messages POSIX, statx, readahead, close_range, waitid, renameat2, clone3, sync_file_range, syncfs et inotify. Cette liste se lit comme un rapport de bogues. epoll et inotify sont ce que presque tout démon ou surveillant de fichiers moderne utilise, et clone3 est ce que les versions récentes de glibc emploient pour créer des threads. Cela ne transforme pas NetBSD en distribution Linux, et tout ce qui appelle une interface noyau propre à Linux hors de l'ensemble implémenté échouera encore, mais le taux de réussite sur des binaires userland ordinaires monte.
Qu'est ce qui change dans le pare feu npf ?
Deux ajouts ressortent. npf gagne le filtrage de niveau 2, ce qui permet à des règles d'agir sur le trafic Ethernet et plus seulement sur IP et au dessus, un point qui compte dans les configurations de pont et de passerelle où l'on veut filtrer avant le routage. Il gagne aussi le filtrage par utilisateur et par groupe, ce qui laisse la politique suivre l'identité propriétaire d'une socket plutôt que la seule adresse et le seul port utilisés. Sur un hôte multi utilisateur, c'est une façon nettement différente d'exprimer un jeu de règles, et cela supprime toute une catégorie de contournements bâtis sur une adresse distincte par service.
Faut il migrer depuis NetBSD 10.x maintenant ou attendre ?
Un détail de calendrier mérite d'être connu. Le projet a indiqué que les demandes de remontée encore ouvertes seront intégrées à la branche stable après la 11.0 et formeront la 11.1, attendue dans environ deux mois. Si vous exploitez des systèmes en production sur 10.x sans besoin précis du nouveau matériel pris en charge, attendre cette première version corrective est le choix prudent, comme toujours avec une x.0. Si vous voulez le portage RISC-V, le noyau MICROVM, le Snapdragon X Elite ou les nouveaux appels système Linux, ils n'existent que dans la 11.0, et c'est en la testant maintenant sur des machines non critiques que les corrections de la 11.1 seront trouvées.