Publication de FreeBSD 13.0

Deux ans et demi après la formation de la branche 12.x, la version FreeBSD 13.0 est présentée, conçue pour les architectures amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 et riscv64. Des images pour les systèmes de virtualisation (QCOW2, VHD, VMDK, raw) et pour les environnements cloud Amazon EC2, Google Compute Engine et Vagrant ont également été créées.

Les principales nouveautés :

  • La transition vers une implémentation unifiée de la filesystem ZFS de Linux provenant du projet OpenZFS a été réalisée. Parmi les fonctionnalités désormais disponibles sous FreeBSD suite à la transition vers OpenZFS : un système de quotas avancé, le chiffrement des ensembles de données, un choix séparé des classes d'allocation de blocs (allocation classes), l'utilisation d'instructions vectorielles pour accélérer l'implémentation de RAIDZ et le calcul des sommes de contrôle, la prise en charge de l'algorithme de compression ZSTD, le mode multihost (MMP, Multi Modifier Protection), des outils de ligne de commande améliorés, ainsi que la correction de nombreux bugs liés à l'état des courses et aux verrous.
  • Le port pour l'architecture ARM64 (AArch64) a été classé au premier niveau de support (Tier 1), avec un suivi par des équipes responsables de la correction des vulnérabilités, de la préparation des versions et du maintien des ports. Le premier niveau de support implique la création de systèmes d'installation, de mises à jour binaires et de paquets prêts à l'emploi, ainsi que des garanties de résolution des problèmes spécifiques et de maintien de l'intégrité de l'ABI pour l'environnement utilisateur et le noyau (sauf pour certains sous-systèmes).
  • L'architecture i386 a été catégorisée au deuxième niveau de support des plateformes (Tier 2), où la création des systèmes d'installation, des mises à jour binaires et des paquets prêts à l'emploi se poursuivra, mais sans garantie de résolution des problèmes spécifiques. Le type de CPU (CPUTYPE) pour l'architecture i386 a par défaut été modifié de 486 à 686 (si désiré, des compilations pour i486 et i586 peuvent être créées manuellement).
  • Les composants clang, lld, lldb, compiler-rt, llvm, libunwind et libc++ ont été mis à jour vers la version 11.
  • Le développement a été transféré d'un système de gestion de code source centralisé Subversion vers un système décentralisé Git.
  • Le nettoyage de la base du système a été effectué pour enlever les applications distribuées sous licence GPL. Les versions binutils 2.17 et gcc 4.2.1 ont été supprimées de l'arbre des sources. Toutes les architectures supportées ont été transférées sur les outils LLVM/clang. Des variantes des utilitaires grep et dtc (Device Tree Compiler) sous licence BSD ont été incluses, remplaçant ainsi les versions sous licence GPL. Le processus de montage automatique amd a été supprimé, dont la fonctionnalité est désormais gérée par autofs. L'outil ctm a été supprimé, il est maintenant recommandé d'utiliser le port misc/ctm.
  • La pile de routage a été réécrite et prend désormais en charge les objets nexthop, qui conservent des données d'état utilisées pour diriger un paquet vers le point d'arrivée souhaité. La possibilité de connecter des algorithmes de recherche de routes personnalisés a été ajoutée. Des algorithmes de recherche de routes du DPDK (Data Plane Development Kit) librte ont été intégrés pour optimiser le traitement de très grandes tables de routage. L'interface fib est désormais utilisée pour les requêtes proxyarp. Il est possible de modifier le nombre de fib à la volée via sysctl net.fibs. La prise en charge des routes temporaires pour IPv4 et IPv6 (avec une durée de vie définie) a été mise en œuvre.
  • La prise en charge du routage Multipath a été réécrite et rendue plus évolutive, avec un temps de recherche qui ne dépend pas de la taille de la liste (O(1)). La nouvelle implémentation de Multipath est maintenant liée au paramètre du noyau ROUTE_MPATH, qui remplace RADIX_MPATH et est activé par défaut. Un sysctl net.route.multipath a été proposé pour la gestion de Multipath.
  • Le cadre cryptographique au niveau du noyau a été refondu pour supporter des algorithmes cryptographiques modernes et simplifier l'interface pour l'utilisation du chiffrement dans les pilotes et autres composants du noyau. Les algorithmes obsolètes ARC4, Blowfish, CAST128, DES, MD5-HMAC et Skipjack ont été supprimés. Le support des algorithmes déclarés obsolètes dans RFC 8221 et RFC 6649/8429, y compris 3DES, a été interrompu dans IPsec et Kerberos. Les algorithmes précédemment déclarés obsolètes dans le sous-système de cryptage disque geli et cryptodev ont été supprimés.
  • Le noyau GENERIC inclut la prise en charge des pilotes aesni et armv8crypto pour accélérer le chiffrement de disque basé sur geli à l'aide d'instructions AES-NI pour les architectures amd64/i386 et AES-XTS pour ARM64.
  • Un pilote qat a été ajouté pour les accélérateurs cryptographiques Intel QuickAssist (QAT), ainsi qu'un pilote ossl avec une implémentation de procédures de chiffrement accélérées provenant d'OpenSSL, optimisées avec du code assembleur. Le pilote armv8crypto a ajouté le support de AES-XTS et AES-GCM utilisant les instructions correspondantes des processeurs ARMv8.
  • Une implémentation de TLS (kTLS) a été ajoutée, fonctionnant au niveau du noyau FreeBSD, permettant d'obtenir une augmentation significative des performances de chiffrement pour les sockets TCP. Les versions TLS de 1.0 à 1.3 sont prises en charge. Les pilotes cryptographiques du noyau avec support de AES-CBC ou AES-GCM sont utilisés pour le chiffrement. Pour utiliser kTLS dans l'espace utilisateur, une recompilation d'OpenSSL avec l'option WITH_OPENSSL_KTLS est requise.
  • Un nouveau type de buffers réseau mbuf (network data buffer) a été ajouté, capable de représenter dans un seul buffer plusieurs pages physiques non référencées, ce qui permet d'augmenter la performance de l'appel sendfile(2) en réduisant la taille des listes mbuf dans les buffers des sockets.
  • Le stack TCP a intégré le support de l'algorithme de réduction proportionnelle du taux d'envoi de paquets (Proportional Rate Reduction, RFC 6937), permettant de retrouver plus rapidement les paramètres optimaux du flux après des problèmes temporaires de transmission de données. Un sysctl net.inet.tcp.do_prr est prévu pour désactiver PRR.
  • Les capacités de l'hyperviseur Bhyve ont été étendues : le support de l'accès partagé aux fichiers via VirtIO-9p (VirtFS) a été ajouté. La possibilité de travailler avec des snapshots a été mise en œuvre. machines virtuellesLe support des appareils PCI HDAudio et des ports série supplémentaires COM3 et COM4 a été ajouté. Les modèles d'appareils bvmconsole et bvmdebug obsolètes ont été supprimés. La stabilité avec les clients VNC a été améliorée, y compris pour l'application macOS « Screen Sharing ».
  • Les pilotes VirtIO ont ajouté le support de la spécification VirtIO V1, ce qui a amélioré la compatibilité des systèmes invités avec FreeBSD avec différents émulateurs et hyperviseurs.
  • Pour les processus attachés aux environnements jail, une transformation des liaisons CPU est garantie (la liaison initialement attachée au processus cpuset sera remplacée en tenant compte du cpuset de jail et des restrictions appliquées).
  • Ajout de la possibilité de construire un système de base FreeBSD dans des environnements basés sur d'autres systèmes d'exploitation. La nécessité de compiler sur d'autres systèmes d'exploitation est motivée par le désir d'utiliser des outils d'intégration continue pour tester FreeBSD, qui sont liés à Linux ou macOS.
  • Proposition d'une nouvelle pile MMC/SD, basée sur le framework CAM, permettant de connecter des appareils utilisant l'interface SDIO (Secure Digital I/O). Par exemple, SDIO est utilisé dans les modules WiFi et Bluetooth pour de nombreuses cartes, telles que le Raspberry Pi 3. La nouvelle pile permet également d'utiliser l'interface CAM pour envoyer des commandes SD depuis des applications en espace utilisateur, ce qui permet de créer des pilotes d'appareils opérant au niveau utilisateur.
  • Amélioration de la couche de compatibilité avec Linux. Les fichiers DTS (Device Tree Sources) sont synchronisés avec le noyau Linux 5.8.
  • Ajout de la prise en charge de NFSv4.2 (RFC-7862) et mise en œuvre de la possibilité d'utiliser NFS sur un canal de communication chiffré basé sur TLS 1.3, au lieu d'utiliser Kerberos (mode sec=krb5p), qui était limité au chiffrement uniquement des messages RPC et était implémenté uniquement par logiciel.
  • Suppression de l'ancienne version du débogueur GDB, qui était auparavant installée dans le répertoire /usr/libexec et utilisée par l'outil crashinfo. Au lieu du GDB préinstallé, il est désormais conseillé d'installer la version récente de GDB à partir des ports ou des paquets pour obtenir des informations détaillées sur les causes des plantages. La prise en charge du débogage des processus via procfs a été interrompue. Ajout d'un pilote netgdb permettant d'accéder au débogueur de noyau à distance.
  • Suppression de la fonction non sécurisée gets dans la bibliothèque libc (cette fonction a été exclue de la spécification depuis la norme C11) et ajustements des ports encore utilisant cette fonction. Suppression des fonctions cap_random (il faut utiliser getrandom).
  • Ajout d'un nouvel appel système copy_file_range, compatible avec l'implémentation du noyau Linux et permettant d'accélérer la copie de données d'un fichier à un autre, grâce à l'exécution de l'opération uniquement côté noyau sans lecture préalable des données dans la mémoire du processus. L'appel système est également utilisé dans le serveur NFSv4.2 pour l'exécution locale des opérations de copie sur le serveur (sans transmission au client).
  • Le mécanisme d'entrée/sortie asynchrone POSIX AIO introduit un support pour des fonctions vectorisées. En particulier, des appels système aio_writev et aio_readv ont été ajoutés, permettant de mettre en œuvre des équivalents vectorisés des fonctions aio_read et aio_write.
  • Le support des composants d'espace utilisateur pour le format de fichier exécutable a.out sur les systèmes architecturés i386 a été abandonné. L'outil elf2aout a été supprimé.
  • Les utilitaires ping et ping6 ont été fusionnés. La capacité de définir des paramètres de qualité de service (QoS) via IP DSCP et Ethernet PCP a été ajoutée à ping.
  • L'utilitaire freebsd-update affiche désormais la progression du téléchargement des fichiers et a ajouté les commandes updatesready et showconfig pour vérifier la disponibilité des mises à jour et afficher la configuration.
  • Un large travail a été effectué pour améliorer le support des systèmes NUMA (Non-Uniform Memory Access).
  • Les drivers graphiques et les composants de la pile graphique ont été mis à jour. Les problèmes de fonctionnement des environnements basés sur le protocole Wayland ont été résolus.
  • Un sous-système de rétroéclairage a été ajouté pour créer des drivers de gestion de rétroéclairage. Un driver pwm-backlight pour contrôler le rétroéclairage du Pinebook et du Pinebook Pro a été ajouté.
  • Le support du protocole SCTP a été transféré dans un module séparé sctp.ko, qui est désactivé par défaut dans le noyau GENERIC.
  • Un nouveau driver usbhid a été proposé pour les dispositifs d'entrée, utilisant le framework hid pour travailler avec les dispositifs USB HID, au lieu des drivers ukbd, ums et uhid.
  • Le pilote cpufreq a été amélioré avec le support de la technologie Intel Speed Shift.
  • Ajout du support pour de nouvelles cartes basées sur les CPU 64 bits ARMv8, incluant les SoC Broadcom BCM5871X et NXP LS1046A.
  • Pour l'architecture AMD64, le support pour des adresses virtuelles de 57 bits (LA57) a été mis en œuvre. Le support des CPU x86 chinois Hygon Dhyana, basés sur des technologies AMD, a été ajouté.
  • Le port pour l'architecture powerpc64 a été transféré à l'utilisation de LLVM et d'ABI ELFv2 (les fichiers binaires des versions précédentes de FreeBSD ne pourront pas être utilisés sous FreeBSD 13). Pour powerpc64, les drivers virtio, ixl, mrsas, aacraid et cpld ont été portés.
  • Les drivers pour les anciens adaptateurs Ethernet ont été supprimés :
    • bm(4) BMAC
    • cs(4) Crystal Semiconductor CS8900/CS8920
    • de(4) DEC DC21x4x
    • ed(4) NE-2000 et WD-80×3
    • ep(4) 3Com Etherlink III (3c5x9) ISA
    • ex(4) Intel EtherExpress Pro/10 et Pro/10+
    • fe(4) Fujitsu MB86960A/MB86965A
    • hme(4) Sun Microelectronics STP2002-STQ
    • pcn(4) AMD PCnet
    • sf(4) Starfire
    • sn(4) SMC 91Cxx
    • tl(4) Texas Instruments ThunderLAN
    • tx(4) SMC 83c17x
    • txp(4) 3Com 3XP Typhoon/Sidewinder (3CR990)
    • vx(4) 3Com EtherLink III / Fast EtherLink III (3c59x) PCI
    • wb(4) Winbond W89C840F
    • xe(4) Xircom PCMCIA
  • Les drivers ubsec (crypto-accélérateurs Broadcom BCM58xx), ufm (tuner FM USB), ctau (Cronix Tau), cx (Cronix Sigma) et vpo (SCSI port parallèle) ont été supprimés.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster