La version du système d'exploitation UNIX libre OpenBSD 7.7 a été présentée. Le projet OpenBSD a été fondé par Theo de Raadt en 1995 après un conflit avec les développeurs de NetBSD, ce qui a conduit à la fermeture de son accès au dépôt CVS de NetBSD. Par la suite, Theo de Raadt, avec un groupe de partisans, a créé un nouveau système d'exploitation ouvert basé sur l'arbre des fichiers sources de NetBSD, dont les principaux objectifs de développement sont la portabilité (supportant 13 plateformes matérielles), la standardisation, le fonctionnement correct, la sécurité proactive et les moyens cryptographiques intégrés. La taille de l'image ISO complète du système OpenBSD 7.7 est de 746 Mo.
En plus du système d'exploitation lui-même, le projet OpenBSD est connu pour ses composants qui ont été adoptés dans d'autres systèmes et qui se sont avérés être parmi les solutions les plus sûres et de la plus haute qualité. Parmi eux : LibreSSL (un fork d'OpenSSL), OpenSSH, le filtre de paquets PF, les démons de routage OpenBGPD et OpenOSPFD, le serveur NTP OpenNTPD, le serveur de messagerie OpenSMTPD, le multiplexeur de terminal texte (similaire à GNU screen) tmux, le démon identd implémentant le protocole IDENT, une alternative BSDL au paquet GNU groff — mandoc, le protocole pour la mise en place de systèmes tolérants aux pannes CARP (Common Address Redundancy Protocol), un serveur HTTP léger, et l'outil de synchronisation de fichiers OpenRSYNC.
Principales modifications :
- La mise en œuvre du framework drm (Direct Rendering Manager) est synchronisée avec le noyau Linux 6.12.21 (dans la précédente version — 6.6.52). Le pilote inteldrm prend en charge le GPU utilisé dans les processeurs Intel basés sur l'architecture Arrow Lake. Le pilote amdgpu a ajouté la prise en charge des GPU Ryzen AI 300 (Strix Point, Strix Halo, Krackan Point) et Radeon RX 9070 (Navi 48).
- Dans le port pour l'architecture ARM64, la prise en charge du jeu d'instructions vectorielles SVE (Scalable Vector Extension) a été ajoutée. Sur les systèmes utilisant des puces ARM Apple M1, la gestion de l'état de consommation d'énergie est assurée. Dans le mécanisme de mappage de la mémoire physique (pmap, mapping physique), les opérations de réinitialisation du cache de translation d'adresses (TLB) ont été optimisées, ce qui a accéléré l'exécution du test de compilation du noyau d'environ 5 %. Sur le matériel prenant en charge le chiffrement QARMA3 pour protéger l'espace utilisateur, l'authentification des pointeurs (PAC, Pointer Authentication Code) a été activée.
- Sur les systèmes x86_64 pour les systèmes invités exécutés à l'aide de QEMU, la prise en charge du mécanisme AMD SEV (Secure Encrypted Virtualization) a été mise en œuvre, utilisé dans les systèmes de virtualisation pour la protection machines virtuelles contre les interventions du partiteur ou de l'administrateur du système hôte. Dans le pilote psp, utilisé pour configurer et démarrer les systèmes invités avec AMD SEV activé, une commande pour charger le firmware dans la puce a été ajoutée.
- Sur les systèmes x86_64, la possibilité d'allouer des zones de mémoire de plus de 4 Go pour le DMA a été ajoutée.
- La prise en charge des architectures RISC-V, Sparc64, HPPA, i386 et Powerpc64 a été améliorée.
- Le traitement des situations de manque de mémoire dans le système (OOM) a été amélioré.
- Le mécanisme de traçage ptrace a été enrichi de fonctionnalités permettant de définir des points d'arrêt dans des processus multi-threadés avec le débogueur gdb. De nouvelles commandes ont été ajoutées pour lire et écrire dans la zone où l'état du processeur est conservé dans le processus surveillé lors de l'utilisation de l'instruction XSAVE.
- Dans les scripts écrits en BT (BPFtrace ou Bug Tracing) utilisés dans le système de traçage btrace, le support pour les constructions multilignes a été ajouté. La commande btrace a également reçu des profils supplémentaires et des dénominations pour les intervalles de temps (hz, us, ms, s).
- Un paramètre sysctl nommé kern.audio.kbdcontrol a été ajouté ; lorsqu'il est défini à 0, les touches multimédias de contrôle du volume sur le clavier seront traitées comme des touches ordinaires.
- Le traitement des échecs a été amélioré et les vérifications lors de la transition vers les modes veille et attente ont été étendues.
- Le code pour l'arrêt des processus lors de la réception d'un signal a été retravaillé, ce qui a résolu les problèmes d'arrêt des processus multi-threadés rencontrés dans des paquets tels que golang et mpv.
- Le support pour les systèmes multiprocesseurs (SMP) a été perfectionné. La fonction des minuteries d'entrée et de sortie TCP a été optimisée pour fonctionner en parallèle, et les appels système send() et recv() ont été adaptés pour utiliser un verrou partagé. Plusieurs threads utilisateur peuvent désormais fonctionner en parallèle avec différents sockets, et la sortie TCP ne bloque plus le traitement des paquets IP.
Les appels système open, openat, ptsignal, psignal et prsignal ainsi que les sysctl kern.timeout_stats, kern.allowkmem, kern.video.record, net.inet.gre.allow, net.inet.gre.wccp, kern.global_ptrace, kern.wxabort, kern.malloc.kmemstat ont été débarrassés du verrou global. Les pilotes psp, wsmouse et wstpad ainsi que la structure video_filtops ont été transférés dans la catégorie mp-safe.
- Dans l'hyperviseur VMM, la possibilité d'utiliser acpipci pour attacher des bus PCI a été mise en œuvre.
- Il est désormais possible de définir une politique alternative avec des paramètres de performance (perfpolicy) utilisée lors de l'alimentation par batterie.
- La commande sysctl a été enrichie d'une option « -f file » pour charger tous les paramètres à partir d'un fichier d'un seul coup. Dans les scripts rc, cette nouvelle option a été appliquée pour charger sysctl.conf en entier, au lieu d'une analyse ligne par ligne.
- Dans la commande pkg_add, l'appel à ldconfig a été implémenté s'il y a eu un changement dans la liste des bibliothèques partagées suite à l'installation de nouveaux paquets.
- Ajout de la prise en charge de nouveau matériel. Amélioration de la prise en charge des SoC MediaTek et Qualcomm Snapdragon (y compris X Elite). Amélioration de la prise en charge des appareils Samsung Galaxy Book4 Edge, ThinkPad T14 Gen 5, Vivobook, ThinkPad X1 Nano Gen 2, ThinkPad X13 et de divers Chromebook. Ajout du pilote ice pour Intel E810 Ethernet 1Gb/10Gb/25Gb/50Gb/100Gb et du pilote ixv pour les fonctions virtuelles Intel Ethernet 82598EB, 82559 et X540. Poursuite du travail pour déléguer l'exécution des opérations réseau aux cartes réseau.
- Le sysupgrade dispose désormais d'un mode pour la mise à jour hors ligne des systèmes en utilisant des paquets enregistrés sur le système de fichiers local.
- L'utilitaire fw_update a ajouté la capacité de charger (sans installer) des firmwares sous un utilisateur normal sans privilèges root. Ajout d'un drapeau « -l » pour afficher la liste des pilotes et des fichiers.
- Pour le processus sshd-auth, une protection contre l'exploitation des vulnérabilités est activée, basée sur la recomposition aléatoire du fichier exécutable à chaque démarrage du système (relink). La recomposition rend les décalages des fonctions peu prévisibles, ce qui complique la création d'exploits utilisant des techniques de programmation orientée retour.
- Isolation du processus mountd utilisant l'appel système unveil.
- Le réseau prend en charge les sockets AF_FRAME et la famille de protocoles IFT_ETHER, permettant aux applications d'envoyer et de recevoir des trames Ethernet. Un nouveau méthode de hachage a été mise en place pour les paquets sortants UDP et TCP, ce qui a permis d'optimiser la distribution du trafic entre les files d'attente et d'accélérer considérablement (~20%) l'envoi d'UDP pour IPv4/IPv6 et TCP pour IPv6. Pour le périphérique tun, l'ioctl TUNSCAP a été réalisé et l'interaction entre le noyau et l'espace utilisateur a été optimisée. Un cache de routage séparé a été réalisé pour chaque thread. Le pilote vio a été doté d'un mode multiqueue.
- Dans l'utilitaire pfctl pour les interfaces réseau et les files d'attente, il est désormais possible de définir une bande passante dépassant 4Gbit.
- Dans iked, l'implémentation du protocole IKEv2 pour IPsec, l'option « natt » a été ajoutée pour forcer l'utilisation de nat-t.
- Dans relayd, le processus en arrière-plan pour le redirectionnement et l'équilibrage des requêtes, la prise en charge des clients a été mise en place. des certificats TLS.
- L'outil de mesure de performance réseau tcpbench a ajouté la prise en charge de TLS.
- Dans bgpd, la prise en charge du RFC 8654 (BGP Extended Message), du RFC 8538 (BGP Notification Message) a été implémentée, l'option « reject as-set » est activée par défaut, assurant la mise en cache de l'Adj-RIB-Out.
- LibreSSL 4.1.0 ajoute le support expérimental de l'architecture loongarch64, propose de nouvelles implémentations assembleur des algorithmes SHA-1, SHA-256 et SHA-512 pour l'architecture amd64 (utilisant l'instruction SHA-NI), de nouvelles implémentations assembleur de SHA-256 et SHA-512 pour Aarch64 (utilisant l'extension CE), simplifie l'implémentation de MD5 pour amd64, et assure la mise en cache de la liste des certificats révoqués (CRLs), l'implémentation de ML-KEM 768 et 1024 a été transférée de BoringSSL.
- OpenSSH a été mis à jour. La liste des modifications est consultable dans l'annonce d'OpenSSH 10 (le support des signatures numériques DSA a été retiré, les opérations d'authentification ont été déplacées dans un processus distinct sshd-auth, l'algorithme d'échange de clés hybride « mlkem768x25519-sha256 » est activé par défaut).
- Le nombre de ports pour l'architecture AMD64 a atteint 12593 (contre 12312), pour aarch64 — 12446 (contre 12148), pour i386 — 10429 (contre 10534). Parmi les versions d'applications dans les ports :
- Asterisk 16.30.1, 18.26.1, 20.13.0 et 22.3.0
- Audacity 3.7.3
- CMake 3.31.6
- Chromium 135.0.7049.52
- Emacs 30.1
- FFmpeg 6.1.2
- GCC 8.4.0 et 11.2.0
- GNOME 47
- Go 1.24.1
- JDK 8u442, 11.0.26, 17.0.14 et 21.0.6
- KDE Gears 24.12.3
- KDE Frameworks 6.12.0
- KDE Plasma 6.3.3
- Krita 5.2.9
- LLVM/Clang 13.0.0, 16.0.6, 18.1.8, 19.1.7
- LibreOffice 25.2.1.2
- Lua 5.1.5, 5.2.4, 5.3.6, 5.4.7
- MariaDB 11.4.5
- Mono 6.12.0.199
- Mozilla Firefox 137.0 et ESR 128.9.0
- Mozilla Thunderbird 128.9.0
- Mutt 2.2.14 et NeoMutt 20250113
- Node.js 22.14.0
- OpenLDAP 2.6.9
- PHP 8.2.28, 8.3.19 et 8.4.5
- Postfix 3.10.1
- PostgreSQL 17.4
- Python 2.7.18 et 3.12.9
- Qt 5.15.16 (+ correctifs du projet KDE) et 6.8.2
- Ruby 3.2.8, 3.3.7, 3.4.2
- Rust 1.86.0
- SQLite 3.49.1
- Shotcut 25.01.25
- Sudo 1.9.16p1
- Suricata 7.0.7
- Tcl/Tk 8.5.19 et 8.6.16
- Vim 9.1.1265 et Neovim 0.10.4
- Xfce 4.20.0
- Les composants des développeurs tiers inclus dans OpenBSD 7.7 ont été mis à jour :
- La stack graphique Xenocara basée sur X.Org 7.7 avec xserver 21.1.16 + correctifs, freetype 2.13.3, fontconfig 2.15.0, Mesa 23.3.6, xterm 395, xkeyboard-config 2.20, fonttosfnt 1.2.4.
- LLVM/Clang 16.0.6 (+ patches)
- GCC 4.2.1 (+ correctifs) et 3.3.6 (+ correctifs)
- Perl 5.40.1 (+ correctifs)
- NSD 4.9.1
- Unbound 1.22.0
- Ncurses 6.4
- Binutils 2.17 (+ correctifs)
- Gdb 6.3 (+ correctifs)
- Awk 20250116
- Expat 2.7.1
- zlib 1.3.1 (+ correctifs)
Source : opennet.ru
