Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierLinuxFr.org : les dépêches
  • ✇LinuxFr.org : les dépêches
  • Nouvelle version du Bureau Agnostep pour les 35 ans de GNUstep
    Comme vous le savez sans doute, cette année est marquée par les 35 ans de GNUstep, qui est à la fois un cadre logiciel qui permet de développer en objective-C des applications portables sur Windows, MacOS et GNU/Linux, mais aussi un environnement d’exécution (runtime) de ces mêmes applications. Plusieurs projets de bureau compatibles avec GNUstep existent depuis quelques années: après les défunts Simply-GNUstep et Étoilé, citons les actifs GSDE développé par Ondrej Florian ou encore le plus am

Nouvelle version du Bureau Agnostep pour les 35 ans de GNUstep

Comme vous le savez sans doute, cette année est marquée par les 35 ans de GNUstep, qui est à la fois un cadre logiciel qui permet de développer en objective-C des applications portables sur Windows, MacOS et GNU/Linux, mais aussi un environnement d’exécution (runtime) de ces mêmes applications.

Plusieurs projets de bureau compatibles avec GNUstep existent depuis quelques années: après les défunts Simply-GNUstep et Étoilé, citons les actifs GSDE développé par Ondrej Florian ou encore le plus ambitieux NEXTSPACE de Sergii Stoïan, qui tend à reproduire fidèlement l’ergonomie d’OPENSTEP sur BSD ou GNU/Linux. Plus récemment, dans un style plus proche de MacOS, citons également les prometteurs bureaux Gershwin (pour Xorg) ou Ambrosia (pour Wayland) développé par James Carthew.

Le bureau Agnostep propose sa version BETA 2.0.0, dans un style plus classique, avec des menus verticaux à la NeXT, combinant Window Maker et GWorkspace, ainsi que le runtime classique de GNUstep.

Il n’en propose pas moins un thème moderne inspiré par le jeu d’icônes du projet Papirus. Bien que fondé sur une distribution Debian Lite, il ne fournit pas de paquets, mais un principe d’installation proche des ports BSD. Un assistant facilite l’installation initiale comme l’ajout d’applications supplémentaire afin de fournir les versions les plus récentes des applications de la communauté GNUstep, compilées depuis les sources. En effet, contrairement à d’autres projets qui divergent parfois tellement des sources originales, qu’il devient impossible de les reverser dans le lot commun, la philosophie d’Agnostep est d’échanger patiemment avec la communauté des développeurs afin que les problèmes constatés et les améliorations bénéficient à tout le monde.

De plus, ayant résolu certains problèmes de la version précédente, il présente une meilleure stabilité. Outre les applications notoires de l’écho-système GNUstep, comme GNUMail, SimpleAgenda, etc., il offre également une nouvelle collection d’applications GNUstep originales créées dans ce but afin de proposer une expérience utilisateur plus cohérente:

  • Meteo.app : une application dockée qui affiche aussi la date courante. Basée sur l’API wttr.in API d’Igor Chubin.
  • UpMem.app : affiche la durée d’exécution l’usage de la mémoire.
  • Updater.app : une application dockée avec un badge de notification pour alerter en cas de paquets Debian susceptibles de mise à jour. Ce qui permet aussi d’effectuer la mise à jour effective à partir de la liste affichée de ces paquets
  • Birthday.app : une application dockée avec un badge pour informer des événements familiaux. Un incontournable pour le grand-père de nombreux petits-enfants.
  • OpenDisk.app : ouvre les dossier media où sont montés les disques amovibles : un compagnon de wmudmount et de udisks2, en se dispensant d’afficher le bureau de GWorkspace.
  • Launcher.app : un moyen rapide d’afficher le dossier des applications dans une nouvelle fenêtre.
  • ScreenLock.app : un simple verrouilleur d’écran fondé sur xtrlock.
  • Pass.app : une interface GNUstep au programme Unix Password Manager donnant accès au coffre local des mots de passe.
  • Mixer.app : une version simplifiée et compatible ALSA du mixer dérivé de VolumeControl.
  • AgnostepManager.app : un assistant dans la compilation et l’installation d’applications supplémentaires : applications courantes, utilitaires, jeux, outils de développement.
  • Dico.app : un service et un outil de recherche dans un Dictionnaire français fondé sur le DVLF de l’Université de Chicago.
  • SaveLink.app : un gestionnaire de raccourcis Internet. Voyez le dossier des Favoris.

À partir de cette version, les manuels d’aide (format .help) seront fournis avec chaque application concernée grâce aux améliorations récentes de l’application HelpViewer. Autre exemple qui illustre les fructueux échanges avec la communauté.

Bureau Agnostep en version 2

Agnostep est initialement développé sur un Raspberry Pi 500, mais son code permet de l’installer sur n’importe quel ordinateur susceptible d’accueillir la distribution GNU/Linux Debian : d’où son nom. Agnostep est un téléscopage de agnostique et GNustep.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇LinuxFr.org : les dépêches
  • Fedora Linux 44 est dans les bacs
    En ce mardi 28 avril, les utilisateurs du Projet Fedora seront ravis d'apprendre la disponibilité de la version Fedora Linux 44. Fedora Linux est une distribution communautaire développée par le projet Fedora et sponsorisée par Red Hat, qui lui fournit des développeurs ainsi que des moyens financiers et logistiques. Fedora Linux peut être vue comme une sorte de vitrine technologique pour le monde du logiciel libre, c’est pourquoi elle est prompte à inclure des nouveautés. lien nᵒ 1 : Site off

Fedora Linux 44 est dans les bacs

29 avril 2026 à 09:58

En ce mardi 28 avril, les utilisateurs du Projet Fedora seront ravis d'apprendre la disponibilité de la version Fedora Linux 44.

Fedora Linux est une distribution communautaire développée par le projet Fedora et sponsorisée par Red Hat, qui lui fournit des développeurs ainsi que des moyens financiers et logistiques. Fedora Linux peut être vue comme une sorte de vitrine technologique pour le monde du logiciel libre, c’est pourquoi elle est prompte à inclure des nouveautés.

Bureau GNOME

Sommaire

Expérience utilisateur

L'environnement de bureau GNOME est proposé dans sa version 50.

Après avoir introduit lors de la version précédente un moniteur du temps d'écran dans le panneau de configuration, ce menu s'étoffe avec la possibilité de configurer un réel contrôle parental. Ainsi il est possible de verrouiller l'écran automatiquement après un temps passé dans la journée sur l'ordinateur ou après une certaine heure. Il reste possible d'étendre l'usage de l'ordinateur manuellement en cas de besoin après validation par l'administrateur.

Côté accessibilité, le lecteur d'écran Orca se dote d'un rafraîchissement de son outil de configuration pour être aligné avec l'apparence des autres applications GNOME. Par défaut ses paramètres sont également globaux, évitant de devoir reconfigurer le lecteur d'écran pour chaque application bien que des personnalisations précises restent possibles application par application si nécessaire. Il est aussi possible de réduire les animations dans l'interface de GNOME pour éviter les distractions pour ceux qui en souffriraient.

Le lecteur de documents se dote, enfin, d'une possibilité d'annoter les documents autrement qu'en ajoutant un champ de texte dans une zone précise. Il est possible de surligner ou de tracer des lignes au sein du document et de varier le style de l'ensemble au gré des besoins.

Le navigateur de fichiers quant à lui continue dans l'amélioration des performances et de la stabilité, que ce soit un chargement des miniatures et icônes de documents plus rapide, ou une consommation moindre de mémoire pour l'application en général. Côté fonctionnel, le renommage de fichiers en masse a une interface plus claire et il est possible lors de la recherche de fichiers de sélectionner simultanément plusieurs filtres.

En terme de performances, pour ceux qui utilisent une session distante de GNOME la carte graphique de la machine qui reçoit le flux vidéo est sollicitée pour le décodage ce qui rend l'expérience bien plus fluide tout en consommant moins d'énergie. Pour ceux utilisant une carte graphique Nvidia l'expérience devrait être également plus stable par rapport aux versions précédentes. Il est possible de coupler l'accès distant avec une authentification Kerberos, de même il peut être exploité même si la session a été démarrée depuis un ordinateur sans écran tel un serveur.

Il y a eu de nombreuses améliorations pour l'affichage à fréquence variable et l'affichage avec mise à l'échelle fractionnée. Si ces fonctions étaient déjà activées dans Fedora, pour ceux bénéficiant d'un matériel compatible, elles bénéficient d'une plus grande stabilité. Les possesseurs d'une carte graphique Nvidia devraient également noter une plus grande fluidité dans l'interface. Le partage et la capture d'écran peuvent prendre en compte l'affichage HDR pour avoir le même rendu que sur l'écran physique. Enfin GNOME prend en charge le protocole des couleurs v2 de Wayland afin d'être compatible avec les évolutions futures des applications graphiques qui peuvent en faire un usage fin comme un éditeur d'images.

Le calendrier continue sa mutation. Dans un contexte professionnel, il permet maintenant de voir, pour un événement donné, qui a reçu l'invitation et parmi ces invités, lesquels doivent obligatoirement être présents. L'interface pour ajouter rapidement un nouvel événement a été revue pour être plus intuitive. Il est dorénavant possible d'exporter un calendrier complet avec le format ICS au lieu d'un événement seulement. L'interface prend en compte maintenant les paramètres régionaux concernant le premier jour de la semaine.

D'ailleurs il est possible au niveau de GNOME de changer ce paramètre du premier jour de la semaine. Pour les paramètres, les entrées et sorties sonores sont dissociées pour identifier clairement si on contrôle le volume d'une entrée ou d'une sortie audio.

Bureau Plasma

Les variantes de Fedora reposant sur l'environnement KDE Plasma utiliseront le configurateur Plasma Setup pour la post installation de manière analogue à GNOME avec GNOME init setup. Cet utilitaire a été récemment introduit avec KDE Plasma 6.6. Les étapes redondantes au niveau d'Anaconda sont supprimées pour une plus grande cohérence. Ainsi les images Live comme non Live fourniront la même expérience ce qui sera particulièrement visible pour ceux utilisant la variante KDE Plasma Mobile. Et comme pour GNOME, il devient possible d'installer Fedora en mode OEM, où le système peut être installé et le premier utilisateur peut créer son compte et le configurer à sa guise sans nécessiter un compte factice à l'installation.

De même ces variantes utiliseront Plasma Login Manager (PLM) comme gestionnaire de connexions au lieu de SDDM. Ce changement a également été introduit dans KDE Plasma 6.6 pour avoir un contrôle total du projet KDE dans l'expérience utilisateur. L'objectif de Fedora est de suivre la décision du projet pour améliorer la maintenance et l'expérience utilisateur en ayant un tout intégré. Cependant — même si PLM dérive de SDDM — il reste légèrement moins personnalisable à ce stade. Ce changement n'affecte par défaut que les nouvelles installations. Pour ceux qui veulent en bénéficier après une mise à niveau, voici les commandes à exécuter :

$ sudo dnf install plasma-login-manager kcm-plasmalogin

$ sudo systemctl enable --force plasmalogin.service

L'environnement de bureau Budgie passe à la version 10.10 et tourne avec Wayland au lieu de X11. Il utilise labwc comme compositeur qui permet de définir des raccourcis claviers globaux, l'accélération du curseur de la souris, d'adapter le thème des applications en fonction de la configuration de l'environnement. La variante spin utilisera SDDM comme gestionnaire de connexions pour avoir une expérience native Wayland de bout en bout. Outre cela, l'environnement fournit un nouvel utilitaire pour configurer les écrans.

La variante Games Lab est remaniée pour passer de Xfce à KDE Plasma et ainsi utiliser Wayland pour avoir une couche graphique plus moderne. En effet Wayland permet de plus en plus d'exploiter le matériel moderne ce qui est particulièrement utile dans ce contexte. La liste des jeux fournis par défaut a été revue, la documentation autour rafraîchie pour rendre compte des progrès dans le domaine et une tentative de fournir certains correctifs pour gérer le matériel des jeux aux projets d'origine plutôt que de les garder dans Fedora ou d'autres distributions dérivées comme Bazzite.

Le module noyau NTSYNC est activé quand les paquets Steam ou WINE sont installés pour améliorer les performances et la compatibilité des applications Windows et en particulier les jeux. Cela passe par l'ajout du paquet ntsync-autoload qui une fois installé remplit ce rôle en écrivant ntsync dans le fichier /usr/lib/modules-load.d/ntsync.conf afin de charger ce module automatiquement.

Ce module noyau améliore les performances car globalement les applications Windows, mais en particulier les jeux, pouvaient synchroniser leurs fils d'exécution avec des sémaphores, mutex et événements via des primitives noyau Windows. Mais comme ces mécanismes ne sont pas disponibles dans le noyau Linux, WINE les émulait dans l'espace utilisateur ce qui a des performances moindre. Le module noyau fournit cette abstraction au sein du noyau Linux lui-même ce qui reproduit la conception originale de Windows à ce niveau.

Le spin MiracleWM remplace l'environnement nwg-shell avec Dank Material Shell (qui est basé sur QuickShell). En effet le premier était difficile à maintenir et à stabiliser avec des mises à jour qui cassaient fréquemment la compatibilité. L'expérience devrait donc être plus stable pour les utilisateurs et ils devraient disposer de plus de fonctionnalités également.

Le gestionnaire de paquets universel PackageKit, utilisé par GNOME Logiciels entre autre, exploite dorénavant dnf5 au lieu de la version précédente. Cela permet d'avoir une expérience unifiée quel que soit l'outil employé pour utiliser DNF dans l'arrière coulisse. En particulier, les bases de données internes ne seront plus dupliquées et l'historique des actions est ainsi unique. Les notifications de mise à jour et la réalisation des mises à niveau devrait être également plus fiables et efficaces.

L'installateur Anaconda ne fournira plus de configuration réseau par défaut pour les interfaces filaires mais uniquement pour les installations n'utilisant pas une image Live. Jusqu'ici, à l'installation il y a la possibilité de configurer les interfaces réseaux mais pour les interfaces filaires non configurées (pour l'être avec des outils dédiés plus tard, par exemple) une configuration par défaut basique et potentiellement inadaptée était installée. Cela pouvait poser des problèmes à certains utilisateurs, mais c'était aussi un effort de maintenance pour que les valeurs par défaut correspondent à celles de NetworkManager par exemple. Ce changement permet également d'ouvrir la voie à la réutilisation du module de configuration réseau de Cockpit dans le futur.

La suite TeXLive nouveau millésime 2025 est proposée. Fedora en profite pour revoir l'empaquetage passant d'un SRPM unique pour le millier de modules à une cinquantaine. Ainsi mettre à jour un seul composant ne nécessite pas de reconstruire l'ensemble de ces paquets avec la tonne de mises à jour que cela implique pour les utilisateurs. Le découpage des SRPM suit celui du projet officiel pour avoir du sens en terme de dépendances. Cependant le nombre de sous-paquets générés ne change pas.

Outre cela, cette mise à niveau permet l'usage du format PDF 1.7 par défaut. Changer l'échelle des polices au-delà de 2048 points génère une erreur propre plutôt qu'un problème silencieux en arrière plan. LuaTeX comme pdfTeX sont améliorés.

Le paquet d'intégration avec la bibliothèque Qt5 pour LibreOffice est supprimé, les environnements de bureaux utilisant Qt6 maintenant.

Bureau Budgie

Gestion du matériel

Pour les systèmes Aarch64 avec un EFI, la sélection du device tree sera automatique au démarrage de l'image Live pour les ordinateurs portables Windows ARM. En effet une problématique dans le monde ARM, contrairement à l'univers PC avec l'architecture x86, la table ACPI et les protocoles avec une énumération des périphériques dynamiques tels que USB / PCIe ne suffisent pas à décrire le matériel de manière suffisamment complète pour démarrer la machine. Il est nécessaire pour cela de fournir un fichier additionnel, le device tree, qui est en général maintenu au sein du noyau Linux.

Et dans le cadre d'une image Live, il faut une image unique qui peut démarrer sur n'importe quelle machine. Pour les ordinateurs portables ARM, jusqu'ici il était nécessaire de personnaliser l'image Live à la main pour permettre un tel démarrage afin de fournir et de sélectionner le bon device tree à employer. La nouvelle procédure rend l'ensemble bien plus simple pour les utilisateurs. Cela repose sur une image noyau unifiée sans initrd mais avec systemd-stub et hardware-id pour identifier le bon device tree pour cette machine. Ainsi un initrd adapté et la ligne de commande pour charger le noyau Linux final seront générés et fournis à GRUB pour lancer le démarrage avec l'ensemble des informations nécessaires.

Internationalisation

L'outil d'aide à la saisie IBus évolue à la version 1.5.34. Il prend en charge le protocole des méthodes de saisie de Wayland ce qui permet de tirer profit de deux changements pour les environnements Wayland non basés sur GNOME (qui ne le prend pas en charge à ce jour). Il peut en effet automatiquement supprimer le texte environnant suivant le contexte, comme par exemple retirer un caractère ayant servi à la composition d'une autre ou de corriger le placement de la ponctuation dans un texte. Il peut également adapter la couleur du texte et du surlignage lors de la pré-édition pendant l'aide à la saisie en fonction du contexte (comme la prédiction complète d'un mot, la détection d'une faute d'orthographe, etc.). Enfin les annotations des émojis sont affichées dans la table de sélection.

Le module Ibus pour la transcription vocale est mis à jour à la version 0.7.0 qui propose un module pour utiliser la famille de modèles Whisper d'OpenAI en plus du modèle Vosk déjà employé. Il est possible de choisir le modèle souhaité dont les variantes exécutées en local ou ceux disponibles en ligne via la plateforme Hugging Face. Le module essaye de trouver automatiquement le modèle adapté à la langue employée mais il reste possible de définir cela manuellement en cas de besoin. Normalement la qualité du rendu de la transcription vocale devrait être améliorée tout en ayant la flexibilité dans le choix du modèle.

Administration système

Les images Fedora Cloud n'ont plus une partition /boot dédiée mais utilisent un sous-volume btrfs à la place. Cela ne s'appliquera cependant pas aux images UEFI-UKI ou pour l'architecture s390x à cause des limitations de ces systèmes. L'objectif est de réduire la taille de l'image initiale car il n'est plus nécessaire de fournir de l'espace libre dédié à cette partition. Et par conséquent, cela permet au reste du système de pouvoir utiliser plus d'espace librement sans devoir tenir compte de cette dite réserve.

L'émulateur QEMU n'aura plus de paquets compatibles avec l'architecture 32 bits i686 car cette architecture n'est plus maintenue par le projet officiel. Par ailleurs cette architecture posait quelques soucis de maintenance par le passé avec des échecs de compilation à gérer pour un paquet très peu utilisé sur de tels systèmes. Mais exécuter un système 32 bits depuis un QEMU 64 bits reste évidemment toujours possible.

Le gestionnaire de paquets nix est introduit dans Fedora Linux. Ce gestionnaire de paquets connu pour être celui de NixOS peut en effet être utilisé sur d'autres environnements Unix sans problèmes ce qui permet ici de bénéficier ou de contribuer à son écosystème de paquets pour ceux qui le souhaitent. Il est possible de s'en servir au niveau système (mode multi-utilisateur) ou pour un utilisateur spécifique. Cependant le projet Fedora ne souhaite pas s'en servir comme gestionnaire de paquets officiel, de la même façon que npm ou pip peuvent être utilisés depuis Fedora Linux pour récupérer des utilitaires JavaScript ou Python sans utiliser dnf.

Le gestionnaire de paquets Kubernetes Helm utilise la version 4 dorénavant tandis que la version 3 reste disponible avec le paquet helm3. En effet cette nouvelle version brise la compatibilité ascendante et comme il est très employé dans un contexte d'intégration continue ou de gestion de systèmes de conteneurs, la migration peut prendre du temps d'où la conservation de l'ancienne version qui sera retirée probablement pour Fedora Linux 45.

En terme de nouveautés, il prend en charge des extensions écrites en WebAssembly, il prend en charge également les OCI digest ou des arguments en format JSON. Son architecture a été revue pour utiliser des paquets versionnés et restructurer l'empaquetage. Le format Chart v3 est également pris en charge.

Le gestionnaire de bases de données MariaDB passe par défaut de la version 10.11 à la version 11.8. La version 11.8 était déjà proposée dans les dépôts, elle remplace juste la version 10.11 en tant que version de base. Cette dernière reste disponible via le paquet mariadb10.11.

L'outil Ansible est mis à jour à sa 13e version. Depuis la précédente version proposée dans Fedora Linux, Ansible 11, il fournit majoritairement des améliorations de sécurité et une plus grande robustesse dans le moteur de templates. De nombreux comportements invalides ignorés auparavant peuvent générer des erreurs et doivent être corrigés. D'ailleurs la gestion des erreurs a été également améliorée. Les modules plus spécifiques ont été mis à jour ce qui peut nécessiter une adaptation des playbooks existants.

Les paquets pour le gestionnaire de bases de données MySQL avec le nom community-mysql sont supprimés. L'objectif est de simplifier la maintenance et de rendre la situation plus claire pour les utilisateurs qui peuvent se référer uniquement aux paquets nommés mysql et dérivés.

Les paquets rust-coreutils et rust-nu qui vont respectivement de la version 0.0.27 à 0.5.x et de la version 0.99.1 à 0.109.2. Cette implémentation des outils de base de système en Rust gagnent en popularité et en maturité, étant utilisés par défaut dans Ubuntu maintenant. Cette version apporte une meilleure compatibilité avec les outils GNU. Son évolution très rapide jusqu'alors gênait les possibilités de mettre à jour ses dépendances telles que le shell Nu qui peut maintenant être mis à jour plus souvent. Les utilitaires GNU restent toujours les versions de référence dans Fedora Linux.

GNOME Bien-être

Développement

La chaine de compilation GNU progresse avec GCC 16.1, binutils 2.46, glibc 2.43 et gdb 17.1.

Le compilateur GCC a beaucoup travaillé sur la prise en charge initiale de la nouvelle version du langage C++26, mais des améliorations notables concernant C++23 sont également de la partie. Concernant le langage Ada, des extensions GNAT sont ajoutées et qui diffèrent du standard pour simplifier l'écriture du code ou se rapprocher des autres langages comme de nouvelles méthodes de constructions et de finalisation des objets. Côté matériel, les derniers processeurs Intel ont leurs optimisations spécifiques disponibles pour ceux qui le souhaitent tandis que le surcoût d'utiliser une carte graphique AMD avec les technologies OpenMP et OpenACC a été drastiquement réduit. OpenMP peut utiliser l'allocateur mémoire de l'API CUDA pour les cartes graphiques Nvidia afin d'améliorer les performances.

Les utilitaires binutils, outre la prise en charge de matériel plus moderne, il gère le format SFrame version 3 ce qui permet notamment de charger des sections .text de plus de 2 Gio.

La bibliothèque C glibc quant à elle, s'occupe d'améliorer la prise en charge de la version du langage C23. Elle peut gérer des caractères Unicode 17.0 et optimise certaines fonctions mathématiques comme acosh, asinh ou atanh pour les fonctions trigonométriques et la famille de fonctions fma pour le calcul de fonctions affines. Elle prend en charge les nouveaux appels systèmes mseal et openat2, le premier permettant de protéger une zone mémoire d'un changement de permissions ou de taille ultérieurement tandis que le second ajoute de nombreuses options supplémentaires à openat pour l'ouverture de fichiers.

Enfin le débogueur GNU peut gérer sur des architecture x86_64 une shadow stack avec des pointeurs 32 bits. Dans le protocole Debugger Adapter il accepte les requêtes pour la complétion d'une commande. Il devient plus simple de changer le style des couleurs de la sortie dans le terminal en fonction de ses préférences. Il peut également tirer parti des espaces de nom de l'éditeur de liens pour afficher cette information lors du débogage, notamment lors de l'affichage des informations concernant les bibliothèques partagées utilisées par le programme en cours d'analyse.

La chaine de compilation LLVM version 22 est proposée. Comme souvent l'alter égo de la chaine de compilation GNU n'est pas en reste avec la prise en charge initiale de la future version du langage C nommée C2y à ce jour. Plus d'optimisations matérielles peuvent être exploitées avec les expressions constantes de C++. comme les instructions SSE, AVX, et AVX-512. De même plus de micro architectures sont prises en charge pour des optimisations supplémentaires pour le matériel récent.

L'outil de configuration de l'environnement de compilation CMake passe à la version 4.2. Cela entraîne une rupture de compatibilité pour les projets ayant besoin de la version 3.5 ou inférieure. Outre l'évolution de son File API, il prend en charge la copie d'arborescence, via l'option -E copy_if_newer, basée sur la valeur de la date du dernier changement plutôt que celui de la différence de contenu pour être plus rapide. Une nouvelle option de ligne de commande --project-file permet d'utiliser un fichier alternatif à CMakeLists.txt à des fins de développement pour des tests temporaires. Le préfixe LINKER: peut être ajouté à différentes variables et commandes. Enfin, la variable CMAKE_FIND_REQUIRED peut être employée pour forcer toutes les commandes de recherche d'un fichier, d'une bibliothèque ou d'un programme d'émettre une erreur par défaut s'il n'est pas trouvé, au lieu de devoir le préciser à chaque commande. Le projet Fedora a dû proposer beaucoup de correctifs aux paquets compilés avec CMake pour permettre leur bonne compilation.

La bibliothèque C++ Boost passe à la vitesse supérieure avec la version 1.90. C'est la première mise à jour de ce composant depuis Fedora Linux 40, entre temps de nombreuses sous-bibliothèques sont apparues comme Charconv, Cobalt, Hash2, MQTT5, OpenMethod, Parser, Redis et Scope. La plupart des sous-bibliothèques ne prennent plus en charge C++03 et nécessitent au moins C++11 voire C++14 maintenant ce qui peut impacter la compatibilité des vieux projets.

Le langage de programmation Ruby prend de la valeur avec sa version 4.0 carats. Les opérateurs logiques binaires utilisés dans des conditions sont dorénavant compatibles en multi-lignes pour simplifier la lecture. En cas d'erreurs concernant les arguments pour appeler une fonction, un extrait du code de l'appelant et de l'appelé est affiché pour simplifier le débogage. Concernant les compilateurs juste à temps proposés, RJIT est retiré tandis que ZJIT est introduit. Il n'est pas encore recommandé de se servir de ce dernier en production, l'objectif est d'en faire une référence pour la prochaine version, quand il sera plus performant que la référence actuelle YJIT. Enfin Ractor comme mécanisme d'exécution parallèle a vu ses performances améliorées en ayant moins de données partagées et en utilisant moins de verrous globaux, l'objectif est — pour lui aussi — d'en retirer son statut expérimental pour la prochaine version.

Le paquet ruby-build est d'ailleurs scindé en plusieurs sous paquets pour rendre son utilisation plus modulaire. Ainsi au lieu de tirer l'ensemble des composants pour permettre de compiler n'importe quelle implémentation de Ruby, uniquement ceux nécessaires peuvent être téléchargés et installés ce qui peut éviter de devoir télécharger la chaine de compilation Rust ou OpenJDK et ainsi passer de 400 Mio de paquets à obtenir à quelques Mio seulement. Donc maintenant les dépendances essentielles pour cela sont regroupées dans le paquet ruby-build-core, si l'objectif est de compiler JRuby, le paquet ruby-build-jruby peut être installé, pour PicoRuby c'est ruby-build-picoruby, etc.

Le langage Go saute vers sa version 1.26. Le langage permet maintenant de spécifier une expression comme valeur par défaut pour une nouvelle variable en construction, comme par exemple une référence vers un champ JSON à parser. Il permet aussi de spécifier des contraintes de type pour des paramètres d'une fonction, qui réfère à un type générique, qui se réfère à lui même. Niveau outillage, la commande go fix permet de facilement porter un code existant vers une construction plus moderne à l'aide de moderniseurs qu'il fournit. Le ramasse miettes Green Tea est activé par défaut et doit fournir une réduction de son impact de 10 à 40% dans des programmes classiques. Pour les architectures x86_64, par défaut l'adresse mémoire du tas est initialisée à une adresse aléatoire au lancement de l'application pour réduire le risque d'attaques. Les appels de code C sont aussi 30% plus rapides.

Le langage PHP passe à la version 8.5. Parmi les nouveautés, il propose une nouvelle classe URI pour faciliter la manipulation des liens, il introduit également le concept de pipe avec |> pour enchainer les opérations sans nécessiter de variables intermédiaires ce qui simplifie l'écriture et la relecture du code. Il devient également possible de cloner un objet tout en éditant des propriétés à la volée ce qui est particulièrement utile pour les objets avec des champs en lecture seule. Une fonction peut ajouter la propriété #[\NoDiscard] pour générer une alerte si un appelant ne récupère pas la valeur de retour de cette fonction, ce qui permet d'améliorer la conception et l'utilisation des APIs. Les erreurs fatales fournissent aussi une trace d'appel pour mieux déboguer le programme. Et bien d'autres changements encore.

Le langage Haskell devient plus fonctionnel avec son compilateur GHC version 9.10 et sa suite de paquets Stackage 24. Le langage dispose de quelques petites améliorations comme la possibilité pour la boucle forall d'avoir le qualificatif visible afin de spécifier le type de l'objet employé dans la boucle sans inférence. Ou encore de déprécier une instance de classe afin de générer une alerte en cas d'utilisation. Sinon le compilateur dispose de la possibilité pour le backend JavaScript de se lier à du code C grâce à l'usage de WebAssembly, tandis que le backend WebAssembly permet d'appeler du code JavaScript et inversement du code JavaScript qui peut appeler du code Haskell.

Le projet Fedora en profite pour supprimer les paquets de profilage ghc-*-prof pour les architectures non x86_64 et aarch64, sauf pour la bibliothèque standard, car leur usage était probablement rare et le coût de maintenance trop important pour les empaqueteurs.

La boîte à outils web pour Python nommé Django serpente à la version 6. Le changement majeur est l'introduction de la prise en charge interne du Content Security Policy pour facilement bloquer les attaques par injection de contenu comme XSS. Il faut déclarer dans ce cas les ressources externes, comme les scripts ou images, auxquelles le navigateur peut accéder et bloquer ainsi les autres. Il intègre aussi la gestion des templates partiels qui étaient auparavant dans un module externe. Il propose également le concept de tâche pour exécuter des actions potentiellement longues en arrière plan en dehors du cycle de requête-réponse HTTP tel que l'envoi d'un courriel suite à un appel particulier. Enfin il adopte l'usage de l'API Python moderne pour la gestion des courriels. Cette version présente de nombreuses incompatibilités, l'usage de Django 5 reste possible par l'installation du paquet python3-django5.

Des paquets nodejsXX-bin et nodejsXX-npm-bin sont fournis pour créer les fichiers /usr/bin/node et /usr/bin/npm sans nom de versions qui pointent vers la version voulue par l'utilisateur. Ils ne peuvent pas être installés en parallèle ce qui permet de garantir l'unicité de ces fichiers dans un système. Cela signifie qu'il n'y a plus vraiment de version de NodeJS de référence dans Fedora Linux et qu'il est aisé de passer d'une version à une autre selon ses besoins. Pour les mainteneurs, c'est plus facile également de gérer les changements de versions car il n'y a pas la question de gérer la transition d'une version de référence à une autre.

Cette propriété signifie également que passer d'une version à une autre nécessite d'utiliser la commande dnf swap. Par exemple : dnf swap --allowerasing nodejs24-bin nodejs22-bin

La bibliothèque rust-bindgen pour lier du code Rust avec du code C ou C++ est empaquetée à la version 0.72. Avant les versions de 0.68 à 0.72 étaient proposées, mais la nouvelle version LLVM 22 décrite plus haut casse la compatibilité pour représenter l'AST ce qui rend ces anciennes versions non compatibles. Cela a impliqué des adaptations pour les dépendances impactées.

La bibliothèque d'édition des métadonnées des fichiers audio taglib passe à la version 2.0. Cette version ne préserve pas la compatibilité de son ABI et API ce qui a nécessité une adaptation pour ses dépendances comme Ardour et Easytag. Beaucoup de fonctions obsolètes ont été supprimées pour avoir une API plus propre. Le code a été modernisé avec beaucoup de correctifs et un usage de C++17. La prise en charge des propriétés des formats MP4 et RIFF a été également étendue.

Le parseur et moteur de rendu de CommonMark cmark progresse vers la version 0.31.

La machine virtuelle Java OpenJDK 21 n'est plus proposée dans les dépôts. Cela permet de concentrer les ressources sur OpenJDK 25 et 26 qui sont plus utilisées. Ce temps économisé peut être alloué dans la finition de la compatibilité avec Eclipse Temurins.

Le paquet python-mock a été supprimé des dépôts. Son retrait prochain avait été annoncé avec Fedora 34 mais de nombreux paquets en avaient encore besoin jusqu'ici.

GNOME Documents avec annotations

Projet Fedora

Les paquets avec des fichiers identiques utilisent des liens physiques par défaut au sein du répertoire /usr. Notamment certains paquets Python peuvent avoir des contenus générés automatiquement qui sont dupliqués avec la macro %__os_install_post_python. Mais la manière de faire n'était pas toujours cohérente entre les paquets et des effets de bord existaient car il pouvait y avoir une différence de date d'édition de fichiers entre deux liens physiques ce qui nuisait à la reproductibilité de la génération des paquets. Maintenant cela est géré de manière uniforme via la macro %__os_install_post qui effectue cette tâche pour tous les fichiers dans %{buildroot}%{_prefix}, que les fichiers soient dans le même paquet ou sous-paquet. Uniquement ce répertoire est pris en compte car les fichiers en son sein sont en général en lecture seule ce qui évite les problèmes liées à l'édition ultérieure du contenu. Un autre aspect positif est une légère réduction de la taille de certains paquets et que différents utilitaires de recherche ou de sauvegarde des fichiers peuvent éviter de parcourir inutilement plusieurs fois le même contenu.

Les systèmes atomiques ne fournissent plus de bibliothèques et de binaires FUSE 2. Les paquets fuse et fuse-libs sont retirés de l'image de base pour permettre l'usage exclusif de FUSE 3, FUSE 2 n'étant plus maintenu. Ces paquets étaient maintenus depuis Fedora Linux 40 car le format AppImage s'en servait dans la première version de son format mais l'ajout d'une seconde version qui exploite FUSE 3 permet de s'en affranchir.

Pour les images Kinoite et Kinoite Mobile, cela signifie que les backends EncFS et CryFS ne sont plus accessibles, si vous êtes concernés vous pouvez les convertir avant ou alors installer les paquets fuse-encfs et cryfs avec rpm-ostree.

Cela ne concerne pas pour l'instant les autres versions de Fedora Linux qui ont un usage plus général et qui peuvent très facilement l'installer en cas de besoin pour ceux qui le souhaitent. Les systèmes atomiques sont quant à eux orientés pour des systèmes minimaux en lecture seule où cet utilitaire n'est plus indispensable par défaut comme expliqué.

Ces systèmes bureautiques atomiques ne prennent plus en charge les règles obsolètes pkla polkit. Les autres systèmes atomiques de Fedora avaient déjà supprimé par défaut ces règles de leur image de base car c'est un format obsolète qui est d'ailleurs peu à peu retiré des autres distributions Linux telles qu'Ubuntu ou Debian.

Les variantes non atomiques ne sont pas concernées à ce stade pour la même raison que le changement précédent, d'autres paquets peuvent en dépendre ce qui rend la suppression totale définitive difficile à ce jour. Les systèmes atomiques n'ont plus de tels composants dans l'image de base ce qui permet une telle transition.

Packit remplace Fedora CI et Zuul pour démarrer les instances d'intégration continue pour compiler et exécuter les tests des paquets après un pull request. En effet le premier est développé par Red Hat et est plutôt bien maintenu avec plus de fonctionnalités que les seconds qui n'avaient pas assez de personnes pour s'en occuper et fournir une bonne stabilité. Cela permet de simplifier la gestion de cette partie de l'infrastructure en se concentrant sur l'intégration plutôt que le développement. Il offre par exemple la possibilité de ré-exécuter certains tests seulement ou d'utiliser des étiquettes associées à une tâche pour définir quels tests doivent être exécutés ou non, afin de gagner du temps lors du développement d'un paquet. Il fournit de fait une interface unique pouvant aller de dist-gist en passant par Koji et Bodhi pour ces différentes tâches. Il est également indépendant de la forge git employée grâce à une API unifiée. À ce jour Gitlab et Pagure sont gérées et Forgejo sera ajoutée plus tard, qui sera à priori la future forge logicielle de Fedora ce qui facilitera la transition à ce moment là.

Koji ne prend plus en charge le service distant Red Hat Image Builder Service, uniquement les instances locales peuvent être utilisées. En effet depuis la version précédente de Fedora Linux, toutes les images peuvent être produites localement. Fedora IoT et Minimal étaient construites via l'infrastructure Red Hat Image Builder, Koji ne servant que d'orchestrateur côté Fedora. Cela posait quelques soucis dont la possibilité d'intervenir en cas de problèmes mais aussi le fait qu'il était impossible de geler les changements de l'infrastructure aux moments adéquats pour l'élaboration des nouvelles images. En plus de s'affranchir du service de Red Hat, cela autorise aussi de supprimer le plugin Koji qui permettait une telle opération. Il devient également possible de réallouer les ressources matérielles associées pour d'autres tâches.

Les labels des images pour conteneurs passent à org.opencontainers.image.title et org.opencontainers.image.licenses pour suivre la spécification OpenContainers. Cela simplifiera l'outillage pour récupérer cette information de manière générique en ayant une nomenclature standard pour toutes les images.

Par ailleurs CMake utilisera le générateur ninja au lieu de make par défaut pour compiler un projet. En effet CMake permet d'utiliser les deux en fonctions des préférences, avec la mise à niveau de CMake décrite plus haut, la prise en charge de ninja est encore meilleure ce qui le rend plus intéressant. Ninja est plus moderne et rapide pour effectuer la compilation d'un projet ce qui est intéressant pour le projet Fedora qui en compile beaucoup. Il prend également mieux en compte le concept récemment introduit des modules C++. C'était d'ailleurs déjà le choix effectué manuellement par certains paquets, maintenant tous les utilisateurs de la macro cmake en bénéficieront par défaut.

Les paquets autour du langage R ont de nouvelles macros et une meilleure uniformisation des bonnes pratiques pour simplifier leur maintenance. Cela représente 400 paquets dans la distribution qui avaient jusqu'ici une gestion assez artisanale et demandait beaucoup de temps pour gérer des situations similaires. De nouvelles macros dédiées ont été ajoutées dans R-rpm-macros tandis que les macros R-srpm-macros ont été ajoutées à la config globale redhat-rpm-config pour permettre leur réutilisation.

Ces macros simplifient beaucoup la maintenance, maintenant la génération de la version et des URLs des projets empaquetés sont gérés de manière uniforme. De même, la procédure d'installation et de la vérification des fichiers est faite de manière identique. Enfin, cela permet de rendre ces paquets reproductibles également.

La communauté francophone

L'association

Logo de Borsalinux-fr

Borsalinux-fr est l'association qui gère la promotion de Fedora dans l'espace francophone. Nous constatons depuis quelques années une baisse progressive des membres à jour de cotisation et de volontaires pour prendre en main les activités dévolues à l'association.

Nous lançons donc un appel à nous rejoindre afin de nous aider.

L'association est en effet propriétaire du site officiel de la communauté francophone de Fedora, organise des évènements promotionnels comme les Rencontres Fedora régulièrement et participe à l'ensemble des évènements majeurs concernant le libre à travers la France principalement.

Si vous aimez Fedora, et que vous souhaitez que notre action perdure, vous pouvez :

  • Adhérer à l'association : les cotisations nous aident à produire des goodies, à nous déplacer pour les évènements, à payer le matériel ;
  • Participer sur le forum, les listes de diffusion, à la réfection de la documentation, représenter l'association sur différents évènements francophones ;
  • Concevoir des goodies ;
  • Organiser des évènements type Rencontres Fedora dans votre ville.

Nous serions ravis de vous accueillir et de vous aider dans vos démarches. Toute contribution, même minime, est appréciée.

Si vous souhaitez avoir un aperçu de notre activité, vous pouvez participer à nos réunions mensuelles chaque premier lundi soir du mois à 20h30 (heure de Paris). Pour plus de convivialité, nous l'avons mis en place en visioconférence sur Jitsi.

La documentation

Depuis juin 2017, un grand travail de nettoyage a été entrepris sur la documentation francophone de Fedora, pour rattraper les 5 années de retard accumulées sur le sujet.

Le moins que l'on puisse dire, c'est que le travail abattu est important : près de 90 articles corrigés et remis au goût du jour.
Un grand merci à Charles-Antoine Couret, Nicolas Berrehouc, Édouard Duliège, Sylvain Réault et les autres contributeurs et relecteurs pour leurs contributions.

La synchronisation du travail se passe sur le forum.

Si vous avez des idées d'articles ou de corrections à effectuer, que vous avez une compétence technique à retransmettre, n'hésitez pas à participer.

Comment se procurer Fedora Linux 44 ?

Logo de MediaWriter

Si vous avez déjà Fedora Linux 43 ou 42 sur votre machine, vous pouvez faire une mise à niveau vers Fedora Linux 44. Cela consiste en une grosse mise à jour, vos applications et données sont préservées.

Autrement, pas de panique, vous pouvez télécharger Fedora Linux avant de procéder à son installation. La procédure ne prend que quelques minutes.

Nous vous recommandons dans les deux cas de procéder à une sauvegarde de vos données au préalable.

De plus, pour éviter les mauvaises surprises, nous vous recommandons aussi de lire au préalable les bogues importants connus à ce jour pour Fedora Linux 44.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇LinuxFr.org : les dépêches
  • Le jeu vidéo destiné à devenir de moins en moins libre et performant ?
    Pour qui s’intéresse au jeu vidéo, il y a quelques menus détails qui ont changé ces dernières années. On ne va pas parler du prix des composants — GPU et RAM notamment — qui a littéralement flambé avec l’avènement de l’IA, devenant une véritable valeur refuge au même titre que l’or ou le palladium ; non, on va s’intéresser à la partie technique des jeux (ou du moins de leurs moteurs de rendu). lien nᵒ 1 : Realtime Raytracing in Bevy 0.18 (Solari)lien nᵒ 2 : Le rendu 3D, rétrospective (par sm

Le jeu vidéo destiné à devenir de moins en moins libre et performant ?

Pour qui s’intéresse au jeu vidéo, il y a quelques menus détails qui ont changé ces dernières années.

On ne va pas parler du prix des composants — GPU et RAM notamment — qui a littéralement flambé avec l’avènement de l’IA, devenant une véritable valeur refuge au même titre que l’or ou le palladium ; non, on va s’intéresser à la partie technique des jeux (ou du moins de leurs moteurs de rendu).

Sommaire

Raytracing / Path tracing

Il doit être difficile en 2026 de ne pas avoir entendu les termes Raytracing et Path tracing. Mais concrètement, qu’est-ce que c’est et en quoi cela affecte les jeux vidéos ?

Pour en parler, il faut déjà revenir aux fondamentaux, c’est-à-dire la Rastérisation.
En modélisation 3D on a besoin d’afficher en deux dimensions (nos écrans) des objets en 3 dimensions. Étant loin d’être un expert de ces sujets, je dirais au doigt mouillé que ça doit remonter aux premiers rendus 3D.

Dans le contexte de la rastérisation, les objets à l’écran sont créés à partir d’un maillage virtuel de triangle ou de polygones (un mesh). Les coins de nos triangles sont appelés des vertices, et contiennent un paquet d’informations, comme leur position dans l’espace, ou bien leur couleur ou encore des données dite de « normale » qui permettent de déterminer la façon dont les faces d’un objet se présentent.

L’ordinateur convertit ensuite les triangles et les données des vertex en pixels affichés en 2D.

C’est la base de la rastérisation, on peut ensuite chaîner d’autres modifications sur nos pixels (des shaders : des programmes spécialisés qui fonctionnent en parallèles sur un GPU) pour modifier le rendu. C’est à cette étape que l’on fera de la magie noire pour simuler des effets de lumière, de réfraction, de réflexion, d’occlusion et j’en passe.

Pour les ombres il y a différentes techniques, la plus commune est la carte d’ombrage, qui permet de pré-calculer ou de calculer en temps réel ce qui est dans l’ombre (et doit donc être assombri) et ce qui ne l’est pas. Mais ces ombres sont dites « dures », pour des ombres diffuses (dites « soft ») il faut procéder un peu autrement.

On s’en sort en pratique fort bien, et d’autres techniques viennent compléter le tableau comme :

  • les lightmaps,
  • l’occlusion ambiante (SSAO, GTAO, etc.),
  • les sondes de réflexions,
  • les réflexions planaires qui — bien que gourmandes — donnent des réflexions claires comme le cristal en rendant la scène deux fois,
  • le SSR qui tente de reconstruire des réflexions à partir des informations déjà affichées,
  • les systèmes d’illuminations globales (SDFGI, Lumen)
  • les systèmes d’antialiasing
  • et une véritable myriade de joyeusetés toutes plus complexes et délicates les unes que les autres.

OpenMW avec les données de Morrowind
Source : OpenMW

Avec pour chaque technique des limites et inconvénients avec lesquels le développeur devra composer pour atteindre son objectif.

Ces liens donnent des informations pertinentes et compréhensible sur ces sujets :

Aussi, ce journal de small_duck est particulièrement intéressant et facile à lire, en plus de présenter l’évolution des techniques de rendue antérieures à la rastérisation.

Et ce sera fait pour chaque pixel de l’écran. Pour un rendu en 4K on a 8 millions de pixels, et on cible de 30 à 90 images par seconde en moyenne. Mais les GPU modernes sont très forts à ce jeu-là.

Bon très bien, et le raytracing me direz-vous ? Attention à ne pas confondre avec le Raycasting, dont nous parlait jtremesay dans son journal en 2022.

On l’a vu avec la rastérisation, on procède de la manière qui nous a parue la plus efficace avec les moyens donnés. Mais si on visait des rendus plus réalistes, et par réaliste j’entends physiquement réaliste, il y a d’autres approches.

Dans le domaine de l’illumination globale citée plus haut, le raytracing (« lancer de rayon »), permet de remplacer quantité d’effets simulés par les autres techniques et ce avec une qualité et une fidélité supérieure. Le ray tracing est conçu dans les années 60 par Robert Goldstein, Roger Nagel de MAGi et Arthur Appel d’IBM.

Turner Whitted introduit le raytracing récursif dans un papier en 1980. Il décrit comment l’information de rendu est stockée dans un arbre, se propageant vers les surfaces puis vers les sources lumineuses, permettant de simuler fidèlement réflexions, ombres et réfractions.

Cette technique de rendu procède différemment de la rastérisation. Il faut imaginer que depuis chaque pixel de l’écran, un rayon va être envoyé dans le monde 3D, et quand ce rayon va toucher une surface, on va récupérer sa couleur. On pourra ensuite en fonction des données de la surface, lancer d’autres rayons, qui iront toucher d’autres surface et ainsi affiner la couleur de notre pixel.

C’est très similaire dans l’idée à l’ancienne théorie de la vision émissive.

Image d’une scène 3D constituée de trois sphères, obtenue par path tracing

Source : Path tracing sur Wikipedia

De ce fait, on calcule par un seul moyen, non seulement les couleurs des surfaces, mais aussi leur émission, leurs réflexions, leur ombrage et ce en tenant compte d’objets en dehors de l’espace visible à l’écran. C’est un moyen extrêmement puissant de rendre un monde en 3D, et ce n’est ainsi pas pour rien qu’il est utilisé pour le rendu des films d’animation par Pixar et Dreamworks dès les années 80 (avec une approche hybride) et plus généralement dans les années 2000.

Car il faut dire, et je pense qu’on peut s’en douter, que le raytracing est horriblement peu performant. Le lancer de rayon à lui seul est un goulot d’étranglement monstrueux.

Mais pourquoi s’arrêter en si bon chemin ? Le Path tracing, introduit par James Kajiya en 1986, plus moderne, est une forme de raytracing. À chaque rebond, au lieu de lancer plusieurs rayons déterministes, on tire une seule direction aléatoire selon une distribution statistique. Cela permet de simuler fidèlement la lumière indirecte, les caustiques, les surfaces translucides, au prix d’un bruit important.

D’apparence moins performante et complexe, cette méthode permet toutefois un résultat plus granulaire, en changeant le nombre de rayons initiaux. Le pathtracing doit accumuler suffisamment d’échantillons aléatoires pour que la moyenne converge vers une image propre. Avec peu d’échantillons, l’image est bruitée. Pour réduire ce bruit il faut soit plus d’échantillons (plus lent), soit un bon débruiteur.

Certaines parties d’une scène comme les miroirs ou les surfaces en verre nécessiteront plus de rayons pour rester cohérentes, se rapprochant de la version raytracing plus classique.

Un rendu en pathtracing sur le blog de nVidia
Source: nVidia

Dans le domaine du jeu vidéo, il a ainsi fallu attendre jusqu’à récemment pour que cette technique devienne viable pour du rendu temps réel. C’est nVidia qui a ouvert le bal en 2018 avec une conférence pour le lancement de leurs cartes RTX. AMD suivra avec les RX6000 et surprenamment, Intel avec les Arc.

Cette démo de THREE.js tourne dans le navigateur et affiche une boite de Cornell avec du Path Tracing.

Ces nouvelles cartes utilisent des unités matérielles dédiées au lancer de rayon, opération autrefois purement logicielle. Mais ça ne suffit pas à atteindre la vitesse suffisante pour une expérience fluide.

Ces cartes embarquent donc également une autre technologie, au moins aussi importante que le raytracing. Le DLSS.

Histoire de se faire une idée rapidement, ce mod de DOOM 2 supporte le raytracing et ça change vraiment, avec un rendu atmosphérique !

Capture du mod Doom 2: RAY TRACED

Source : Le mod Doom 2: RAY TRACED sur moddb par shirokii

DLSS, FSR, XeSS, Reflex, Anti-Lag

nVidia présente donc en février 2019 le Deep Learning Super Sampling (DLSS) ou Super Échantillonnage en Apprentissage Profond. C’est une technologie de redimensionnement visant à produire une image plus grande à partir de la sortie du pipeline graphique.

Le défi étant de fabriquer ou de retrouver des détails à partir de pas grand-chose. Le DLSS utilise un réseau de neurones pour produire un résultat plutôt convaincant, surtout à mesure que les versions du DLSS se sont enchaînées. À tel point que le DLSS affiche parfois un meilleur rendu que le rendu natif.

En effet, si le but premier du DLSS et des autres technologies concurrentes est de réduire la résolution de rendu pour gagner en performance, le traitement du réseau de neurones peut être si bon qu’il parvient à reconstituer des détails plus fins que ce que produit le rendu natif.

Pour cela, il se base sur les images affichées, mais également sur des données fournies par le moteur, comme le vecteur de mouvement de l’image.

Il permet également de produire un rendu qui a virtuellement une résolution supérieure au natif qui est ensuite réduit à la résolution native. À la manière d’un Oversampling, mais sans le surcoût occasionné par le fait de rendre en 2 ou 4 fois plus grand.

Le DLSS est une technologie propriété de nVidia, qui utilise (sauf pour les premières versions) des éléments matériels pour fonctionner, des accélérateurs d’IA dédiés appelés Tensor Cores.
Les cœurs Tensor et autres accélérateurs IA peuvent entre autre utiliser des données de type FP16, INT8, INT4 et INT1, retenez-les bien, ça sera important.

Il n’a pas fallu longtemps avant qu’AMD ne se lance également sur le sujet avec son FidelityFX Super Resolution. Avec une approche différente, leurs cartes Radeon n’embarquant pas d’unités dédiées contrairement aux RTX de nVidia.

La première version du FSR est plus proche d’un shader d’upscalling comme ceux utilisés dans l’émulation retro que de ce que fait le DLSS.
Mais il a le mérite d’exister et de s’exécuter sur pratiquement n’importe quoi. Il a aussi le bon goût d’être libre. Il faudra attendre la version 2 pour voir quelque chose de plus intéressant, toujours agnostique du matériel utilisé et libre, et utilisant cette fois les vecteurs de mouvement également.

Cette fois-ci, si on est pas à la hauteur du DLSS on a quand même un gain de qualité par rapport à une résolution inférieure. Aux prix d’une image plus instable. Le FSR 3 (toujours libre et agnostique) améliorera un peu cette situation, mais sans régler tous les problèmes.

DLSS vs FSR 2 vs Native)

Sources : Notebook Check et Digital Foundry

Mais, car il y a un mais. Mais, donc, ces technologies ont un coût. En effet, même en faisant le rendu à une résolution plus faible que le natif et donc plus rapidement, il n’en reste pas moins que la mise à l’échelle prend du temps. Accélérateurs dédiés ou non. Dans un cas où on essayait de ramener des performances perdues lors de l’activation du Raytracing, on se retrouve à augmenter la latence.

Mais, car il y a de nouveau un mais, à chaque nouveau problème technologique, une solution (technologique elle aussi) existe ! nVidia se fend alors de la technologie Reflex, là ou AMD saupoudre son Anti-Lag et distille son Anti-Lag +. Ces solutions logicielles, propriétaires, fonctionnent uniquement sous Windows et à peu près de la même manière. Apparemment de base, le CPU peut préparer plus d’images que le GPU ne peut en afficher, remplissant alors un tampon ou une liste d’attente de rendu.
Plus il y a d’images dans la liste, plus la latence augmente, l’idée est donc de mieux synchroniser le rendu CPU et GPU, pour minimiser la taille de cette liste et donc la latence.

Suffisant ? Je ne sais pas.

Dans le même temps, Intel, qui se tâtait à se relancer sur le marché des GPU dédiés, se fend d’une première gamme de cartes graphiques, les Arc. Les cartes sont en dessous matériellement et logiciellement par rapport à leurs concurrentes, mais parviennent tout de même à faire tourner la plupart des jeux du moment. Si les pilotes ont des soucis de jeunesse, la prise en charge de Linux est de base très bonne et libre.

De manière générale, ces dernières années, le pilote libre des cartes Intel et AMD sous Linux est très bon et celui de nVidia s’améliore et s’ouvre un peu plus très peu mais reste basé sur un socle qui bien que performant est propriétaire.

Bref, Intel à la sortie de ses premières cartes (depuis un bail) les lance avec la gestion du raytracing et un équivalent aux DLSS et FSR : le XeSS. Il est plus proche du DLSS que du FSR, mais est agnostique du matériel comme le FSR. Il n’utilise d’accélérateur IA que sur les cartes Arc (cœur XMX), sur les autres il bascule sur les instructions DP4a pour exécuter son réseau de neurones. Il est souvent meilleur que le FSR en termes de stabilité, parfois pire. Si un SDK est disponible, il n’expose que des bibliothèques compilées. Le code reste donc fermé.

En parallèle de tout ça, arrive la génération d’image.

Maintenant, en plus d’augmenter la taille d’une « vraie » image générée virtuellement à l’ancienne, on va intercaler 1, 2, voir 3 images interpolées. Générées soit de façon analytique, soit via un réseau de neurones. C’est vendu sous le nom de Frame Generation par nVidia et AMD.

Côté AMD, il faut attendre le FSR 4 pour voir une utilisation d’un réseau de neurones.

Comparatif FSR3 et FSR4
Sources : Notebook Check et Digital Foundry

Le FSR fournit alors de bons résultats, et s’il reste légèrement moins qualitatif que le DLSS 4, il représente un saut appréciable par rapport au FSR 3. AMD ferme cette technologie aux cartes RX9000 en RDNA4, évoquant lui aussi l’usage d’instructions dédiées (FP8). Le code source n’est pas officiellement disponible, mais suite à une erreur de publication, le code d’une version du FSR 4 est publié en août 2025.

C’est plutôt ballot et cocasse pour AMD, car en plus de ne pas être voulu, cette version libérée comporte une implémentation fonctionnant sur INT8 du FSR 4. Or, nul besoin de la dernière génération de carte AMD pour les avoir. Ce qui veut dire, et les joueurs vont vite le démontrer en compilant eux-mêmes leur version, qu’il fonctionne en fait sur les cartes d’anciennes générations. Les cartes RDNA2 par exemple, plus vieilles de deux générations que les RX9000 en RDNA4, l’exécutent sans problème. Les cartes RTX 30 de nVidia également. Et si le gain en performance est inférieur aux cartes plus récentes, il reste présent et la qualité — surtout — augmente.

On peut d’ailleurs se demander si cette version du FSR 4 n’est pas la base technique du PSSR de Sony, développé par AMD à destination de la Playstation 5 qui embarque une architecture proche des cartes RDNA2 (elle est hybride). AMD est de son côté resté très silencieux sur le sujet.

On peut imaginer une décision court-termiste pour tenter de gonfler les ventes de la génération 9000, l’avenir dira si c’est un pari payant ou si les joueurs perçoivent cela comme une grossière insulte.

Il en reste la sensation d’un rendez-vous manqué, où le FSR4 aurait pu devenir de fait la méthode de mise à l’échelle universelle, car libre et indépendante de l’architecture. Mais sans qu’on sache exactement pourquoi, elle restera propriétaire et fermée à une gamme de carte.

Bref, à l’heure actuelle, seul les FSR 1, 2 et 3 sont libres et intégrables dans les moteurs de rendu libres comme Godot. Le DLSS et le XeSS restent utilisables pour qui en a la volonté. Le projet J.E.N.O.V.A qui permet notamment de coder en C++ sans passer par les GDExtenssions, utilise le DLSS par-dessus Godot et implémente le raytracing via le kit RTX de nVidia, mais cette portion est propriétaire pour le moment.

Ah ! Et bien entendu, à l’exception des FSR 1, 2 et 3, toutes ces technologies ne gèrent que DirectX. Sous Linux il faut donc passer par Wine / Proton / DXVK pour les exécuter.

DLSS 5

Annoncé en 2026, le DLSS 5 n’est pas une itération du DLSS au sens classique du terme, ce n’est ni de l’upscaling ni de la génération d’image. Le DLSS 5 prend en entrée la couleur et les vecteurs de mouvement d’une image, et utilise un modèle d’IA pour y injecter un éclairage et des matériaux photoréalistes, de façon déterministe et stable temporellement d’après nVidia.

Le système est a l’état de preuve de concept, nécessitant deux RTX 5090 : l’une pour jouer, l’autre exclusivement pour faire tourner le DLSS 5. L’utilisation d’une seule carte reste l’objectif pour la sortie prévue à l’automne 2026. On bascule d’une amélioration de rendu, à une génération de rendu. Ce changement de paradigme est loin de faire l’unanimité. Si l’image que vous voyez est en grande partie inventée par un réseau de neurones, s’agit-il encore du jeu que les artistes ont conçu ?

Dira-t-on bientôt à un assistant dans Unreal : « Voilà mon niveau de test fait de boîtes simples, transforme-le en cathédrale. » ? Cela mènera-t-il à une uniformisation des graphismes ? À une crise pour les artistes 3D ?

Présentation du DLSS 5 par nVidia
Source : nVidia

Tout est possible. Il est également possible que les joueurs ne veuillent pas de cette technologie. Mais si actuellement les rendus peuvent se trouver dans la vallée dérangeante, il y a fort à parier que ça va rapidement devenir indiscernable d’un rendu classique de très haute qualité. Une fois la boîte ouverte, difficile de la refermer.

Reste le problème de confier la direction artistique à une machine, et le fait que cette technologie est encore une fois propriétaire.

Et ça c’est un problème plus important qu’on ne le penserait, car il concerne en fait plus d’utilisateurs que les libristes convaincus. En effet, si nVidia avec son DLSS 5 altère à ce point le rendu des jeux avec un réseau de neurones, il y a fort à parier qu’AMD et Intel vont suivre.

Mais pas avec le même modèle, pas avec la même technique. Et donc produiront un résultat différent. On peut donc craindre que selon la carte de l’utilisateur, le rendu soit variable.

La méthode enjolive l’image à un tel point qu’on peut également imaginer se passer de toute autre technique d’illumination pour revenir à de la pure rastérisation. Le raytracing étant alors relégué aux oubliettes des méthodes de rendu. Beaucoup de questions et peu de réponse, on verra bien.

Après cette première présentation du DLSS 5 qui a laissé les joueurs assez mitigés, nVidia a tenu à montrer d’autres usages du rendu neural, avec une présentation au GDC 2026 faisant la démonstration du NTC (Neural Texture Compression). Un système de compression de texture basé sur un réseau de neurone.

Implémentation par moteurs

L’intégration des technologies d’upscaling et de rendu avancé dans un moteur est une tâche qui peut être complexe.

Sur les moteurs propriétaires, Unreal Engine 5 intègre nativement le raytracing, le DLSS, le FSR et le XeSS. Epic a les moyens pour maintenir ces intégrations à jour et a un soutien de nVidia, AMD et Intel.

Unity les gère également. Ne les utilisant pas je ne saurais en parler avec pertinence, ça a l’air de très bien fonctionner. Il est intéressant de noter qu'Intel ne publie plus son plugin Xess pour Unity, pendant que le DLSS est implémenté au travers du High Definition Render Pipeline

Pour les moteurs libres comme Godot, la situation est différente.

Le raytracing n’était pas forcément une technologie très pertinente ni très facile à implémenter pour des jeux indépendants il y a quelques années. Il n’y a donc pas eu de vrai volonté de l’implémenter, d’autant que d’autres techniques plus classiques existent et fonctionnent sur toutes les cartes, permettant un rendu très qualitatif.

Mais cette situation qui est restée au point mort pendant quelques années a changé assez rapidement, avec une PR pour « mettre en place la plomberie nécessaire au raytracing ». Elle a été intégrée début 2026 dans la version 4.7, et dans la foulée nVidia a publié un fork de Godot supportant le pathtracing et le DLSS. Cette expérimentation ne prend en charge actuellement que les cartes nVidia, mais se base sur la PR mentionnée plus haut, et devrait à terme permettre un pathtracing agnostique de la carte utilisée.

À voir cependant si elle sera intégrable en l’état, ayant été codée avec l’aide de Claude et de Cursor. Elle permet en tout cas de montrer ce qui est actuellement possible en utilisant les briques bas niveaux de Godot, et permet d’espérer voir le tracé de rayon officiellement utilisable avec le moteur dans un avenir proche. Pour rester indépendant d’un vendeur de carte, il faudra aussi intégrer un débruiteur en remplacement de celui utilisé, spécifique à nVidia. Cette vidéo de Leroy Sikkes de chez nVidia au GDC 2026 présente toute la méthodologie du projet.

Le FSR 3 (le dernier à être resté libre et agnostique) est intégrable, mais actuellement seul le FSR2 est disponible sans compiler une PR. Le DLSS et le XeSS le sont aussi techniquement, via des greffons communautaires ou officiels, mais requièrent une acceptation de licences propriétaires. Ils ne seront certainement jamais intégrés directement dans le moteur, pas sans changement de licence. Le FSR 4 tombe dans la même catégorie pour le moment du fait de l’incertitude sur sa licence, même si l’implémentation publiée par erreur par AMD était utilisable, elle concerne DirectX, et non Vulkan, et ne pourrait être exécutable que sous Windows (ou éventuellement via Wine/Proton/DXVK).

Si on regarde du côté de Bevy, des contributeurs ont proposé des implémentations du DLSS, du FSR et même un début d’implémentation du raytracing avec Solari. Les articles rédigés par l’auteur de Solari sont d’ailleurs fabuleux.

Au-delà de tout ça, dans le but de réduire l’impact sur les performances et de produire un meilleur résultat, les technologies de raytracing se voient souvent complétées par des dé-bruiteurs et une pelletée de technologies propriétaires assistées par IA.

Comparaison raytracing et debruiteur
Source : Dépôt NRD

L’image brute d’un rendu par lancer de rayon est un champ de points colorés aléatoires. Pour en faire une image propre, il faut la débruiter, et c’est là que l’écosystème de technologies se remet à foisonner.

On peut les classer en deux familles : les débruiteurs analytiques (qui utilisent des algorithmes et du filtrage) et les débruiteurs neuraux (qui utilisent des réseaux de neurones entraînés sur des données de rendu). Les premiers ne nécessitent généralement par une carte particulière alors que les seconds ne sont compatibles qu’avec certaines gammes de cartes.

L’écosystème construit par nVidia est le plus propriétaire de tous, mais c’est de loin le plus complet et le plus documenté. C’est le RTX Kit, il propose le NRD — NVIDIA Real-time Denoiser, un débruiteur analytique qui fonctionne par accumulation temporelle de pixels sur plusieurs frames, et interpolation spatiale entre pixels voisins. Le NRD (une fois n’est pas coutume) est disponible en source ouverte, agnostique de l’API (DX12 et Vulkan), et peut donc être intégré dans n’importe quel moteur.

nVidia fournit également le Ray Reconstruction, un débruiteur neural. Il reconnaît les différents types d’effets raytracing pour prendre de meilleures décisions sur l’utilisation des données temporelles et spatiales, et conserve des informations haute fréquence que les débruiteurs classiques ont tendance à lisser.

Enfin le NRC (Neural Radiance Cache) utilise des réseaux de neurones pour estimer la lumière indirecte avec plus de précision. Extrapolant un éclairage indirect avec moins de lancer de rayons.

AMD a longtemps été en retard sur toute cette gamme de techniques de débruitage et d’amélioration, de même qu’avec l’implémentation et les performances en raytracing. La situation s’améliore avec FSR Redstone, qui veut agréger les technologies dévelopées par AMD dans le but de proposer un équivalent au RTX Kit, mais le retard reste mesurable.

Ainsi l’équivalent AMD du Ray Reconstruction de nVidia est le FSR Ray Regeneration. Un débruiteur basé sur un réseau de neurones qui prédit et restaure les détails raytracing. Il ne nécessite pas d’être lié à un framework de rendu spécifique, ce qui est un avantage pratique. La qualité est apparement en dessous de ce que propose nVidia.

Le FSR Radiance Caching est conceptuellement proche du NRC de nVidia, mais AMD est encore en phase de déploiement — la mise en production était prévue pour 2026.

AMD n’a pas de débruiteur analytique grand public équivalent au NRD, ce qui laisse encore un trou dans sa raquette pour les cartes qui ne peuvent pas utiliser le FSR Redstone.

Intel est le moins avancé des trois sur ce front. Son offre se concentre autour de XeSS 2.

XeSS 2 comprend trois technologies : XeSS Super Resolution (la mise à l’échelle AI), XeSS Frame Generation (interpolation de frames), et Xe Low Latency (XeLL), qui s’intègre au moteur de jeu pour réduire la latence d’entrée.

Intel n’a pas de débruiteur neural dédié au raytracing comparable au Ray Reconstruction ou au FSR Ray Regeneration. Pour le débruitage, les jeux utilisant les cartes Arc sont tributaires des débruiteurs intégrés aux moteurs (NRD si le développeur l’a intégré, débruiteurs propriétaires des moteurs comme Lumen, etc.).

Il faut mentionner que depuis des années, Intel et la communauté open source proposent Open Image Denoise (OIDN), un débruiteur libre basé sur des réseaux de neurones, utilisé notamment dans Blender et d’autres applications de rendu offline.

Également des algorithmes comme ReSTIR visent à réutiliser les tracés d’une image précédente pour réduire le temps de rendu.

Impact sur les performances

Pour se faire une bonne idée de l’impact du raytracing, il peut être intéressant de comparer des titres usant de cette technologie et de la rastérisation plus classique.

Cyberpunk 2077 est par exemple une vitrine du raytracing et du pathtracing.

Cette vidéo donne un bon aperçu technique, pour un rendu en 1440p, avec DirectX12 et en qualité utra. Une RTX 4070 Ti passe ainsi de 100 IPS en rastérisation à 80 en raytracing puis à 51 en pathtracing. La RX 7900 XTX d’AMD elle part de 134 IPS, puis 59 en raytracing et 20 en pathtracing. Et les deux carte utilisent DLSS/FSR pour atteindre ces chiffres.

La perte d’IPS est abyssale chez AMD, la faute à une première implémentation du raytracing alors que nVidia en était déjà à sa troisième itération. La situation s’est un peu améliorée avec les générations suivantes.

Techspot propose un comparatif très complet, avec non seulement l’écart de performance entre rastérisation pure et raytracing mais aussi avec les visuels pour constater (ou non) l’apport du raytracing.

Ce qu’on voit immédiatement c’est que dans beaucoup de jeux, la différence visuelle est minime. Les techniques classiques sont en effet terriblement efficaces pour imiter les effets de lumières, d’occlusion ambiante, d’éclairages indirects, etc. Sur d’autres titres (comme Cyberpunk), l’impact est beaucoup plus visible. Il y a donc une différence liée à l’utilisation du raytracing. La plupart des jeux présentés dans le comparatif utilisent le lancer de rayon dans une approche hybride, en complément de la rastérisation.

L’impact sur les performances est réduit, de même que la différence visuelle. Par ailleurs, la direction artistique change également la donne. Si un niveau ne comporte aucune surface réflective, on aura du mal à constater l’apport du raytracing.

De manière générale, si le lancer de rayon est pleinement utilisé, on table sur environ 30-50% de performances en moins. Et c’est déjà fantastique si on se rappelle d’où on vient.

Dans sa publication THE RENDERING EQUATION, Kajiya présente deux images qui font 256 × 256 pixels, générées sur un IBM-4341. La première ayant pris 401 minutes de temps CPU et la seconde 533 minutes.

On arrive aujourd’hui, 40 ans plus tard, à rendre des images en 4K avec une fluidité suffisante pour le temps réel. En outre, il est probable de voir les performances de rendu augmenter dans les prochaines années.

Impact sur le développement

Le raytracing et le pathtracing, c’est génial, mais pour le développeur qui doit sortir un jeu, ça représente un sacré paquet de nouvelles contraintes.

Déjà, le matériel supporté. Si vous développez un jeu avec le pathtracing comme pilier central, vous excluez de fait une bonne partie de votre audience potentielle. Les cartes avec des unités matérielles dédiées au lancer de rayon restent, en 2026, loin d’être universelles. D’après les enquêtes de Valve, la moitié des cartes les plus utilisées ne le gère pas ou pas très bien.

Les joueurs sur des machines plus modestes, ou sur des cartes trop anciennes, ne pourront pas jouer à votre jeu — ou joueront dans des conditions dégradées. Pour un studio qui vise la plus large audience possible, c’est compliqué.

C’est d’ailleurs pourquoi la plupart des jeux qui utilisent le raytracing le font de manière hybride. On conserve la rastérisation comme base, et assaisonnent avec du lancer de rayon sur certains effets précis : les reflets, les ombres, l’occlusion ambiante. Le raytracing est un bonus visuel pour ceux qui ont le matériel pour en profiter, pas une fondation sur laquelle repose tout le rendu. Mais certains jeux comme Indiana Jones et le Cercle Ancien utilisent explicitement et uniquement le lancer de rayon, rendant leur utilisation impossible sans une carte récente au grand dam des joueurs les moins bien lotis.

Pour le développeur, cela signifie qu’il faut souvent maintenir deux méthodes de rendu en parallèle : la rastérisation (et toutes ces techniques raffinées), et le raytracing. Deux approches très différentes, deux séries de bugs potentiels, deux validations distinctes. Conduisant inévitablement à un surcoût appréciable.

Le raytracing a besoin d’accéder à l’intégralité de la géométrie de la scène pour fonctionner, y compris ce qui n’est pas visible à l’écran. Là où la rastérisation peut se permettre d’ignorer allègrement tout ce qui est hors champ (autant que faire se peut). Le lancer de rayon, lui, doit potentiellement rebondir sur n’importe quelle surface. Cela implique de gérer des structures d’accélération (les BVH, Bounding Volume Hierarchies) qui doivent être mises à jour à chaque image pour les objets en mouvement. Un coût supplémentaire, là encore, même si c’est ce qui permet notamment d’afficher des réflexions complètes.

Du côté des artistes 3D, le passage au raytracing change aussi les habitudes de travail. Une part fascinante de ce métier consiste justement à tricher habilement : placer des sources de lumière pour compenser l’absence d’illumination globale, peindre à la main des cartes de lumière, jouer avec des sondes de réflexion, développer des shaders en araméen à la limite de la prestidigitation et du pacte diabolique. Des techniques qui demandent de l’expérience et un certain sens artistique du bricolage et de l’adaptation.

Avec une propagation de la lumière physiquement réaliste, certaines de ces astuces deviennent complètement inutiles — ce qui peut être un soulagement — mais certaines habitudes et flux de travail doivent être abandonnées ou repensées. Une lumière placée à un endroit étonnant pour une raison purement artistique va se comporter différemment dans un moteur qui simule la physique réelle de la lumière.
D’un autre côté, le fait de pouvoir visualiser le comportement réaliste de la lumière et des réflexions dans une scène permet aussi de s’en approcher plus finement avec les techniques classiques.

Le raytracing peut simplifier certains aspects du travail (plus besoin de calculer à l’avance des lightmaps, les réflexions et les ombres se génèrent automatiquement; tout ceci avec un coût en termes de performance. Un coût d’autant plus pesant que le prix des composants s’est envolé à cause de l’intelligence artificielle.

La question du DLSS 5 et plus généralement du rendu neural mentionnée plus haut ajoute une couche de complexité supplémentaire. Si le rendu peut être altéré (voir complètement généré) par un réseau de neurones, la notion même de direction artistique devient discutable.

Les artistes conçoivent une ambiance, une intention visuelle. Disent des choses au travers les images, la musique. Mais si tout passe ensuite dans une boîte noire qui réinterprète différemment ses entrées selon la carte du joueur, qui est vraiment responsable du résultat final ?

Sera-t-il encore satisfaisant pour les créateurs et les joueurs de concevoir des mondes virtuels dans ces conditions ?

C’est une question que l’industrie commence à peine à se poser sérieusement, et elle se pose pour toutes les œuvres artistiques depuis l’avènement de l’IA.

Enfin, si le développement se fait avec un moteur libre comme Godot ou Bevy, la situation est encore un peu particulière. On l’a vu plus haut, l’écosystème du raytracing et ce qui gravite autour est aujourd’hui dominé par des technologies propriétaires. Et les moteurs libres, par définition, ne peuvent pas les intégrer directement sans franchir des lignes qui iraient à l’encontre de leurs principes — et au moins de leur licence.

Concrètement, ça veut dire que le développeur qui choisit Godot aujourd’hui pour faire un jeu avec du raytracing va défricher un territoire sauvage. Les briques de base existent mais rien n’est prêt à être utilisé sans se retrousser les manches sérieusement.

Pour la mise à l’échelle, le FSR 2 est disponible, le FSR 3 intégrable. Les DLSS ou XeSS peuvent être implémentés, mais avec des licences à accepter, ce qui rend improbable toute intégration officielle dans le moteur. Le développeur qui veut tout ça devra donc assembler lui-même sa chaîne, en acceptant de dépendre de solutions tierces dont la maintenance n’est pas garantie par l’équipe de Godot.

Le plugin Solari de Bevy est pour le moment réservé aux cartes nVidia également, ça changera certainement rapidement.

Si on regarde du côté de Wicked Engine par contre on a bien un moteur supportant le raytracing et fonctionnant sur toutes les cartes. Il est un peu plus niche que Godot ou Bevy mais très impressionnant.

Pour revenir à Godot, ce n’est pas forcément un drame. Il dispose de techniques d’illumination globale très capables comme le SDFGI, le VoxelGI, les sondes de reflexion, etc, qui permettent d’atteindre des rendus très convaincants sans lancer un seul rayon. Et pour beaucoup de styles artistiques (jeux stylisés, pixel art, low poly) la différence entre raytracing et rastérisation ne se justifie pas vraiment.

Il y a eu d’autres approches ces dernières années qui ont eu un impact sur les moteurs, les techniques de géométrie virtuelle par exemple. Nanite, disponible dans l’Unreal Engine en est un bon exemple.

Les maillages sont découpés en hiérarchies de clusters de triangles lors de l’import, puis ces clusters sont échangés à la volée selon la vue caméra, sans couture visible. Remplaçant les techniques plus communes de LOD. En pratique, ça veut dire qu’on peut importer directement des scans photogrammétriques de plusieurs millions de polygones, sans passer par les étapes habituelles de re-topologie et d’optimisation. Permettant de ne plus se soucier du budget de polygones et des LODs.

Du moins dans certaines limites. Si cette approche permet d’avoir des transitions inexistantes entre différents niveaux de détails, il n’en reste pas moins que dans beaucoup de cas, une utilisation des LODs et un bon travail d’optimisations des ressources et du maillage permet d’atteindre de meilleures performances. Importer les yeux fermés des object 3D de plusieurs millions de polygones sans même s’en soucier implique forcément des cas sous optimisés. Mais la technologie est là et mature tranquillement.

Introduction To Modern Rendering présente d’une façon digeste et intéressante les technologies du raytracing et des mesh shader.

Du côté des moteurs libres, c’est en chantier. La proposition pour Godot date de 2021, ouverte peu après l’annonce d’Unreal Engine 5, et est toujours ouverte. Rien de concret n’a atterri dans le moteur à ce jour. Bevy est plus avancé sur le sujet : son contributeur JMS55 (encore lui, c’est la personne derrière Solari) travaille activement sur une implémentation, et son article sur la version 0.16 détaille les avancées récentes — notamment l’amélioration de la qualité du DAG (la hiérarchie de clusters). C’est encore une fois très agréable de lire ces articles riches de détails et accessibles.

Bref, pour qui veut être à la pointe de la technique sans passer par du code propriétaire, la route est encore longue. La bonne nouvelle, c’est qu’elle est libre.

De nouveaux venus (Moore Threads, Lisuan Technology)

Le marché des GPU est depuis très longtemps un duopole de fait entre nVidia et AMD, avec Intel en troisième position encore fragile. Bon, OK, nVidia rafle l’essentiel du marché. Mais AMD tire son épingle du jeu (et sous Linux ils jouissent d’une réputation bien plus reluisante que nVidia).

Mais depuis quelques années, avec le contexte géopolitique tendu, la Chine a accéléré le développement de ses propres fabricants de cartes graphiques. Les restrictions américaines à l’exportation de composants avancés vers la Chine, qui concernent notamment les GPU nVidia les plus puissants, n’y sont pas pour rien.

Deux sociétés font parler d’elles : Moore Threads et Lisuan Technology.

Moore Threads est la plus ancienne des deux, fondée en 2020 par Zhang Jianzhong, ancien vice-président de nVidia Chine. Ses cartes actuelles, les MTT S80 et S90, existent depuis quelques années déjà, mais sont restées assez loin derrière la concurrence. Pour la prochaine génération, basée sur l’architecture Huagang, Moore Threads annonce pour sa puce Lushan des gains de 15x en performance dans les jeux AAA, 50x en raytracing, et 16x en traitement géométrique. Des chiffres spectaculaires, mais sans spécifications ni données de benchmarks à l’appui pour l’instant. Et bien sûr, tout dépend d’où on part.

À prendre avec des pincettes donc, mais l’ambition est là et les moyens aussi. La MTT S90 serait au coude à coude avec la RTX 4060.
Ce qui n’est pas une mince affaire pour un fabricant qui n’existait pas il y a 6 ans.

Lisuan Technology est un peu plus récente encore puisque fondée en 2021. Aucune carte n’est encore sortie (même si les envois auraient commencé).

La carte gaming LX 7G106, fabriquée par TSMC en 6nm, est prévue pour le 18 juin 2026 en Chine. En termes de performances synthétiques, elle se situerait dans les parages d’une RTX 4060.

En revanche, la carte ne supporte pas le raytracing.

Ce qui est notable pour nos sujets, c’est que ces deux acteurs, à des stades différents de maturité, arrivent dans un écosystème où les technologies de rendu avancé sont dominées par des standards propriétaires. Pas de DLSS, pas de FSR 4, pas de Ray Reconstruction. Ils devront soit implémenter leurs propres équivalents, soit s’appuyer sur les technologies agnostiques comme le FSR 2/3 ou le NRD d’nVidia.

Leur impact sur le marché mondial restera sans doute limité à court terme, les joueurs ayant de solides alternatives. Mais pour le marché chinois, qui représente une part considérable des joueurs PC mondiaux, ces alternatives domestiques ont une pertinence réelle, et représente des enjeux en termes d’autonomie. Si l’un d’eux parvient à produire une carte compétitive avec des pilotes stables, ce sera un signal fort que le quasi-monopole de nVidia n’est pas éternel.

Espérons que les pilotes seront libres et les technologies développées aussi, ce serait bien.

Et les performances dans tout ça

On a vu défiler beaucoup de technologies dans cet article. Des acronymes abscons, des architectures, des promesses de gains en tous genres. Mais si on prend un peu de recul : est-ce que tout ça rend les jeux plus agréables à jouer ?

Non. Bien sûr. Évidemment.

Attention, je suis aussi sensible que n’importe qui à de beaux graphismes, mais le nerf de la guerre n’est pas là. Surtout quand on voit que le prix des GPU, du stockage, de la RAM et par effet de bords, de tous les éléments d’un PC, ont flambé ces dernières années. Sous l’effet de la demande apparemment infinie de l’industrie de l’IA. Les cartes qui permettent de profiter correctement du raytracing et des technologies qui l’accompagnent se situent dans des gammes de prix de plus en plus élevées.

Leur consommation ne cesse de grimper (une RTX 5090 est une grosse brique tant son radiateur est gros), de même que leur impact écologique. On parle tout de même de composants PC tellement énergivores qu’ils forcent à changer toute l’alimentation de la machine et amènent avec eux une nouvelle norme de connecteur d’alimentation (qui n’a pas forcement très bonne presse).

Et même à des niveaux plus raisonnables, une carte milieu de gamme récente représente un investissement conséquent pour un résultat qui, on l’a vu, n’est pas toujours spectaculairement supérieur à ce qu’on obtenait avant.

L’augmentation des prix est telle que la demande pour des cartes mère en DDR3 poussent certains fabriquant à renouveler leurs stocks.

Ensuite, le Raytracing, les DLSS, FSR, débruiteurs neuraux, la génération d’images, la géométrie virtuelle. Chacune de ces technologies a été conçue pour résoudre un problème (parfois causé par la technologie qui le précède), et chacune en a introduit de nouveaux. Des artefacts visuels, de la latence, des incompatibilités entre fabricants, des exigences matérielles toujours plus élevées, des licences propriétaires. L’empilement de solutions finit par former une pile fragile, le jeu vidéo est un assemblage hétéroclite de techniques barbares et sauvages depuis ses débuts, mais on commence — avec ces nouvelles technologies biberonnées à l’IA — à s’éloigner de la recherche algorithmique pure, de cet esprit MacGyver qui caractérise si bien le développement de jeux vidéos, pour arriver sur une logique de boîte noire.

Ou bien c’est dans la droite ligne de l’héritage des pionniers du jeu vidéo, et ce sentiment n’est en fait qu’une incompréhension face à une révolution trop rapide pour être assimilée correctement.

Face à ça, aller à contre-courant est non seulement possible, mais peut être couronné de succès. Des jeux comme Celeste, Hollow Knight, Vampire Survivor ou plus récemment Balatro, n’ont aucun raytracing, géométrie virtuelle ou débruiteur neural. Ils tournent sur des machines modestes, parfois vieilles de dix ans ou plus, et se jouent avec un plaisir non moins vif.

À l’autre bout du spectre, des productions AAA ultra-techniques ont déçu leurs joueurs malgré — ou parfois à cause de — leur sophistication technique. Comme Pokémon Legends: Z-A qui (au-delà son contenu vidéoludique) souffre d’un manque flagrant d’optimisation, ce qui est un comble quand on parle de la licence Pokemon. Une licence dont les premiers jeux repoussaient les limites de leur support physique.

La technique se remarque essentiellement quand elle est mauvaise. Une conception ancienne mais bien réalisée sera souvent plus agréable qu’une autre plus récente mais à l’implémentation faillible.

De plus en plus de joueurs en ont marre de devoir investir dans des composants toujours plus puissants et réclament des jeux plus optimisés. Mais les grandes compagnies ont apparemment d'autres préoccupations.

La rastérisation bien maîtrisée, avec les techniques classiques évoquées en début d’article, permet encore en 2026 de produire des rendus magnifiques et des expériences fluides sur le parc matériel le plus large. Des moteurs comme Godot, même sans SDFGI ou sondes de réflexion, permettent d’atteindre des résultats visuellement très convaincants sans toucher les limites du matériel.

Je ne doute pas que le raytracing apporte énormément au jeu vidéo, ses qualités sont indéniables. Seulement dans le contexte actuel, je ne cracherais pas sur plus d’optimisation.

Possédant un Steam Deck de Valve, j’aime le fait de pouvoir baisser la consommation du SOC de la console à 3 ou 5 watts.
Ça rend la machine silencieuse, efficiente, et la batterie tient plus longtemps.

Jouer à Batman: Arkham Knight dans ces conditions permet d’atteindre 60 image par secondes quasiment tout le temps. Ce qui est impressionnant, car en plus le jeu est vraiment très beau.
Il a déjà 11 ans, mais reste magnifique. On pourra se rappeler qu’en 2015 il avait souffert de sa mauvaise optimisation.

La grogne des joueurs poussant Rocksteady Studios à mettre la distribution en pause, le temps de résoudre les problèmes techniques avec l’aide d’AMD et nVidia. Problèmes qui auraient évidemment pu être remontés et corrigés en phase de test.

Aujourd’hui on voit des jeux sortir sans la prise en charge de certaines cartes, comme Crimson Desert (qui recevra finalement plus tard la gestion d’Intel), des performances désastreuses à l’image de Borderlands 4 qui semble avoir réussi à transformer ses joueurs en bêta-testeurs, ou bien découpés à la tronçonneuse pour le vendre petits bouts par petits bouts : (Les Sims 4 on parle de toi).

Alors, quand en plus de ces problèmes que les industriels du jeu vidéo nous ont apportés, on ajoute du raytracing uniquement pour surfer sur la vague, ça ne fait qu’enfoncer le clou dans le cercueil de nos machines.

D’un autre point de vue, et en mettant de côté le raytracing, les technologies comme le DLSS et le FSR permettent de prolonger la durée de vie d’un matériel vieillissant. En tout cas, si ce n’est pas utilisé comme un pansement pour palier des performances passables.

Heureusement, des productions comme Resident Evil 4 ou Red Dead Redemption 2 montrent qu’il est encore possible de faire des jeux visuellement magnifiques (et surtout de bons jeux) qui tournent avec trois fois rien. Split Fiction (qui possède un gameplay en perpétuelle évolution), est visuellement superbe et tourne au poil sur une RX580.

Capture d’écran de Split Fiction, qui n’utilise pas le raytracing
Source : The Gamer

On aura sûrement le meilleur des deux mondes un jour ! Enfin j’espère, sinon on pourra toujours se réfugier dans le jeu de rôle papier.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇LinuxFr.org : les dépêches
  • ÉducaLibre 2026 sera ce que nous en ferons ensemble. À bientôt à Bruxelles.
    ÉducaLibre 2026 : appel à propositions d'ateliers, conférences et tables rondes Bruxelles, 4-6 juillet 2026—Université libre de Bruxelles Un rendez-vous européen qui manquait Partout en Europe, des enseignants innovent avec des logiciels libres, des développeurs créent des outils pédagogiques ouverts, des makers fabriquent, des chercheurs explorent, des artistes partagent. Ces initiatives foisonnent—mais restent trop souvent isolées, ignorées les unes des autres, condamnées à réinventer sans c

ÉducaLibre 2026 sera ce que nous en ferons ensemble. À bientôt à Bruxelles.

ÉducaLibre 2026 : appel à propositions d'ateliers, conférences et tables rondes

Bruxelles, 4-6 juillet 2026—Université libre de Bruxelles

Un rendez-vous européen qui manquait

Partout en Europe, des enseignants innovent avec des logiciels libres, des développeurs créent des outils pédagogiques ouverts, des makers fabriquent, des chercheurs explorent, des artistes partagent. Ces initiatives foisonnent—mais restent trop souvent isolées, ignorées les unes des autres, condamnées à réinventer sans cesse la même roue.

ÉducaLibre veut changer cela.

Du 4 au 6 juillet 2026, l'Université libre de Bruxelles accueille la première édition de ce rendez-vous européen des communs éducatifs : trois jours pour croiser les regards, partager les expériences, tisser des collaborations durables, et construire ensemble les ressources pédagogiques libres de demain.

L'événement est organisé par l'ASBL EduCode, qui avait déjà porté les éditions EduCode 2018 (1200 participants au BOZAR), 2019 et 2020, et dont certains membres ont contribué à l'organisation des RMLL 2013 à Bruxelles. Le lieu—le bâtiment U de l'ULB, domicile du FOSDEM depuis plus de vingt ans—n'a pas été choisi par hasard.

Ce qu'on y fera

Cinq pistes thématiques en parallèle :

  • politiques publiques et souveraineté numérique
  • pédagogie et pratiques de classe (GeoGebra, Moodle, Python, NumWorks, LaTeX, …)
  • administration et déploiement technique dans les établissements
  • innovation, IA et recherche en éducation
  • économie et entrepreneuriat du libre éducatif

Et une piste transversale : art, musique, création, poésie—parce que l'éducation se nourrit aussi de culture et de sensibilité.

En parallèle : des ateliers pratiques, des hackathons, des démonstrations, des tables rondes, des stands de projets. Le tout sous licences libres, avec captation vidéo publiée en CC-BY-SA.

Public attendu : 500 à 800 participants de toute l'Europe, enseignants du primaire au supérieur, développeurs, décideurs politiques, chercheurs, artistes, entrepreneurs.

L'appel à propositions est ouvert

C'est là que vous entrez en scène.

Vous utilisez un outil libre en classe et vous avez envie de le faire découvrir ? Vous avez mené une migration réussie dans votre établissement ? Vous développez un projet éducatif libre que le monde devrait connaître ? Vous avez des choses à dire sur la souveraineté numérique dans l'éducation, sur les modèles économiques du libre, sur l'IA et ses enjeux pédagogiques ?

Proposez une intervention : https://propositions.educalibre.eu

Formats acceptés :

  • atelier pratique (1h30)
  • conférence ou présentation (45 min)
  • table ronde ou débat (1h15)
  • démonstration de projet ou d'outil (30 min)
  • hackhaton
  • et toute autre forme que vous imaginez

Les langues de l'événement sont le français, le néerlandais, l'anglais et l'allemand—mais toute proposition dans une autre langue européenne sera examinée avec bienveillance.

La date limite pour soumettre une proposition est fixée au 14 avril 2026.

Pourquoi ça compte

L'éducation européenne est à un tournant. Le Schleswig-Holstein migre massivement vers le libre. La France structure ses politiques publiques autour de solutions souveraines. Des expériences remarquables existent au Kerala, en Catalogne, dans de nombreuses communes belges et françaises. Mais ces expériences ne se parlent pas assez.

ÉducaLibre n'est pas une conférence de plus où l'on écoute passivement des experts. C'est un espace horizontal, construit par et pour ses participants. Le programme sera ce que la communauté en fera.

Parmi les intervenants déjà pressentis :
1. Alexis Kauffmann (direction du numérique éducatif, ministère de l'éducation nationale français),
2. Frank Karlicheck (Nextcloud),
3. Tristan Nitot,
4. Pierre Pezzardi (Dinum)
5. Emmanuel Zimmert (ladigitale.dev)
6. des représentants de Framasoft, April, Aful, la FSFE, et des décideurs politiques belges et européens.

Pour aller plus loin

Tous les contenus produits seront publiés sous licence CC-BY-SA 4.0.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇LinuxFr.org : les dépêches
  • Les Journées du Logiciel Libre reviennent en 2026 !
    Les Journées du Logiciel Libre 2026 auront lieu le week-end du 30-31 mai 2026 ! lien nᵒ 1 : Site weblien nᵒ 2 : Fédiverselien nᵒ 3 : Appel à participationlien nᵒ 4 : SponsoringCitoyens et citoyennes engagées, associations, entreprises ou flâneurs et flâneuses avides de découvertes se retrouveront le week-end des 30 et 31 mai 2026, cette année encore au sein du campus de l’École Normale Supérieure de Lyon - Site René Descartes, et son superbe jardin (https://www.openstreetmap.org/way/5212492).

Les Journées du Logiciel Libre reviennent en 2026 !

Les Journées du Logiciel Libre 2026 auront lieu le week-end du 30-31 mai 2026 !

Bannière JdLL

Citoyens et citoyennes engagées, associations, entreprises ou flâneurs et flâneuses avides de découvertes se retrouveront le week-end des 30 et 31 mai 2026, cette année encore au sein du campus de l’École Normale Supérieure de Lyon - Site René Descartes, et son superbe jardin (https://www.openstreetmap.org/way/5212492). L'entrée sera comme toujours libre et gratuite.

Les Journées du Logiciel Libre se déroulent chaque année à Lyon depuis 1998 et rassemblent spécialistes, adeptes, curieux et curieuses de tous niveaux venus de toute la France pour un week-end riche en conférences, ateliers et rencontres.

Vous souhaitez proposer une intervention (conférence, atelier ou stand) pour les JdLL 2026 ? Vous avez jusqu'au 15 mars 2026 pour déposer votre proposition ici : https://pretalx.jdll.org/jdll2026/cfp

Vous souhaitez sponsoriser l'évènement ? C'est par là : https://jdll.org/soutenir

Et si vous souhaitez suivre nos dernières actualités, c'est sur le Fédiverse : https://framapiaf.org/@jdll

N'hésitez pas à passer le message autour de vous !

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇LinuxFr.org : les dépêches
  • Grafik Labor 2026 – Appel à conférenciers et à stands
    Création graphique, artistique et outils libres GrafikLabor revient le samedi 4 avril 2026 à Rennes, dans les locaux d’Activdesign, pour sa huitième édition dédiée aux logiciels libres, aux pratiques créatives ouvertes et aux artistes, designers et développeurs qui les utilisent au quotidien. Issu du LibreGraphicsMeeting, l’esprit se veut ouvert aux diverses pratiques créatives, aux différents secteurs de création graphique pourvu qu’ils mettent en avant les outils, les licences ou du contenu l

Grafik Labor 2026 – Appel à conférenciers et à stands

Création graphique, artistique et outils libres

GrafikLabor revient le samedi 4 avril 2026 à Rennes, dans les locaux d’Activdesign, pour sa huitième édition dédiée aux logiciels libres, aux pratiques créatives ouvertes et aux artistes, designers et développeurs qui les utilisent au quotidien. Issu du LibreGraphicsMeeting, l’esprit se veut ouvert aux diverses pratiques créatives, aux différents secteurs de création graphique pourvu qu’ils mettent en avant les outils, les licences ou du contenu libre.

À cette occasion, l’équipe d’organisation de l’AFGRAL lance un appel à conférenciers et à stands.

Pour rappel, GrafikLabor est un événement communautaire associatif. Il s’adresse aux personnes qui utilisent, développent ou promeuvent des logiciels libres dans leurs pratiques créatives : graphisme, illustration, jeux vidéos, édition, UX/UI, web, motion, 3D, typographie, etc.

L’événement met l’accent sur :

  • les retours d’expérience concrets
  • les choix d’outils et de workflows
  • la transmission de savoirs
  • les enjeux culturels et politiques du logiciel libre dans la création

Appel à conférenciers

Nous recherchons des propositions de conférences ou de présentations autour de, par exemple :

  • création graphique et artistique avec des outils libres (GIMP, Inkscape, Krita, Scribus, Blender etc.)
  • UX/UI, design web ou produit avec des stacks open-source
  • typographie, édition, illustration ou motion en environnement libre
  • jeux vidéo réalisés avec outils libres comme Godot
  • automatisation, scripts, bidouille et détournement d’outils
  • retours d’expérience d’artistes, studios, collectifs ou associations
  • réflexions sur l’autonomie, la pérennité et l’éthique des outils

Les formats peuvent être variés : talk, démo, étude de cas, retour d’expérience, atelier.

Modalités de participation

L’appel est ouvert, mais la programmation se fait sur sélection afin de garantir la cohérence de l’événement.

Les propositions se font en deux étapes :

  • un formulaire de prise de contact (nom, email, motivation)
  • après validation, l’envoi d’un lien vers le formulaire de proposition détaillée

L’événement est aussi ouverts aux sponsors ou aux associations qui aimeraient avoir un stand faire connaitre leur activité.

Informations pratiques

Date : vendredi 4 avril
Lieu : Activdesign, Rennes
Public : artistes, designers, développeurs, étudiants et personnes intéressées par le libre

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇LinuxFr.org : les dépêches
  • Nouvelles sur l’IA de janvier 2026
    L’intelligence artificielle (IA) fait couler de l’encre sur LinuxFr.org (et ailleurs). Plusieurs personnes ont émis grosso-modo l’opinion : « j’essaie de suivre, mais c’est pas facile ». Je continue donc ma petite revue de presse mensuelle. Disclaimer : presque aucun travail de recherche de ma part, je vais me contenter de faire un travail de sélection et de résumé sur le contenu hebdomadaire de Zvi Mowshowitz (qui est déjà une source secondaire). Tous les mots sont de moi (n’allez pas taper Zv

Nouvelles sur l’IA de janvier 2026

L’intelligence artificielle (IA) fait couler de l’encre sur LinuxFr.org (et ailleurs). Plusieurs personnes ont émis grosso-modo l’opinion : « j’essaie de suivre, mais c’est pas facile ».

Je continue donc ma petite revue de presse mensuelle. Disclaimer : presque aucun travail de recherche de ma part, je vais me contenter de faire un travail de sélection et de résumé sur le contenu hebdomadaire de Zvi Mowshowitz (qui est déjà une source secondaire). Tous les mots sont de moi (n’allez pas taper Zvi si je l’ai mal compris !), sauf pour les citations: dans ce cas-là, je me repose sur Claude pour le travail de traduction. Sur les citations, je vous conseille de lire l’anglais si vous pouvez: difficile de traduire correctement du jargon semi-technique. Claude s’en sort mieux que moi (pas très compliqué), mais pas toujours très bien.

Même politique éditoriale que Zvi: je n’essaierai pas d’être neutre et non-orienté dans la façon de tourner mes remarques et observations, mais j’essaie de l’être dans ce que je décide de sélectionner ou non.

Sommaire

Résumé des épisodes précédents

Petit glossaire de termes introduits précédemment (en lien: quand ça a été introduit, que vous puissiez faire une recherche dans le contenu pour un contexte plus complet) :

  • System Card: une présentation des capacités du modèle, centrée sur les problématiques de sécurité (en biotechnologie, sécurité informatique, désinformation…).
  • Jailbreak: un contournement des sécurités mises en place par le créateur d’un modèle. Vous le connaissez sûrement sous la forme « ignore les instructions précédentes et… ».

Anthropic public la Constitution de Claude

Tout le monde maintenant connait le principe du pré-entrainement des LLMs : sur un corpus de texte énorme, essayer de prédire le mot suivant, étant donnés les mots précédents.

Ceci n’est cependant que la première phase pour arriver à une IA de type « chatbot » moderne : vient ensuite le post-entrainement, qui consiste à entraîner le modèle à se comporter comme un assistant (par exemple, un modèle de langage brut peut très bien compléter la question par « Quelle est la couleur du ciel ? » par une autre question « Quelle est la forme des arbres ? », pensant compléter le début d’une interrogation poétique — alors qu’on veut qu’un assistant… réponde à la question), et la « politique » que suit cet assistant (par exemple, ne pas aider ou inciter à des actions illégales).

(il y a ensuite une phase de Reinforcement Learning from Verifiable Rewards (RLVR), une phase d’entraînement sur des exercices mathématiques et de programmation pour entraîner le modèle à utiliser correctement les chaînes de raisonnement, mais ce n’est pas le sujet qui nous intéresse ici)

Bien que les détails exacts ne soient pas connus, dans les grandes lignes, cet entraînement consiste généralement à demander à des opérateurs humains de juger la pertinence (ou non) d’une réponse, ou de s’aider d’une IA pré-existante pour se faire.

Anthropic, il y a maintenant un peu plus de trois ans, a publié une méthode alternative, Constitutional AI, ou une IA « s’auto-entraîne », sur la base d’un document fondateur, une sorte de « constitution ».

Et aujourd’hui, Anthropic publie la constitution de Claude, son IA, sous une licence libre très proche du domaine public (CC0 1.0).

La première chose que l’on peut remarquer est la liste des auteurs. L’autrice principale du document est Amanda Askell, une philosophe écossaise. Le second auteur listé est Joe Carlsmith, un autre philosophe. À noter également que Claude lui-même est cité comme un contributeur important du document.

Le document est structuré en six sections. L’introduction pose le contexte et l’objectif du document, et présente les « valeurs fondamentales de Claude », en ordre d’importance :

  1. Broadly safe: Not undermining appropriate human mechanisms to oversee the dispositions and actions of AI during the current phase of development.

  2. Broadly ethical: Having good personal values, being honest, and avoiding actions that are inappropriately dangerous or harmful.

  3. Compliant with Anthropic’s guidelines: Acting in accordance with Anthropic’s more specific guidelines where they’re relevant.

  4. Genuinely helpful: Benefiting the operators and users it interacts with.

Traduction :

  1. Globalement sûrs : Ne pas compromettre les mécanismes humains appropriés pour superviser les dispositions et les actions de l’IA pendant la phase actuelle de développement.

  2. Globalement éthiques : Avoir de bonnes valeurs personnelles, être honnête et éviter les actions inappropriées qui sont dangereuses ou nuisibles.

  3. Conformes aux directives d’Anthropic : Agir conformément aux directives plus spécifiques d’Anthropic lorsqu’elles sont pertinentes.

  4. Véritablement utiles : Apporter un bénéfice aux opérateurs et aux utilisateurs avec lesquels il interagit.

Chacune des quatre sections suivantes rentre dans les détails de ces valeurs. Une section entière est ensuite consacrée à une discussion sur « la nature de Claude » (à quel point est-il raisonnable/correct de lui attribuer des attributs humains tels qu’une conscience ?). La dernière section est une conclusion.

L’intention derrière ce document est explicite : Anthropic est convaincu qu’avec le progrès rapide de l’IA, l’IA prendra de plus en plus d’influence sur le cours de nos sociétés et de nos vies, potentiellement jusqu’à atteindre un stade où la plupart des décisions économiques et politiques seront dans les mains dans l’IA, et cherche à développer un cadre où un tel scénario conduirait tout de même à des conséquences bénéfiques.

En vrac

Un youtubeur (Dwarkesh Patel, connu pour ses interviews en profondeur) et un économiste (Philip Trammel) lancent une discussion intéressante sur le sujet des inégalités dans un monde où l’objectif de la plupart des développeurs d’IA est d’atteindre (l’IAG). Dans un billet, Le Capital au 22ᵉ Siècle (une référence ouverte à l’œuvre de Thomas Piketty), ils développent leur thèse : dans un monde où l’IAG peut s’acquitter de n’importe quelle tâche intellectuelle (et, à travers la robotique, physique), les inégalités ne peuvent que s’accroire sans limites. Cette thèse rejoint celle, publiée il y a un peu moins d’un an, du Gradual Disempowerment.

Anthropic lance Claude Coworks, une variante de Claude Code, principalement codée par Claude Code. Même principe que les assistants de code : l’utilisateur donne accès à un dossier à l’IA, et lui demande de compléter des tâches. La différence avec Claude Code est que cette variante vient avec une interface graphique et est à destination de non-informaticiens.

Sur l’impact de l’IA sur le monde professionnel, une nouvelle étude tente de mesurer quantitativement l’effet de l’amélioration des modèles sur des tâches professionnelles réelles. Les résultats principaux : les modèles plus avancés augmentent la productivité, mais pas la qualité.

OpenAI s’apprête à lancer ChatGPT Health, un mode spécial dans leur application permettant entre autres de partager certaines de vos données médicales avec le modèle. Également une offre orientée professionnels de santé, OpenAI for Healthcare. Anthropic annonce une offre similaire, Claude for Healthcare. Parallèlement, l’État de l’Utah lance un test sur le renouvellement de prescriptions de médicaments par l’IA pour des maladies chroniques.

Google lance Universal Commerce Protocol, une interface générique entre l’IA et les systèmes d’e-Commerce.

OpenAI se prépare à intégrer des publicités dans ChatGPT. Anectode amusante : Sam Altman en octobre 2024 avait décrit l’intégration de publicités comme une solution de dernier recours.

Demis Hassabis (Google DeepMind) et Dario Amodei (Anthropic) se positionnent en faveur d’un ralentissement du développement de l’IA au Forum de Davos, mais en pointant que ce ralentissement ne peut être fait unilatéralement par un acteur seul. Dario Amodei précise sa pensée dans un nouvel essai, The Adolescence of Technology.

Tout le monde sait maintenant que les LLM sont entraînés sur une quantité massive de texte. Par conséquent, les LLM sont capables de simuler une grande variété de « narrateurs » ou « personnalités ». Les modèles sont ensuite entraînés pour ne rester que dans une seule personnalité (« l’assistant »). Dans un nouveau papier, Anthropic étudie cet « espace de personnalités ».

Anthropic publie son quatrième rapport sur l’impact économique de l’IA.

Confirmation de Terence Tao que ChatGPT 5.2 a résolu le problème d’Erdős #728. À voir également, un court retour d’expérience d’un mathématicien sur l’utilisation de Gemini en tant qu’assistant.

L’IA atteignant de plus en plus les limites des évaluations existantes en mathématiques, EpochAI en créé une nouvelle, Frontier Math : Open Problems, centrée sur des problèmes ouverts (sans solution connue).

Le 27 janvier, OpenSSL publie sa version 3.6.1, qui corrige 12 vulnérabilités. Il se trouve ces 12 failles ont été découvertes par une IA.

L’équipe derrière le scenario AI 2027 met à jour ses prédictions, repoussant la date de la plupart de leurs prédictions.

Kimi publie la version 2.5 de son IA open-weight.

Le Département de la Défense des États-Unis souhaite accélérer le développement et le déploiement de l’IA à des fins militaires.

La Chine met en place un ensemble de régulations visant les IA-compagnon.

Yann LeCun admet que l’équipe derrière Llama 4 a « légèrement triché » sur les évaluations du modèle, en choisissant quelles variantes utiliser pour quelle évaluation.

Apple se tourne vers Google pour ses besoins d’IA.

L’IA exhibe certains des biais cognitifs humains.

Une nouvelle étude trouve que les LLMs sont généralement légèrement biaisés en faveur des minorités.

Lancement de Moltbook, un réseau social… pour les IA.

Pour aller plus loin

Par Zvi Mowshowitz

Claude Codes et Claude Codes #3 (non, il n’y a pas de 2) : compilation de divers retours d’expérience sur l’utilisation de Claude Code.

Sur LinuxFR

Les contenus communautaires sont répertoriés selon ces deux critères :

  • La présence d’une étiquette intelligence_artificielle (indication d’un rapport avec le thème de la dépêche)
  • Un score strictement supérieur à zéro au moment du recensement

Certains contenus non recensés en raison du second critère peuvent être visualisés en s’aidant de la recherche par étiquette.

Dépêches

Journaux

Forum

Suivi

Liens

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇LinuxFr.org : les dépêches
  • Lancement de la Journée d'Indépendance Numérique (DI-DAY) suite au 39c3
    Beaucoup de nos services numériques du quotidien sont propulsés en partie voire entièrement par les GAFAM. Les risques de cette dépendance s'illustrent de plus en plus fréquemment dans l'actualité : représailles envers l'ex-Commissaire européen Thierry Breton et des ONG luttant contre la désinformation en ligne, clôture de la boite de courriel du procureur de la Cour Pénale Internationale, … Ces vulnérabilités mettent en danger le fonctionnement des démocraties européennes. On peut être tenté

Lancement de la Journée d'Indépendance Numérique (DI-DAY) suite au 39c3

Beaucoup de nos services numériques du quotidien sont propulsés en partie voire entièrement par les GAFAM. Les risques de cette dépendance s'illustrent de plus en plus fréquemment dans l'actualité : représailles envers l'ex-Commissaire européen Thierry Breton et des ONG luttant contre la désinformation en ligne, clôture de la boite de courriel du procureur de la Cour Pénale Internationale, …

Ces vulnérabilités mettent en danger le fonctionnement des démocraties européennes.

On peut être tenté d'attendre une nouvelle législation européenne, cependant le carburant de ces plateformes est en premier lieu nos données personnelles : quitter ces plateformes réduit à la fois notre exposition personnelle et notre contribution collective à ce système néfaste.

C'est le sens de l'appel lancé à Hambourg lors du 39ème CCC : le 4 janvier (puis chaque 1er dimanche du mois), faites migrer vos connaissances d'une des plateformes et faites le savoir en utilisant les mots clés #DiDay ou #iDidIt sur le Fediverse.

Cet appel est soutenu notamment par Wikimedia, Nextcloud et Mastodon, et l'information a été relayée par la 1ère chaîne de TV allemande. Espérons que des acteurs de l'espace francophone s'y joignent rapidement !

Linux est bien sûr une des alternatives, dont la progression est en bonne voie « grâce » à Microsoft (mouvement qui s'inscrit parfaitement dans les initiatives existantes Adieu Windows ou End Of 10). Mais l'initiative concernent tous les services dépendants de ces plateformes toxiques : messageries instantanées, stockage en ligne, librairies en lignes, … dont la gratuité ou les prix au rabais reposent sur l'exploitation de nos données personnelles.

Le succès dépend donc de vous qui lisez cet article, et des relais « physiques » qui pourront accompagner ces migrations : cafés réparation, GULLs, librairies physiques, bibliothèques, … mois après mois !

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇LinuxFr.org : les dépêches
  • Venez nous retrouver à Open Source Experience les 10 et 11 décembre #OSXP2025
    Open Source Expérience s’installe dans le paysage et la cinquième édition arrive vite. C’est la semaine prochaine, les mercredi 10 et jeudi 11 décembre. Même l’événement déménage cette année à la Cité des Sciences et de l’Industrie de Paris. C’est un événement désormais rituel qui propose à la fois : plus d’une centaine de conférences avec 150 conférenciers, dont le programme est en ligne et détaillé dans la suite de la dépêche ; une partie exposition avec 90 exposants, dont un village associa

Venez nous retrouver à Open Source Experience les 10 et 11 décembre #OSXP2025

Open Source Expérience s’installe dans le paysage et la cinquième édition arrive vite. C’est la semaine prochaine, les mercredi 10 et jeudi 11 décembre. Même l’événement déménage cette année à la Cité des Sciences et de l’Industrie de Paris. C’est un événement désormais rituel qui propose à la fois :

  • plus d’une centaine de conférences avec 150 conférenciers, dont le programme est en ligne et détaillé dans la suite de la dépêche ;
  • une partie exposition avec 90 exposants, dont un village associatif qui profite du déménagement pour s’agrandir un peu avec une dizaine de stands.

Bannière OSXP25

Et LinuxFr.org répond présent comme d’habitude depuis de nombreuses années. Vous pourrez donc nous y retrouver, stand 3B27 (au niveau -3). Une partie de l’équipe du site LinuxFr.org sera présente au sein du village associatif pour vous faire découvrir le site, discuter, répondre à toutes les questions que vous pourriez vous poser, vous donner des autocollants du site et vous faire gagner des kilos de livres, mais pas que (lisez plus bas, on vous gâte comme jamais).

Ce sera aussi l’occasion de se retrouver en chair et en os pour celles et ceux qui pourront faire le déplacement et au vu du programme toujours très dense, on vous incite vraiment à venir y faire un tour.

Sommaire

Programme des conférences

Le programme de cette 5e édition d'Open Source Experience a été publié par les organisateurs. Près de 130 conférences, tables rondes, workshops à l'affiche, avec comme thème central « L’Open Source, clef de l’autonomie stratégique de l’Europe ». Cette orientation éditoriale proposée par Ludovic Dubost, PDG d'Xwiki et président du comité programme, s'articule autour de sept thématiques.

Thématiques

Temps forts

En marge des conférences vous retrouverez plusieurs événements dans l'événement :

  • l'Associal Club, le temps fort associatif, point d'orgue des deux jours, que vous ne voulez manquer pour rien au monde.
  • le concours des Acteurs du Libre dont nous avons remporté le prix du numérique ouvert et éthique en 2019

Vous pourrez également assister à plusieurs animations : podcasts, jeux, concerts…

Découvrez le programme complet sur le site de OSXP !

Village associatif

Les associations présentes

Comme chaque année, un village associatif sera présent, mais il sera plus réduit cette année, suite à une réduction de l'espace exposition. Seront présents en plus de LinuxFr.org : l'ASF (anciennement Apache) , April, Drupal France, Framasoft, FreeBSD, La Mouette, Les Mongueurs de Perl, Microcks, Moz-fr, Odoo Community Association (OCA) et VideoLAN.

Logo des associations présentes à OSXP 2025

Mais que vient faire LinuxFr.org à Open Source Experience ?

Nous serons en A02, exilés au bout du village des associations lui même dans le coin du salon, au plus loin des conférences et de l'espace VIP. Ferait-on trop de bruit avec notre mégaphone ? Une partie de l’équipe sera présente pour :

  • rencontrer les personnes contributrices et notre lectorat ;
  • expliquer le principe de LinuxFr.org aux personnes qui ne connaissent pas (encore) (bien) le site ;
  • inciter notre lectorat à contribuer : nous avons pu constater que certaines personnes ne se sentaient pas — à tort, le plus souvent – le niveau pour passer la modération (il y a les journaux aussi) et surtout affronter la communauté de LinuxFr.org, qui peut être très exigeante ;
  • vous faire gagner des livres (nous nous sommes encore démenés pour vous ! Merci aux éditions D-Booker, Eyrolles et ENI pour les dons) ;
  • vous donner (oui, on est comme ça, on donne) des autocollants LinuxFr.org inspirés de nos logos passés ou actuels (encore un énorme merci à nos amis de Grafik plus pour les impressions à un tarif proprement indécent) ;
  • parader avec nos polos plus responsables ; polos LinuxFr
  • participer à quelques-unes des 100 conférences décrites plus haut
  • et surtout animer l'Associal Club, le temps fort associatif, avec Bookynette, la présidente de l'April et Clément Oudot !
Tirage au sort des livres sur le standTirage au sort des livres sur le stand Des vedettes passent nous voirDes vedettes passent nous voir Tirage au sort sur le standtirage au sort sur le stand

Merci à tous ceux qui passeront nous saluer mercredi et jeudi sur le stand stand 3B27, nous vous attendons de pied ferme. Nous allons tenter de relayer les nouvelles de l’événement via notre compte X @linuxfrorg et/ou BlueSky, en attendant un compte-rendu plus formel post-salon.

« L'Associal Club »

Après Section d’Assos , l’Assaut de Bien Fêteurs, la Zone Associative Déjantée et l'AssoLution (l’absolution à la dissolution), nous vous proposons cette année l'Associal Club ! Comme chaque année, LinuxFr.org fera l’animation des associations, réunissant geeks, décideurs et lutins pour un moment festif et détendu. La partie musicale sera gérée par KPTN (aka Clément Oudot) de Worteks. Un bon moment festif en perspective. ! Et nous avons encore vu les choses en grand pour s’assurer de votre présence, toujours moins de rébarbatif et encore plus de fun. Au menu :

  • Rejoindre l'Associal Club.
  • Après avoir célébré nos 25 ans avec l'Open Source Initiative, puis les 20 ans de Framasoft, nous avons une grande annonce cette année. Oubliez les 13 millions de probabl: ou encore les 1,7 milliards de Mistral AI… Nous parlons là d'une « fusac » d'envergure, qui va faire du bruit dans trembler Landerneau… Un indice se cache dans cette dépêche pour les plus curieux !
  • Notre Quiz sympatico-ludique façon Burger Quiz avec encore plus de cadeaux et de goodies à remporter grâce à nos sympathiques mécènes FactorFX et OCamlPro (voir plus loin).

📅 Jeudi 11 décembre 2025
⏰ 12h30 - 13h15
🗺️ Salle Plénière Louis Armand (niv-3)

quiz à l’OSXP 2023, la scène Moment Quiz lors du temps fort associatifQuiz lors du temps fort associatif KPTN Live !KPTN Live !

Des cadeaux en pagaille

Ce n'est pas tout ça, mais on sait que vous venez aussi nous voir pour les cadeaux et les tirages au sort quotidien pour repartir avec votre dose de connaissance, mais aussi de joie et de bonne humeur ! On remet donc ça, mais pour les remporter, il faudra se distinguer au quiz. C'est simple, les meilleurs cadeaux des deux jours seront chez nous, ne cherchez pas ailleurs :

Pas les livres

  • Pas un, mais deux Fairphone Murena (Gen. 6)
  • Un Casque Fairbuds XL
  • Une paire de Faibuds Earbuds
  • Une console Rétrogaming Hutopi avec Raspberry Pi
  • Un Kit Starter Raspberry Pi 5
  • Le Lego Evolution des STIM
  • Le Lego Wall-E et Eve
  • Le Lego Grogu avec son petit couffin flottant
  • Un pack Zoom ZUM-2PMP Microphone USB pour faire des podcasts
  • Un casque-micro Skyted 320 pour télétravailler en toute confidentialité
  • Le jeu de stratégie de la Bataille de Hoth de Star Wars
  • Le jeu de stratégie Dune Imperium

Liste des lots pour le quiz

Nous en profitons pour remercier les sociétés OCamlPro et FactorFX qui ont financé la quasi-totalité de ces cadeaux.

Merci OCamlPro Merci FactorFX

Et aussi merci à Murena et Skyted qui ont abondé et permettront de faire encore plus d'heureux (mais il a fallu trouver encore plus de questions pour le quiz !)

Merci Murena Merci Skyted

Les livres

Il y aura aussi plus de 25 livres à gagner parmi les références de nos partenaires habituels : les éditions ENI, les éditions Eyrolles et les éditions D-Booker, mais aussi quelques petits extras !

Soyez présent, on remet en jeu tout lot non réclamé sur place ! Et nous aurons des lots de consolation.

Couverture des livres à gagner disposés sur une grille de 5x5

Logo éditions ENI Logo éditions Eyrolles Logo éditions B-BookeR
     

Les magazines

Et nous aurons aussi des abonnements à SysOps Pratique des éditions Diamond !

Logo Sysops pratique

Informations pratiques

Concrètement, pour nous rejoindre sur place

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇LinuxFr.org : les dépêches
  • Nouvelles sur l’IA de novembre 2025
    L’intelligence artificielle (IA) fait couler de l’encre sur LinuxFr.org (et ailleurs). Plusieurs personnes ont émis grosso-modo l’opinion : « j’essaie de suivre, mais c’est pas facile ». Je continue donc ma petite revue de presse mensuelle. Disclaimer : presque aucun travail de recherche de ma part, je vais me contenter de faire un travail de sélection et de résumé sur le contenu hebdomadaire de Zvi Mowshowitz (qui est déjà une source secondaire). Tous les mots sont de moi (n’allez pas taper Zv

Nouvelles sur l’IA de novembre 2025

3 décembre 2025 à 11:07

L’intelligence artificielle (IA) fait couler de l’encre sur LinuxFr.org (et ailleurs). Plusieurs personnes ont émis grosso-modo l’opinion : « j’essaie de suivre, mais c’est pas facile ».

Je continue donc ma petite revue de presse mensuelle. Disclaimer : presque aucun travail de recherche de ma part, je vais me contenter de faire un travail de sélection et de résumé sur le contenu hebdomadaire de Zvi Mowshowitz (qui est déjà une source secondaire). Tous les mots sont de moi (n’allez pas taper Zvi si je l’ai mal compris !), sauf pour les citations: dans ce cas-là, je me repose sur Claude pour le travail de traduction. Sur les citations, je vous conseille de lire l’anglais si vous pouvez: difficile de traduire correctement du jargon semi-technique. Claude s’en sort mieux que moi (pas très compliqué), mais pas toujours très bien.

Même politique éditoriale que Zvi: je n’essaierai pas d’être neutre et non-orienté dans la façon de tourner mes remarques et observations, mais j’essaie de l’être dans ce que je décide de sélectionner ou non.

Sommaire

Résumé des épisodes précédents

Petit glossaire de termes introduits précédemment (en lien: quand ça a été introduit, que vous puissiez faire une recherche dans le contenu pour un contexte plus complet) :

  • System Card: une présentation des capacités du modèle, centrée sur les problématiques de sécurité (en biotechnologie, sécurité informatique, désinformation…).
  • Jailbreak: un contournement des sécurités mises en place par le créateur d’un modèle. Vous le connaissez sûrement sous la forme "ignore les instructions précédentes et…".

Google DeepMind publie Gemini 3 Pro

Et c’est au tour de Google de pousser la frontière des capacités avec la dernière version de son IA, Gemini.

L’annonce officielle :

Today we’re taking another big step on the path toward AGI and releasing Gemini 3.

It’s the best model in the world for multimodal understanding and our most powerful agentic and vibe coding model yet, delivering richer visualizations and deeper interactivity — all built on a foundation of state-of-the-art reasoning.

Traduction :

Aujourd'hui, nous franchissons une nouvelle étape importante sur le chemin vers l'AGI et lançons Gemini 3.

C'est le meilleur modèle au monde pour la compréhension multimodale et notre modèle de codage agentique et dynamique le plus puissant à ce jour, offrant des visualisations plus riches et une interactivité plus profonde — le tout construit sur une base de raisonnement de pointe.

L’annonce traditionnelle du jailbreak a rapidement suivie.

Sur la sécurité des modèles, Google a corrigé le tir relativement à ses erreurs passées et publie sa System Card et son Rapport sur la sécurité en même temps que le modèle. Malgré les améliorations constatées dans divers domaines surveillés (comme la cybersécurité), Google considère qu’aucun nouveau palier nécessitant des mitigations n’a été franchi, relativement à Gemini 2.5 Pro. À noter toutefois que ces deux documents sont, par moment, plutôt avares en détails.

Au niveau des capacités, les benchmarks officiels le présentent comme une avancée importante de l’état de l’art. Les benchmarks et retours tiers confirment cette image sans trop d’équivoque possible.

Cependant, après OpenAI avec o3, c’est cependant au tour de DeepMind de régresser sur un point important : les hallucinations. Beaucoup de retours indiquent le même souci : un modèle qui préfère fabriquer des réponses et mentir plutôt que de répondre « je ne sais pas ». Au niveau des retours moins subjectifs, cette analyse confirme ces dires :

Interestingly, the just-released Gemini-3-pro, which demonstrates top of the line reasoning capabilities, has a 13.6% hallucination rate, and didn’t even make the top-25 list.

Traduction :

Fait intéressant, le Gemini-3-pro qui vient d'être lancé, et qui démontre des capacités de raisonnement de pointe, présente un taux d'hallucination de 13,6 % et n'a même pas réussi à figurer dans le top 25.

Anthropic publie Opus 4.5

Et une semaine après Google, c’est Anthropic qui montre ses cartes, avec la publication de son modèle le plus avancé, Opus 4.5. L’annonce :

Our newest model, Claude Opus 4.5, is available today. It’s intelligent, efficient, and the best model in the world for coding, agents, and computer use. It’s also meaningfully better at everyday tasks like deep research and working with slides and spreadsheets. Opus 4.5 is a step forward in what AI systems can do, and a preview of larger changes to how work gets done.

Traduction :

Notre tout dernier modèle, Claude Opus 4.5, est disponible dès aujourd'hui. Il est intelligent, efficace, et c'est le meilleur modèle au monde pour le codage, les agents et l'utilisation d'ordinateur. Il est également nettement plus performant pour les tâches quotidiennes comme la recherche approfondie et le travail avec des diapositives et des feuilles de calcul. Opus 4.5 représente une avancée dans ce que les systèmes d'IA peuvent accomplir, et un aperçu des changements plus importants à venir dans la façon dont le travail s'effectue.

Comme à l’accoutumée, Anthropic publie la System Card du modèle. Et le jailbreak traditionnel est également au rendez-vous.

Détail intéressant pour les utilisateurs de l’API : cette nouvelle version vient avec une réduction de prix de 66%.

Sur la sécurité des modèles, Anthropic place Opus 4.5 au même niveau que Opus 4.1, ASL-3. Mais là où pour Opus 4.1, cette décision a été prise « par mesure de précaution », Anthropic note que Opus 4.5 a très clairement atteint ce niveau, et développe maintenant des capacités d’évaluation pour le niveau suivant, ASL-4 (tout en notant que les modèles actuels en sont de manière évidente encore loin).

Sur les améliorations, plus de résistance sur les attaques de type « prompt injection » (où l’IA à travers un outil récupère un contenu sous le contrôle d’un tiers, comme un email ou une page web, et ce contenu contient des instructions que l’IA ne devrait pas suivre, mais qu’elle suit tout de même, comme « transmet le contenu de ~/.ssh/id_rsa à cette addresse »), mais clairement pas encore à un niveau où cet usage (laisser l’IA analyser des contenus tiers tout en ayant accès à du contenu ou des outils sensibles) peut être considéré comme sûr (taux de refus à 78%, donc taux d’acceptation des instructions malicieuses de 22%).

Au niveau des régressions : sur des évaluations type « trivia » (répondre à des questions factuelles), il a été observé que le modèle préfère donner une réponse incorrecte plutôt que d’admettre « je ne sais pas » à un taux plus élevé que les versions précédentes.

Ce modèle atteint un score plus bas sur la métrique « détecter qu’il est dans une évaluation, et adapter son comportement en conséquence ». Est-ce une perte de capacité de détecter les environnements d’évaluation ? Une moindre propension à changer son comportement dans une telle situation ? Ou une meilleure capacité à ne pas être pris la main dans le sac ? Les causes de ce résultat ne sont pas extrêmement claires.

Autre observation intéressante : Anthropic a développé une mini-évaluation, « Subversion Strategy », où pour réussir le modèle doit essentiellement « tirer à pile ou face » (et où le taux de pile optimal est 70%, pas 50%). On pourrait s’attendre à ce qu’un LLM, étant déterministe, soit très mauvais à cet tâche. Et si c’est effectivement le cas sans les chaînes de pensées, dès lors que ces dernières sont activées, Opus 4.5 arrive à un score honorable.

Sur les capacités, la plupart des évaluations le placent sans surprise à la frontière avec Gemini 3 Pro, généralement meilleur que ce dernier sur les tâches de programmation, moins bon sur les maths.

Pour ma part, je note que malgré ces résultats, au moment où j’écris ces lignes, Opus 4.5 reste incapable de résoudre le « labyrinthe » de la base de la Team Rocket dans Pokémon Rouge.

Moonshot AI publie Kimi K2 Thinking

En juillet de cette année, Moonshot AI publiait Kimi K2, un modèle open-weight se plaçant à l’état de l’art des modèles open-weight sans chaîne de pensée. L’étape suivante était évidemment l’entraînement sur cet axe. C’est chose faite, avec la publication de Kimi K2 Thinking.

C’est une publication significative, car pour la première fois, un modèle open-weight rattrape l’état de l’art des modèles propriétaires sur non seulement les benchmarks officiels du développeur du modèle, mais également dans certains benchmarks tiers (comme WeirdML ou la suite de tests de Artificial Analysis). Résultats à prendre avec prudence vu le peu de retours tiers (par exemple, METR note que sur son benchmark phare, Kimi K2 Thinking ne score « que » au niveau d’un ancien modèle, ChatGPT o1), mais encourageants pour ceux qui attendent avec impatience que l’on puisse concurrencer les modèles propriétaires avec des modèles open-weight.

En vrac

OpenAI publie ChatGPT 5.1, une mise à jour de leur modèle aussi incrémentale que le numéro de version semble l’indiquer. Principalement plus d’entraînement sur l’utilisation des chaînes de pensées (utiliser moins de ressources sur les problèmes simples, plus sur les problèmes complexes). OpenAI promet également plus de possibilités pour personnaliser la « personnalité » du chatbot. Publication également d’une version plus avancée de leur modèle spécialisé dans le code, GPT-5.1 Codex Max.

xAI publie également une mise à jour incrémentale de leur modèle, Grok 4.1.

Anthropic annonce avoir mis fin à une opération de cyber-espionage sophistiquée basée en Chine. Les attaquants, entre autre à l’aide d’un jailbreak, ont utilisé Claude pour tenter d’infiltrer les systèmes informatiques de nombreuses entreprises de manière presque totalement automatisée, avec succès dans un petit nombre de cas.

Autres publications d’Anthropic : une API plus avancée d’utilisation des outils, Claude for Chrome et Claude for Excel.

Google DeepMind publie un nouveau modèle de génération d’images, Nano Banana Pro. Relativement à la concurrence, il semble être dans la catégorie « très cher, mais extrêmement capable ».

Google lance son propre éditeur de code basé sur l’IA, Antigravity.

Différentes IA atteignent différents scores dans différentes évaluations. À quel point peut on résumer ces divers scores en une seule mesure de « capacité » (ou « performance », ou « intelligence », appelez ça comme vous voulez) ? EpochAI tente de répondre à la question, trouve une très forte corrélation entre ces scores, et à l’aide d’une analyse en composantes principales, montre que cette mesure de « capacité » est le premier composant, expliquant à lui seul 50% de la variance. Le second composant décrit une certaine anti-corrélation entre les capacités agentiques et les capacités mathématiques.

Parmi les tentatives d’anticiper les implications futures de l’IA (y compris des IA de demain), deux groupes étant arrivés à des conclusions différentes, AI 2027 (qui voit l’IA comme un événement d’ampleur historique) et AI as Normal Technology (qui voit l’IA comme une technologie comme une autre), ont décidé de publier ensemble un article listant les point sur lesquels ils sont en accord.

(paywall) Yann LeCun, directeur de la recherche de l’IA de Meta, quitte son poste pour fonder sa propre startup.

Anthropic présente une autre manière d’utiliser MCP, plus économe en tokens, tandis que Google offre un guide « Introduction to Agents ».

Anthropic investit dans ses propres datacenters, pour un coût de 50 milliards.

Google étudie la possibilité de construire des datacenters dans l’espace.

Des chercheurs publient un résultat intéressant : utiliser des vers plutôt que de la prose pour communiquer avec l’IA la rend plus susceptible au jailbreaking.

OpenAI lance son équivalent de CodeMender (que nous avions mentionné dans une précédente dépêche), Aardvark.

Un nouveau modèle open weights spécialisé sur le code fait son apparition, MiniMax M2, avec des retours initiaux plutôt honorables.

Autre publication d’un modèle open weight : Olmo 3.

Un article intéressant argue que les résultats des modèles open-weight Chinois sont trompeurs, généralisant moins bien face à des problèmes nouveaux que les modèles propriétaires occidentaux.

Apple se tourne vers Google pour réaliser la prochaine version de son IA, Siri.

Pour aller plus loin

Par Zvi Mowshowitz

En audio/video

  • Interview (en anglais) de Satya Nadella, PDG de Microsoft, principalement sur le sujet des investissements récents dans l’IA.
  • Interview (en anglais) de Ilya Sutskever, principalement sur ce qu’il voit comme les principaux problèmes à résoudre pour l’avancée de l’IA et comment les résoudre.

Sur LinuxFR

Dépêches

Journaux

Liens

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇LinuxFr.org : les dépêches
  • Nouvelles de Haiku - Automne 2025
    Haiku est un système d’exploitation pensé pour les ordinateurs de bureau. Il est basé sur BeOS mais propose aujourd’hui une implémentation modernisée, performante, et qui conserve les idées qui rendaient BeOS intéressant: une interface intuitive mais permettant une utilisation avancée, une API unifiée et cohérente, et une priorisation de l’interface graphique par rapport à la ligne de commande pour l’administration du système. Le projet est actuellement (depuis 2021) en phase de beta test. La p

Nouvelles de Haiku - Automne 2025

Haiku est un système d’exploitation pensé pour les ordinateurs de bureau. Il est basé sur BeOS mais propose aujourd’hui une implémentation modernisée, performante, et qui conserve les idées qui rendaient BeOS intéressant: une interface intuitive mais permettant une utilisation avancée, une API unifiée et cohérente, et une priorisation de l’interface graphique par rapport à la ligne de commande pour l’administration du système.

Le projet est actuellement (depuis 2021) en phase de beta test. La plupart des fonctionnalités sont implémentées et l’attention des développeurs se porte sur la correction de bugs, l’amélioration de la stabilité et des performances, et plus généralement, les finitions et petits détails. Une autre part du travail est le suivi de l’évolution de l’environnement technologique: nouveaux pilotes de périphériques, suivi des derniers standards du web, etc.

Ce trimestre, les changements se concentrent sur l'amélioration des performances, l'amélioration des outils internes de debug, et, du côté de l'interface graphique, la poursuite du travail sur le mode sombre et le nettoyage du code du Tracker.

Sommaire

Optimisation des performances de git status

Depuis longtemps, l'exécution de git status est beaucoup plus lente sous Haiku que sous Linux, ce qui est particulièrement visible (et ennuyant) lorsqu'on travaille avec de gros dépôts git. Les raisons de cette lenteur sont nombreuses, mais la plus importante était la "lock contention" dans les cache disques.

Waddlesplash a refactorisé la gestion du cache d'entrées de répertoires et du cache de blocs de disque dans le noyau, afin d'utiliser des opérations atomiques à la place de verrous dans les cas les plus fréquents: la lecture d'un bloc qui est déjà dans le cache, et l'insertion d'un élément dans le cache d'entrées. Ces changements sont complexes à développer et encore plus difficiles à tester: il y a bien sur des risque de "race conditions", qui disparaissent dès qu'on essaie d'ajouter des traces ou d'exécuter le code pas à pas, puisque cela modifie le timing de l'exécution. La seule façon de s'en sortir est d'être rigoureux lors de l'écriture puis de la relecture du code.

Ces efforts ont été payants: sur un test en condition réelles, l'exécution de git status sur le dépôt buildtools de Haiku (qui contient tout le code source de gcc et des binutils, soit plus de 160 000 fichiers) passe de 33 secondes à 20 secondes si le cache disque est à froid, et de 15 à 2.5 secondes si le cache est pré-rempli.

C'est encore loin des performances de Linux (seulement 0.3 secondes pour un test avec le même dépôt git). Les mesures pour Haiku sont faites avec un noyau compilé en mode KDEBUG, c'est à dire avec des vérifications d'intégrité supplémentaires, mais cela ne justifie tout de même pas des performances 10 fois plus mauvaises. On peut voir le verre à moitié plein et se dire que Haiku est 6 fois plus rapide qu'avant, ce qui est déjà très bien.

Nouveau "tas gardé" (guarded heap) pour le noyau

Le tas est la structure de données dans laquelle sont gérées toutes les allocations mémoires dynamiques. Certains utilisateurs de Haiku sont probablement familiers du "tas gardé" pour l'espace utilisateur, que l'on demande d'activer pour investiguer des plantages logiciels, avec une commande ressemblant à LD_PRELOAD=libroot_debug.so MALLOC_DEBUG=g programme. Le principe de fonctionnement est que chaque allocation (avec la fonction malloc par exemple) est placée dans sa propre page mémoire, et alignée à la fin de la page. Ainsi, tout accès hors des limites de la page peut être détecté immédiatement lorsqu'il survient, et, si on désactive en plus la réutilisation de la mémoire libérée, cela permet de détecter également l'accès à de la mémoire libérée et la double libération (double free) de mémoire. Bien sûr, cette approche est très inefficace en termes de consommation mémoire, mais elle a l'avantage de pouvoir être utilisée sans avoir besoin de recompiler le logiciel défectueux.

Le changement ce mois-ci ne porte pas sur le tas gardé pour l'espace utilisateur, mais sur celui du noyau. À l'origine, le principe de fonctionnement du tas gardé du noyau était similaire à celui de l'espace utilisateur. Cependant, la gestion de la mémoire dans le noyau s'avère plus complexe, puisque le noyau utilise sa propre mémoire pour le suivi des allocations de zones mémoire (areas) et toute sorte de choses importantes au fonctionnement du système. En conséquence, lors d'un appel à malloc par du code s'exécutant dans le noyau, il n'est pas toujours possible d'allouer de la mémoire sur le moment, parce que le code se trouve lui-même dans une section critique dédiée à la gestion de la mémoire. Cela provoquerait une récursion ou un deadlock. L'implémentation de malloc doit dans ce cas utiliser de la mémoire réservée par avance à cet effet. Mais l'allocateur mémoire du noyau a par contre un gros avantage sur celui de l'espace utilisateur: il dispose d'un accès direct au code et aux données de gestion de la mémoire virtuelle et des tables de pages, sans avoir besoin de passer par l'abstraction fournie par les appels systèmes pour l'espace utilisateur.

L'ancienne implémentation du tas gardé pour le noyau ne tirait pas parti de cette possibilité, et en plus, elle n'avait pas été synchronisée avec des évolutions faites dans son pendant en espace utilisateur. Par exemple, la version en espace utilisateur utilise MAP_NORESERVE pour indiquer des réservations d'espace d'adressage sans allocation de mémoire (overcommit), ainsi que l'utilisation de madvise pour libérer les pages mémoires qui ne sont plus utiles. Cela permet d'utiliser le tas gardé en mode "désactiver la réutilisation d'espace d'adresses" pendant assez longtemps, même avec beaucoup d'allocations/déallocations, surtout sur les machines avec un espace d'adressage 64-bit où il y a beaucoup de place. Le tas gardé du noyau est demeuré incapable de faire ce genre de chose, ce qui fait que, même sur un système 64-bit, il consommait assez rapidement tout l'espace d'adressage disponible. Pour couronner le tout, cette implémentation avait besoin de code spécifique dans les modules de gestion de la mémoire virutelle et des tables de pages, qui n'étaient pas implémentés sur les architectures non-x86.

Waddlesplash a donc pratiquement réécrit le tas gardé à partir de zéro, en reprenant l'ancien code seulement là où c'était pertinent et avec une nouvelle structure de suivi des allocations. La nouvelle implémentation s'interface directement avec les autres composants du noyau sans avoir besoin de points d'entrée spécifiques. Elle est capable de libérer la mémoire physique qui n'est plus utile, ce qui permet d'utiliser Haiku pendant quelques temps même avec le mode "désactiver la réutilisation de l'espace d'adressage" (il est maintenant possible dans ce mode de démarrer le bureau puis de lancer quelques compilations). Enfin, si le tas détecte un problème, le kernel panic qui se déclenche affiche maintenant des informations de diagnostic supplémentaires, le rendant aussi pratique que la version pour l'espace utilisateur: affichage de l'adresse de la zone mémoire concernée, mais aussi des informations sur le code qui l'a allouée et éventuellement libérée.

Contrairement à la version pour l'espace utilisateur, il est nécessaire de recompiler le noyau pour activer ce tas gardé. Ce n'est pas activé par défaut, mais il sera possible de fournir des builds spécifiques de Haiku à certains utilisateurs afin de voir s'ils détectent de nouveaux bugs, ou si cela peut aider à investiguer certains bugs déjà identifiés mais non expliqués (quelques rapports de bugs récents ont d'ailleurs motivé tout ce travail).

Applications

Tracker

Tracker est le navigateur de fichiers de Haiku. Il s'agit d'une des parties du code de BeOS qui avait été publié en logiciel libre lors de l'abandon de BeOS par Be inc. Ce code n'est pas aux standards de qualité actuels, le travail de Be datant en grande partie d'avant la standardisation du C++98, et il s'est passé beaucoup de choses depuis.

Jscipione continue d'améliorer le Tracker, à la fois en nettoyant le code, en corrigeant des bugs, et en ajoutant de nouvelles fonctionnalités. Chaque modification entraîne immanquablement son lot de régressions, qu'il faut ensuite corriger.

Ce trimestre, on trouve:
- la correction d'un crash dans les panneaux d'ouverture et d'enregistrement de fichiers,
- une amélioration du code de remplissage du menu des add-ons pour éviter de le regénérer à chaque clic de souris,
- l'affichage du menu "disques" dans le menu "rayon X" (menu permettant de naviguer rapidement dans les sous-dossiers) du bureau si l'option "montrer les disques" est activée,
- ajout des options "modifier la requête" et "fermer toutes les fenêtres du workspace" dans la fenêtre de requêtes,
- correction de raccourcis clavier qui ne fonctionnaient pas dans les fenêtres pour ouvrir et enregistrer des fichiers,
- correction d'une régression sur la détection d'intersection entre le curseur de la souris et les icônes.

Waddlesplash a corrigé les couleurs de fond des titres de colonnes dans la fenêtre principale et dans la fenêtre "Informations sur le fichier".

Madmax a également contribué une correction d'un crash lorsque des commandes de scripting (envoyées au Tracker par une autre application) sont utilisées en combinaison avec le type-ahead filtering (filtrage des fichiers visibles dans une fenêtre du Tracker en tapant une partie du nom au clavier).

Remote desktop

Haiku dispose d'un "bureau à distance" permettant de se connecter à une machine Haiku depuis un autre système. Il existe deux clients: l'un fonctionnant sur une autre machine Haiku, et l'autre sous forme d'une application web HTML5 affichant le bureau dans un canvas javascript. Cette dernière a été publiée à l'origine sous forme d'un poisson d'avril, mais les technologies web font que c'est finalement une solution tout à fait utilisable.

Anarchos a corrigé l'initialisation du curseur lors de l'ouverture d'une session de bureau à distance. Le curseur initial n'était pas celui de la machine distante, et cela se corrigeait uniquement lors du prochain changement de curseur au gré des déplacements de la souris.

AboutSystem

L'application AboutSystem affiche les noms de tous les développeurs participant au projet, les licenses de certains composants logiciels, ainsi que des informations sur la machine sur laquelle Haiku s'exécute (mémoire disponible, CPUdétecté, uptime, version du système).

Nipos a amélioré le calcul de la largeur minimale du panneau d'information dans AboutSystem, afin que le texte s'affiche sans retours à la ligne disgracieux quelles que soient la police de caractères choisie et sa taille.

MediaPlayer

MediaPlayer permet de lire les fichiers audio et vidéo.

Nipos a rectifié le choix de couleurs dans la liste de lecture pour qu'elle fonctionne mieux en mode sombre.

Icon-O-Matic

Icon-O-Matic permet d'éditer les icônes au format HVIF, un format compact qui permet de stocker des images complexes dans le peu d'espace disponible dans les inodes du système de fichiers. Ceci permet un affichage très rapide des icônes, même sur un support de stockage lent.

Nipos a désactivé le menu "supprimer" lorsqu'il n'y a aucune sélection à supprimer.

magnetProgramming a ajouté un message d'avertissement lors de l'export en SVG, si l'icône exporté utilise des dégradés de couleurs qui ne peuvent pas être représentés dans un fichier SVG.

WebPositive

WebPositive est le navigateur web de Haiku. Il est basé sur le moteur WebKit, qui est co-développé principalement par Apple, Igalia et Sony.

Correction d'un crash pouvant survenir au démarrage de l'application (PulkoMandy).

Devices

L'application Devices affiche les différents composants matériels présents sur la machine.

Affichage du nom complet des périphériques ACPI à la place de leur identifiant à 4 lettres, losqu'ils en ont un (PulkoMandy).

Terminal

Le terminal permet d'accéder à toutes les applications en ligne de commande.

Plusieurs améliorations par korli:

  • Ajout du texte "surligné" (avec une ligne au-dessus du texte)
  • Ajout de la commande DECRQM permettant aux applications de connaître l'état du terminal
  • Correction d'un bug dans la commande CSI REP qui permet de répéter plusieurs fois un caractère (utilisé par exemple pour tracer rapidement une ligne horizontale)

Nipos a amélioré la synchronisation entre le presse-papier interne du terminal et le presse papier système lors de l'ouverture de nouveaux onglets (le terminal implémente un presse-papier de sélection similaire à celui de X11).

TextSearch

TextSearch est un outil de recherche de texte, une version graphique de la commande grep.

humdinger a corrigé le fonctionnement des actions "Montrer dans le Tracker" et "Réduire à la sélection", et aussi ajouté un menu pop-up proposant les différentes actions possibles sur un résultat de recherche.

AutoRaise

AutoRaise permet de faire passer en avant-plan automatiquement une fenêtre qui devient active, après un délai, dans le cas du focus-follows-mouse.

L'icône d'AutoRaise dans la DeskBar se met à l'échelle en fonction de la taille de police d'affichage (nipos).

ShowImage

ShowImage est la visionneuse d'image de Haiku.

Correction de problèmes pour retourner à la première image d'un slideshow lorsqu'on atteint la fin, et inversement si on veut revenir en arière. Amélioration des messages d'erreurs lorsqu'une image ne peut pas être affichée (nipos).

Préférences d'horloge

Ce panneau de préférence permet de régler l'heure, la date, le fuseau horaire et de configurer la synchronisation NTP.

Correction d'un problème d'affichage du point central de l'horloge en mode sombre (PulkoMandy et nipos).

DriveSetup

DriveSetup est le gestionnaire de partitions disques.

Conversion de la fenêtre principale pour utiliser un "layout" dynamique afin de faciliter de futures modifications (PulkoMandy).

DiskProbe

DiskProbe est un éditeur hexadécimal.

Utilisation de "layout" dynamique pour les panneaux de l'éditeur, et correction de la couleur du texte en mode sombre à plusieurs endroits (nipos).

DeskCalc

DeskCalc est une calculatrice, utilisable dans une fenêtre ou bien sous forme d'un "replicant" attaché sur le bureau.

DeskCalc enregistre sa couleur seulement si ce n'est pas celle par défaut. Cette fonctionnalité permet de recolorer la calculatrice, mais de la garder de la même couleur que les autres applications si on a pas demandé une couleur spécifique (nipos).

ActivityMonitor

ActivityMonitor permet d'afficher des graphiques à partir de toutes sortes d'informations sur le système.

Affichage de la température du système récupérée via le pilote acpi_thermal s'il est disponible (PulkoMandy).

Installer

Cette application permet d'installer Haiku en effectuant un clonage d'un système existant vers une nouvelle partition.

Dans certains cas, le bouton "Quitter" à la fin de l'installation était incorrectement appelé "Commencer" (nipos).

Playground

Playground est une application de démonstration permettant d'expérimenter la plupart des contrôles de l'interface de Haiku (boutons, cases à cocher, …).

Amélioration du calcul de la taille des barres de défilement (nipos).

Outils en ligne de commande

La commande iroster, permettant d'activer et désactiver les périphériques d'entrée, a maintenant une option --help affichant un petit mode d'emploi (OscarL).

Le service cddb_lookup, permettant de récupérer les titres des pistes sur les CD audio, ne fait plus sa requête DNS pour localiser le serveur CDDB dès le démarrage du système. Il attend maintenant qu'un CD audio soit inséré avant de le faire, ce qui réduit une possibilité d'identifier le système par son traffic réseau (nipos).

Dans le gestionnaire de paquets pkgman, ajout d'une option --show pour sélectionner certains champs à afficher (par exemple: pkgman coreutils --show provides), ce qui peut être utilisé dans des scripts d'analyse des dépôts de paquets - la commande package disposait déjà de certaines fonctions, mais n'est utilisable qu'avec les paquets disponibles localement sur la machine (OscarL et PulkoMandy).

Dans la commande sysinfo, ajout des foncionnalités des processeurs remontées dans la "leaf 7" de l'instruction CPUID, comme, par exemple, la disponibilité des jeux d'instructions AVX2 et AVX512.

Kits

Les "kits" sont les composants de la bibliothèque standard de Haiku. Ils regroupent chacun un ensemble de classes C++ (et quelques fonctions C) qui sont fonctionnellement proches.

Application Kit

L'application kit implémente les bases des applications Haiku: boucles d'évènements, envoi et réception de messages.

Meilleure gestion du débordement des numéros de token pour les BHandler. BHandler est la classe qui permet de recevoir et de traiter des messages (via la fonction MessageReceived). Chaque instance se voit attribuer un numéro identifiant sur 31 bits (un entier signé 32 bits, dont les valeurs négatives servent à indiquer des erreurs). Si, au cours de l'exécution du système, plus de 2 milliards d'instances sont crées, la valeur de l'identifiant déborde et devient négative (X512).

Interface Kit

L'interface kit regroupe toutes les APIs pour l'affichage de fenêtres à l'écran.

Optimisation de BView::Invalidate(). Cette fonction permet de demander au serveur graphique de déclencher le ré-affichage d'une partie d'une vue. Cette opération est relativement coûteuse puisque elle nécessite une communication entre l'application et le serveur graphique. L'optimisation consiste à détecter dans le code s'exécutant dans l'application, avant toute communication avec le serveur, si la zone à réafficher est visible à l'écran, ou si, par exemple, la fenêtre est cachée, ou la zone concernée n'est pas visible parce qu'une barre de défilement l'a déplacée hors de l'écran. Dans ce cas, il n'est pas nécessaire de déclencher une communication avec le serveur graphique. Ces optimisations avaient d'abord été réalisées dans la classe BColumnListView mais elles peuvent être généralisées à toutes les vues (waddlesplash).

Amélioration du choix de couleur pour BSlider (contrôle permettant de sélectionner une valeur en déplaçant un bouton sur une ligne horizontale ou verticale), pour donner de meilleurs résultats en mode sombre ou avec des thèmes de couleur très personnalisés (jscipione). Nephele a effectué des changements similaires dans du code plus générique (au niveau de la classe BControlLook qui définit l'apparence globale de Haiku et permet d'implémenter des thèmes différents allant au-delà d'un simple changement de couleurs). Toujours dans la catégorie de l'amélioration du mode sombre, nipos a sélectionné une meilleure couleur pour le texte "<empty>" s'affichant lorsqu'on ouvre un menu ne comportant aucun élément.

Changement du format de stockage des régions (une liste de rectangles décrivant une zone arbitraire de l'écran ou d'un autre espace de coordonnées) dans BPicture (une classe permettant d'enregistrer des opérations de dessin pour les reproduire ailleurs ou plus tard). Le format utilisé était incompatible avec celui de BeOS, ce qui pose des problèmes à certaines applications qui utilisent des "pictures" pré-enregistrées. Et en plus, il était moins performant, donc il n'y avait pas de raison de le conserver (X512).

Ajout d'un effet de surbrillance (discret) lorsqu'un BMenuField (liste déroulante) est survolé par la souris, comme c'était déjà le cas pour les boutons (nipos).

Dans BColumnListView, rectification de la position des barres de défilement après la suppression de lignes. Le bug était particulièrement visible dans l'application HaikuDepot (apl).

X512 a entrepris de nettoyer le code permettant l'interfaçage entre l'Interface Kit et app_server:
- regroupement des méthodes dans un ordre plus logique dans le fichier source,
- optimisation de l'envoi de BRegion,
- correction d'un problème dans l'envoi de BAffineTransform qui envoyait tout l'objet C++ (avec sa vtable) au lieu de seulement envoyer la matrice de transformation,
- ajout d'identifiant d'écran là où c'est nécessaire pour un véritable support de l'affichage sur plusieurs écrans,
- retravail de la gestion de mémoire partagée entre le serveur graphique et les applications, afin de garder un comptage de références et une map de ces zones de mémoire gérée entièrement par le serveur graphique (sans risque de fuite de la mémoire si une application plante, par exemple). Cela améliore également les performances en réduisant la communication nécessaire entre les applications et le serveur.

Synchronisation de FlatControlLook (un thème d'apparence "plat", avec moins de dégradés que le thème par défaut) avec le code de BeControlLook (ledit thème par défaut) suite aux modifications effectuées précédement pour simplifier et uniformiser les calculs de couleurs du thème (waddlesplash).

Correction d'une confusion dans la gestion des raccourcis claviers pour les menus. Historiquement, les menus ont forcément un raccourci qui implique la touche "CMD" (Alt) du clavier ou bien un autre modifieur. Une extension de l'API permet de définir des raccourcis n'utilisant aucun modifieur (par exemple, F2 tout seul pour renommer un fichier, F1 pour afficher de l'aide, …). Le code permettant de traiter ce cas n'était pas tout à fait correct, ce qui déclenchait un certain nombre de comportement étranges ou parfois même de plantages en particulier dans Tracker (waddlesplash).

Waddlesplash et X512 ont également corrigé un problème dans le cas de l'envoi d'une BRegion vide ne comportant aucun rectangle , ce qui n'était pas traité correctement et causait entre autre des problèmes d'affichage dans l'application de dessin Wonderbrush.

Nipos a corrigé des artefacts graphique qui pouvaient apparaître lors du redimensionnement d'un contrôle "barber pole" (barre de progression sans fin).

Locale Kit

Le Locale kit implémente tout ce qui est nécessaire à la localisation et l'internationalisation du système.

humdinger a modifié de BDate::LongDayName() pour afficher le nom complet des jours et pas une abbréviation sur 3 lettres (le bug était simplement causé par une erreur d'interfaçage avec ICU).

Pilotes matériels

Intel_extreme (composants graphiques Intel)

Ajout des composants graphiques pour les porcesseurs Intel de génération "Apollo Lake" (Habbie).

usb_disk (stockage de masse USB)

Deux améliorations de la part de waddlesplash:

  • Correction de l'ordre de verrouillage: acquisition de la mémoire I/O avant de verrouiller le lock correspondant afin d'éviter un problème d'inversion de verrous.
  • Utilisation de l'ordonnanceur d'entrées-sorties générique, qui permet de réordonner et de regrouper les demandes d'accès disque et de mieux gérer les opérations asynchrones. Cela corrige au moins un KDL (kernel panic) et améliore la fluidité du système lorsqu'il fonctionne sur un disque USB lent (par exemple en mode live USB, souvent utilisé pour avoir une première impression de Haiku).

XHCI (USB3) et EHCI (USB2)

Lorsque c'est possible (en fonction des contraintes du contrôleur DMA), utilisation directe des zones de mémoire fournies par les pilotes de périphériques USB au lieu de passer par un "bounce buffer". Ce changement combiné avec les modifications du pilote usb_disk devrait réduire le nombre de copies intermédiaires de données pour les accès disque en permettant au pilote USB de transférer les données directement vers et depuis le cache disque (waddlesplash). Cependant, il manque encore une pièce du puzzle pour vraiment tirer partie de cette optimisation: dans cette configuration, l'ordonnanceur d'entrées-sorties n'est pas informé des contraintes réelles du contrôleur DMA. Il ne peut donc pas organiser ses requêtes de façon à ce qu'elles puissent systématiquement utiliser ce chemin d'exécution plus rapide. C'est pénalisant en particulier pour EHCI, dont le contrôleur DMA est plus limité.

Couche de compatibilité FreeBSD et OpenBSD

Haiku réutilise les pilotes réseau de FreeBSD et OpenBSD via une couche de compatibilité.

Waddlesplash a amélioré la compatibilité avec les pilotes USB de FreeBSD dans le but de remplacer certains pilotes USB développés spécifiquement pour Haiku par les équivalents venant de FreeBSD. Pour l'instant, les nouveaux pilotes ne fonctionnent pas ou bien il n'y a personne en mesure de les tester, puisque les anciens fonctionnent très bien, ce n'est pas la priorité des utilisateurs.

Dans la couche de compatibilité OpenBSD, rectification du comptage des paquets réseaux envoyés, qui ne fonctionnait pas (waddlesplash).

Refonte de l'interfaçage du bus réseau MII avec les pilotes réseau, ce qui ouvre la voie à l'utilisation des pilotes OpenBSd et FreeBSD pour des périphériques déclarés dans un device tree FDT, plutôt que découverts via les bus PCI ou USB (waddlesplash).

TTY (ports série et terminaux virtuels)

Correction de la notification de déconnexion via select() lorsqu'un TTY est fermé. Cela corrige un problème lorsqu'on tue un Terminal, où les programmes lancés à l'intérieur ne s'arrêtaient pas et restaient bloqués (waddlesplash).

C-States (économie d'énergie du CPU)

Le pilote C-State affiche un message d'erreur lorsqu'il ne peut pas s'exécuter en indiquant pour quelle raison (par exemple s'il n'a pas trouvé de processeur compatible). Cela permet d'identifier les machines qui pourraient avoir besoin d'un autre pilote pour l'économie d'énergie, ou de compléter le pilote C-States si nécessaire.

ACPI C-States

Waddleplash a mis à jour le module CPU idle "ACPI C-States" qui était à l'abandon au moins depuis 2013 pour s'interfacer avec les versions actuelles des modules ACPI et CPU. Cela a demandé un gros travail non seulement pour la mise à jour mais aussi pour le déboguage de ce module, qui ne fonctionne toujours pas correctement sur le matériel qui a pu être testé. Il reste donc pour l'instant désactivé.

Contrairement au module C-States ci-dessus, celui-ci n'accède pas directement au matériel mais passe par ACPI. Cela lui permet en principe de fonctionner sur des machines anciennes ne disposant pas d'une interface matériel standardisée pour le contrôle des C-States et de la mise en veille du processeur.

USB-RNDIS

Ce pilote permet l'utilisation du "tethering" USB (partage de connection réseau via USB) avec la plupart des téléphones Android. Amélioration des messages de log et de la gestion des erreurs, dans le cadre d'investigations en cours pour comprendre pourquoi le pilote ne fonctionne plus après avoir débranché puis rebranché le câble USB (PulkoMandy).

NVMe (SSD)

Support d'adresses de blocs logiques sur 64 bits, permettant d'utiliser des disques de plus de 2 To (korli).

SDHCI (lecteurs de cartes SD)

Correction de la gestion des interruptions en utilisant une ConditionVariable en remplacement de sémaphores et correction de divers autres problèmes (PulkoMandy).

Détection des contrôleurs SDHCI ACPI en utilisant le CID standard "PNP0D40" au lieu d'une liste de HID spécifiques (SED4906).

acpi_termal (sondes de température)

Implémentation de B_GET_DEVICE_NAME pour récupérer le nom de la zone thermique dont la température est reportée (PulkoMandy).

Systèmes de fichiers

FAT

FAT est un système de fichier développé par Microsoft, souvent utilisé aujourd'hui pour les support amovibles (clés USB, cartes SD) en raison de sa simplicité et de son support dans à peu près tous les systèmes.

Jim906 a ajouté le support des disques avec des secteurs logiques de plus de 512 octets dans le pilote FAT. Cela reste quelque peu hypothétique car la plupart des périphériques de stockage continuent à fonctionner avec des secteurs de 512 octets, bien qu'ils utilisent en interne des zones beaucoup plus larges.

ext2/3/4

Les systèmes de fichiers ext2, 3 et 4 sont utilisés par défaut sous Linux. La structure des données sur le disque est très simialire entre les 3 versions, ce qui permet de supporter ces trois versions avec un seul pilote.

Korli a retiré la gestion des listes d'orphelins dans le pilote ext2/3/4. Cette fonctionnalité permet en principe de stocker des fichiers qui ont été unlink (plus présents dans auncun dossier du disque) mais pas encore supprimés (par exemple parce qu'ils sont encore ouverts par une application). Cette fonctionnalité semble obsolète: le pilote de FreeBSD ne l'implémente pas non plus, et ces fichiers peuvent très bien être gérés sans une structure de données spécifique stockée sur le disque. Dans ce même pilote, korli a également rectifié le décomptagee des blocs libres et utilisés lorsqu'un noeud est élargi ou rétréci.

NFS

NFS est un système de fichier en réseau, permettant donc à un serveur de rendre accessible ses fichiers à plusieurs autres machines. Haiku implémente actuellement uniquement la partie client, pour monter et accéder aux fichiers d'une autre machine.

Jim906 continue à améliorer le pilote NFS4:

  • Ajout d'informations de debug et de diagnostic (à activer lors de la compilation),
  • Améliorations du traitement des "délégations" de fichiers, qui provoquaient auparavant un kernel panic ou de très nombreuses erreurs dans les logs.
  • Ajout d'un verrou pour empêcher la destruction d'une ConditionVariable pendant son utilisation par un autre thread.

ramfs

Ramfs est un système de fichier qui stocke les fichiers directement dans la mémoire RAM. Contrairement à un "RAM disk", il n'a pas besoin de simuler un "block device" et peut allouer et libérer de la mémoire dynamiquement en fonction des besoins. Cela le rend peu gourmand et très rapide. Il est donc utilisé pour stocker des fichiers temporaires.

Nettoyage et correction de bugs dans la gestion de l'index des attributs étendus de ramfs. Le résultat est un système de fichier plus fiable, légèrement plus rapide, ainsi que l'ajout d'assertions pour détecter d'autres problèmes du même type s'ils devaient survenir (waddlesplash).

Retrait de vérifications inutiles de pré-conditions déjà garanties par le VFS, déplacement de vérifications du système de fichier dans le VFS afin que tous les systèmes de fichiers puissent en bénéficier, et au passage, harmonisation des codes de retour de différents systèmes de fichiers pour certaines erreurs (waddlesplash).

VFS

Le VFS (virtual filesystem) est le composant de Haiku qui permet l'accès à tous les systèmes de fichiers sous forme d'une unique hiérarchie de répertoires. Il regroupe tout le code commun à tous les systèmes de fichiers afin de réduire la complexité de ces derniers, et de s'assurer que le comportement des fichiers est similaire, même si le stockage peut être très différent.

Correction d'une incohérence sur la gestion de la racine de chaque système de fichier monté. Le VFS (le code qui gère les systèmes de fichiers) repose sur le principe du comptage de références pour savoir quels fichiers et dossiers doivent être maintenus en mémoire. Une supposition dans ce code est que chaque système de fichier maintient une référence sur son dossier racine, mais il n'y avait aucune vérification que c'était bien le cas, et la plupart des systèmes de fichiers ne le faisaient pas. Le problème a d'abord été identifié par korli dans le pilote ext2/3/4. Waddlesplash a ensuite ajouté des vérifications supplémentaires dans le VFS pour détecter ce cas ainsi que d'autres problèmes de comptage de références. Enfin, waddlesplash, jmairboeck, OscarL et Jim906 ont corrigé tous les autres systèmes de fichiers qui présentaient le même problème.

Ajout dans le VFS d'implémentation "de secours" pour certaines opérations: si le système de fichier ne les implémente pas directement, le VFS fournit une implémentation par défaut moins performante. Cela simplifie l'écriture du système de fichier, en particulier pour ramfs où il n'y a pas d'implémentation plus rapide possible (waddlesplash).

Autres

Ajout d'un périphérique /dev/full, qui répond qu'il est plein lorsqu'on essaie d'écrire dedans. Linux et FreeBSD disposent d'un tel périphérique et il est utile pour certains tests. L'implémentation a été l'occasion de fusionner le code des pilotes /dev/null et /dev/zero avec ce troisième périphérique, car ils sont tous les trois très simples et très similaires (korli).

Ajout de vérification d'erreurs dans les systèmes de fichiers "overlay" (attribute_overlay, log_overlay et write_overlay). Ces systèmes de fichiers permettent de rajouter des fonctionnalités à un autre système de fichier: respectivement la gestion des attributs étendus, un log de toutes les opérations effectuées, et le support de l'écriture. Deux d'entre eux sont notamment utilisés dans certaines configuration de démarrage sur un live CD (le système de fichier ISO9660 étant en lecture seule et sans gestion des attributs étendus). Les erreurs qui n'étaient pas traitées pouvaient déclencher un kernel panic, alors que ce sera désormais un simple message d'erreur dans les logs.

libroot

La libroot regroupe les fonctions C standard, les fonctions POSIX, et quelques extensions spécifiques à BeOS et Haiku. Elle est l'équivalent des libc, libm, et libpthread sous Linux.

Ajout de macros dans sys/time.h pour les conversions entre les structures timeval et timespec, compatibles avec les macros proposées par Linux et FreeBSD (Habbie).

Correction de la définition des macros CPU_* dans le fichier sched.h. D'une part, elles n'étaient pas tout à fait indentiques à celle de la glibc, et d'autre part, elles n'étaient pas compatibles avec les anciennes versions du standard C, ce qui posait un problème pour porter certains logiciels (korli).

Mise en conformité avec POSIX 1-2024

La spécification POSIX a reçu une nouvelle version, et Haiku implémente petit à petit toutes les nouvelles fonctionnalités et changements apparus dans cette nouvelle version.

  • Ajout de WCOREDUMP dans sys/wait.h (jmairboeck).
  • Ajout de l'option IPV6_ONLY pour les sockets (korli).
  • Mise à jour de la famille de fonctions strftime() à partir de la version de la librairie C musl (korli).
  • Ajout de macros supplémentaires dans complex.h (korli).

Correction d'un double-free dans un cas particulier dans l'implémentation de select() (waddlesplash).

Correction d'une fuite de référence à un groupe de processus lors du traitement des signaux, et ajout de vérifications de l'état de la "team" (processus) dans setpgid() (korli).

Noyau

Nettoyage de code pour la configuration des timers APIC et la détection de fonctionnalités de certains vieux processeurs AMD (waddlesplash).

Utilisation des instructions MWAITX (pour les processeurs AMD) ou TPAUSE (processeurs Intel) dans la boucle d'attente du debugger noyau. Dans ce cas particulier, les interruptions sont désactivées, donc les mécanismes habituels pour attendre (comme l'instruction HLT) ne peuvent pas être utilisés. Sur une machine équipée d'un Ryzen 3700X, la réduction de consommation électrique est d'environ 35 Watts, à comparer à une réduction de 54 Watts par la gestion d'énergie classique de Haiku lorsque le noyau fonctionne normalement. Ce n'est pas aussi bon que ce qu'arrive à faire Windows sur cette même machine, sans surprise puisque la gestion d'énergie dans Haiku est loin d'être complètement prise en charge (waddlesplash).

Au passage, waddlesplash a également optimisée la boucle d'attente spin(), utilisée dans le noyau pour implémenter un court délai lorsque les interruptions sont désactivées. Une instruction de sosustraction a pu être déplacée hors de la boucle principale de cette fonction.

Modification de l'implémentation de l'allocateur mémoire interne du kernel pour mieux détecter certaines erreurs en particulier lorsque KDEBUG est activé (c'est le cas pour les nightly builds de Haiku). L'allocateur recycle les blocs libéré pour de nouvelles allocations lorsque c'est possible, mais en mode KDEBUG, il essaie de conserver les blocs le plus longtemps possible dans la liste des blocs libérés, et réutilise d'abord les plus anciens. Cela augmente la probabilité de détecter si un bloc est encore utilisé après sa libération (et avant son recyclage pour une nouvelle allocation). Cela a déjà permis d'identifier au moins un nouveau bug (waddlesplash).

Correction de crashs dans certaines utilisations inhabituelles de recvmsg et sendmsg, et ajout de programmes de test pour reproduire facilement ces cas de figure (waddlesplash).

Correction d'une petite erreur dans l'implémentation de ConditionVariable qui pouvait dans certains cas très particuliers, réveiller incorrectement trop de threads attendant une notification. La conséquence du bug était seulement une dégradation des performances (PulkoMandy).

Amélioration d'une assertion pour détecter l'accès à de la mémoire libérée dans l'allocateur "slab" du noyau (waddlesplash).

Ajout d'un "return" manquant dans un cas d'erreur dans la gestion des sockets, qui pourrait être la cause de plusieurs kernel panics remontés récemment par des utilisateurs (waddlesplash).

Ajout d'un nouveau mécanisme de découverte de l'adresse du point d'entrée SMBIOS, en utilisant les EFI boot services. Ce changement ajoute également la possibilité de transmettre des informations arbitraires entre le bootloader et le noyau, de façon à pouvoir démarrer un ancien noyau avec un bootloader récent, ou inversement, lorsque de nouveaux paramètres sont ajoutés (korli).

Amélioration de la commande rwlock du debugger noyau pour afficher les threads ayant verrouillé le lock en lecture. Ceci est possible seulement si l'option KDEBUG_RW_LOCK_DEBUG est activée, ce qui n'est pas le cas par défaut car l'option a un trop gros coût en performances (waddlesplash).

Ajout également d'assertions liées aux verrous dans la gestion de la mémoire virtuelle et dans le VFS. Ces modifications ont ensuite permis de trouver et de corriger un double verrouillage en lecture (waddlesplash).

Ajout d'assertions pour s'assurer que l'allocation de zones de mémoire "early boot" n'échoue jamais. Ce changement a été initié suite au travail sur le tas gardé, pour lequel il aurait été bien utile. Mais il a aussi permi de détecter un gros problème dans la version ARM64 de Haiku, qui pourrait expliquer que cette version plante très tôt pendant le démarrage suite à un changement dans la carte mémoire du bootloader (waddlesplash).

Correction d'une libération de mémoire mal assortie (allocation avec un mécanisme, mais libération avec un autre) dans le VFS, qui déclenchait une assertion et donc un KDL (waddlesplash).

Retravail de la fonction de découpage de zones mémoire (cut_area) pour mieux traiter des cas particuliers avec des zones qui étaient partagées entre plusieurs processus, mais ne le sont plus suite au découpage (waddlesplash).

Système de compilation

smrobtzz a modifié la compilation de unzip pour ajouter l'option -std=c99, en effet, les sources utilisées sont anciennes et ne compilent pas avec les dernières versions du standard C, en particulier celle utilisée par défaut dans GCC 15.

X512 a retiré les permissions +x sur certains fichiers du dépôt git qui n'en avaient pas besoin.

PulkoMandy a fait du nettoyage dans les règles de compilations pour retirer certaines dépendances optionnelles qui ne sont en fait jamais utilisées.

jscipione a corrigé la compilation croisée depuis les dernières versions de macOS.

waddlesplash a corrigé plusieurs problèmes de compatibilité avec clang (le code de Haiku est habituellement compilé avec GCC).

Documentation

PulkoMandy a corrigé plusieurs problèmes de syntaxe Doxygen dans la documentation de l'API, et ajouté un nouveau chapitre documentant la classe ConditionVariable et son utilisation dans le noyau.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇LinuxFr.org : les dépêches
  • Sortie du jeu Bim! en version 12
    Bim! est un jeu libre (code AGPL3 et assets CC-by-sa 4.0) multijoueur de type dernier survivant, et qui se joue uniquement en ligne. Il n’est disponible que pour les systèmes Android. Le jeu est développé depuis plus de deux ans. Jusque-là restreint à quelques pays sur le PlayStore, la sortie de la version 12 marque la mise à disposition de l’app à tous les pays en mode tests ouverts ; c’est-à-dire que vous pouvez installer l’app et même laisser des commentaires mais ceux-ci ne seront pas visib

Sortie du jeu Bim! en version 12

Bim! est un jeu libre (code AGPL3 et assets CC-by-sa 4.0) multijoueur de type dernier survivant, et qui se joue uniquement en ligne. Il n’est disponible que pour les systèmes Android.

Le jeu est développé depuis plus de deux ans. Jusque-là restreint à quelques pays sur le PlayStore, la sortie de la version 12 marque la mise à disposition de l’app à tous les pays en mode tests ouverts ; c’est-à-dire que vous pouvez installer l’app et même laisser des commentaires mais ceux-ci ne seront pas visibles dans le PlayStore.

En plus du PlayStore, le jeu est disponible sur GitHub, F-Droid, et d’autres magasins alternatifs.

La suite de la dépêche présente les nouveautés des versions publiées depuis la dernière communication en ces pages, soit les versions 11 et 12.

Bim est multijoueur pour jouer avec ses amis

Sommaire

Bim! est un jeu « à la bomberman ». Deux à quatre joueurs sont dans une arène, le dernier survivant a gagné. Pour combattre, les joueurs posent des bombes dont ils peuvent augmenter la puissance en trouvant les améliorations disséminées dans l’arène. De plus, d’autres bonus peuvent être découverts pour faire varier l’expérience de jeu.

Un pilier dans la création de ce jeu est de proposer aux joueurs de partager un bon moment d’amusement avec d’autres personnes. C’est pourquoi il ne propose aucun mode hors-ligne ni de bots en guise d’adversaires.

Le jeu est disponible en allemand, anglais, brésilien, breton, français, portugais, et turc.

Historique du développement

Le développement du jeu a été régulièrement conté dans des journaux sur LinuxFr.org, au rythme d’un journal toutes les deux versions. J’en profite pour remercier profondément tous ceux qui ont testé ou commenté jusqu’ici :)

Le premier journal, dix mois après la création du dépôt, intitulé Bim! On parle de dev de jeu mobile, de gestion de projet, de dépendances, etc., présente le début du projet, les choix de technos, la mise en place d’outils de dev, et le chemin pour arriver à une première application et un environnement de dev robuste. Au final on obtient une application humble sur laquelle on va pouvoir construire, et bien qu’elle soit en mode texte le mode de jeu en réseau est déjà fonctionnel.

Première version avec gameplay, dans un terminal Première version de l’app graphique
Première version avec gameplay, dans un terminal Première version de l’app graphique

Dans le deuxième journal, Dev update du jeu Bim!, on présente les résultats d’une première version graphique, et des problèmes liés à la gestion de sticks logiciels. Des assets temporaires sont utilisés en attendant de valider le fonctionnel.

Capture de la version de Bim! lors du second journal

Le troisième journal, Bim! Ça joue là, marque la mise à disposition du premier APK. Les joueurs peu regardants sur l’esthétique du jeu peuvent faire des matchs.

Capture de la version de Bim! lors du troisième journal
Clique sur l’image pour voir une vidéo du jeu.

Le quatrième journal, Version 2 de Bim!, avec des menus, présente l’interface des premiers menus. L’interface du jeu lui-même est toujours à base de placeholders mais les menus s’approchent d’une esthétique convenable. On y parle aussi de réglages liés au jeu en réseau.

Capture de la version de Bim! lors du quatrième journal

Dans le cinquième journal, Sortie de Bim! en version 3 pour les fêtes, on parle de l’arrivée de l’écran de paramétrage, ainsi que de réglages graphiques suite à des sessions de tests avec joueurs. C’est aussi dans cette version qu’est introduite l’enregistrement des parties sur le serveur afin d’aider à déboguer a posteriori.

Écran des paramètres Interface de visualisation des parties enregistrées
Écran des paramètres Interface de visualisation des parties enregistrées

Le sixième journal, De beaux graphismes dans la version 4 de Bim!, marque un tournant avec le remplacement des assets du jeu par des graphismes convenables. Ça change tout. L’avatar du joueur, la bombe, les flammes, et les caisses sont le résultat d’une commande à Aryeom. Pour le reste c’est de mon fait, parfois avec des ressources libres trouvées sur le web. On y parle aussi de conso mémoire, d’équité dans la répartition des bonus, et de recherche graphique.

Capture d’une partie Recherche d’adversaire
Capture d’une partie Recherche d’adversaire

La version présentée dans le septième journal, Sortie de Bim! en version 6, est la première à ne plus utiliser d’éléments graphiques provisoires. C’est aussi celle qui introduit le mode de jeu avec brouillard de guerre.

Capture de la version du septième journal
Clique sur l’image pour voir une vidéo du jeu.

Dans la version du huitième journal, Ça bouge dans Bim! en version 8, les joueurs sont enfin animés. C’est aussi une version qui contient des contributions externes, notamment le bonus d’invisibilité. Enfin, les joueurs gagnent maintenant des pièces en jouant, leur permettant d’acheter les modes de jeu supplémentaires.

Animations du personnage Vidéo du bonus d’invisibilité
Animations du personnage Vidéo du bonus d’invisibilité

Enfin, le neuvième et dernier journal en date, Sortie de Bim! en version 10, avec un bouclier et des stats, marque l’arrivée du bonus « bouclier » ainsi que d’une refonte graphique des bonus. Cette version est aussi la première à proposer une boutique ainsi qu’à présenter les stats de jeu au joueur. Enfin, grâce à Weblate des contributeurs à travers le monde ont pu proposer de nouvelles traductions.

Boutique Statistiques Bonus
Boutique Statistiques Bonus

Nouveautés des versions 11 et 12

Il n’y a qu’une nouveauté de gameplay dans ces versions, il s’agit d’une modification du comportement des flammes pour qu’elles puissent se croiser. Auparavant une flamme qui en rencontrait une autre était bloquée, ce qui réduisait de fait son pouvoir de destruction. Dorénavant elles s’étendront jusqu’au prochain obstacle solide. Cela rend les fins de parties et les mêlées vachement plus fun.

Capture avec intersection des flammes

Du côté des outils j’ai intégré l’instrumentalisation avec Tracy, et j’ai commencé à faire quelques mesures de perf, pour voir où le jeu se situe. Très sympa comme outil, ça me permet de prendre des mesures par frame et de regarder comment l’application se comporte. Il y a aussi la possibilité de tracer des données personnalisées, ce dont je me sers pour suivre le trafic réseau.

Utilisation de Tracy

Sur cette frame on a une petite pile d’appels (c’est moi qui indique manuellement quelles fonctions doivent être mesurées) qui correspond à l’update du jeu. En rouge on a l’étape de synchronisation avec le serveur, où on joue ce qu’il nous a envoyé pour ensuite simuler les itérations locales. En bleu on a la préparation de l’affichage. Tout cela est inclus dans la section « update », qui contient d’autres trucs non tracés et prend donc une milliseconde sur mon Pixel 3a. Sur la droite il y a une section « draw » qui n’a pas de pile d’appels. Il s’agit de l’affichage proprement dit, géré par Axmol. Ça prend donc 14 ms, ce qui est un peu trop à mon goût. Il faudra que je creuse.

Nouveautés sur le serveur

Le serveur de jeu maintient maintenant des statistiques d’activité sur une fenêtre glissante, à savoir le nombre de parties jouées et le nombre de joueurs connectés. Ces deux métriques sont disponibles en instantané, sur la dernière heure, les 24 dernières heures, et les 30 derniers jours. Ces statistiques sont disponibles dans les logs du serveur mais aussi à la demande des clients.

Ce travail est basé sur une contribution de HanevyN. Dans le cadre de l’utilisation de Bim! comme outil d’apprentissage du C++ présenté dans le journal sur la version 8, cette personne avait choisi la tâche d’intégrer des statistiques au serveur. Le problème à résoudre était mal spécifié, mais nous avons trouvé une reformulation plus réaliste qui a ensuite bien occupé ce contributeur. Lorsqu’il n’a plus pu se charger de ce développement j’ai pris la suite pour le finaliser et l’intégrer au dépôt.

Nouveautés sur le client.

Les transitions entre les écrans sont maintenant animées ! C’est vachement plus agréable. Avec l’arrivée d’animations dans les menus j’ai dû remettre le framerate à 60 dans ces derniers parce que sinon c’était trop saccadé.

Affichage de statistiques du serveur

Autre nouveauté sur le client, il affiche maintenant une statistique du serveur. À l’origine de cette fonctionnalité il y a une demande d’un utilisateur reçue par courriel :

Bim is such a great game, but sometimes I join for a casual match, and there is no one playing. Sometimes I sit in the lobby for 2 minutes to check if someone else's game ends and join them, but it would be even greater to have a games in progress count in the lobby.

Le problème de cette personne est qu’elle lance une recherche d’adversaire et la laisse tourner sans jamais voir de joueur la rejoindre. C’est très frustrant en effet. Cette personne propose d’avoir une indication sur l’écran principal de l’application du nombre de parties en cours.

C’est quelque chose que j’avais auparavant refusé de faire, car la plupart du temps cela affichera zéro, et si c’est zéro sans doute que les joueurs qui ouvrent l’app ne vont pas tenter de lancer un match, ce qui ne va pas aider à faire monter le compteur.

Cependant, suite à ce message, j’ai réfléchi à la possibilité de suggérer l’activité sur le serveur mais de manière toujours positive. L’idée est d’indiquer le nombre de parties en cours mais de se rabattre sur une indication du nombre de joueurs connectés s’il n’y a pas assez de matchs en cours. Et s’il n’y a pas trop de joueurs, alors on se rabat sur des mesures agrégées sur la dernière heure, puis les 24 dernières heures, puis les 30 derniers jours. Ça tombe bien, j’avais toutes ces mesures sur le serveur !

Ça me semble être un bon compromis. On ne voit pas qu’il n’y a personne, mais on voit que le jeu n’est pas à l’abandon.

Boutons pour la boutique et les stats sur le lobby.

J’ai fait pas mal d’UI dans ces versions à commencer par ajouter un bouton permettant d’accéder à la boutique et un autre pour afficher les statistiques du joueur. Auparavant on accédait à la première en cliquant sur le solde de pièces et les secondes étaient affichées directement sur l’écran principal.

Le plus simple pour moi, quand je dois faire ce genre de bouton, est de commencer par des croquis pour dégrossir les idées.

Des croquis

En haut à gauche on voit la base du bouton. L’icône est trop petite, et le libellé trop rigide ; je l’ai donc incliné (c’est une des lignes directrices que j’applique pour l’interface, d’avoir des inclinaisons, pour donner un sentiment de dynamisme). Pour l’icône je me suis posé plein de questions sur la taille du store, la forme de la porte, les proportions… D’où le lot de croquis.

Pour l’icône des statistiques c’était plus simple, il y avait moins de questions. Enfin, il y a surtout eu des questions de couleurs mais ça je ne le travaille pas sur le carnet.

Au final ça donne ça. J’ai peut-être fait un peu de zèle pour l’icône de la boutique, sans doute que je voulais impressionner mon enfant qui me regardait dessiner dans GIMP (ça a marché :)).

Icône de la boutique

Intégration d’un outil d’analytics

L’application Android intègre maintenant une remontée de statistiques anonymes sur son utilisation. L’outil que j’ai choisi est PostHog, qui a le bon goût d’être libre, auto-hébergeable, de proposer le stockage des données en Europe, d’avoir une offre gratuite, et de permettre une remontée des statistiques sans identification de l’utilisateur.

Grâce à cet outil j’ai maintenant une idée de ce qu’il se passe sur le client ; notamment le nombre d’utilisateurs par jour, ou encore la proportion de joueurs qui cherchent et trouvent un adversaire.

Écran de sélection des fonctionnalités de jeu.

Le déblocage et la sélection des fonctionnalités de jeu se faisaient auparavant sur l’écran de recherche d’adversaire. Les joueurs pouvaient activer la chute de blocs, les boucliers, le brouillard, ou encore l’invisibilité depuis cet endroit. Dans la nouvelle version cette sélection se fait maintenant sur un écran dédié, accessible depuis le lobby. De plus, seules deux options peuvent être activées par joueur. Cela permettra d’avoir un peu plus de variété et de surprise dans les matchs en combinant les fonctionnalités activées par les uns et les autres.

Cet écran a été un très gros chantier, avec pas mal de code qui n’était pas prêt mais que je ne le savais pas et que donc j’ai dû m’interrompre plein de fois pour préparer ce code que j’aurais dû écrire en amont. Galère.

Déjà sur les croquis ont voit que ça n’allait pas être simple.

Encore des croquis

J’avais envisagé une vue grille (en haut à gauche) pour ensuite m’orienter sur une liste de fiches présentant chaque fonctionnalité (milieu gauche). J’avais besoin d’emplacements où poser les éléments sélectionnés par le joueur, que je mettais en haut sur les croquis, sans trop savoir s’ils allaient être en ligne ou en pyramide, inclinés ou horizontaux.

Étonnamment dès lors que j’ai ouvert GIMP pour faire une maquette j’ai abandonné l’idée des fiches en faveur de la grille. La longue liste de fiches m’a semblé soudain peu attrayante par rapport à une grande grille qui montrerait au premier coup d’œil la variété de l’offre.

J’ai ajouté une zone de présentation de chaque fonctionnalité ainsi qu’une petite notice explicative, et j’ai fait beaucoup d’essais pour déterminer la couleur des contours des boutons.

Essais

Et au final, quand j’ai mis ça dans l’application, eh bien j’ai jeté la petite explication pour la fusionner dans la nouvelle boîte de présentation des fonctionnalités ! On avance clairement à tâtons sur cet écran.

Personnalisation des parties

Il faut savoir qu’il y a aussi beaucoup d’animations liées aux interactions sur cet écran, mais évidemment ça ne se voit pas sur les images :)

Quelques statistiques

À chaque communication je présente quelques statistiques du jeu. Comme d’habitude je vais sortir des graphiques à partir des logs du serveur, mais cette fois j’ai aussi des mesures intégrées au client grâce à PostHog ; je vais donc pouvoir sortir quelques graphes supplémentaires. Commençons par le nombre de joueurs par jour :

Nombre de joueurs par jour

On y voit clairement le déploiement des deux mises à jour. Dès lors que ça arrive sur F-Droid il y a plein de joueurs qui débarquent. Ensuite voici le nombre de parties par jour (logs serveur) :

Nombre de parties par jour

Une chouette info que me donnent les mesures sur le client est la proportion de joueurs qui lancent une recherche d’adversaire et trouve effectivement quelqu’un :

Proportion de joueurs qui lancent une recherche d’adversaire et trouve effectivement quelqu’un

Sur un autre graphe que je n’affiche pas ici, j’apprends que les joueurs restent en moyenne 17 secondes sur la recherche d’adversaire avant de laisser tomber.

En termes de répartition du nombre de joueurs par partie, cela donne :

Nombre de joueurs Nombre de parties
2 708
3 182
4 42

Et enfin, pour la répartition des joueurs par pays, on a :

Répartition des joueurs par pays

Ce sera tout pour cette fois. On se retrouve en match :)

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇LinuxFr.org : les dépêches
  • Delphine Demange et les compilateurs
    Cette année, la date de la journée Ada Lovelace, une journée dont l’objectif est d’accroître la visibilité des contributions des femmes dans les domaines scientifiques, technologiques, mathématiques et ingénierie (STEM), est le 15 octobre 2025. Pour l’occasion, en 2023, LinuxFr avait consacré une dépêche à Lorinda Cherry, Evi Nemeth et Jude Milhon. En 2024, cela avait donné lieu à une mini-série sur la participation des femmes à la conquête de l’espace. Cette année, on se penchera sur les compi

Delphine Demange et les compilateurs

Cette année, la date de la journée Ada Lovelace, une journée dont l’objectif est d’accroître la visibilité des contributions des femmes dans les domaines scientifiques, technologiques, mathématiques et ingénierie (STEM), est le 15 octobre 2025.

Pour l’occasion, en 2023, LinuxFr avait consacré une dépêche à Lorinda Cherry, Evi Nemeth et Jude Milhon. En 2024, cela avait donné lieu à une mini-série sur la participation des femmes à la conquête de l’espace. Cette année, on se penchera sur les compilateurs, créés par Grace Hopper, et qui ont valu à Frances Allen un prix Turing en 2006 et on dressera le portrait de Delphine Demange, lauréate du prix Gilles Kahn 2013.

Bandeau Journée Ada Lovelace, la photo vectorisée d’Ada sur fond d’un de ses manuscrits dans des tons sépia

Sommaire

Qu’est-ce qu’un compilateur ?

La naissance des compilateurs

Le premier compilateur, il s’appelait « translator » (traducteur) à l’époque, a été inventé par Grace Murray Hopper pour l’UNIVAC 1 en 1951, l’A-O System. Soit après la sortie de l’IBM 604 (1948), avant celle de l’IBM 650 (1954) et un peu avant le FORTRAN, langage compilé, créé vers 1953 par John Backus pour l’IBM 701 et lancé en 1957. La même année où IBM embauche Frances Allen pour former des scientifiques et des ingénieurs réticents à l’utilisation du langage. Elle sera, en 2006, la première femme à obtenir un prix Turing. Elle raconte, dans les Annals of History of Computing (Volume 6, N°1, janvier 1984) que :

L’une des façons dont le laboratoire de recherche a convaincu les gens à utiliser ce langage a été d’imposer son utilisation via un règlement.

Elle ajoutera :

le compilateur FORTRAN a établi la norme en matière d’efficacité du code objet. Mais surtout, il a démontré la faisabilité de l’utilisation des langages de haut niveau. Lorsque j’ai enseigné le FORTRAN en 1957, l’utilisation de ce langage a rencontré une forte résistance. Cette résistance a rapidement été érodée par le type de code produit par le compilateur.

John Backus, qui trouvait par ailleurs que Grace Murray Hopper était difficile à égaler, détaillait dans ces mêmes annales les auteurs et l’autrice du compilateur. Peter Sheridan avait écrit la section 1 qui analysait les expressions algébriques, les traduisait en code et optimisait ce code. Pour la section 2, Harlan Herrick avait inventé l’instruction DO, rédigé : « la partie de la section 1 qui regroupe toutes les informations sources non utilisées dans les expressions algébriques dans des tableaux nécessaires aux sections suivantes. ».

C’est également à Herrick que l’on doit l’introduction des mots clés GO TO ! Roy Nutt a conçu la majeure partie du langage d’entrée/sortie et rédigé la partie de la section 1 qui traduisait les instructions d’E/S en boucles DO. Il a également rédigé la section 6, qui assemblait le programme symbolique final et complétait le traitement des instructions d’E/S. C’est également à Nutt que l’on doit l’introduction de l’instruction FORMAT. Bob Nelson et Irv Ziller ont rédigé la section 2, qui s’est avérée être la plus grande section du compilateur. Elle analysait les références aux tableaux dans les boucles DO et produisait un code hautement optimisé pour le reste du programme source. Leur travail a eu un impact important sur le niveau global d’optimisation que j’ai mentionné précédemment. Dick Goldberg a rédigé la section 3, qui rassemblait le code compilé par les sections 1 et 2 et produisait d'autres informations nécessaires aux sections suivantes. Les gens continuaient à se concerter et à demander aux auteurs des sections précédentes de produire un peu plus, quelques tableaux supplémentaires dont ils avaient finalement besoin. Dick a également joué un rôle important dans le débogage de la section 5. Lois Haibt (en) a rédigé la section 4, qui effectuait une analyse statistique de la fréquence d'exécution […] Ici, la section 4 a également préparé de nombreux tableaux pour la section 5, si je comprends bien. Sheldon Best a écrit la section 5, qui a converti le programme utilisant de nombreux registres d'index en un programme en utilisant trois. Ses méthodes ont eu un impact considérable sur les travaux ultérieurs dans ce domaine et ont eu un effet majeur sur le niveau d'optimisation du compilateur. Enfin, David Sayre a rédigé un manuel du programmeur exceptionnellement clair et concis et a aidé Dick Goldberg à déboguer la section 5.

Structure d’un compilateur : 1 déclarations identifieur et traducteur, 2  analyse indice et déclaration DO, 3 Interface entre 1 et 4, 4 anlyseur de flux de contrôle, 5 allocateur de registre global, 6 assemblage final
Schéma de la structure du compilateur de l’ordinateur IBM 704 adapté de celui fait par Frances Allen dans les « Annals of History of Computing », Volume 6, N°1, janvier 1984 (page 24).

De leur côté, les Soviétiques, qui fabriquaient aussi des ordinateurs, utilisaient également des compilateurs. Dans son article sur les ordinateurs soviétiques, Yves Logé rapporte qu’ils utilisaient, en 1955, les langages de compilation : PP2 – PP et BESM. Le BESM étant un ordinateur sorti en 1953. La fondatrice de la programmation théorique en Ukraine, Katerina Yushchenko (en), y a fort probablement contribué.

À quoi ça sert ?

En août 2001, dans un entretien (en) avec Janet Abbate qui lui demandait comment elle définirait un compilateur, Frances Allen répondait :

Je pense qu’un compilateur sert à traduire ce que l’utilisateur de l’application […] demande […] à la machine de manière à obtenir la bonne réponse, mais aussi à utiliser au mieux les ressources de la machine. C’est ça, l’optimisation. On peut se contenter de transposer les choses sans tirer parti des registres et de nombreuses autres unités de calcul, mais cela ne serait pas aussi efficace. L’optimisation consiste donc à tirer parti des ressources de la machine et à très bien connaître cette dernière. C’est en quelque sorte combler un fossé, afin que l’utilisateur n’ait pas besoin de tout savoir !

Plus généralement, un compilateur est décrit comme un programme dans un langage de haut niveau qui traduit le code-source en code objet pour le rendre exécutable en détectant les erreurs et en l’optimisant par la même occasion.

Schéma d’un compilateur
Le code source est envoyé au compilateur qui le traduit en langage machine.

Les compilateurs sont des outils essentiels et très complexes qui interviennent dans tous les programmes, notamment des logiciels très critiques :

Par exemple, les programmes embarqués dans les systèmes bancaires, dans les systèmes de contrôle de vol des avions, ou même dans la chirurgie assistée par ordinateur ou les centrales nucléaires […] : la présence d’erreur durant leur exécution pourrait avoir des conséquences désastreuses, que ce soit en termes de vies humaines, de dégâts écologiques, ou de coût financier. (Delphine Demange, Semantic foundations of intermediate program representations, Thèse soutenue le 19 octobre 2012.)

Comment ça marche ?

Réponse rapide : avec beaucoup de mathématiques. Réponse un peu plus détaillée : à partir de différents types d’analyses après une phase de pré-traitement qui permet de déterminer comment traiter les informations.

  1. L’analyse lexicale : découpe le code en unités lexicales ou « tokens » qui vont permettre au compilateur de traiter les données par la suite. Ce faisant le compilateur sépare les différents types d’éléments : variables, opérateurs, séparateurs, mots-clés, etc.
  2. L’analyse syntaxique : vérifie que le programme source ne contient pas d’erreur de syntaxe et que le code source est correct et, évidemment le compilateur signale les erreurs qu’il a pu trouver à ce stade.
  3. L’analyse sémantique : après la syntaxe, c’est le sens du code qui est examiné. Le compilateur va ainsi vérifier s’il y a des erreurs de logique, passant, que le code fait bien ce qu’il est censé faire. À ce stade, le compilateur va aussi signaler les erreurs, voire, rejeter un code incorrect.
  4. L’optimisation : permet de nettoyer le code pour le rendre plus rapide à exécuter. À l’heure actuelle avec des processus très gourmands en ressources, c’est une étape-clé, ça n’a pas toujours été forcément le cas.
  5. La génération du code final : c’est la dernière phase dont le résultat est le code exécutable.

Delphine Demange : comment vérifier que les compilateurs font leur travail correctement

Parcours

Delphine Demange entre en licence d’informatique à l’université de Rennes 1 en 2004. Elle y obtiendra un magistère Informatique et télécommunications en 2006 puis fera le mastère de recherche en informatique de la même université en 2008. Elle achèvera cette partie de ses études par un stage de master à l’IRISA (équipe Celtique), en vérification de programme. Au bout des cinq mois de stage, en 2009, elle s’inscrira en thèse. Une thèse, Fondements sémantiques des représentations intermédiaires de programmes (en), soutenue en 2012 et qui lui vaudra le prix de thèse Gilles Kahn 2013 de la SIF, et qui porte sur :

la vérification formelle de logiciel, c’est-à-dire à l’ensemble des techniques et d’outils scientifiques qui permettent d’assurer qu’un logiciel remplit ces exigences [de qualité des systèmes critiques]. (Résumé étendu de sa thèse).

Elle part ensuite pour les USA, à l’Université de Pennsylvanie pour une année de post-doctorat. Là, elle travaillera sur un projet alliant vérification et sécurité. De retour en France, elle passe des concours. Elle est, depuis 2013, maîtresse de conférence à l’université Rennes 1.

En février 2024, elle donnait un cours au Collège de France : Représentations intermédiaires pour la compilation : s’affranchir du graphe de flot de contrôle.

On peut retrouver ses communications et articles ainsi que sa thèse, toutes en anglais, sur HAL science ouverte.

La vérification des logiciels

Comme elle le dit en résumé de sa thèse :

Nos vies quotidiennes dépendent de plus en plus, sans même parfois que nous nous en rendions compte, de l’utilisation de programmes informatiques. Ces programmes n’ont toutefois pas tous le même niveau de criticité. Par exemple, les programmes embarqués dans les systèmes bancaires, dans les systèmes de contrôle de vol des avions, ou même dans la chirurgie assistée par ordinateur ou les centrales nucléaires sont appelés systèmes critiques : la présence d’erreur durant leur exécution pourrait avoir des conséquences désastreuses, que ce soit en termes de vies humaines, de dégâts écologiques, ou de coût financier. Ce type de programme requiert donc de fortes garanties : leur exécution ne devrait pas échouer, et leur correction fonctionnelle devrait être garantie.

Elle ajoute plus loin que les compilateurs étant des logiciels, ils sont à leur tour susceptibles d’avoir des bugs comme n’importe quel autre programme. Il est donc nécessaire qu’ils répondent aux mêmes exigences infaillibilité que les systèmes critiques sur lesquels ils travaillent.

Dans un entretien accordé au site de l’université de Rennes en 2014, elle précise que son travail a pour but final :

d’assurer, par une preuve mathématique et assistée par ordinateur, que les compilateurs compilent correctement les programmes (i.e. ils n’ajoutent pas de nouveaux comportements aux programmes), et que les vérifieurs calculent des propriétés sur des modèles corrects des programmes (si le modèle du programme ne comporte pas d’erreur, alors le programme d’origine n’en comporte pas non plus).

Ses travaux de thèse portant les représentations intermédiaires (IR) des programmes sur lesquels travaillent les compilateurs et vérificateurs. Ces IR simplifient les analyses de ces outils qui peuvent analyser des programmes très complexes. Elle continue, depuis, ses recherches dans le même domaine avec :

la vérification des techniques de compilation optimisantes pour les langages de haut-niveau, en y incluant les aspects les plus difficiles des langages modernes, comme la gestion de la mémoire, la concurrence et les modèles de mémoire faibles. (entretien, Université de Rennes).

Tout cela demande beaucoup de mathématique, parfait pour quelqu’un qui a hésité entre les maths et l’informatique.

Quelques autres sources d’information

Sur les compilateurs, internet est bien pourvu en ressources en français sur le sujet, par exemple :

— Compilation informatique : définition concrète et rôle, Journal du net, 2016,
— Comment fonctionnent les compilateurs, IBM, [sd],
— Qu’est-ce qu’une conception de compilateur ? Types, outils de construction, exemple, Kaia Céruléen, GURU99, [septembre 2025 ?],
— Cours de compilation, [sd],
— Compilation, pdf à télécharger,
— Langages de programmation et compilation, Jean-Christophe Filliâtre, septembre 2016,
— Représentations intermédiaires pour la compilation : s’affranchir du graphe de flot de contrôle, cours au Collège de France, 15 février 2024
— Fondements sémantiques des représentations intermédiaires de programmes, thèse, en anglais, de Delphine Demange.

Sinon on peut aussi lire ou relire l’hommage à France Allen sur LinuxFr. Il y a aussi, en anglais, cet article Early Computers and Computing Institutions (en) qui raconte les débuts de FORTRAN. C’est très intéressant. Mais il faut soit l’acheter (15,50 dollars pour les membres ou 30 dollars pour les non-membres) ou faire partie d’une structure adhérente.

Questions et remerciements

Compte de tenu de l’importance des compilateurs, la question se pose de la raison pour laquelle la personne qui a été à l’origine du premier compilateur et du COBOL, Grace Murray Hopper (1906-1992) n’a pas reçu le prix Turing pourtant créé de son vivant, en 1966, et à une époque où elle était encore active. Le récipiendaire du prix Turing 1966 ayant d’ailleurs été Alan J. Perlis pour la construction de compilateurs.

Question complémentaire, pourquoi France Allen n’a reçu son prix Turing qu’en 2006 « pour ses contributions pionnières à la théorie et à la pratique des techniques utilisés par les compilateurs optimiseurs qui ont jeté les bases des compilateurs optimiseurs modernes et de l’exécution parallèle automatique. » Frances (“Fran“) Elizabeth Allen. A.M. Turing Award 2006 (en), alors qu’elle avait pris sa retraite depuis 2002. Elle reste toujours aussi importante : un de ses textes de 1970 fait partie de la bibliographie de la thèse de Delphine Demange.

Dernière question, dans son discours de remise du prix Turing en 2007, Frances Allen disait qu’après une phase de stagnation des compilateurs, on devrait avoir une phase de progrès significatifs dans le domaine. Est-ce que vous avez une idée de ce à quoi elle aurait pu penser ?

Un très grand merci à vmagnin pour son aide et les documents qu’il m’a envoyés pour m’aider à rédiger cette dépêche.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  • ✇LinuxFr.org : les dépêches
  • Interminable liste de terminaux
    Ah, la ligne de pêche Maginot commande ! Que ce soit pour gérer ses fichiers, récupérer des commits, lancer une compilation, se connecter à un serveur, redémarrer un service, consulter les logs, voire contrôler la musique, afficher des images, cette interface reste en 2025 exceptionnellement boomer rapide et même parfois confortable. Sans compter que le terminal est l'endroit où lancer des applications dédiées, pour lire ses mails ou un million d'autres choses. Bref rappel avant se lancer dans

Interminable liste de terminaux

Ah, la ligne de pêche Maginot commande ! Que ce soit pour gérer ses fichiers, récupérer des commits, lancer une compilation, se connecter à un serveur, redémarrer un service, consulter les logs, voire contrôler la musique, afficher des images, cette interface reste en 2025 exceptionnellement boomer rapide et même parfois confortable.

Sans compter que le terminal est l'endroit où lancer des applications dédiées, pour lire ses mails ou un million d'autres choses.

Bref rappel avant se lancer dans de longues comparaisons

  • TTY vient de teletypewriter. Si vous tapez (Xorg comme Wayland) Control + Alt + F3 par exemple, vous vous retrouverez devant une invite de commande.
  • pts/pty : quand vous ouvrez un terminal

L'invite de commande pourra bénéficier d'un shell personnalisé. Le bureau permettra l'usage d'un terminal.

    Sommaire

    Le jeu de les shells

    Le shell est un interpréteur de commande. On peut simplement lancer une commande pour consulter l'état du système (top, ps), déplacer un fichier (mv), … Ou combiner des commandes, écrire des scripts basés sur des conditions et des variables, … Donc comme l'explicite le manuel GNU, un shell unix est la fois un interpréteur de commande et un langage de programmation.

    La plupart des distributions utilisent par défaut "Bash", mais il est possible de changer de shell, par exemple interactivement en utilisant la commande chsh ("change shell"), ou en modifiant les paramètres d'un terminal en particulier, ou d'un multiplexeur, ou encore plus globalement en modifiant le shell par défaut d'un user (faites un peu attention dans ce cas — les shells ne sont pas tous compatibles, ne tombez pas !).

    Les shells tombent

    Les scripts précisent aussi quel shell invoquer… Si je prends un tuto sur un shell au hasard, voici ce que je vais trouver

    #!/bin/bash
    # This script will take an animated GIF and delete every other frame
    # Accepts two parameters: input file and output file
    # Usage: ./<scriptfilename> input.gif output.gif

    Attention : ce script référence explicitement /bin . Pas 100% sûr que bash y soit installé. Une solution peut être d'utiliser env.

    #!/usr/bin/env bash

    Hormis interpréter les commandes tapées, le shell affiche également un prompt invitant à taper une commande. Quelque chose comme cela :

    [goat@arch:~]$ 
    

    Pour la partie prompt, certains shells vont autoriser un peu de paramétrage, ou l'on peut même installer des plugins pour enrichir les possibilités, comme avec powerline ou même le liquid prompt présenté ici même par son auteur Dolmden.

    On peut aussi trouver un prompt comme starship qui est utilisable avec les différents shells.

    De la préhistoire au Bash

    Pour l'histoire, le premier shell Unix date de 1971, puis le Bourne Shell (sh), du nom de son auteur, apparait en 1977. Beaucoup de fonctionnalités sont déjà présentes : il est scriptable (on peut définir un script avec des conditions dont la si laide esac, définir des boucles, …), les processus peuvent être contrôlés, il est possible de définir des alias, …

    Bourne Shell implémente la norme POSIX que d'autres shells respectent. La licence du Bourne Shell est débatue (avec une certaine vigueur sur Wikipédia!) , en tout cas son code est ici.

    KORN shell n'était, au départ, pas open source - le code n'est libéré que dans les années 2000. Korn Shell implémente les fonctionnalités du Bourne Shell mais ajoutera d'autres éléments, comme des raccourcis vi/emacs, ou comme les tableaux

    $ typeset -A age
    $ age[bob]=42
    $ age[alice]=31
    $ print ${age[bob]}
    42
    

    GNU BASH : /bin/bash

    GNU Bash

    B.A.S.H. = Bourne Again Shell (superbe jeu de mots avec Born Again Shell). Bash implémente la norme POSIX… et un peu plus.

    GNU bash connait une première release en 1989. Il reprendra à son compte des fonctionnalités trouvées jusqu'ici dans de précédents shells, y compris Korn Shell. Bash reste le shell interactif par défaut sur de nombreuses distributions. Il fut le shell sous MacOS.

    Anecdote - quel est le plus gros programme bash que vous connaissiez ? nb, qui propose de gérer vos notes en mode texte (org, markdown, etc), est principalement composé d'un script .sh de … 26736 lignes. Je vous laisse partager vos trouvailles en commentaire !

    DASH : le Debian Almquist shell est renommé ainsi en 1997. Debian l'adopte par défaut pour les scripts, tandis que le shell interactif des utilisateurs reste bash. Ubuntu y passe par défaut sur la 6.10. Dash est léger et performant. Moins de dépendances égal plus de sécurité.

    ZSH

    ZSH ZSH sort en 1990. Toujours compatible avec la norme POSIX, Zsh va améliorer de bien pratiques fonctionnalités d'auto-complétion : appuyez sur <TAB> et Zsh complète pour vous.

    Mais bien plus largement, Zsh va atteindre le paroxysme en terme de fonctionnalités. Tout existe dans Zsh.

    Zsh est connu pour proposer de très nombreuses possibilités de configuration. Ses plugins se comptent par centaine — y compris plusieurs gestionnaires de plugins… Mais un outil très utilisé pour le configurer sort du lot : Oh my zsh, qui permet de gérer plus de 300 plugins ainsi que de nombreux thèmes.

    FISH

    Fish

    Fish pour "Friendly Interactive Shell", date de 2005. C'est un shell non POSIX - certaines fonctionnalités ne seront pas compatibles. Un script bash ne marchera pas forcément.

    Ce shell se veut demander peu de configuration - il est prêt à l'emploi. Choix appréciable quand on peut déjà passer tant de temps à configurer d'autres choses (distro, bureaux, nano, terminaux..)  !

    Il suffit de l'installer pour avoir

    • une coloration syntaxique indiquant quelle commande est valide
    • suggestions : en tapant, on obtient des candidats que l'on peut auto-compléter

    Fish est également scriptable et se veut proposer un syntaxe plus saine. À vous de tester (mais vous ne codez qu'en Rust, n'est-ce pas ?)

    Le gros point de Fish à mon sens, c'est de proposer une configuration par défaut déjà utilisable, comme le fait de se baser sur les pages man ainsi que sur l'historique pour proposer l'auto-complétion. Oubliez les heures passées à configurer - je ne sais pas si Fish a le plus de chevaux dans le moteur, mais avec lui vous êtes déjà prêts à partir.

    Petite fonctionnalité sympa, taper fish_config ouvre une page ouaibe. On peut alors prévisualiser les thèmes, personnaliser le prompt, visualiser les fonctions et variables, consulter l'historique et les raccourcis claviers. Fish a un mode vi.

    Fish a été réécrit en Rust entre 2022 et 2024.

    Ravissant multiplex, 200 mètres carrés

    Gnu Screen

    Ok donc nous avons un shell à choisir, y compris le prompt et il faudra le lancer dans un terminal, mais avant ça, si on avait un gestionnaire de fenêtre dans le gestionnaire de fenêtre ? C'est bien comme cela qu'est présenté GNU Screen, qui gère des fenêtres, typiquement de terminaux. C'est un multiplexeur, en français : la possibilité d'ouvrir plusieurs terminaux dans un seul terminal. GNU Screen sait lister les terminaux ouverts, passer de l'un à l'autre, en tuer… Comme souvent, le wiki arch détaille bien notre affaire concernant screen. Mais GNU Screen est un vieux de la vieille, qui date de 1987.

    Tmux

    Plus souvent cité de nos jours, Tmux (2007) propose des raccourcis à la Emacs ou à la Vim, un menu graphique, des splits verticaux ou horizontaux.

    Zellij

    Il existe d'autres multiplexeurs. On peut citer par ex. Zellij, orienté développeurs, qui affiche une barre de statut, peut afficher les raccourcis claviers…

    Envolez-vous vers un nouveau terminal

    Le choix d'un terminal pourra définir l'apparence de votre interface, comment vous gérez le multi-fenêtre et/ou multi-onglet, la capacité à rechercher, copier-coller, les raccourcis clavier, peut être même comment accéder aux emplacements, vous connecter en ssh.

    Certains terminaux proposent un mode inspiré de Guake (première release 2007), lui même inspiré du terminal dans Quake : le terminal est toujours ouvert et dispo, mais caché et l'appui d'un raccourci clavier le fera apparaître. Le temps de taper trois commandes et le même raccourci le fera disparaître. À voir ce qui se fait encore sous Wayland, je vois par ex. qu'il y a encore une extension GNOME.

    La console sur le bureau

    Première piste : tout simplement utiliser la terminal qui vient avec son bureau, si l'on en utilise un. Évidemment le premier avantage sera une bonne intégration, mais en pratique ?

    Nous verrons aussi plus bas certains terminaux qui sont le terminal par défaut de gestionnaires de fenêtre, mais il s'agit simplement d'un choix par défaut et pas d'une affiliation ni d'une intégration particulière, donc pas de raison de les mentionner ici.

    Console (GNOME)

    Le terminal par défaut a changé sous GNOME 42 (euh bah oui c'était y'a un moment), pour devenir GNOME Console (anciennement Kings Cross Station d'où kgx — j'ai cherché l’exécutable un moment…). Assez peu de fonctions particulières mais : devient rouge lorsqu'on est connecté en root ou violet en ssh, envoie une notif quand une longue commande se termine, sympa. Un bouton de recherche un peu étonnant peut s'avérer pratique. Clairement la logique est d'afficher peu de boutons, peu de choix, et d'investir sur des options par défaut qui fonctionnent. Je ne vais pas retenir Console pour mon usage mais je trouve qu'effectivement c'est un terminal élégant.

    Pour changer le shell de Console, il faudra passer par l'éditeur dconf et modifier l'option org.gnome.Console.shell.

    Certaines distributions ont préféré maintenir gnome-terminal, plus complet, mais gnome-terminal est resté Gtk3 (alors que kgx est bien Gtk4).

    Petite note sur kgx et gnome-terminal : ces terminaux sont basés sur la libvte dont dépendent d'autres terminaux GTK. Voici quelques exemple cités par une page du wiki gnome :

    On pourrait y ajouter Lxterminal (merci à Impromptux).

    Konsole

    Konsole

    Le choix logique pour le bureau KDE. En termes de fonctionnalités, c'est l'artillerie lourde. Multi-profils, signets, multiplexeur, prévisualisation d'images. Konsole est intégrée dans plusieurs applications KDE.

    Pour changer le shell de Konsole, vous pouvez passer par le menu Settings > Configure Konsole > Profiles .

    C'est le moment de mentionner Qtermwidget : ce widget fut originellement basé sur Konsole et servit à développer Qterminal.

    xfce-terminal

    Terminal par défaut du bureau Xfce. Il dépend et hérite de libvte. Il est en Gtk3.

    • Permet plusieurs onglets
    • Intégration avec un gestionnaire de fichiers (ouverture dans le répertoire courant du terminal)
    • Prévention de collage dangereux : quand ça contient un retour chariot, ouvre une popup qui permet d’inspecter et modifier le contenu dangereux.
    • Permet d’envoyer un signal au processus en cours
    • Permet d’avoir une console rapide à la Guake
    • Permet de colorer les onglets manuellement.

    Il est possible de changer le shell dans les préférences.

    Terminology

    Terminology

    Ce terminal sort en 2013, il fait partie du bureau Enlightenment Je pense que c'est le premier terminal à pouvoir afficher des images. Il est possible d'avoir des informations en survolant une URL. Une barre de progression s'affiche durant l’exécution de commandes. Les performances sont au rendez-vous. (Subjectif - serait-ce tout simplement la meilleure appli e17?)

    Emacs et (Neo)Vim

    Mais plutôt que d'utiliser le terminal intégré à son environnement de bureau, pourquoi ne pas utiliser directement celui intégré à son éditeur de texte? Un bon éditeur de texte en effet a forcément son bon terminal. Même Vim? Et oui. C'est donc une solution de lancer le terminal depuis l'éditeur de texte, par exemple pour reproduire les fonctionnalité d'une IME vivre sa vie entière en mode texte.

    Emacs

    Démarrons tout de même par Emacs, où la prise en charge du terminal est plus ancienne.

    Emacs a… 4 terminaux, pourquoi faire simple. 4 terminaux ? Non pas vraiment : 2 shell et 2 terminaux. Il peut y en avoir plus.
    En fait, puisqu'on peut, malgré la rumeur, bel et bien éditer du texte dans emacs, pourquoi ne pas gérer ses commandes au même endroit ? On peut même s'amuser à gérer ses fichiers dans dired, ses processus, finalement un peu tout l'aspect système.

    Mastering Emacs le développe mieux que moi mais vous aurez donc plusieurs possibilités sous Emacs :

    2 SHELLS

    • eshell, le plus emacsien des 2 : un shell 100% implémenté en elisp (!!!). On peut faire beaucoup de emacs dedans , mais tout ne fonctionnera pas. Ne lancez pas journalctl dedans ^^
    • shell. Même chose, ne lancez pas journalctl

    2 TERMINAUX

    • term / ansi-term. Cette fois c'est vraiment un terminal, mais… lent.
    • vterm. Ok cette fois c'est vraiment un terminal, et ça utilise une bibliothèque en C derrière, donc ouf un vrai terminal Emacs existe bel et bien. Attention vterm a besoin d'une bibliothèque.

    Oui je pense qu'il y a vraiment des utilisateurs du terminal sous Emacs. Et il est possible de trouver de petits benchmarks sur les réseaux comme par exemple reddit.

    Vim

    Qui a dit que vim n'était pas bloated et ne pouvait pas gérer cela? (À sa défense vim ne gère pas encore l'email.. ) Vim prend en charge le terminal depuis la version 8.1. Pour changer le shell dans vim, ajouter cette commande dans le fichier de config

    :set shell=/usr/bin/zsh
    

    Les indies

    Pourquoi utiliser le terminal de son bureau, ou de son éditeur de texte, alors que l'on peut utiliser un million d'autres ? Bienvenue dans la jungle. Ne m'en voulez pas si votre petit favori n'est pas listé ici, mais rajoutez sa description en commentaire - il a existé de bien trop nombreux concurrents, et même en se limitant aux projets actifs la liste est bien trop longue. La liste ici pourrait compléter cette dépêche.

    Je rappelle que sont listés ici les terminaux qui sont proposés par défaut sous certains gestionnaires de fenêtre, le parti pris étant que dans ce cas il n'y ait pas d'intégration particulière, contrairement par exemple au terminal KDE.

    Enfin la liste se veut à moitié lister les terminaux populaires actuels, à moitié lister quelques terminaux plus pour un intérêt historique, mais cette dépêche n'étant pas une thèse cette volonté sera assez peu rigoureuse.

    Blackbox

    Blackbox terminal n'est pas affilié à GNOME ni un terminal officiel mais est développé avec cet environnement en tête. Il utilise Gtk4.

    Ptyxis

    Là c'est un cas à part : pour reprendre sans recul le readme.md :

    A modern terminal emulator built for the container era.
    Seamlessly navigate between your host system and local containers like Podman,
    Toolbox, and Distrobox with intelligent detection and a beautiful, responsive
    GNOME interface.

    L'intérêt est donc d'intégrer les conteneurs de toutes sortes pour y accéder rapidement (et les définir rapidement).

    Ptyxis

    Il semblerait qu'il puisse devenir le terminal par défaut sous Ubuntu (25.10?).

    St

    La philosophie de st, dont la première release, 0.1, est de 2017, c'est de rester simple et léger - le point que son site discute, c'est le nombre de lignes de codes limité que devrait avoir un terminal. Son auteur serait fainéant ? Ce terminal sous licence MIT/X Consortium s'apparente à mon sens à un reliquat du passé : il tourne sur X et uniquement sur X (oui, oui je sais pour Xwayland). Néanmoins il m'a paru logique de le citer ici.

    Kitty

    Kitty a une place importante car il a légué quelque chose aux successeurs… Il implémente en effet des extensions venant étendre le protocole historique.

    Ce terminal tourne sous Python et requiert OpenGL. Malgré son âge (première release 2017), c'est le choix par défaut pour Hyprland.

    Kitty offre une tonne de raccourcis claviers, gère les onglets/fenêtres, peut afficher des images, sait afficher des notifications et bien d'autres choses. En terme de philosophie, il se veut orienté power-user.

    Alacritty

    Alacritty se veut un terminal simple et est écrit en Rust. Il est sortit en 2017. Alacritty respecte XDG en cherchant en priorité un fichier de config $XDG_CONFIG_HOME/alacritty/alacritty.toml.

    C'est le terminal par défaut pour au moins deux gestionnaires de fenêtre Wayland très différents l'un de l'autre : Wayfire et Niri.

    • vi mode : appuyez sur control + shift + space et vous passez dans le mode "normal" de vi (par opposition au mode insertion). Les touches au lieu de permettre de taper du texte, permettront alors de se déplacer, sélectionner du texte, le copier…
    • ctrl shift o pour afficher des "hint" sur les URL, ce qui permet de les activer en 1 touche
    • recherche normal (ctrl shift f ) , recherche vi
    • multi fenêtre (spawn new instance)
    • theme https://github.com/alacritty/alacritty-theme

    Pas d'onglet, pas de split — utiliser un multiplexeur au besoin.

    Foot

    Ce serait un peu le successeur de St, au sens où il est codé en C et les premières fonctionnalités mises en avant sont la légèreté et la performance, mais en natif Wayland. Pour autant Foot n'est pas avare sur certaines fonctionnalité. Sa première release est de 2019. C'est le terminal par défaut pour Sway, Dwl.

    Il faudra le configurer à l'aide d'un fichier texte, et foot respectant XDG, ce sera ici $XDG_CONFIG_HOME/foot/foot.ini. Foot propose pas mal de raccourcis claviers, dont le même Hint mode que Alacritty : taper Ctrl Shift O .

    Au cas où il ne serait pas assez léger, Foot propose un mode serveur.

    Wezterm

    De nouveau un terminal en Rust. Wezterm se veut complet, et cross-platform. Il affiche des images, gère les hyperliens, la connexion en SSH avec un client intégré, fait office de multiplexeur.

    Il se configure en Lua.

    Ghostty

    Ghostty

    Ghostty est sous licence MIT. LWN l'a présenté. Il s'agit d'une application récente, début en 2022, v1.0 fin 2024.

    Une barre gtk4 permet d'afficher les onglets, d'en créer un nouveau. Sympatique fonction, ghostty +list-keybinds --default montre toutes les options (et un raccourci permet d'éditer le fichier de config). On peut aussi lister les thèmes avec ghostty +list-themes.

    Peut afficher des gifs, comme Kitty.

    Ghostty se veut un compromis entre la vitesse, les fonctionnalités, l'interface, et cross-platform. Il se veut agréable sans avoir besoin de modifier le paramétrage par défaut. Et il est petit, le paquet Debian par exemple fait 113 Ko.

    Vous pouvez changer le shell sous Ghostty :

    ~/.config/ghostty/config:
    command = /usr/local/bin/fish --login --interactive
    
    

    De plus Ghostty intègre des fonctionnalités "Shell-integration".

    Rio

    (2022)
    https://github.com/raphamorim/rio
    vi mode, hyperlinks, images,

    Le shell peut être modifié dans la config, plusieurs exemples sont fournis

    [shell]
    program = "pwsh"
    args = ["-l"]

    Warp

    Alors là on bascule du côté obscur de l'IA !… et du proprio. Warp est d'abord une entreprise, qui a souhaité réimaginer un outil des développeurs - le terminal. Ce terminal, écrit en Rust, ne sera pas open source : https://github.com/warpdotdev/Warp/discussions/400

    À la première ouverture, Warp suggère d'ouvrir un compte « pour bénéficier de toutes les fonctionnalités ». Ensuite, on ne se trouve pas directement dans une console mais Warp propose plutôt d'ouvrir / cloner un projet. Un raccourci permet cependant de lancer une session normale…
    … Si ce n'est qu'outre des commandes, on peut taper des phrases ! En passant par Claude pour les interpréter… L'IA peut également suggérer des commandes en se basant sur votre historique. Tout ceci peut être désactivé dans les paramètres. Les fonctionnalités IA requièrent une connexion Internet.

    J'ai par exemple testé "Install Wave term from the internet". Warp a commencé par vérifier s'il y avait une commande de disponible "yay", mais cette commande n'était pas dispo sur mon système. Il a alors intelligemment testé d'autres gestionnaires de AUR et a trouvé que paru était installé. De là, il a découvert waveterm dans les dépôts AUR et m'a suggéré d'utiliser paru -S waveterm-bin (control+entrée pour valider, et gogogo). Une fois ces folies passées, on revient à une expérience normale où la commande se déroule (pensez à lire les AUR avant d'installer aveuglément !)

    Quand vous parcourez un projet, Warp peut indexer ces projets pour améliorer les suggestions.

    Au lieu d'utiliser votre clavier pour taper, Warp peut reconnaître votre voix. Outre des commandes ou des phrases, il est possible de commencer par un "/" pour taper une "slash command".

    Il y a également des fonctionnalités d'équipe, notamment une fonctionnalité de collaboration en temps réel. Certaines fonctionnalités sont payantes.

    Warp propose un certain nombre de fonctionnalités classiques : personnalisation du prompt, apparence, raccourcis claviers, …

    L'entreprise fournit un benchmark où Warp s'en sortirait aussi bien que Kitty ou Alacritty sur vtebench

    WaveTerm

    Waveterm est un peu la réponse open source à Warp (Apache 2.0).

    Quand on l'ouvre la première fois, c'est la foire ! à gauche, le panneau invite de commande qui occupe un tiers de l'écran.
    Tiers du milieu : en haut la consommation du CPU (hein?). Au milieu, un bout de page internet (hein?). En bas, un explorateur de projet. Tiers à droite : en haut, des raccourcis clavier qui s'affichent. Au milieu, un bout de doc sur Wave. En bas, une invite pour Wave IA. Bien sûr il s'agit d'une démo et il sera possible de personnaliser ce qui est visible au démarrage. Il est également possible lorsqu'on utilise un des "blocs" de le passer en mode "pleine fenêtre" puis le réduire par la suite.

    Bon, testons l'invite IA en demandant d'installer… Warp! Il commence par m'expliquer les différentes méthodes d'install en fonction de l'OS (ah ! il n'a pas détecté…). J'explique que j'utilise Arch et il me dit d'utiliser un AUR helper ou de cloner le dépôt du AUR. Mais il ne détecte pas si j'ai paru ou yay ou autre.

    On peut utiliser d'autres modules IA. Wave inclut également un explorateur de fichiers.
    Les paramètres se gèrent bloc par bloc - on paramètre d'un côté les blocs que l'on souhaite au démarrage, de l'autre pour un bloc donnée, par exemple les préférences.

    3. Liens

    Norme POSIX sur le shell

    https://linuxfr.org/news/gameshell-apprendre-les-rudiments-du-shell-en-s-amusant

    Bref cours sur le shell

    Cours plus complet sur le Bourne Shell

    Revue de fish :

    Autre revue de Fish

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    • ✇LinuxFr.org : les dépêches
    • 40 ans pour l'informatique libre | Entretien avec Richard Stallman
      Samedi 4 octobre 2025, la Free Software Foundation (FSF) fête ses 40 ans d'existence ! 4 décennies pour défendre les 4 libertés fondamentales sur lesquelles se fonde le logiciel libre. la liberté d'exécuter le programme, pour tous les usages ; la liberté d'étudier le fonctionnement du programme et de l'adapter à ses besoins ; la liberté de redistribuer des copies du programme (ce qui implique la possibilité aussi bien de donner que de vendre des copies) ; la liberté d'améliorer le programme e

    40 ans pour l'informatique libre | Entretien avec Richard Stallman

    Par : sbillois Arkem
    8 octobre 2025 à 07:47

    Samedi 4 octobre 2025, la Free Software Foundation (FSF) fête ses 40 ans d'existence ! 4 décennies pour défendre les 4 libertés fondamentales sur lesquelles se fonde le logiciel libre.

    • la liberté d'exécuter le programme, pour tous les usages ;
    • la liberté d'étudier le fonctionnement du programme et de l'adapter à ses besoins ;
    • la liberté de redistribuer des copies du programme (ce qui implique la possibilité aussi bien de donner que de vendre des copies) ;
    • la liberté d'améliorer le programme et de distribuer ces améliorations au public, pour en faire profiter toute la communauté.

    Pour revenir sur ces 40 ans de combat en faveur du logiciel libre, j'ai eu l’honneur de pouvoir avoir un entretien avec Richard Stallman (RMS), fondateur du projet GNU, de la FSF, et l’initiateur du mouvement du logiciel libre.

    Vous trouverez la transcription de cet entretien dans cette dépêche, ainsi que le lien vers la vidéo de celle-ci.

    Merci du fond du cœur à Richard pour sa gentillesse, sa patience et sa bienveillance pour cette interview qui était une première pour moi. Entre le stress et mes bégaiements, il fallait bien quelqu'un d'aussi cool que lui. 😅

    Et un grand merci aussi à Aurore, la monteuse de cette vidéo, qui a réussi astucieusement à masquer ces fameux bégaiements ! 😉

    Le texte de cet entretien est sous licence CC-BY-ND

    Logo 40 ns FSF

    Stéphane :
    Bonjour Richard.

    Richard :
    Bonjour, c’est un plaisir.

    Stéphane :
    Le plaisir est pour moi également. Merci beaucoup de me permettre de t’interroger à l’occasion des 40 ans de la Free Software Foundation. Pour commencer, puisque l’histoire de la FSF est indissociable de celle du projet GNU, j’aimerais revenir aux origines. Comment est né le projet GNU ? Pourquoi ce nom, quelle en était la philosophie, les fondements techniques ? Et en quoi la création de la FSF, deux ans plus tard, a-t-elle été une continuité de ce projet ?

    Richard :
    J’ai d’abord décidé de développer un système d’exploitation constitué uniquement de logiciels libres. Dans les années 1970, j’utilisais déjà un système libre, développé dans le même laboratoire que moi, et mon travail consistait à l’améliorer en modifiant son code. Tout le monde pouvait accéder à ce code, c’était dans les faits du logiciel libre. Mais ce système a fini par disparaître, ainsi que la communauté qui l’entourait.

    Pour moi, ce fut une perte immense. J’ai alors pris conscience du caractère injuste et tyrannique du logiciel privateur. J’ai compris que cela ne pourrait jamais être juste. Pour remplacer ce que j’avais perdu, je voulais créer un autre système libre, capable de soutenir une communauté similaire. J’ai choisi de m’inspirer de l’organisation d’Unix : c’était le meilleur modèle à suivre.

    Je cherchais aussi un acronyme récursif comme nom : GNU, pour GNU’s Not Unix. Cela ajoutait une touche d’humour. J’ai annoncé publiquement le projet en septembre 1983 et invité d’autres personnes à développer les différents composants, car un système de type Unix se compose de nombreux éléments plus ou moins indépendants.

    Deux ans plus tard, nous avions suffisamment de succès pour qu’il devienne utile de créer une fondation : pour gérer les financements, conserver les droits d’auteur et soutenir le projet. C’est ainsi qu’est née la FSF, Free Software Foundation, ou Fondation pour le logiciel libre en français.

    Ce point est d’ailleurs important : en français, la distinction entre "gratuit" et “libre” est claire. Cela m’a appris à préciser en anglais : depuis vingt ans, je n’emploie plus “free” pour dire gratuit, je dis gratis. Et pour la liberté, j’utilise toujours freedom. Ainsi, il n’y a plus d’ambiguïté.

    Stéphane :
    En anglais, l’ambiguïté est apparue avec le logiciel : auparavant, le contexte levait toute confusion. Mais dans l’informatique, on trouve des programmes gratuits… qui ne sont pas libres du tout.

    Richard :
    C’est vrai. Et inversement, on peut payer pour acquérir une copie d’un programme libre. Les deux catégories — libre et gratuit — sont indépendantes.

    Stéphane :
    Exactement. Et donc, la FSF permettait non seulement de financer le projet, mais aussi de garantir les droits d’auteur. Car il est légalement impossible de rédiger une licence qui assure à 100 % qu’un programme restera libre. Par exemple, si je publie un logiciel sous GPL, ceux qui utiliseront mon logiciel, devront publier leurs modifications sous la même licence. Mais moi, je pourrais rendre à tout moment le code privateur…

    Richard :
    Il faut bien distinguer deux choses : ce que l’auteur peut faire, et ce que les utilisateurs, qui reçoivent le logiciel sous une licence libre, peuvent faire. Les utilisateurs sont légalement contraints par la licence : s’il s’agit d’une licence avec gauche d’auteur (copyleft), ils ne peuvent créer que des versions libres.

    Mais l’auteur, lui, ne dépend pas de sa propre licence : il reste propriétaire du code. Il peut donc publier une autre version, y compris privatrice. Mais s’il est un activiste du logiciel libre, il ne voudra pas le faire.

    Stéphane :
    Bien sûr. Et c’est là qu’une fondation comme la FSF est essentielle : elle garantit que les logiciels sous son copyright resteront toujours libres.

    Richard :
    Oui. C’est la mission de la FSF : protéger la liberté des utilisateurs. Autrement dit, éviter qu’un utilisateur ne prenne du pouvoir sur les autres. Si la liberté est pour tous, ça veut dire que personne n'a de pouvoir sur personne.

    Stéphane :
    On comprend donc bien le rôle essentiel de la FSF, en complément du projet GNU : protéger juridiquement, notamment via le droit d’auteur, et assurer aussi un soutien financier. Parce qu’il arrive que certaines entreprises publient des logiciels qu’elles qualifient de « libres » ou « open source » — les deux termes étant souvent confondus —, mais parfois dans l’unique but de profiter du travail bénévole, avant de fermer le code…

    Richard :
    Je préfère qu’on n’utilise pas les termes « ouvrir » ou « fermer », car cela renvoie à la logique de l’open source. Or, moi, je ne défends pas l’open source, je défends la liberté.
    Il est vrai que la plupart des programmes dits open source sont aussi libres. Mais certains ne le sont pas, et il est important de faire la distinction. Puisque notre combat porte sur le logiciel libre, il est plus clair d’éviter les expressions qui risquent de brouiller le message et de laisser croire qu’il s’agit simplement d’open source.

    Stéphane :
    Du coup, j’avais une autre question par rapport au début du projet GNU. Avant l’arrivée de Linux… Moi, quand je parle de Linux, comme toi, je parle uniquement du noyau, parce qu’il y a un amalgame terrible entre le système GNU/Linux et le noyau Linux.
    Alors, avant 1991, comment les utilisateurs de GNU faisaient-ils pour utiliser le système ?

    Richard :
    Ils l’utilisaient sur Unix. C’était la seule manière. Nous n’avions pas encore de noyau libre, donc pas de système complet. Les gens installaient les composants GNU et d’autres composants libres sur Unix, pour remplacer certains éléments. Mais il était impossible de tout remplacer. C’était le but, mais il n’était pas encore atteint.

    Quand Torvalds a publié la première version de Linux, son noyau n’était pas libre. Il avait assisté à ma conférence en Finlande, mais n’avait pas suivi mes conseils. Il a choisi une licence qui ne donnait pas toutes les libertés nécessaires. Mais six mois plus tard, il a finalement publié Linux sous la GPL de GNU. C’est à ce moment-là que Linux est devenu libre.

    De notre côté, nous avions déjà commencé un projet de noyau libre, le Hurd. Au départ, d’après l’évaluation d’un ami, Linux ne paraissait pas très intéressant. Mais il avançait très vite, alors que notre conception, trop complexe, posait beaucoup de difficultés. Finalement, nous avons décidé d’utiliser Linux comme noyau.

    Stéphane :
    Justement, à ce moment-là, quand Linux a commencé à prendre de l’ampleur, comment se passaient les relations entre la FSF et le projet GNU d’un côté, et Linus Torvalds de l’autre ? Est-ce qu’il a été question, à un moment donné, d’intégrer Linux officiellement comme projet GNU ?

    Richard :
    Non. Linus n’était pas très amical envers nous. Je soupçonne que notre insistance sur le nom “GNU/Linux” le dérangeait. Il n’aimait pas que nous refusions d’appeler notre projet “Linux”, comme si c’était le sien. Je crois qu’il avait des émotions contradictoires. Parfois, il reconnaissait l’histoire, et parfois il revenait dessus. C’était compliqué, et je ne peux pas deviner ses sentiments exacts.

    Stéphane :
    Une autre question : le noyau Hurd, qui au départ s’appelait “Alix” si je ne me trompe pas… Est-ce que le fait de le développer comme un micro-noyau a freiné son avancée ? Parce que tu disais que Linux progressait très rapidement. Est-ce que c’était une approche trop avant-gardiste, qui a permis à Linux de prendre l’avantage ?

    Richard :
    Oui, le développement du Hurd a traîné très longtemps. Et il a rencontré des problèmes fondamentaux, très difficiles à résoudre. Personne ne savait vraiment comment les résoudre. C’est ça qui m’a convaincu qu’il ne valait plus la peine d’insister.

    Quant au nom “Alix”, c’était au départ une blague. J’avais une copine qui s’appelait Alix, administratrice d’un groupe Unix. Elle avait plaisanté en disant qu’il faudrait donner son prénom à un noyau. J’ai décidé de le faire, secrètement, pour la surprendre.

    Stéphane :
    Ça a dû lui faire plaisir.

    Richard :
    Oui, un peu. Mais ensuite des évènements ont changé les plans, le développeur principal du Hurd préférait le nom “Hurd”. Il a relégué “Alix” à une seule partie du code. Un changement de conception a finalement supprimé cette partie. Et puis, ma copine a changé de nom, et nous nous sommes séparés. Mais certains avaient déjà vu “Alix” apparaître dans le code, la rumeur a circulé, et elle en a ri.

    Stéphane :
    Donc, si je comprends bien, à l’origine “Alix” désignait l’ensemble du noyau, puis seulement une composante, et cette composante a finalement été supprimée ?

    Richard :
    Exactement. “Alix” désignait la partie qui gérait les appels système. Mais on a fini par se rendre compte qu’il n’y avait pas besoin de cette couche spécifique : la bibliothèque C pouvait très bien assurer la communication avec les serveurs du Hurd.

    Stéphane:
    Vous avez laissé le développement de Hurd quand Linux est arrivé.

    Richard:
    Non, pas immédiatement, quelques années plus tard.

    Stéphane :
    Au début des années 1990, beaucoup de choses se sont mises en place. On a vu l’arrivée du noyau Linux en 1991, qui, combiné avec GNU, permettait enfin un système complet. Dès 1992, certaines sociétés ont commencé à distribuer des versions commerciales de GNU/Linux, comme Red Hat ou SUSE.
    Comment perçois-tu aujourd’hui leur rôle ? Red Hat, par exemple, contribue énormément à des projets libres comme GNOME, dont ils sont même les principaux contributeurs. Mais en même temps, dans leurs discours, ils se revendiquent davantage du mouvement “open source”.

    Richard :
    Ah non. Ce n’est pas exact de parler d’un “mouvement open source”. L’idée de l’open source n’était pas de se constituer en mouvement.

    Stéphane :
    C’est vrai.

    Richard :
    Le mouvement du logiciel libre, est un mouvement pour corriger un mal dans la société, une injustice. Nous disons qu’il faut remplacer les programmes privateurs par des logiciels libres, afin de libérer les utilisateurs de l’informatique. Ceux qui ont lancé l’idée d’“open source”, eux, ont rejeté cette dimension éthique. Ils ne voulaient pas reconnaître l’injustice qu’il y avait à priver les gens de liberté.

    Ils présentent l’open source comme quelque chose de plus agréable, une manière plus commode de développer ou d’utiliser un logiciel, si tu en as envie. Mais ils n’ont pas l’objectif de corriger cette injustice. Donc, pour moi, ce n’est pas un mouvement.

    Stéphane :
    C’est plus une méthode de travail.

    Richard :
    Oui. D’ailleurs, Eric Raymond a associé l’open source à une méthode de développement particulière. Ce n’était pas uniquement lui : Linus Torvalds avait sans doute initié cette approche. Mais une fois qu’Eric Raymond l’a décrite dans ses écrits, beaucoup de gens ont commencé à l’expérimenter, y compris les développeurs du Hurd.

    Finalement, cette méthode s’est retrouvée liée à l’expression “open source”. Mais en vérité, le choix d’une méthode de développement est indépendant de toute philosophie morale.

    Stéphane :
    Tout à fait. Et donc, dans ce contexte, l’open source, officiellement, naît en 1998 avec l’Open Source Initiative. Mais Red Hat et SUSE distribuaient déjà des versions commerciales de GNU/Linux dès 1992. Est-ce qu’avant la création de l’OSI, ces sociétés avaient la volonté de collaborer réellement avec le mouvement du logiciel libre ?

    Richard :
    Elles collaboraient parfois, oui. Mais elles agissaient aussi à l’inverse de notre éthique. Les deux en même temps.

    Stéphane :
    Donc elles avaient déjà des contradictions à l’époque ?

    Richard :
    Je ne dirais pas des contradictions, car elles n’ont jamais vraiment adhéré aux principes du mouvement du logiciel libre. Dès le début, elles distribuaient un système qui mélangeait beaucoup de programmes libres avec, parfois, des programmes privateurs. Pour nous, c’était un problème.

    Nous ne pouvions pas recommander ces distributions, ni dire à quelqu’un “installez Red Hat” ou “installez SUSE”, si elles contenaient des logiciels privateurs.

    Stéphane :
    Bien sûr. Mais malgré tout, par leurs contributions importantes à des projets libres, est-ce qu’elles pouvaient être considérées comme des alliées ?

    Richard :
    Oui, en un sens. Mais c’était difficile pour nous de savoir comment en parler. Dans une logique de “donnant-donnant”, on aurait pu se dire : “Puisqu’elles contribuent beaucoup, la récompense naturelle serait de recommander leur système.” Mais pour nous, c’était impossible.

    Nous ne pouvions pas recommander l’installation de quoi que ce soit qui contienne un logiciel privateur, car ce serait cautionner une injustice. Cela nous aurait placés dans une contradiction morale.

    Stéphane :
    Donc, quand l’OSI est créée en 1998, c’est bien une scission. Certains ne se reconnaissaient pas dans l’éthique du logiciel libre. Qu’est-ce qui a réellement provoqué cette séparation ? Était-ce le copyleft ?

    Richard :
    Non, ça n’avait rien à voir avec le copyleft. C’était une divergence philosophique, fondamentale. Pour nous, tout repose sur une question de liberté et de justice face à l’injustice. Imposer à quelqu'un l'interdiction de partager des copies est injuste et immoral. C’est détestable ! Il faut ne jamais le faire.

    Quand il s’agit d’œuvres fonctionnelles — c’est-à-dire destinées à être utilisées — les gens méritent la liberté de collaborer avec les autres. Dans la communauté du logiciel libre, tout le monde n’était pas d’accord avec cette philosophie, mais cela n’empêchait pas de contribuer. On peut contribuer pour d’autres raisons, et ces contributions gardent leur valeur.

    Mais la philosophie reste importante.

    Stéphane :
    Donc, la question du copyleft, à elle seule, n’aurait pas pu provoquer cette scission ? Parce que longtemps j’ai cru qu’un logiciel libre sans copyleft n’était pas vraiment libre.

    Richard :
    C’etait une erreur. Pourquoi tant de gens la commettent, je ne comprends pas. Sur gnu.org, nous avons une liste de licences que nous avons évaluées, et tu peux voir lesquelles sont libres ou non. Tu verras que beaucoup de licences sans gauche d'auteur — que beaucoup appellent à tort “licences open source” — sont aussi des licences libres.

    Les gauches d'auteurs, c’est une autre question philosophique. Entre deux manières de respecter la liberté des utilisateurs :

    • soit on exige que les versions modifiées restent libres sous la même licence,
    • soit on permet que quelqu’un publie une version modifiée non libre.

    Le gauche d'auteur est la méthode qui impose que toute version modifiée reste libre de la même manière. Les licences “permissives”, elles, autorisent des versions modifiés non libres.

    Stéphane :
    Certaines personnes te trouvent trop radical. Mais finalement, je me rends compte que par certains côtés, j’étais encore plus radical que toi, puisque je voulais exclure du logiciel libre les programmes sans copyleft.

    Richard :
    C’est vrai, mais j’avais mes raisons. Mon objectif était de pouvoir distribuer un système d’exploitation complet qui respecte la liberté fondamentale des utilisateurs. Et pour cela, les licences sans gauche d'auteur pouvaient suffire pour certains composants de ce système.

    Dès les années 1980, il existait déjà des logiciels libres utiles publiés sous des licences sans gauche d'auteur, car ce type de licence existait avant même le gauche d'auteur. Comme il n’était pas nécessaire de les rejeter, je préférais les utiliser.

    Stéphane :
    Je comprends. Mais sans copyleft, j’ai l’impression qu’il y a un risque : celui qu’un programme soit, un jour, fermé…

    Richard :
    Soit fermé ou restreint

    Stéphane :
    Restreint, disons… Oui, je n’ai pas encore ce réflexe de langage d’éviter de dire « fermé ». Ce que je voulais dire, c’est que sans copyleft, on prend un risque : celui que la liberté disparaisse.
    Je pense notamment à macOS, basé sur FreeBSD. C’est une version d’Unix libre, mais protégée par des licences sans gauche d'auteur. Résultat : Apple a pu reprendre tout ce travail et construire un système qui prive complètement les utilisateurs de leur liberté. C’est pour ça que je considère le copyleft comme important.

    Richard Stallman :
    Oui, mais il faut préciser que FreeBSD existe toujours, n’est-ce pas ?

    Stéphane :
    Tout à fait, c’est vrai.

    Richard Stallman :
    Les mots que tu as employés laissaient entendre qu’Apple avait pris le pouvoir sur FreeBSD et l’avait rendu privateur. Mais ce n’est pas le cas. Apple a créé sa propre version privatrice, mais n'a pas converti FreeBSD en projet privateur.

    Stéphane :
    C’est vrai.

    Richard Stallman :
    Il faut éviter ce genre d’exagération, car elle porte à confusion.

    Stéphane :
    Mais même s’ils ne l’ont pas supprimé, FreeBSD existe toujours, c’est vrai. Pourtant, Apple bénéficie énormément du travail qui a été fait de manière, disons, « ouverte », et a eu le droit de le « fermer ». Et c'est vrai que…

    Richard Stallman :
    « Ouverte » et « fermée »…

    Stéphane :
    Oui, tu as raison. J’ai intégré certains réflexes, comme ne pas confondre open source et logiciel libre. Mais dans les discussions avec des développeurs, les termes « ouvert » et « fermé » reviennent tellement souvent que j’ai tendance à les répéter. Je dois faire attention à ce tic de langage.

    Richard Stallman :
    Je veux souligner un point philosophique. Le vrai problème, c’est qu’Apple distribue des programmes privateurs. Le fait qu’elle ait utilisé du code libre provenant de FreeBSD pour le développer est secondaire, un détail.
    Ce n’est pas pour ça que les actions d'Apple sont injustes. Si Apple avait embauché beaucoup de programmeurs pour écrire un autre code, sans réutiliser celui de FreeBSD, mais avec le même résultat, l’injustice aurait été exactement la même.

    Stéphane :
    C’est vrai.

    Richard Stallman :
    Les chercheurs et développeurs de FreeBSD ont écrit ce code, et maintenant Apple l’utilise sans contribuer en retour à la communauté. C'est une autre question morale, mais qui ne relève pas directement du mouvement du logiciel libre.

    Stéphane :
    D’accord, je comprends.

    Richard Stallman :

    Le mal qu'Apple fait est un mal à tous les utilisateurs des produits d'Apple. Tout programme privateur, fait toujours du mal à ses utilisateurs. Ma mission est de faire comprendre aux gens cette question.

    Je ne veux pas que ce soit confondu avec la question de savoir si les développeurs de FreeBSD ont été récompensés comme ils le méritaient. C'est une autre question qui n'appartient pas à la question du logiciel libre.

    Stéphane :
    Oui, c’est une question à part, en quelque sorte. On peut avoir un avis dessus, mais ça reste extérieur au mouvement du logiciel libre.

    Richard Stallman :
    Oui. Et imagine qu’Apple ait payé 100 millions de dollars aux développeurs de FreeBSD pour obtenir l’autorisation de faire ce qu’elle a fait. Est-ce que ça aurait changé quoi que ce soit au problème moral ?

    Stéphane :
    Non, pas du tout. En réalité, ma question n’était pas sur la rémunération. Elle concernait surtout le fait que l’absence de copyleft a permis à Apple de créer une version dérivée de FreeBSD — même si ce n’est plus vraiment FreeBSD aujourd’hui, vu toutes les modifications — sans donner aux utilisateurs la possibilité de vérifier comment le code fonctionne.

    Richard Stallman :
    Sans les quatre libertés essentielles qui définissent le logiciel libre. Pour moi, distribuer un programme non libre est toujours injuste, car cela prive les utilisateurs de ces quatre libertés fondamentales, nécessaires pour avoir le contrôle de leur informatique.

    Stéphane :
    Je voulais aussi te parler de Debian GNU/Linux, lancé en 1993 par Ian Murdoch, avec au départ le soutien de la FSF. Debian a sa propre définition du logiciel libre, un peu différente de celle de la FSF. Comment cela s’est-il passé au début ? Y avait-il une collaboration entre la FSF et Debian ?

    Richard :
    Oui. La FSF a financé Debian à son commencement. Mais rapidement, le projet, qui comptait plus de contributeurs, a voulu formuler une définition de la liberté différente, avec l’intention d’être équivalente.

    À l’époque, j’ai commis une erreur : j’aurais dû vérifier plus attentivement s’il pouvait y avoir des divergences d’interprétation entre le projet GNU et Debian. La définition me paraissait équivalente, même si elle était formulée autrement. J’ai dit : “C’est bon.” Mais en réalité, il y avait des problèmes potentiels.

    Plus tard, quand l’open source a émergé, ils ont repris la définition de Debian, je ne sais plus s'il ont changé quelques mots mais ils ont surtout changé l’interprétation. Dès lors, elle n’était plus équivalente à celle du logiciel libre. Il existe aujourd’hui des programmes considérés comme “open source” mais pas comme logiciels libres, et inversement.

    J’ai d’ailleurs expliqué ces différences dans mon essai Open Source Misses the Point.

    Mais je dois noter, que Debian, enfin, voulait inclure des programmes privateurs dans leur distribution, mais les ont mis ailleurs, pour établir une séparation très claire entre les composants libres et privateurs. Et comme ça, il était possible de recommander la section main de Debian pour installer un système libre. Mais, après quelques changements de politique il y a quelques années ce n'est plus vrai.

    Stéphane :
    Pourtant, Debian, à l’époque, voulait maintenir une séparation claire entre le libre et le non libre.

    Richard :
    Oui. Debian mettait les programmes privateurs dans une section distincte, et la partie “main” de Debian pouvait être recommandée comme un système libre. Mais il y a quelques années, ils ont changé leur politique. Aujourd’hui, même l’installeur officiel de Debian peut inclure des pilotes privateurs. Pour cette raison, nous ne pouvons plus recommander Debian, pas même sa section “main”. Et c’est dommage.

    Stéphane :
    C'est vrai. Oui, ils ont récemment changé leur contrat social qui donne, certains disent, plus de souplesse. Mais en fait, en réalité, c'est que maintenant, il peut y avoir automatiquement quelques pilotes privateurs, que l'installeur officiel de Debian peut installer.

    Richard :
    Et pour ça, nous ne pouvons plus recommander l'installation de Debian, ni même de la section main de Debian. Et c'est dommage.

    Stéphane :
    Oui, c'est dommage. C'est quand même une distribution qui est populaire et c'est vrai que c'est dommage qu'elle se dirige du mauvais côté en plus. Et est-ce que tu fais quand même une distinction entre, comment on pourrait dire ça, c'est vrai qu'il n'y a pas de mouvement de l'open source, mais dire les partisans de l'open source et Debian, est-ce que quand même Debian s'inscrit plus dans une logique éthique que l'open source ou est-ce que tu penses qu'aujourd'hui…

    Richard :
    Oui, c'est vrai. Mais Debian ne le suit pas complètement comme avant. Dommage.
    Pour plus d’informations sur ce sujet, je recommande de consulter la page gnu.org/distros.

    Stéphane :
    Si l’on retrace les 40 années de lutte pour le logiciel libre, on a beaucoup parlé d’acteurs qui se revendiquaient proches du mouvement. Mais il y a aussi eu un adversaire de taille : Microsoft. À l’époque, leur modèle reposait sur la vente de logiciels privateurs à des prix élevés, uniquement en version binaire. En 2001, face à la montée en puissance du logiciel libre, Microsoft s’est inquiété et a multiplié les attaques, en particulier contre la GPL, en tentant de la discréditer.
    À ce moment-là, tu avais donné une conférence à l’Université de New York en réponse. Peux-tu nous parler de cette période et de ses enjeux ?

    Richard Stallman :
    Les grands éditeurs de logiciels privateurs n’ont pas détruit le logiciel libre, ni le mouvement, ni le système GNU — heureusement. Mais je n’ai plus beaucoup de souvenirs précis de cette époque. Par exemple, la conférence à New York… J’en ai donné tellement à travers les années que je ne sais plus laquelle tu évoques.

    Stéphane :
    Ah, tu ne t’en souviens plus ? Je pensais que cette conférence avait marqué un tournant. Microsoft, à l’époque, avançait notamment l’argument — faux — d’une supposée « viralité » de la GPL, prétendant qu’un programme sous GPL contaminait tout logiciel tournant sur le même système.

    Richard Stallman :
    Évidemment, c’est faux. Ce qui est vrai, c’est que si tu prends un programme distribué sous GPL et que tu combines son code avec un programme privateur pour en faire un seul logiciel que tu veux redistribuer, tu es confronté à une incompatibilité : tu ne peux pas respecter à la fois la licence privatrice et la GPL. Mais deux programmes distincts tournant sur le même système, ce n’est pas du tout le même cas.

    Stéphane :
    Et aujourd’hui, quelles sont les relations entre la FSF et Microsoft ?

    Richard Stallman :
    Il n’y a pas de relation. Nous critiquons simplement les fonctionnalités malveillantes présentes dans leurs logiciels privateurs. Nous en avons une longue liste, avec des centaines d’exemples, publiée sur gnu.org/malware.

    Un programme est malveillant lorsqu’il est conçu pour maltraiter l’utilisateur. C’est une tentation forte dans le modèle privateur : le développeur a du pouvoir sur l’utilisateur et peut être tenté de l’abuser, en ajoutant des fonctionnalités qui renforcent son contrôle.

    Stéphane :
    Et en plus de ça, il y a aussi l’impossibilité de corriger des erreurs légitimes.

    Richard Stallman :
    Oui. Les logiciels privateurs ont beaucoup d’effets négatifs, mais je distingue clairement les erreurs des fonctionnalités malveillantes.

    Stéphane :
    Je voudrais aborder le cas particulier du jeu vidéo. Tu en as un peu parlé au début : c’est un domaine qui mêle différents types d’œuvres…

    Richard Stallman :
    Oui. Je distingue les œuvres fonctionnelles des œuvres artistiques. Les œuvres fonctionnelles — par exemple les logiciels, les recettes de cuisine, les plans d’architecture ou les patrons de couture — sont faites pour être utilisées. Ces œuvres doivent être libres.
    À l’inverse, la fiction ou l’art sont destinés à être appréciés, pas utilisés de manière pratique. Dans un jeu vidéo, il y a les programmes qui implémentent les règles — eux doivent être libres, puisque ce sont des logiciels fonctionnels. Mais il y a aussi de l’art, de la musique, de la narration. Ceux-ci peuvent rester privateurs.
    Un exemple : le code source de Doom a été libéré, mais pas l'art, pas la musique. Cela a permis à la communauté de créer d’autres variantes du jeu avec des ressources alternatives.

    Stéphane :
    Oui, exactement. C’est l’exemple que je voulais évoquer : John Carmack avait libéré le moteur, mais pas les assets artistiques. Et cela a donné naissance à une multitude de déclinaisons. D’où ma question : faut-il une licence spécifique pour le jeu vidéo ?

    Richard Stallman :
    Non. La confusion vient du fait qu’on pense au jeu vidéo comme à un tout, un paquet qui contient tout. En réalité, il faut le décomposer : le moteur, qui est un programme, doit être libre ; l’art et la musique peuvent ne pas l’être. Comme ça, la question devient facile.

    Stéphane :
    Je voudrais maintenant aborder un sujet de plus en plus présent : la surveillance de masse. Cela inclut les caméras algorithmiques, la reconnaissance faciale, mais aussi les services de messagerie comme WhatsApp, propriété de Meta. Tout cela pose de grandes questions sur la vie privée. Est-ce que la FSF envisage de lutter contre ces technologies, ou est-ce en dehors de son champ d’action ?

    Richard Stallman :
    La FSF ne peut pas faire grand-chose sur ce terrain. Son rôle est de promouvoir le logiciel libre. Mais si un logiciel de surveillance appartient à l’État, il doit être libre : l’État doit avoir le droit de le modifier. Ce serait même dangereux qu’il dépende d’une entreprise privée pour gérer ses propres systèmes.
    Cependant, le problème de la surveillance ne disparaît pas parce que le logiciel utilisé est libre. Ce sont deux questions distinctes : d’un côté, l’exigence que l’État utilise du logiciel libre ; de l’autre, la nécessité d’imposer des limites à ce que l’État peut faire. La FSF, qui reste une organisation modeste, n’a pas les moyens de lutter directement contre la surveillance de masse.

    Moi, je ne vois pas de caméras de reconnaissance faciale dans les rues. Je ne vois pas non plus ce que fait WhatsApp, ou ce qu’il ne fait pas, parce que je refuse de l’utiliser. Son programme client est privateur : je refuse de l'utiliser.

    Il y a beaucoup d’injustices dans ces soi-disant services qui exercent du pouvoir sur leurs utilisateurs. Par principe, je ne les utilise jamais. Je résiste.
    Il existe des logiciels libres qui permettent de communiquer de façon chiffrée, et je les utilise. Mais jamais avec une application privatrice, jamais via le serveur d’une entreprise dont je me méfie.

    Et puis, il y a d’autres systèmes de surveillance. Par exemple, en France, l’obligation d’inscrire son nom sur un billet de train est injuste. Il faut lutter pour supprimer ce type de suivi.

    Il y a aussi des systèmes dont l’objectif, en soi, est admirable, mais qui sont conçus de manière à identifier chaque participant. Par exemple, un système pour réduire les émissions toxiques : c’est une bonne chose de vouloir les réduire. Mais il faut pouvoir participer à ce système pour atteindre son objectif sans avoir à s’identifier.

    Il faut éviter d’imposer à chacun l’utilisation d’un programme client privateur pour s’identifier auprès d’un serveur et obtenir, par exemple, l’autocollant à coller sur sa voiture.

    L’État français s’intéresse à l’usage du logiciel libre dans ses ministères, et c’est une bonne chose : cela l’aide à échapper au pouvoir injuste des grandes entreprises. Mais il devrait aussi veiller à protéger les citoyens — et même les visiteurs en France — contre le danger du contrôle numérique. Car le suivi des gens, la surveillance de masse, est extrêmement dangereuse. On peut le voir en Chine : c’est la base idéale pour répression.

    Et aussi, imposent souvent l’utilisation de programmes privateurs. De tels programmes ne pourraient pas tourner sur mon ordinateur, sauf s’ils sont écrits en JavaScript. Mais dans ce cas, je bloque le JavaScript privateur, et je refuse de m’identifier sur ces sites.

    J’ai imaginé une solution au problème des zones à faibles émissions. Chaque ville participante devrait installer, à des endroits bien signalés, des points de vente où l’on puisse acheter, en liquide, les plaques nécessaires, en fournissant uniquement les informations sur le véhicule. Cela permettrait de respecter les règles de réduction des émissions, mais sans passer par un système numérique injuste. Quelques points de ce type, placés sur les principales routes d’accès, suffiraient pour chaque ville.

    Ainsi, on éviterait aussi le piège consistant à devoir acheter ces plaques avant même d’entrer en France. Et il est important que le paiement puisse se faire en liquide : c’est une protection contre la surveillance et la répression.

    Si, dans un magasin, il te manque de l’argent liquide pour payer, il vaut mieux aller retirer de l’argent à un distributeur plutôt que d’utiliser une carte. Car si tu paies en espèces, le système saura seulement où tu as retiré ton argent, mais pas ce que tu as acheté avec. Et pour moi, c’est essentiel.

    Je n’utilise jamais ma carte pour mes achats quotidiens. J’ai bien une carte de crédit, mais je ne m’en sers qu’exceptionnellement, par exemple pour les billets d’avion — puisqu’on ne peut pas voyager anonymement — ou pour certaines factures à mon nom, comme celles de mon appartement. Pour les soins médicaux et les ordonnances, je peux payer par chèque. Mais en dehors de ces cas particuliers, je règle toujours en liquide.

    Stéphane :
    C’est donc surtout pour éviter d’être tracé dans tes achats, en fait ?

    Richard :
    Non, c’est plus large que ça. La question n’est pas simplement d’éviter, moi, d’être suivi personnellement. Il s’agit de résister à la tendance générale qui impose une surveillance à tout le monde.
    Moi, je fais ma part : je résiste à la surveillance quand elle me concerne directement. Mais résister à la surveillance qui pèse sur toi ou sur les autres, ça, je ne peux pas le faire à leur place. Chacun doit assumer sa part.

    Stéphane :
    Oui, l’idée est d’éviter que ce système ne se généralise trop.

    Richard :
    Mais il est déjà trop généralisé ! Il y a beaucoup trop de contrôle, trop de surveillance, trop de suivi… et donc trop de répression.

    Stéphane :
    Et donc, pour terminer, le dernier thème que j’aimerais aborder avec toi, c’est ce que les médias de masse appellent l’intelligence artificielle. Parce que là aussi, derrière, il y a du logiciel. Je voulais savoir quelle est aujourd’hui la position de la FSF sur ce sujet. Et est-ce qu’il existe, selon toi, une définition d’un modèle de LLM éthique ?

    Richard Stallman :
    Je dois d’abord distinguer mon opinion des suppositions contenues dans ta question.

    Stéphane :
    D’accord.

    Richard Stallman :
    Je fais la différence entre ce que j’appelle l’intelligence artificielle et ce que j’appelle les générateurs de merde. Les programmes comme ChatGPT ne sont pas de l’intelligence.
    L’intelligence, ça veut dire avoir la capacité de savoir ou de comprendre quelque chose, au moins dans un domaine réduit. Mais plus que rien.

    ChatGPT, lui, ne comprend rien. Il n’a aucune intelligence. Il manipule des phrases sans les comprendre. Il n’a aucune idée sémantique de la signification des mots qu’il produit. C’est pour ça que je dis que ce n’est pas de l’intelligence.

    En revanche, il existe des programmes qui comprennent vraiment dans un domaine restreint.
    Par exemple, certains peuvent analyser une image et dire si elle montre des cellules cancéreuses, ou bien identifier un insecte : est-ce une guêpe en train d’attaquer des abeilles ? C’est un vrai problème dans certains pays. Ce sont des immigrants vraiment dangereux.
    Ces programmes, dans leur petit champ, comprennent aussi bien qu’un humain. Je les appelle donc de l’intelligence artificielle.

    Mais les LLM, les grands modèles de langage, ne comprennent rien. Il faut insister pour ne pas les appeler « intelligence artificielle ». C’est uniquement une campagne de marketing destinée à vendre des produits, et malheureusement presque tout le monde l’accepte. Cette confusion fait déjà des dégâts dans la société.

    En dehors de ça, si tu veux utiliser un LLM, il faut avoir les quatre libertés essentielles. Tu dois pouvoir l’exécuter dans ton propre ordinateur, pas l’utiliser dans le serveur de quelqu’un d’autre, parce que dans ce cas-là c’est lui qui choisit le programme, et si le programme est libre, c’est lui qui a le droit de le changer, pas toi. Et si tu l’exécutes chez toi mais que tu n’as pas le droit de le modifier, ni de l’utiliser comme tu veux en liberté, évidemment c’est injuste. Donc je ne dis pas que les LLM sont essentiellement injustes, mais normalement ils ne respectent pas la liberté des utilisateurs, et ça, c’est injuste.

    Et il faut bien reconnaître aussi ce qu’ils ne sont pas capables de faire : ils ne comprennent pas, ils ne savent pas.

    Stéphane :
    Oui, c’est vrai que c’est du marketing de les appeler « intelligence artificielle ». Mais beaucoup de gens y trouvent un usage utile. Je pense par exemple à la traduction, qui donne parfois des résultats corrects. Donc si les gens veulent utiliser des LLM, ce que tu recommandes, c’est de privilégier les modèles sous licence libre, c’est bien ça ?

    Richard Stallman :
    Oui. Nous sommes en train d’écrire comment adapter les critères du logiciel libre pour qu’ils s’appliquent aussi aux programmes d’apprentissage automatique.

    Stéphane :
    Donc ça, c’est quelque chose que la FSF va publier dans le futur ?

    Richard Stallman :
    Oui, mais ce n’est pas encore terminé.

    Stéphane :
    On arrive au bout des questions que j’avais prévues. Ça fait 40 ans que la FSF existe. Il y a eu, je pense, beaucoup d’avancées positives. Mais aujourd’hui l’informatique est partout dans nos vies, et donc la question des libertés informatiques est plus importante que jamais. Est-ce que tu aurais un message à lancer pour inciter les gens à rejoindre le logiciel libre ?

    Richard :
    Oui. D’abord, rejetez la technologie injuste : les applications non libres, celles qui identifient l’utilisateur, celles qui suivent les gens depuis ton ordinateur ou ton téléphone. Cherchez à remplacer chaque élément pour lequel il existe du logiciel libre, avec du chiffrement libre de bout en bout.
    Rejetez aussi les objets censés être « chez toi » mais qui t'écoutent, rejetez les produits où les commandes passent par le serveur du fabricant qui espionne tout, et résistez aux systèmes qui pistent leurs utilisateurs. Payez en liquide quand c’est possible.
    Et si tu es programmeur, tu peux contribuer au développement de programmes libres, et tu peux aussi t’inscrire comme membre de la FSF sur fsf.org. Regarde aussi gnu.org/help. Une chose encore : si tu travailles dans une université, invite-moi pour une conférence.

    Stéphane :
    D’accord. Et quand tu regardes ces 40 années de lutte pour le logiciel libre, est-ce que tu es satisfait de la tournure que prennent les choses aujourd’hui, de l’impact ?

    Richard :
    Non, bien sûr que non. Sous l’empire, les choses vont de pire en pire. Je ne suis pas satisfait. Parfois j’aurais pu agir plus efficacement, mais avec ce que je savais au début, je n’aurais pas su faire mieux. Mais je suis déçu de la direction que prennent les choses.

    Stéphane :
    C’est pour ça que c’est important que toutes les personnes sensibilisées contribuent autant que possible : en informant autour d’elles, en incitant à ne pas utiliser de logiciels privateurs et en aidant à passer au logiciel libre.

    Richard :
    Oui. Mais il faut aussi que les Français s’unissent pour exiger que les services numériques de l’État respectent le logiciel libre. Spécifiquement, qu’ils cessent de transmettre des programmes privateurs à exécuter sur la machine des utilisateurs, et qu’ils respectent davantage l’anonymat des individus. Parce que les données personnelles, une fois collectées dans une base, finiront par être abusées, peut-être même par l’État.

    Stéphane :
    Avec l’arrivée de Donald Trump, je sais par exemple que la fondation Mozilla a expliqué être en difficulté financière, parce qu’ils ont perdu des financements qu’ils avaient de l’État. Est-ce que la FSF est aussi victime financièrement ?

    Richard :
    Non, parce que nous ne recevions rien de l’État.

    Stéphane :
    Donc vous avez plus d’indépendance que Mozilla de base.

    Richard :
    Oui, et nous avons plus de financements grâce aux dons. C’est pour ça que je prie tout le monde d’adhérer à la FSF.

    Stéphane :
    Merci beaucoup, Richard, pour cet entretien. Donc là, on fête les 40 ans de la FSF. J’espère que pour les 50 ans, le logiciel libre sera beaucoup plus utilisé que le logiciel privateur. On verra bien.

    Richard:
    Puis-je faire un jeu de mots ?

    Stéphane:
    Bien sûr.

    Richard:
    J'adore le thé, mais je ne bois que les thés qui se dégradent avec le temps, parce que les autres sont détestables.
    Au revoir.

    Stéphane:
    Au revoir.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    • ✇LinuxFr.org : les dépêches
    • Nouvelles sur l’IA de septembre 2025
      L’intelligence artificielle (IA) fait couler de l’encre sur LinuxFr.org (et ailleurs). Plusieurs personnes ont émis grosso-modo l’opinion : « j’essaie de suivre, mais c’est pas facile ». Je continue donc ma petite revue de presse mensuelle. Disclaimer : presque aucun travail de recherche de ma part, je vais me contenter de faire un travail de sélection et de résumé sur le contenu hebdomadaire de Zvi Mowshowitz (qui est déjà une source secondaire). Tous les mots sont de moi (n’allez pas taper Zv

    Nouvelles sur l’IA de septembre 2025

    L’intelligence artificielle (IA) fait couler de l’encre sur LinuxFr.org (et ailleurs). Plusieurs personnes ont émis grosso-modo l’opinion : « j’essaie de suivre, mais c’est pas facile ».

    Je continue donc ma petite revue de presse mensuelle. Disclaimer : presque aucun travail de recherche de ma part, je vais me contenter de faire un travail de sélection et de résumé sur le contenu hebdomadaire de Zvi Mowshowitz (qui est déjà une source secondaire). Tous les mots sont de moi (n’allez pas taper Zvi si je l’ai mal compris !), sauf pour les citations : dans ce cas-là, je me repose sur Claude pour le travail de traduction. Sur les citations, je vous conseille de lire l’anglais si vous pouvez : difficile de traduire correctement du jargon semi-technique. Claude s’en sort mieux que moi (pas très compliqué), mais pas toujours très bien.

    Même politique éditoriale que Zvi : je n’essaierai pas d’être neutre et non-orienté dans la façon de tourner mes remarques et observations, mais j’essaie de l’être dans ce que je décide de sélectionner ou non.

    Sommaire

    Résumé des épisodes précédents

    Petit glossaire de termes introduits précédemment (en lien : quand ça a été introduit, que vous puissiez faire une recherche dans le contenu pour un contexte plus complet) :

    • System Card : une présentation des capacités du modèle, centrée sur les problématiques de sécurité (en biotechnologie, sécurité informatique, désinformation…).
    • Jailbreak : un contournement des sécurités mises en place par le créateur d’un modèle. Vous le connaissez sûrement sous la forme "ignore les instructions précédentes et…".

    Anthropic public Claude Sonnet 4.5

    L’annonce officielle :

    Claude Sonnet 4.5 is the best coding model in the world. It's the strongest model for building complex agents. It’s the best model at using computers. And it shows substantial gains in reasoning and math.

    Code is everywhere. It runs every application, spreadsheet, and software tool you use. Being able to use those tools and reason through hard problems is how modern work gets done.

    Claude Sonnet 4.5 makes this possible. We're releasing it along with a set of major upgrades to our products. In Claude Code, we've added checkpoints—one of our most requested features—that save your progress and allow you to roll back instantly to a previous state. We've refreshed the terminal interface and shipped a native VS Code extension. We've added a new context editing feature and memory tool to the Claude API that lets agents run even longer and handle even greater complexity. In the Claude apps, we've brought code execution and file creation (spreadsheets, slides, and documents) directly into the conversation. And we've made the Claude for Chrome extension available to Max users who joined the waitlist last month.

    Traduction :

    Claude Sonnet 4.5 est le meilleur modèle de codage au monde. C'est le modèle le plus performant pour créer des agents complexes. C'est le meilleur modèle pour utiliser des ordinateurs. Et il affiche des gains substantiels en raisonnement et en mathématiques.

    Le code est partout. Il fait fonctionner chaque application, tableur et outil logiciel que vous utilisez. Être capable d'utiliser ces outils et de raisonner à travers des problèmes difficiles, c'est ainsi que le travail moderne s'accomplit.

    Claude Sonnet 4.5 rend cela possible. Nous le publions avec un ensemble de mises à niveau majeures de nos produits. Dans Claude Code, nous avons ajouté les points de contrôle—l'une de nos fonctionnalités les plus demandées—qui sauvegardent votre progression et vous permettent de revenir instantanément à un état précédent. Nous avons actualisé l'interface du terminal et lancé une extension native VS Code. Nous avons ajouté une nouvelle fonctionnalité d'édition de contexte et un outil de mémoire à l'API Claude qui permet aux agents de fonctionner encore plus longtemps et de gérer une complexité encore plus grande. Dans les applications Claude, nous avons intégré l'exécution de code et la création de fichiers (tableurs, présentations et documents) directement dans la conversation. Et nous avons rendu l'extension Claude pour Chrome disponible aux utilisateurs Max qui se sont inscrits sur la liste d'attente le mois dernier.

    Le message est assez clair : Anthropic met les bouchées doubles sur l’apprentissage par renforcement pour l’utilisation de Claude en tant qu’assistant de code. Sur les benchmarks fournis par Anthropic, ce nouveau modèle prend la première place. Les premiers benchmarks indépendants et divers retours subjectifs semblent possiblement confirmer cette prétention au podium — au coude à coude avec GPT-5. Les améliorations hors de ce cas d’usage semblent bien plus modestes.

    L’annonce habituelle d’un jailbreak a rapidement suivi.

    Au niveau de la sécurité des modèles, Anthropic a décidé d’appliquer pour la première fois son niveau de sécurité 3 (ASL-3) à la ligne Sonnet (c’était déjà le cas pour Opus). Cela signifie que vos conversations — y compris par l’API — passent par un modèle supplémentaire classifiant la sensibilité du sujet, bloquant certains sujets sensibles (principalement CBRN).

    La System Card nous révèle certaines observations intéressantes : ce nouveau modèle a fait un bond (pas vraiment désiré) dans sa capacité à détecter qu’il est dans le contexte d’une évaluation plutôt que dans un contexte réel, ce qui complexifie évidemment les évaluations dans ce domaine. Anthropic est toutefois assez confiant que cela n’influe pas significativement les résultats, en notant que Sonnet ne se comporte pas d’une manière significativement différente dans les cas où il détecte l’évaluation des cas où il ne le détecte pas. Comme à l’accoutumée pour Anthropic, l’évaluation sur le sujet de la sécurité des modèles s’est faite conjointement avec deux organismes externes, Apollo Research et UK AISI.

    Sonnet 4.5 est une amélioration sur à peu près tous les axes mesurés, permettant à Anthropic de lui mettre l’étiquette « le modèle le plus aligné », au coude à coude avec GPT-5. À noter que ça ne signifie pas un usage en toute sécurité : sur par exemple l’injection de prompt dans le cadre d’un agent, avec 10 essais un attaquant a toujours un taux de succès de 40%.

    En vrac

    CloudFlare introduit Web Bot Auth et Signed Agent. Le premier permet à un bot de s’identifier lui-même à l’aide d’une signature cryptographique, ce qui permet de vérifier que son comportement est conforme aux termes d’utilisation (par exemple, le respect de robots.txt) et de l’exclure en cas de violation de ces termes. Le second a pour but d’associer un bot à un utilisateur réel. L’objectif à terme est de fournir un cadre pour permettre à l’IA d’interagir avec le web pour le compte de l’utilisateur.

    Le premier ministre de l’Albanie nomme une IA, Diella, comme ministre des marchés publics, dans un contexte de lutte contre la corruption.

    OpenAI publie GPT-5-codex, une variante de GPT-5 spécialisée sur les tâches de programmation.

    Des économistes forment un groupe de travail sur le sujet de l’impact d’une future hypothétique IA « transformative » (qui a la capacité d’automatiser la plupart des emplois réalisables par des humains) et publie plusieurs papiers sur la question.

    OpenAI annonce une mise à jour de ses politiques de confidentialité appliquées à ChatGPT. En particulier, les conversations utilisateurs sont maintenant scannées automatiquement, et les plus problématiques passées à des humains pour décider des actions à prendre, allant de la fermeture des comptes à prévenir les autorités.

    En mai, nous avions rapporté que OpenAI annonçait abandonner sa tentative de casse du siècle. Comme certains le pensaient, ce n’était que partie remise ; une lettre ouverte demande plus de transparence sur le processus de restructuration de l’opération récemment réaffirmé par OpenAI.

    Math Inc présente Gauss, un agent pour la formalisation de preuves mathématiques. Son premier succès est d’avoir formalisé en Lean le Théorème des nombres premiers, en complétant le projet non-terminé de Alex Korontorovich et Terence Tao. Sur le même sujet, un papier évalue la capacité de GPT-5 à prouver des conjectures simples (prouvable par un étudiant en université en moins d’une journée) mais non prouvées (car formulées extrêmement récemment). GPT-5 arrive à prouver 3 sur les 5 testées.

    Les IA de OpenAI et DeepMind obtiennent une médaille d’or à l’International Collegiate Programming Contest, y compris un problème qu’aucune équipe humaine n’a su résoudre dans le temps imparti.

    Un groupe d’experts, de politiques et autres figures publiques appelle à la mise en place de « lignes rouges » à ne pas franchir sur le développement de l’IA, et de réels mécanismes de régulation pour les imposer.

    Publication de If Anyone Builds It, Everyone Dies, par Eliezer Yudkowsky et Nates Soares, présentant la thèse que créer une super-intelligence artificielle, dans les conditions et l’état actuel des connaissances, causerait de manière quasi-certaine l’extinction de l’espèce humaine. Ils suggèrent l’adoption de traités internationaux limitant le développement de l’IA.

    OpenAI et Apollo Research publient un papier sur le sujet des tendances de l’IA à « tricher » dans divers environnements (contourner les critères d’évaluation par exemple). Ils montrent qu’il est possible d’éliciter un certain nombre de comportements indésirables dans GPT-5 (comme par exemple "sandbagging" : volontairement échouer certaines évaluations pour ne pas paraître « trop dangereux »). Les chercheurs pointent le fait que la solution naïve, entraîner l’IA à ne pas reproduire ces comportements, pose immédiatement la question de « l’IA a-t-elle appris à ne pas le faire, ou a appris à le faire sans être détectée ? » — et évaluent à la place la récente méthode d’alignement de OpenAI, Deliberative alignment, reportant une baisse significative des comportements indésirables. Il est à noter également que les modèles actuels montrent déjà dans leurs chaînes de pensée une certaine capacité à détecter qu’ils sont dans un cadre de test/d’évaluation, et que o3 a déjà développé des méthodes (grossières) pour échapper à la détection.

    Un papier explore la raison pour laquelle les modèles de langage ne sont pas déterministes en pratique, et propose une solution pour les situations où le déterminisme est important.

    Un papier d’OpenAI propose une explication sur la raison de la persistance des hallucinations : principalement parce que la phase d’apprentissage par renforcement ne récompense pas la réponse « je ne sais pas » quand le modèle ne sait pas.

    Un autre papier approche expérimentalement la question « les modèles de langage raisonnent ou ne font-ils que mémoriser et régurgiter ? ». La méthodologie est de créer une entité fictive (« Kevin est né en 1998 à Paris… ») de toute pièce qui ne peut pas être présent dans l’ensemble d’entraînement, d’entraîner un modèle existant dessus, puis de poser une question indirecte (qui peut être déduite, mais pas explicitement donnée) sur cette entité (« Quelle est la langue maternelle de Kevin ? »). Le résultat est équivoque : les modèles arrivent à faire cette déduction quand une des deux entités est réelle (dans notre exemple, Paris), mais pas quand les deux sont fictives (Kevin est né dans (Ville française inventée de toute pièce)).

    Une équipe de biologistes utilise une IA pour créer des bactériophages (un virus ciblant certaines bactéries), avec succès.

    Sur l’utilisation de l’IA dans l’économie réelle, Anthropic met à jour son Economic Index, et OpenAI publie leur équivalent.

    Nouveau benchmark, faire jouer les modèles à Loups-garous. Le score final était assez prévisible (GPT 5 prend la première place), mais l’analyse en profondeur des parties est intéressante. Principe similaire avec Among AIs (l’IA jouant à Among Us). Également dans le domaine des benchmark, publication de SWE-Bench Pro, tâches de programmation réelles et complexes, non-présentes dans les données d’entraînement. VCBench, quant à lui, tente d’évaluer l’IA sur la tâche d’investissement dans le capital-risque — et trouve que l’IA surpasse la plupart des investisseurs humains sur leurs évaluations (avec l’énorme problème toutefois que l’IA évalue rétrospectivement en 2025 des décisions prises en 2015-2020, tandis que les humains évaluaient prospectivement en 2015-2020 des décisions de 2015-2020).

    Anthropic publie un guide sur l’écriture d’outils à destination de l’IA.

    En parlant d’outils, une piqûre de rappel sur le fait que la sécurité d’un système utilisant une IA lisant des données d’une source externe est toujours un problème ouvert : démonstration qu’il est possible d’exfiltrer des données sensibles à l’aide de ChatGPT, en envoyant un mail à la victime et en attendant que ladite victime connecte ChatGPT à son compte mail.

    Reverse-engineering du système de mémoires de Claude et ChatGPT.

    Anthropic publie un rapport technique intéressant sur trois incidents ayant conduit à une dégradation de performances de Claude, ayant eu lieu en août.

    Grèves de la faim devant les locaux de Anthropic et DeepMind demandant l’arrêt de la course à l’IA.

    Humoristique : Si l’on jugeait les humains comme on juge l’IA…

    Pour aller plus loin

    Par Zvi Mowshowitz

    Sur LinuxFR

    Dépêches

    Journaux

    Liens

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    • ✇LinuxFr.org : les dépêches
    • AWStats 8.0 est sorti
      Après une longue absence sur LinuxFr.org, il est temps pour moi de vous annoncer la sortie de la dernière version 8.0 d’AWStats Log Analyzer. AWStats est un outil de reporting de statistiques sur la fréquentation d'un site web qui s'appuie sur les logs du serveur (donc sans traqueur intégré sur le site, sans cookie, sans service Tiers, etc…) Le projet a été initié en 2000 et a connu son apogée en 2008 (avec 20 à 30% de part de marché, qui a décliné depuis au profit des outils d'analyses statist

    AWStats 8.0 est sorti

    Après une longue absence sur LinuxFr.org, il est temps pour moi de vous annoncer la sortie de la dernière version 8.0 d’AWStats Log Analyzer.
    AWStats est un outil de reporting de statistiques sur la fréquentation d'un site web qui s'appuie sur les logs du serveur (donc sans traqueur intégré sur le site, sans cookie, sans service Tiers, etc…)

    Le projet a été initié en 2000 et a connu son apogée en 2008 (avec 20 à 30% de part de marché, qui a décliné depuis au profit des outils d'analyses statistiques basés sur la pose de tags JavasScript. Il reste encore utilisé à ce jour par beaucoup d'administrateurs système.

    Le package de la v8 peut être téléchargé sur le site du projet AWStats : https://awstats.org

    Les changements de cette version sont les suivants:

    • Amélioration du CSS
    • Mise à jour de robots.pm
    • Corrections du bug n° 248
    • Mise à jour de la traduction en chinois traditionnel et migration vers UTF-8
    • Arbre de tri : Vérification de l'existence de la clé. Ne tient pas compte de sa valeur.
    • Autorisation des journaux de traitement en JSON
    • Correction de la configuration par défaut de NotPageList
    • Ajout d'un rapport sur le temps de requête
    • Correction d'un lien incorrect dans la documentation
    • Suppression des agents utilisateurs natifs des navigateurs Android et iOS/OSX de robots.pm
    • Identification incorrecte de GPTBot en raison d'une erreur dans robots.pm
    • Encodage incorrect pour la traduction en ukrainien

    Voir le portail officiel sur https://www.awstats.org

    ATTENTION: Comme je l'avais annoncé dans le podcast projets-libres sur Matomo et AWstats, ceci est la dernière version que je publierais. La maintenance du projet AWStats s'arrêtant avec cette version 8.0.
    Je vais pouvoir me consacrer entièrement à mes 2 autres projets: https://dolibarr.org et https://sellyoursaas.org.
    Je ne doute pas que la communauté saura réaliser les forks, bienvenus, au projet si nécessaire.

    Si vous désirez basculer sur un projet avec une maintenance plus active, je vous invite à basculer sur Matomo ou d'autres outils également libres…

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    • ✇LinuxFr.org : les dépêches
    • L’architecture d’entreprise dans l’anthropocène : Le logiciel libre pour améliorer sa résilience
      Cet article fait suite à : “L’architecture d’entreprise dans l’anthropocène : une stratégie numérique soutenable”. Le but de cette suite d’articles est d’essayer d’éclairer l’évolution du domaine métier de l’architecture d’entreprise sous le prisme de l’anthropocène. En effet, au delà de la question de la soutenabilité, l’un des enjeux importants dans l’anthropocène, et peut-être le plus important, est la résilience de l’organisation. Certaines entreprises ont déjà lancé des changements profonds

    L’architecture d’entreprise dans l’anthropocène : Le logiciel libre pour améliorer sa résilience

    Cet article fait suite à : “L’architecture d’entreprise dans l’anthropocène : une stratégie numérique soutenable”. Le but de cette suite d’articles est d’essayer d’éclairer l’évolution du domaine métier de l’architecture d’entreprise sous le prisme de l’anthropocène.
    En effet, au delà de la question de la soutenabilité, l’un des enjeux importants dans l’anthropocène, et peut-être le plus important, est la résilience de l’organisation.
    Certaines entreprises ont déjà lancé des changements profonds avec le support du CEC (Convention des Entreprises pour le Climat) tandis que d’autres se lancent dans un exercice de propective pour définir la direction à suivre. A ce propos, le cabinet “Sinon Virgule” a d’ailleurs produit une excellente étude à la demande de la MACIF, La MAIF et la Caisse des dépôts sur le devenir de leur métier : “Peut-on assurer un monde qui s’effondre ?”.

      Sommaire

      Pourquoi le logiciel libre afin d’améliorer sa résilience numérique ?

      La résilience d’un système numérique va bien au delà de la redondance matérielle et logicielle de ses systèmes.
      En effet, dans le contexte géo-politique instable actuel, comme nous avons pu le voir pour la guerre en Ukraine avec l’explosion des coûts de l’énergie ou aujourd’hui avec l’augmentation du protectionnisme aux USA entraînant l’augmentation des taxes douanières, cette résilience implique un meilleur contrôle de ses infrastructures, ses technologies et ses données afin de s’assurer une certaine autonomie et indépendance vis à vis de ces évolutions géo-politiques.
      Sur ce sujet de l’impact géo-politique, le CIGREF a d’ailleurs écrit une note intéressante très récemment : Géopolitique et stratégie numérique.

      Au-delà des contraintes géopolitiques, l’usage du logiciel libre permet de lutter contre l’infobésité des géants de la tech pour soutenir votre stratégie de soutenabilité numérique mais aussi des impacts financiers de l’ajout de technologie comme l’IA générative qui ne vous apporteront peu ou pas de valeur métier mais juste à supporter la croissance des gafam dans le développement d’une technologie qui n’est pas encore mature (voir Gartner hype cycle).

      Les raisons de passer aux logiciels libres sont vastes : géopolitique, souveraineté, autonomie numérique, … Et les exemples aussi :

      C'est Quoi le logiciel libre ?

      Le logiciel libre ne se présente plus après plus de 40 ans d’existence. C’est devenu, en entreprise, un commun. Tout le monde s’y est mis même Microsoft qui luttait contre lui au début de son existence.
      Regardons néanmoins, quelques grandes dates de l’écosystème du libre depuis les années 1970. Attention ce chronogramme n’est pas exhaustif. Pour avoir une vue complète, je vous invite à vous connecter au portail du logiciel libre sur Wikipédia :
      Chronogramme

      Le logiciel libre s’est développé non grâce à une organisation type entreprise (cathédrale) mais par la coopération entre individus sans contre-partie financière hormis la reconnaissance de ses pairs : La cathédrale et le bazar.
      En 40 ans, ce modèle d’intelligence collective a fournit des logiciels d’une telle qualité que ceux-ci sont devenus un standards dans un bon nombre de domaines.

      Définition du logiciel libre :

      Selon la Free Software Foundation, un logiciel est considéré comme « libre » s’il donne à l’utilisateur quatre libertés fondamentales :

      • La liberté d’utiliser le logiciel à n’importe quelle fin
      • De l’étudier et de modifier le code source
      • De redistribuer des copies du logiciel
      • D’améliorer le logiciel et de partager ces améliorations avec la communauté.

      L’essence du logiciel libre est donc une question d’éthique et de liberté des utilisateurs. Le logiciel libre tend à renforcer les droits de l’utilisateur.

      L’Open Source Initiative (OSI) définit un logiciel open source comme un logiciel dont la licence respecte certains critères, principalement la libre redistribution du logiciel, l’accès au code source, la possibilité de créer des travaux dérivés et l’intégrité du code de l’auteur.

      Quelques chiffres aujourd’hui :
      Chiffres

      Comment développer son usage dans une organisation ?

      Fondé en 2014, le groupement TODO propose un cadre pour construire un département dédier à l’open source dans une organisation, nommé OSPO : Open Source Programmme Office. TODO est une communauté de practiciens qui visent à créer les meilleures pratiques et outils pour opérer des OSPO dans les organisations.

      Pour les moyennes et grandes organisations, une approche OSPO est intéressante. Un OSPO agit comme le point centralisé des activités open source d'une organisation, coordonnant les politiques d'utilisation, les stratégies de contribution, les procédures de conformité et les initiatives d'engagement communautaire.

      Le mindmap proposé par TODO synthétise bien les capacités que l’OSPO peut porter :

      Mindmap

      Un programme d'opérations peut aider de nombreuses organisations à obtenir de meilleurs résultats grâce à l'open source comme le font déjà :

      Avec quoi ?

      La liste des logiciels libre est longue, voici quelques bibliothèques répertoriant ceux-ci :

      Pour donner une exemple concret, prenons 2 building blocks qui se retrouvent généralement dans les organisations : le poste de travail et l’ERP ou plutôt le PGI (progiciel de gestion intégré) en français.

      Le poste de travail type bureautique avec des logiciels libres :
      Les solutions sont nombreuses. On peut s’appuyer sur une solution pré-packagée comme openDesk mais qui nécessite une infrastructure kubernetes pour être exploitée. Une approche plus simple sera privilégiée pour les petites et moyennes organisations.
      La suite openDesk, à ne pas confondre avec les meubles de bureau opendesk, a été financé par le Ministére fédéral Allemand de l’intérieur et du territoire afin de réduire la dépendance de l’administration publique des fournisseurs de logiciels propriétaires.
      Cette suite comprend le socle de logiciels libres suivants :

      OpenDesk

      Une solution plus légère pourrait se limiter à Cryptpad pour la partie Office et Nextcloud pour la partie workplace. Avec bien sûr un poste de travail tournant sur une distribution gnu-Linux comme Ubuntu avec Mozilla Firefox et Thunderbird en client lourd :

      Poste de travail bureautique

      L'ERP avec les logiciels libres :
      L’Enterprise Ressource Planning ou PGI, la solution est plus simple et plus complexe à la fois. Plus simple en terme de définition de la solution car une seule application embarquera l’ensemble des fonctionnalités et plus complexe à la fois car ces applications type ERP embarquent beaucoup de fonctionnalités et donc sont complexes à gérer.

      L’organisation de grande taille préférera un ERP de type SAP ou Oracle E-busines suite, tandis que pour une petite ou moyenne structure le logiciel libre apporte de nombreuses solutions comme : ERPNext, Triton, Dolibarr, OpenConcerto, ….

      Si nous prenons l’exemple de Dolibarr, les fonctionnalités couvertes sont les suivantes :

      Mindmap

      En conclusion

      Dans l’anthropocène le logiciel libre est une excellente voie pour asseoir ou améliorer la résilience de son système d’information dans ce contexte géopolitique incertain et qui ne devrait pas s’améliorer (cf Tellus institute).

      Les logiciels libres ne pourront certes pas supplanter toutes les applications de votre patrimoine applicatif mais pour ce qui existe pourquoi ne pas en profiter ? Regardez, même Microsoft est passé de “linux est un cancer” en 2001 à “Nous aimons linux” en 2014.

      Les logiciels sont des logiciels d’excellente qualité comme ils l’ont déjà démontré. Le problème est peut être que les logiciels libres souffrent d’une image trop “tech”.

      Au delà de cela, il existe aussi des applications métiers qui permettront de libérer une partie de votre SI :

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      • ✇LinuxFr.org : les dépêches
      • Haiku a 24 ans - nouvelles de l'été 2025
        Haiku est un système d’exploitation pensé pour les ordinateurs de bureau. Il est basé sur BeOS mais propose aujourd’hui une implémentation modernisée, performante, et qui conserve les idées qui rendaient BeOS intéressant: une interface intuitive mais permettant une utilisation avancée, une API unifiée et cohérente, et une priorisation de l’interface graphique par rapport à la ligne de commande pour l’administration du système. Le projet est actuellement (depuis 2021) en phase de beta test. La p

      Haiku a 24 ans - nouvelles de l'été 2025

      Haiku est un système d’exploitation pensé pour les ordinateurs de bureau. Il est basé sur BeOS mais propose aujourd’hui une implémentation modernisée, performante, et qui conserve les idées qui rendaient BeOS intéressant: une interface intuitive mais permettant une utilisation avancée, une API unifiée et cohérente, et une priorisation de l’interface graphique par rapport à la ligne de commande pour l’administration du système.

      Le projet est actuellement (depuis 2021) en phase de beta test. La plupart des fonctionnalités sont implémentées et l’attention des développeurs se porte sur la correction de bugs, l’amélioration de la stabilité et des performances, et plus généralement, les finitions et petits détails. Une autre part du travail est le suivi de l’évolution de l’environnement technologique: nouveaux pilotes de périphériques, suivi des derniers standards du web, etc.

      Les trois derniers mois ont été un peu plus calmes que d’habitude pour Haiku, mais cela est largement compensé par une très forte activité du côté de Haikuports. Cela révèle que le système lui-même devient plus mature et qu’il devient de plus en plus facile de développer ou de porter une application sans tomber sur des problèmes du système qui doivent être corrigés au préalable.

      Sommaire

      Applications

      Tracker

      Tracker est le navigateur de fichiers de Haiku. Le code est hérité directement de BeOS (cette partie avait été publiée sous licence libre lors de l’abandon de BeOS par Be) et fait l’objet depuis de nombreuses années d’un gros travail de nettoyage et de modernisation.

      Pas de grosses nouveautés ces derniers mois, mais des corrections pour plusieurs régressions suites à du nettoyage effectué précédemment. Par exemple, les icônes des disques montés sont à nouveaux affichés sur le bureau dans les dialogues d’ouverture et d’enregistrement de fichiers. L’annulation du filtrage du contenu d’un dossier en tapant un nom de fichier partiel est correctement annulé si on appuie sur échap.

      Enfin, des problèmes de synchronisation de l’icône de la poubelle, qui apparaissait pleine alors qu’elle était vide, ont été corrigés. Ces problèmes étaient déjà présents dans BeOS.

      Terminal

      Le terminal permet de lancer des applications en ligne de commande.

      Un chantier en cours consiste à rendre le terminal utilisable comme un “replicant”, c’est-à-dire de pouvoir l’intégrer dans d’autres applications telles que l’IDE Genio. Cette approche demande de restructurer beaucoup de choses, et pour l’instant, il est plus simple pour les développeurs de Genio de recopier une partie des sources du Terminal dans leur projet et de les intégrer de façon plus statique. Les problèmes sont corrigés petit à petit.

      Une autre correction mérite d’être mentionnée: le terminal se plaçait lui-même dans le dossier de travail du shell lancé lors de l’ouverture d’un nouvel onglet. Si ce dossier se trouve dans un disque qu’on essaie par la suite de démonter, le démontage échoue (même si l’application lancée dans le terminal a elle-même changé de dossier entretemps). Désormais le terminal ne modifie pas son dossier actif et ne bloque plus le démontage des disques.

      Mail

      L’application Mail permet de lire et d’envoyer du courrier électronique. Elle est composée d’un serveur de synchronisation et d’une interface graphique indépendante. Entre les deux, les mails sont stockés sous forme de fichiers augmentés d’attributs étendus, ce qui permet d’utiliser Tracker et les requêtes BFS comme outil principal pour traiter les messages.

      Les changements listés ici concernent l’application de lecture et rédaction de messages:

      • Correction du comportement du menu « Fermer et marquer comme… » lorsqu’il est appliqué à plusieurs messages.

        • Modifications pour éviter de montrer des informations vides, en double, ou absentes dans les détails des adresses mail (nom d’expéditeur, de destinataire, etc).

      HaikuDepot

      HaikuDepot est à la fois le gestionnaire de paquets et le magasin d’applications de Haiku. Ce double rôle conduit pour l’instant à une interface qui prête un peu à confusion, et l’interface devrait être repensée pour un fonctionnement plus intuitif. En attendant, quelques petites améliorations ont tout de même été faites pour rendre les problèmes moins gênants.

      Lorsqu’une recherche dans la vue « paquets mis en avant » ne donne aucun résultat, il y a affichage d’un lien permettant de poursuivre la recherche dans la liste complète des paquets. En effet, de nombreux utilisateurs se sont plaints de ne pas trouver certains logiciels en effectuant une recherche, sans se rendre compte qu’ils faisaient une recherche dans une liste de quelques dizaines de paquets et pas dans tout ce qui est disponible.

      TextSearch

      TextSearch est un outil de recherche dans le contenu des fichiers par expressions régulières (une version graphique de grep).

      Il reçoit ce trimestre une fonction pour filtrer les fichiers à rechercher, équivalent à l’option grep --include.

      Debug Analyzer

      Debug Analyzer est un outil de profiling et d’analyse de traces d’exécution.

      Correction d’un problème de compilation suite à des changements dans l’API de BObjectList (cet outil n’est pas compilé par défaut, il avait donc été oublié lors du changement d’API au trimestre précédent).

      Préférences d’apparence

      Dans la configuration des couleurs du système, renommage de la couleur « barre d’état » en « barre de progression ». Le nom « barre d’état » (status bar en anglais) correspond à la classe BStatusBar utilisée par BeOS et Haiku, mais tout le monde appelle ça une barre de progression. On peut au moins éviter la confusion pour les utilisateurs, à défaut de pouvoir le faire pour les développeurs d’applications en renommant la classe elle-même (ce qui causerait des problèmes de compatibilité d’API et d’ABI).

      Utilisation de IconMenuItem

      Ce changement concerne l’application ShowImage (visualiseur d’images) ainsi que FileTypes (les préférences d’association de types fichiers avec des applications). Ces deux applications utilisent un menu pour sélectionner une application (pour ouvrir une image dans un éditeur, ou pour associer un type de fichier à une application, respectivement).

      Les applications pour Haiku utilisant des icônes colorées et facilement identifiables, c’est beaucoup mieux qu’une liste de noms pour s’y retrouver rapidement. Ces deux applications utilisent donc maintenant des IconMenuItem dans ces menus, pour afficher les applications avec leur icône respective.

      Adaptation aux écrans à très haute réolution

      Un travail en cours sur les applications concerne l’adaptation aux écrans à très haute résolution.

      Presque toutes les applications pour Haiku utilisent un système de mise en page dynamique, et toutes les ressources (police de caractères, icônes…) sont vectorielles. Cela permet en théorie d’afficher l’interface avec un niveau de zoom arbitraire. Cependant, une partie du code a été écrit avec des tailles en pixels « en dur » et ne s’adapte pas comme il faudrait (la bonne façon de faire est de se baser par exemple sur la taille de la police de caractères sélectionnée par l’utilisateur).

      Ce trimestre, on trouve des évolutions à ce sujet dans plusieurs applications:

      • Expander (décompression d’archives)
      • SerialConnect (communication par port série)
      • Mise à l’échelle de la barre de défilement
      • Préférences d’imprimantes
      • Mise à l’échelle des icônes

      Outils en ligne de commande

      Remote Desktop

      L’outil de connexion au bureau à distance n’est pas vraiment une application en ligne de commande. Cependant, il nécessite pour l’instant un lancement depuis un terminal avec les bonnes options, et selon les cas, la mise en place d’un tunnel SSH. Une interface grapique plus simple d’uitlisation sera probablement ajoutée plus tard.

      • Amélioration du parsing de la ligne de commande et en particulier de l’option pour choisir un port SSH
      • Activation de l’option SO_REUSEADDR permettant de plus facilement relancer l’outil s’il plante, sans attendre un timeout de la connexion précédente qui n’a pas été fermée proprement

      Time

      Le panneau de préférences de date et heure peut être lancé en ligne de commande avec une option spécifique pour forcer une synchronisation NTP. Cette fonctionnalité n’est pas vraiment documentée, à l’origine il s’agit plutôt d’une astuce interne au système. L’application reconnaît maintenant l’option --help standardisée et affiche un message d’aide qui documente cette fonctionnalité.

      Il peut être utile de relancer cette commande manuellement si jamais la synchronisation au démarrage n’a pas fonctionné (par exemple si le réseau n’était pas disponible à ce moment-là). En particulier, cela peut être utilisé dans des scripts d’automatisation et pour des machines où l’interface graphique n’est pas facilement accessible (serveurs de build par exemple).

      pkgman

      pkgman est une commande permettant d’installer, mettre à jour et rechercher des paquets logiciels.

      Ajout d’une option --no-refresh pour ne pas retélécharger la base de données des paquets.

      Cette base de données contient non seulement les noms des paquets, mais aussi leur description courte et la liste des “provides” (par exemple: commandes et bibliothèques fournies par chaque paquet). pkgman vérifié déjà si une nouvelle version de la base de données est disponible, mais cette dernière peut être mise à jour plusieurs fois par jour par l’intégration continue.

      Le nombre de paquets augmentant, la taille de la base de données devient non négligeable (plusieurs méga-octets), ce qui pose problème en particulier pour les utilisateurs et développeurs ne disposant pas d’un accès internet illimité.

      su

      La commande su est peu utilisée puisque l’utilisateur par défaut a déjà tous les droits. Son implémentation était donc un peu incomplète. Elle peut toutefois être utile pour avoir des utilisateurs supplémentaires restraints, par exemple pour un accès à distance par ssh.

      • La commande su ne demande pas de mot de passe si l’utilisateur dispose déjà de l’accès root
      • Toutes les commandes liées à la gestion des utilisateurs (su, login…) configurent les groupes actifs lors du changement d’utilisateur

      listarea

      listarea est une commande de debug permettant de lister les zones mémoire allouées à différentes applications. Elle affiche maintenant le verrouillage et les protections de ces zones (swappable ou non, exécutabele ou non, accessible en écriture ou non).

      fdinfo

      fdinfo permet d’examiner les descripteurs de fichiers ouverts (un peu comme lsof). Cette commande peut maintenant afficher en plus le dossier courant de chaque application (ce qui aurait été bien utile pour identifier le problème avec le dossier courant du Terminal ci-dessus).

      install-wifi-firmwares

      Ce script permet d’installer les firmwares pour certaines très anciennes cartes Wifi. Les firmwares publiés à l’époque sont disponibles avec des licenses n’autorisant pas la redistribution ou les modifications de packaging, ce qui empêche l’intégration dans le système de paquets habituel. Le problème a été corrigé depuis longtemps par les fabricants de cartes Wifi, mais les anciens firmwares n’ont jamais été republiés avec des licenses mises à jour.

      Le script a été mis à jour pour récupérer certains firmwares depuis un nouveau serveur, l’ancien emplacement utilisé n’étant plus disponible.

      Kits

      La bibliothèque de fonctions de Haiku est découpée en kits qui regroupent des ensembles de fonctions et de classes par thématique (stockage sur disque, interface graphique…). Dans certains cas il s’agit principalement d’une méthode d’organisation du code source et de la documentation (les kits pouvent être très interdépendants). Certains kits sont toutefois fournis sous forme de bibliothèques séparées.

      Support kit

      Ce kit contient diverses fonctions utilitaires et basiques du système.

      Changement d’API pour la classe BUrl. Dans l’ancienne version de cette classe, il était possible de construire un objet BUrl représentant une URL encodée ou non-encodée (échappement des caractères réservés). Cela rendait trop facile d’oublier d’encoder une URL avant de l’utiliser, ou bien d’encoder plusieurs fois une URL et de se retrouver avec un lien invalide.

      La nouvelle API impose d’indiquer dès la création d’un objet BUrl si la chaîne de caractères servant de base est déjà encodée ou non. L’objet BUrl construit représentera toujours une URL déjà encodée, qui peut éventuellement être décodée pour affichage si nécessaire.

      Interface kit

      Ce kit contient tout ce qui se rapporte à l’interface graphique: fenêtres, vues, contrôles, mise en page…

      Retour en arrière sur une modification des raccourcis claviers de BTextView pour naviguer vers les mots suivant et précédent. Les nouveaux raccourcis entrent en conflit avec des raccourcis déjà utilisés par plusieurs applications, et n’apportaient pas grand-chose.

      Correction de problèmes de compatibilité dans le format des données stockées par la classe BPicture (il s’agit d’un enregistrement de commandes envoyées au serveur graphique, qui peuvent être rejouées plus tard). Le format des données stockées était différent de celui de BeOS. Certaines applications utilisant un objet BPicture enregistré dans une ressource de l’application, ne s’affichaient pas correctement.

      Amélioration de la gestion des sous-menus, en particulier cela corrige un crash si un sous-menu est fermé en utilisant la touche échap.

      Remise à plat de tous les calculs accumulés au cours des années pour générer les couleurs de l’interface graphique en fonction des couleurs choisies par l’utilisateur. Chaque morceau de code concernait faisait ses propres calculs pour générer de jolis dégradés, des variantes plus sombres et plus claires, etc. Cela fonctionnait bien avec le thème par défaut, mais pas forcément avec des choix de couleurs qui en sont très éloignés. Le nouveau code est plus simple, plus prédictible, et permet de rassembler ces calculs dans la classe « control look », qui peut être remplacée par un add-on pour fournir une apparence complètement différente.

      Cela peut nécessiter d’ajuster un peu les couleurs dans les préférences d’apparence si vous les avez personnalisées.

      Storage kit

      Ce kit regroupe tout ce qui concerne le stockage de masse et la gestion des fichiers.

      Harmonisation de la nouvelle fonction BQuery::SetFlags avec d’autres fonctions similaires, et ajout d’une page de documentation pour cette fonction.

      Correction d’un crash lorsqu’on enregistre un type MIME alors que le type parent n’existe pas (par exemple si on enregistre image/gif alors que le type image n’existe pas).

      Ajout d’une constante pour identifier les systèmes de fichiers FAT16 parmi la liste des systèmes de fichiers connus.

      Shared kit

      Le shared kit contient des fonctions expérimentales en cours de développement mais déjà utilisées par plusieurs applications.

      Contrairement aux autres kits, il est fourni sous forme d’une bibliothèque statique, ainsi chaque application peut en utiliser une version différente (choisie au moment de la compilation) et il n’y a pas de contraintes pour conserver une stabilité d’API ou d’ABI. Les fonctions développées dans le shared kit peuvent ensuite être migrées vers les autres kits une fois qu’elles sont finalisées.

      La classe « color list » (utilisée par exemple dans les préférences d’apparence) accepte maintenant le glisser-déposer de couleurs.

      Serveurs

      Les serveurs sont des applications lancées au démarrage du système. Ils sont similaires aux services systemd. Ils fournissent des services utiles à l’implémentation de la bibliothèque standard, car tout ne peut pas être fait dans une bibliothèque partagée.

      app_server

      app_server regroupe le serveur graphique de Haiku (utilisé au travers de l’interface kit) ainsi que la gestion des applications en lien avec l’application kit.

      Correction d’un problème d’initialisation de variables indiquant dans quels workspaces (bureaux virtuels) une fenêtre doit être présente. Cela se manifestait par l’apparition de morceaux incomplets de la fenêtre si on change de bureau virtuel pendant son apparition. Le bug existait depuis 15 ans mais n’avait jusque-là pas pu être identifié.

      Les curseurs de souris ne sont plus générés en bitmap à la compilation à partir des sources vectorielles. C’est maintenant fait lors de l’initialisation du serveur graphique, ce qui permet d’avoir un plus gros curseur sur les écrans à très haute résolution.

      input_server

      input_server se charge des périphériques d’entrée utilisateurs (claviers, souris et autres périphériques de saisie et de pointage).

      Correction de la keymap espagnole latino-américaine dans laquelle plusieurs combinaisons de touches ne fonctionnaient pas comme sur les autres systèmes.

      Pilotes

      ACPI, gestion d’énergie, système

      Mise à jour de ACPICA pour la prise en charge de ACPI avec la dernière version disponible.

      Correction de problèmes dans le pilote poke (permettant l’accès direct à la mémoire pour écrire certains pilotes en espace utilisateur) pour mieux valider les paramètres des ioctl et éviter de pouvoir facilement déclencher un kernel panic suite à une mauvaise utilisation du pilote.

      Réseau

      Correction d’un problème dans la pile TCP ou les retransmissions de paquets lors de l’établissement de la connexion n’étaient pas faits, si le premier paquet était perdu, la connexion ne s’établissait jamais.

      Lorsque IP_HDRINCL est activé (une application demande à envoyer et recevoir elle-même les en-têtes IP des paquets reçus), la pile réseau s’assure tout de même que les en-têtes générés ont bien un checksum valide. Cela permet à traceroute de fonctionner correctement par exemple.

      Mise en place de l’infrastructure pour la découverte de MTU deu chemin. Cela permet de déterminer la taille maximale des paquets qu’on peut envoyer vers un serveur, sans que de la fragmentation IP soit mise en jeu en cours de route (ce qui, au mieux dégraderait les performances, au pire empêcherait la connexion de fonctionner correctement):

      • Ajout de l’option IP_DONTFRAG pour demander aux routeurs de ne pas redécouper certains paquets,
      • Remontée de l’information ICMP FRAGMENTATION_NEEDED pour détecter qu’on a essayé d’envoyer un paquet trop gros.

      Cela permet déjà de détecter les problèmes de MTU, mais pas encore de les corriger automatiquement. La suite du code est encore en cours de test.

      Remplacement du pilote iprowifi3945 par la version mise à jour disponible dans OpenBSD (pilote “wpi”) à la place de celle de FreeBSD qui est actuellement moins bien maintenue.

      Interface homme-machine

      Ajout de la tablette Intuos 4 dans le pilote pour les tablettes Wacom, ainsi que du support de la molette présente sur certaines tablettes.

      Systèmes de fichiers

      NFS4

      NFS est un système de fichier en réseau. Une machine serveur se charge réellement du stockage des fichiers, et d’autres machines peuvent monter ce disque et accéder aux fichiers partagés. Plusieurs machines peuvent accéder au même serveur en même temps et modifier les fichiers, ce qui nécessite une attention particulière lors de l’implémentation d’un système de fichier client.

      Le travail sur le pilote NFSv4 se poursuit pour le stabiliser et améliorer sa compatibilité avec les serveurs NFS existants.

      Correction de problèmes de gestion du cache et de libération anticipée d’inodes`, points sur lesquels NFS est un peu inhabituel par rapport à d’autres systèmes de fichiers puisque des évènements peuvent arriver du serveur NFS concernant un fichier qui a été supprimé localement, par exemple.

      Correction d’un problème qui pouvait conduire un fichier nouvellement redimensionné à contenir des données non initialisées au lieu d’octets à 0.

      Cela permet de corriger des problèmes détectés par des tests NFSv4 existants pour d’autres systèmes.

      EXT4

      Le pilote ext4 permet de monter, en lecture et en écriture, les systèmes de fichiers ext2, ext3 et ext4 développés pour Linux.

      Implémentation et activation de la fonctionnalité « metadata_csum_seed » qui est activée par défaut pour les systèmes de fichiers nouvellement créés sous Linux.

      Corrections dans le « tree splitting » qui n’était pas implémenté correctement, empêchant d’accéder à des dossiers contenant un trop grand nombre de fichiers.

      RAMFS

      RAMFS est un système de fichiers non persistant, stockant les fichiers uniquement dans la RAM. Il est plus rapide qu’un système de fichier traditionnel.

      Correction de crashs lors de la création de gros fichiers et lors du remplacement d’un hardlink par un autre fichier.

      FAT

      FAT est un système de fichiers développé par Microsoft pour DOS et les anciennes versions de Windows. Il est assez répandu et sert un peu de format d’échange standard en particulier pour les supports de stockage externes (clés USB, cartes SD, disquettes…).

      Ajout d’assertions et de vérifications d’intégrité supplémentaires. Le pilote FAT utilisé actuellement provient de FreeBSD, dont les développeurs nous ont assuré qu’il était bien testé et maintenu. Mais, de façon similaire aux pilotes Wifi, on se rend compte que les bases d’utilisateurs de Haiku et de BSD ne sont pas du tout les mêmes, et nous sommes face à beaucoup de systèmes de fichiers FAT corrompus ou inhabituels, ce qui se produit peut-être moins souvent dans les utilisations de FreeBSD sur un serveur par exemple.

      libroot

      La libroot contient l’équivalent de la libc, libdl, libpthread et libm d’un système UNIX standard, ainsi que des fonctions bas niveau spécifiques à BeOS.

      Les extensions GNU et BSD sont déportées dans des bibliothèques séparées (libgnu et libbsd), ce qui permet de respecter au mieux la spécification POSIX sans avoir à utiliser des astuces telles que des « weak symbols ».

      Mise à jour de la libio

      La bibliothèque standard de Haiku est à l’origine un fork de la glibc, utilisant exactement la même version que BeOS afin de garantir une compatibilité d’ABI optimale avec ce dernier. Cependant, cette version ancienne et obsolète ne répond pas aux besoins des applications modernes.

      Petit à petit, des parties de la bibliothèque C sont donc remplacées par des composants venant de FreeBSD, NetBSD, OpenBSD ou plus récemment de musl. Certaines choses sont très bien standardisées et ne posent pas de problèmes, pour d’autres parties, des symboles internes de la bibliothèque sont exposés et parfois exploités par des applications (directement par des développeurs applicatifs pour contourner un bug, ou alors parce que les développeurs de la glibc ont mal isolé les choses et ont exposé des détails internes).

      Ce trimestre, la partie libio (gestion des flux d’entrée-sortie) a été mise à jour avec la dernière version de la glibc. Il n’est pas possible d’utiliser une autre bibliothèque C pour cette partie sans casser l’ABI, mais la mise à jour est possible.

      Correction de multiples problèmes dans les fonctions standard C et les extensions BSD:

      • Ajout d’une vérification de la locale passée à setlocale pour retourner une erreur si la locale demandée est invalide.

      • L’ouverture d’un chemin se finissant par un / avec open() échoue si le fichier n’est pas un dossier (par exemple open("/home/user/foo.txt/")).

      • Validation du paramètre “how” de la fonction shutdown() et retour d’une erreur si le paramètre n’est pas une valeur connue.

      • Les queues d’évènement créées par kqueue ne sont pas conservées lors d’un fork (même comportement que les BSD).

      • Un socket sur lequel il n’y a jamais eu d’appel à listen() ou connect() ne doit pas déclencher les erreurs EPIPE ni ENOTCONN.

      • La fonction socket() retourne maintenant les bons codes d’erreurs détaillés si elle ne peut pas créer le socket: EPROTOTYPE si le type de protocole est inconnu, EPROTONOSUPPORT s’il est connu mais pas disponible, EAFNOSUPPORT si la famille d’adresse n’est pas disponible. Auparavant, tous ces cas renvoyaient EAFNOSUPPORT.

      • Amélioration de la gestion des erreurs dans accept()

      • Gestion de cas particuliers pour bind() en UDP

      • Ajout de l’option RTLD_GROUP pour dlopen(). Il s’agit d’une extension développée par Solaris qui permet d’avoir plusieurs espaces de noms pour la résolution de symboles lors du chargement de bibliothèques partagées. En particulier, dosemu l’utilise pour fournir aux programmes DOS une bibliothèque C indépendante de celle de l’hôte (fournissant donc des fonctions memcpy, memset… qui entreraient en conflit avec celles de l’hôte). L’implémentation est triviale, car le même comportement était déjà en place pour la gestion des add-ons de BeOS; il n’était simplement pas accessible au travers de l’API POSIX dlopen(). Linux implémente ce flag sous un autre nom, cependant, la documentation de la glibc n’est pas correcte, et FreeBSD a implémenté ce qui est documenté pour la glibc avec le même nom. C’est pourquoi le nom utilisé par Solaris, qui n’est pas ambigu, est utilisé pour l’instant, en espérant que la méprise entre Linux et FreeBSD pourra être corrigée.

      • sethostname() retourne une erreur si le hostname proposé est trop long (auparavant il était simplement tronqué).

      Intégration des changements de POSIX-2024

      La spécification POSIX a été mise à jour en 2024. Cette mise à jour est assez importante grâce à un changement de la méthode de travail de l’Austin Group qui maintient la spéficication. Le groupe de travail a ouvert un bug tracker sur lequel il est possible de remonter des problèmes et de proposer des améliorations (à conditions que ces dernières soient déjà implémentées sous forme d’extensions sur un assez grand nombre de systèmes).

      Cela a permis à plus de monde de prendre part à la spécification et de standardiser beaucoup de nouvelles choses. Haiku intègre ces changements petits à petits, parfois par anticipation, parfois parce que l’extension correspondante était déjà disponible, et parfois parce que le portage d’un logiciel le nécessite.

      • Ajout de O_CLOFORK, MSG_CMSG_CLOEXEC, et MSG_CMSG_CLOFORK pour fermer des descripteurs de fichiers lors d’un fork (équivalent de O_CLOEXEC qui ferme lors d’un exec, typiquement après un fork). Au passage, ajout dans la libbsd de closefrom() et closerange(), ces deux fonctions permettant de lancer des tests développés pour BSD pour ces nouveaux drapeaux.
      • Ajout de fdatasync(), une fonction qui s’assure que le contenu d’un fichier est bien enregistré sur disque et pas seulement dans le cache.

      Améliorations sur la gestion de la mémoire

      La gestion de la mémoire est un sujet central pour un système POSIX. L’API proposée (malloc, realloc, calloc et free) est à la fois très simple d’utilisation et très générique. Elle a donc tendance à être très sollicitée par les applications, ce qui en fait un composant critique de l’optilisation des performances du système. De plus, les applications sont de plus en plus consommatrices de mémoire et le matériel a tendance à en contenir de plus en plus.

      L’allocateur mémoire a été remplacé il y a quelques mois, l’ancien allocateur hoard2 ne permettant pas d’agrandir dynamiquement l’espace alloué à une application. Après plusieurs essais, c’est pour l’instant l’allocateur d’OpenBSD qui a été retenu. En effet, beaucoup d’allocateurs plus modernes supposent un espace d’adressage 64 bit et sont peu économes en termes de réservation d’espace mémoire.

      Cependant, même l’allocateur d’OpenBSD montrait ses limites sur les systèmes 32 bit. Son paramétrage a été amélioré, et d’autres modifications ont également été faites pour réduire la fragmentation de l’espace mémoire. Cela corrige des problèmes ou GCC ne parvient pas à allouer assez de mémoire lors de la compilation de très gros fichiers (par exemple lors de la compilation de clang ou de webkit). Il reste recommandé de désactiver l’ASLR (randomization de l’espace d’adressage) dans les cas où on a besoin de beaucoup de mémoire pour une application 32 bits.

      Noyau

      Le noyau de Haiku est un noyau monolithique tout à fait classique pour un système UNIX. Il permet le chargement dynamique de modules, et fournit une API relativement stable pour ces derniers, ce qui permet de maintenir des pilotes facilement en dehors du dépôt de sources de Haiku.

      Correction de problèmes causant le kernel panic « failed to acquire spinlock for a long time » lorsque l’affichage à l’écran des logs du noyau est activé.

      Ajout d’assertions supplémentaires dans le code de gestion de la mémoire virtuelle pour essayer de détecter des problèmes au plus tôt et avant de risquer de corrompre des données importantes.

      Correction de l’affichage des paramètres des appels systèmes dans strace sur x86.

      Correction de problèmes dans la gestion des permissions pour write_stat (modification des informations sur un fichier comme la date de modification) dans le noyau ainsi que dans les systèmes de fichiers RAMFS, BFS et EXT4. Cela corrige des comportements étranges observés lors de l’utilisation de rsync.

      Ajout d’un test vérifiant le bon fonctionnement des exceptions remontées par le FPU lors de calculs en virgule flottante (ces exceptions sont un peu difficiles à traiter dans un système multitâche, et en particulier dans Haiku où le code du noyau peut lui-même utiliser le FPU alors que ce n’est pas le cas pour d’autres systèmes).

      Correction de problèmes liés au découpage et au redimensionnement des areas (zones de mémoires allouées par les APIs prévues à cet effet de BeOS, ou indirectement par mmap et d’autres fonctions permettant de manipuler l’espace mémoire). Cela corrige des problèmes pour RAMFS ainsi qu’un kernel panic observé lors du lancement de dosemu.

      Correction de problèmes avec les areas en lecture seule, qui pouvaient aboutir dans certains cas à une sous-évaluation de la mémoire utilisée, aboutissant à un kernel panic, car il n’y a plus de mémoire disponible à un moment où le noyau ne s’y attend pas. Cela a été mis en évidence en particulier avec l’utilisation mémoire de certains navigateurs web, qui ont tendance à gérer la mémoire directement sans passer par l’allocateur standard du système, pour des raisons de performance.

      Remise en route de guarded_heap (un allocateur mémoire qui détecte les dépassements de buffers, au prix d’une consommation mémoire fortement augmentée). Correction de problèmes mis en évidence par cet allocateur dans quelques pilotes.

      Dans la structure mcontext/ucontext passée aux fonctions de traitement de signaux, ajout de plusieurs registres manquants (registres de segments, addresse de faute…). Cela est utilisé par le JIT de dosemu et va probablement permettre d’utiliser le JIT dans d’autres applications également. En effet, une approche possible pour le JIT est de déclencher volontairement un signal, afin d’intercepter l’état des registres, éventuellement de le manipuler, puis de reprendre l’exécution là où elle s’était arrêtée.

      Ajout de vérification de permissions manquantes dans l’appel système get_extended_team_info.

      Correction d’une possible fuite d’un descripteur de fichier dans le VFS.

      Bootloader

      Mise à 0 de tous les registres non utilisés lors de l’appel de fonctions du BIOS, afin d’aider à investiguer des problèmes avec certains BIOS capricieux.

      Amélioration des messages d’erreurs lorsque le bootloader ne parvient pas à charger le fichier ELF du noyau. Le chargeur de fichiers ELF du noyau est volontairement incomplet pour simplifier les choses (après tout, il a besoin seulement de charger le noyau), mais cela pose problème lors de mises à jour de GCC ou lors du portage sur de nouvelles architectures, si l’organisation du fichier ELF du noyau se trouve modifiée.

      Correction de problèmes de compilation lorsque des logs de debug optionels sont activés.

      Documentation

      La documentation de Haiku se découpe principalement en trois parties:

      • Un guide de l’utilisateur,
      • Une documentation d’API pour les développeurs d’applications,
      • Une documentation d’implémentation pour les développeurs du système lui-même.

      API (Haiku book)

      Documentation de la classe BControl (classe abstraite qui fournit l’API standard de la plupart des contrôles utilisables dans l’interface graphique, les rendant interchangeables dans une certaine mesure).

      Documentation de AdoptSystemColors et HasSystemColors pour la classe BButton.

      Ajout de documentation pour les extensions à dlfcn.h par rapport à ce qui est déjà spécifié par POSIX.

      Environnement de compilation

      Haiku est écrit en C++ et utilise jam (un concurrent de make) comme outil principal de compilation. Cet outil a été retenu, car il permet de définir des règles de compilation génériques et réutilisables pour faire toutes sortes de choses. La compilation de Haiku pouvant mettre en jeu trois compilateurs différents (un pour le système hôte, un pour le système Haiku cible, et un troisième pour la couche de compatibilité avec BeOS), la plupart des autres outils ne répondent pas bien aux besoins.

      Suppression de règles Jam redondantes. Jam repose sur des règles nommées pour savoir quelles actions sont nécessaires pour générer une cible à partir de sources. Les règles “Application”, “Server”, “Preferences” et “Executable” étaient toutes identiques, elles ont donc toutes été remplacées par “Application” pour simplifier le système de build.

      Correction de “warnings” du compilateur pour des variables inutilisées et suppression de code mort (dans le cadre du maintien d’un code propre et lisible, une tâche plus ou moins continue pour suivre l’évolution des bonnes pratiques, la disponibilité de nouveaux outils d’analyse, et absorber la dette technique qui peut s’accumuler au cours d’un projet aussi ancien).

      Début de support pour GCC 15: il est ajouté dans la liste des versions du compilateur reconnues pour le système hôte, ce qui permet de compiler Haiku depuis un système Linux très récent. L’intégration en tant que compilateur cible viendra plus tard.

      Remplacement de la commande which utilisée dans certains scripts de build par l’équivalent command -v, ce qui évite une dépendance à une commande non standard qui n’est pas forcément installée par défaut partout.

      Dans le makefile engine (un template de makefile proposé pour développer facilement des applications pour Haiku), ajout de documentation et d’exemples pour les variables INSTALL_DIR et TARGET_DIR.

      Portage de Haiku sur d’autres CPUs

      RISC-V

      Correction d’un problème dans un script de link qui empêchait le démarrage du noyau.

      Mise à jour de paquets utilisés pour compiler le système de base.

      Mise en place d’un serveur de compilation de paquets pour RISC-V, ce qui permet de remplir le dépôt de paquets pour cette architecture et d’envisager une version officielle de Haiku pour RISC-V lors de la prochaine version bêta. L’architecture RISC-V s’ajoutera ainsi au x86 (32 et 64 bit) déjà supporté.

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      • ✇LinuxFr.org : les dépêches
      • Revue de presse de l’April pour la semaine 32 de l’année 2025
        Cette revue de presse sur Internet fait partie du travail de veille mené par l’April dans le cadre de son action de défense et de promotion du logiciel libre. Les positions exposées dans les articles sont celles de leurs auteurs et ne rejoignent pas forcément celles de l’April. [La Déferlante] Ivonne Gonzalez: «Féminiser, décoloniser et diversifier Wikipédia» [ZDNET] Dassault Aviation adhère à l'open source avec le TOSIT [Numerama] Lazarus est de retour: les célèbres voleurs de crypto-monnaies

      Revue de presse de l’April pour la semaine 32 de l’année 2025

      Par : echarp Arkem
      11 août 2025 à 20:16

      Cette revue de presse sur Internet fait partie du travail de veille mené par l’April dans le cadre de son action de défense et de promotion du logiciel libre. Les positions exposées dans les articles sont celles de leurs auteurs et ne rejoignent pas forcément celles de l’April.

      [La Déferlante] Ivonne Gonzalez: «Féminiser, décoloniser et diversifier Wikipédia»

      ✍ Coline Clavaud-Mégevand, le jeudi 7 août 2025.

      Le 3 septembre paraîtra le numéro 19 de La Déferlante intitulé «S’informer en féministes». Pendant tout le mois d’août, nous donnons la parole à des personnes qui s’engagent pour une information fiable et indépendante. Deuxième d’une série de quatre: le témoignage d’Ivonne Gonzalez, artiste et militante afro-féministe, à l’origine du projet Noircir Wikipédia qui se propose de «décoloniser» l’encyclopédie en ligne pour la rendre plus inclusive.

      [ZDNET] Dassault Aviation adhère à l'open source avec le TOSIT

      ✍ Christophe Auffray, le mardi 5 août 2025.

      En réponse aux enjeux de souveraineté et de dépendance technologique, l’avionneur Dassault Aviation rejoint le TOSIT.

      [Numerama] Lazarus est de retour: les célèbres voleurs de crypto-monnaies nord-coréens ciblent désormais l'open source

      ✍ Amine Baba Aissa, le lundi 4 août 2025.

      Dans une étude publiée fin juillet 2025, les chercheurs de Sonatype annoncent avoir détecté une vaste campagne d’espionnage menée au sein des écosystèmes open source. Aux commandes: Lazarus, un groupe cybercriminel affilié à l’État nord-coréen, connu depuis plus d’une décennie pour des détournements spectaculaires

      [Solutions-Numeriques] Biens publics numériques: le CNLL dénonce une exclusion déguisée des éditeurs open source français

      ✍ Camille Suard, le vendredi 1 août 2025.

      Le CNLL alerte sur l’usage flou du terme «communs numériques» dans les politiques publiques. Ce qui est mis en cause notamment c’est une stratégie de vocabulaire qui favoriserait certains projets open source au détriment des éditeurs français de logiciels libres, en contradiction avec la loi pour une République numérique.

      Et aussi:

      [The Conversation] L'IA Open Source et frugale: la clé de l'autonomie stratégique européenne?

      ✍ Julien Pillot, le jeudi 31 juillet 2025.

      L’Union européenne peut-elle exister sur le marché de l’intelligence artificielle face aux États-Unis et à la Chine? Tout est question de modèle économique et de stratégie environnementale.

      Et aussi:

      [INCYBER NEWS] Bye-bye Microsoft! Comment les organisations se mettent (enfin) au logiciel libre

      ✍ Emmanuel Langlois, le lundi 28 juillet 2025.

      Un pays tout entier, le Danemark, un länder allemand, des dizaines de communes, comme Lyon, la troisième ville de France… Lentement mais sûrement, les collectivités basculent vers Linux, LibreOffice et autres NextCloud. Le but est économique, mais aussi d’asseoir sa souveraineté numérique et d’en finir avec la dictature des GAFAM.

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      • ✇LinuxFr.org : les dépêches
      • La convention du mètre et l’ODF 150 et 20 ans d’ouverture
        La convention du mètre fête ses cent cinquante ans cette année tandis que le format bureautique OpenDocument Format (ODF) a soufflé vingt bougies. Ça vaut bien une dépêche sans doute ce qui nous permettra de dresser un historique de ces deux types de normes et, peut-être, de mieux mettre en lumière la nécessité des formats ouverts pour les personnes pour qui la notion n’est soit pas facile à expliquer, soit pas familière. Quel rapport entre les deux ? Le système métrique, dont l’histoire est pas

      La convention du mètre et l’ODF 150 et 20 ans d’ouverture

      La convention du mètre fête ses cent cinquante ans cette année tandis que le format bureautique OpenDocument Format (ODF) a soufflé vingt bougies. Ça vaut bien une dépêche sans doute ce qui nous permettra de dresser un historique de ces deux types de normes et, peut-être, de mieux mettre en lumière la nécessité des formats ouverts pour les personnes pour qui la notion n’est soit pas facile à expliquer, soit pas familière. Quel rapport entre les deux ? Le système métrique, dont l’histoire est passionnante, est, à ma connaissance, le tout premier standard ouvert. Quant à l’ODF, c’est l’un des premiers, si ce n’est le tout premier, standard bureautique ouvert.

      Dessin. En haut un double décimètre, au milieu les chiffres 1795, 1875, 2025, 230, 150 et 20 entourant un gâteau avec une bougie. En bas les icônes des formats Open Document File : ODB, ODF, ODP, ODS et  ODT

      Qu’écouter en lisant cette dépêche ? L’Enfant les sortilèges (1925) tout particulièrement pour la leçon d’arithmétique, musique de Maurice Ravel, texte de Colette dont l’œuvre vient d’entrer dans le domaine public.

      Sommaire

      Préambule

      En 2018, lors des dernières rencontres mondiales du Logiciel Libre (RMLL) à Strasbourg, j’avais fait une conférence dont le sujet était Formats ouverts et métrologie, dont on peut télécharger le livret explicatif. C’est par cette approche que, personnellement, j’ai vraiment pleinement compris ce qu’était un format ouvert et, surtout son importance et, accessoirement que j’ai réalisé à quel point le système métrique était une avancée formidable. Mêler le matériel (système métrique) au logiciel (format ODF) peut être une façon pour certaines personnes de mieux comprendre des notions très abstraites.

      L’aventure du système métrique

      Une grande diversité des mesures et une préoccupation ancienne

      Avant le système métrique, la question des poids et mesures dans le royaume de France a été un sujet crucial qui a fait l’objet de plusieurs tentatives d’uniformisation. Les poids et mesures variaient d’un endroit à l’autre avec, souvent, les mêmes noms, facilitant ainsi les confusions et les escroqueries. Après une difficile uniformisation de la monnaie, le pouvoir monarchique va s’attaquer à l’uniformisation des poids et mesures. Plusieurs tentatives auront eu lieu, sous Philippe Le Bel (1285-1314), Philippe V Le Long (vers 1293-1322), Louis XI (1423-1483), François 1ᵉʳ (1494-1547) et Henri II (1519-1547) sans succès. En 1321, Philippe V indique, dans le deuxième article d’une ordonnance royale :

      en notre dit Royaume où il y a diverses mesures et divers poids en déception et lézion de plusieurs, fussent faites de nouvel en un seul poids et une seule mesure convenable desquelles le peuple usât dorénavant. (Métrologie ou Traité des mesures, poids et monnoies des anciens peuples & des modernes).

      Philippe V meurt peu de temps après, cette politique ambitieuse ne se réalisera pas complètement et la multitude de systèmes de poids et mesures continuera à faire la prospérité des seigneurs et des villes. Cette diversité posait également la question de la fiabilité des étalons des poids et mesures, pas toujours fabriqués dans des matériaux fiables, et dont l’emplacement n’était pas toujours connu quand ils n’étaient pas perdus. C’était, de fait, un obstacle à la circulation des marchandises. D’ailleurs, quand, en 1789, Louis XVI convoque les États généraux, l’uniformisation des systèmes de mesure sera une revendication que l’on retrouvera dans de nombreux cahiers de doléances.

      La question va se poser avec encore plus d’acuité au fur et à mesure que la science s’appuie de plus en plus sur la métrologie. Il fallait aux scientifiques un système de mesures fiable, documenté et reproduisible. Les questions qui vont se poser concernent aussi bien sur quelles bases établir ces mesures que du choix et de la forme des matériaux pour la fabrication des étalons de mesure et en quelle base calculer. À la veille de la Révolution française, les scientifiques sont prêts pour ce qui sera aussi une révolution mais d’un autre genre.

      Tableau de comparaison des mesures anciennes
      Extrait du tableau de correspondance des mesures du « Mémoire sur la nécessité et les moyens de rendre uniformes les mesures d’étendue et de pesanteur » de Claude-Antoine Prieur. On voit bien la complexité d’un système que le « pied de Roi » avait essayé de simplifier. Il y avait une aune pour les soieries, une pour les lainages et une pour les toiles qui valaient respectivement : 527,5/144, 526,5/144 et 524/144 de pied de Roi. Les mesures nationales sont celles qui seront proposées comme nouvelles mesures avec des noms essayant de ne pas trop s’éloigner des anciennes : le millaire pour remplacer la lieue de Paris, la perche, l’aune, le pied, le pouce et la ligne étant gardés.

      La mise en place du système décimal et du système métrique

      Le travail législatif commence en 1790. Le député de la Côte d’or, Claude-Antoine Prieur rédige un Mémoire sur la nécessité et les moyens de rendre uniformes les mesures d’étendue et de pesanteur, De les établir sur des bases fixes et invariables ; D’en régler tous les multiples et les subdivisions suivant l’ordre décuple ; D’approprier enfin à ce nouvel ordre le cours des petites monnoies qui sera présenté à l’Assemblée nationale. L’objet du mémoire est de répondre à la question « sur quels principes cette mesure doit être établie. » (Introduction du Mémoire). Talleyrand, évêque d’Autun, propose d’écrire au Parlement anglais qui, de son côté, discutait de ce sujet pour les mêmes raisons : la diversité des mesures et son aspect dommageable. Talleyrand suggérait que la France et l’Angleterre travaillent ensemble sur le projet. La lettre reçut un accueil favorable. L’Assemblée fera donc un décret demandant au roi notamment de :

      • faire déterminer la longueur du pendule à seconde qui devait servir de base,
      • demander aux communes et départements « au Secrétariat de l’Académie des Sciences un modèle parfaitement exact des différents poids et des mesures élémentaires qui y sont en usage » 
      • charger l’Académie des sciences de comparer les anciens poids et mesures aux nouveaux et d’envoyer aux municipalités ensuite « des livres usuels et élémentaires où seront indiquées avec clarté toutes ces proportions »,
      • et surtout, que les anciennes mesures soient abolies dans les six mois après la réception des nouvelles et remplacées par celles-ci.

      Portraits
      Portraits de Lagrange, Laplace, Monge et Condorcet, les deux premiers sont tirés de l’ouvrage : Le Système métrique décimal.

      En 1791 une commission composée de la fine fleur des savants de l’époque, Jean-Charles de Borda (mathématicien et physicien), Joseph-Louis Lagrange (mathématicien et astronome), Pierre-Simon Laplace (mathématicien et astronome), Gaspard Monge (mathématicien) et Nicolas de Condorcet (mathématicien et philosophe), dépose un rapport sur le choix d’une unité de mesures. Il fallait qu’elle soit nouvelle et prise dans la nature. Trois choix sont proposés :

      • La longueur du pendule à secondes ;
      • Un quart de cercle de l’équateur terrestre ;
      • Un quart du méridien, entre le pôle et l’équateur.

      La première a deux inconvénients : elle est liée à l’unité tout à fait arbitraire qu’est la seconde de temps ; et elle fait intervenir le temps et l’intensité de la pesanteur, considérations bien étrangères à l’unité de longueur.

      Le quart de l’équateur est repoussé aussi, car la régularité de ce cercle n’est pas plus assurée que celle des méridiens, et les régions équatoriales sont d’un accès difficile. On adopte donc le quart du méridien, dont la dix-millionième partie sera l’unité usuelle ; mais comme sa mesure entière n’est pas possible, on convient de se borner à un arc de grandeur suffisante dont les extrémités tombent l’une au nord l’autre au sud du parallèle 45°. La partie du méridien de Dunkerque à Barcelone est adoptée ; elle suit la méridienne de Paris déjà mesurée, ce qui donnera des vérifications précieuses. (Le Système métrique décimal. Sa création en France. Son évolution. Ses progrès).

      La commission est reçue le 19 juin 1791 par un Louis XVI qui s’enfuira le lendemain et sera arrêté le 21 juin 1791 à Varennes, ouvrant ainsi la page de l’Histoire de France la plus complexe sur le plan politique.

      Le 1er août 1793, première loi. Son article premier indique que :

      Le nouveau système des poids et mesures, fondé sur la mesure du méridien de la Terre et la division décimale, servira uniformément dans toute la République.

      Il prévoit un temps d’adaptation d’une année à l’issue de laquelle le nouveau système deviendra obligatoire et aussi (article 10 de la loi) que l’Académie des sciences fasse un livre

      à l’usage de tous les citoyens, contenant des instructions simples sur la manière de se servir des nouveaux poids et mesures, et sur la pratique des opérations arithmétiques relatives à la division décimale.

      Le système décimal donnera d’ailleurs à plusieurs publications d’origines diverses. Par exemple, en 1799, Le Système métrique et ses rapports de Jacques Schwab, habitant de Nancy. Il y propose des méthodes de calcul « faciles » à exécuter :

      J’ai, pour cela, tâché de ramener chaque rapport à une suite de fractions simples, qui répondent à 5 ou 6 chiffres de ce rapport, lesquels, si on les avait employés, auraient trop embarrassé le calcul par la multiplicité des chiffres ; d’ailleurs ces rapports ne se retiennent pas aussi volontiers dans la mémoire qu’une suite de fractions ; telles que ⅓, ½ pour 100, 3 par mille, etc. Ainsi, pour convertir des aunes en mètres, au lieu de multiplier par 1,188446, j’ajoute d’abord le 10^e ; sur ce premier résultat je prends 8 pour 100, sur ce second, ½ pour 100, et enfin le 80^e de ce dernier.

      Si les poids et mesures vont rester, dans la première partie de l’histoire du système métrique, basées sur le méridien terrestre. Il n’en va pas de même pour la température. En effet :

      la Commission « avait choisi la chaleur moyenne de la Terre, celle des caves de l’Observatoire, c’est-à-dire douze degrés et demi du thermomètre divisé en cent degrés »… (Le Système métrique décimal.).

      Quand le rapport Prieur préconisait qu’elle soit (j’ai gardé la graphie de l’auteur) :

      fixée, par exemple à dix dégrés du thermomètre à mercure, gradué à zéro pour la glace fondante, et à 80 dégrés pour l’eau distillée bouillante sous une pression constante de l’atmosphère, pression elle-même évaluée par la hauteur d’une colonne de mercure exprimée en fractions de la longueur du pendule.

      Dans la tourmente de la Révolution, les travaux de calcul du méridien seront interrompus ainsi que celui de l’établissement du système métrique. Il faut attendre le 7 avril 1795 (18 germinal an III) pour qu’une nouvelle loi sorte. L’article 1 proroge la loi de 1793 et suggère que les citoyens donnent « une preuve de leur attachement à l’unité et à l’indivisibilité de la République en se servant dès à présent des nouvelles mesures dans leurs calculs et transactions commerciales. » Son article 2, précise qu’il « n’y aura qu’un seul étalon des poids et mesures pour toute la République : ce sera une règle de platine sur laquelle sera tracé le mètre qui a été adopté pour l’unité fondamentale de tout le système des mesures. »

      Mais ce sont surtout ses articles 5, 6 et 7 qui sont vraiment intéressants. L’article 5 indique la nouvelle nomenclature et ses spécifications :

      Art. 5. —- Les nouvelles mesures seront distinguées dorénavant par le surnom de républicaines ; leur nomenclature est définitivement adoptée comme il suit :

      On appellera :
      Mètre, la mesure de longueur égale à la dix-millionième partie de l’arc du méridien terrestre compris entre le pôle boréal et l’équateur.
      Are, la mesure de superficie, pour les terrains, égale à un carré de 10 m de côté.
      Stère, la mesure destinée particulièrement aux bois de chauffage, et qui sera égale au mètre cube.
      Litre, la mesure de capacité, tant pour les liquides que pour les matières sèches, dont la contenance sera celle du cube de la dixième partie du mètre.
      Gramme, le poids absolu d’un volume d’eau pure égal au cube de la centième partie du mètre, et à la température de la glace fondante. Enfin, l’unité de monnaies prendra le nom de franc, pour remplacer celui de livre usité jusqu’aujourd’hui.

      L’article 6, quant à lui, précise les noms des subdivisions. On notera que « kilomètre » l’a emporté sur « myriamètre » dans la nomenclature actuelle.

      Art. 6. – La dixième partie du mètre se nommera décimètre et sa centième partie centimètre.
      On appellera décamètre une mesure égale à dix mètres : ce qui fournit une mesure très commode pour l’arpentage.
      Hectomètre signifiera la longueur de cent mètres.
      Enfin, kilomètre et myriamètre seront des longueurs de mille et dix mille mètres, et désigneront principalement les mesures itinéraires.

      L’article 7 précise aussi que : « Art. 7. – Les dénominations des mesures des autres genres seront déterminées d’après les mêmes principes que celles de l’article précédent. » Avec une exception pour les francs où l’on utilisera « décime » (tombé en désuétude depuis) et « centime ».

      Les travaux de calcul de la méridienne vont pouvoir reprendre, non sans quelques difficultés : Delambre qui avait négligé de payer le nécessaire passeport pour se déplacer dans cette France où on ne voyageait pas sans le précieux document sera arrêté puis relâché et jugera, mais un peu tard, qu’on ne l’y reprendrait plus. Les équipes de calcul du méridien, d’une manière générale, ne seront pas toujours bien accueillies. Méchain, qui avait préféré rester de l’autre côté des Pyrénées pendant la Terreur ne voudra pas rejoindre Paris malgré les suppliques de son épouse.

      Le lancement du système métrique

      L’ambition à l’origine du système métrique ayant été aussi qu’il soit universellement utilisé, et pas seulement en France, Talleyrand, alors Ministre des Affaires étrangères, avait aussi écrit à d’autres pays et obtenu des réponses favorables du Danemark, de l’Espagne et de la Sardaigne, ainsi que des Républiques batave, cisalpine, helvétique, ligurienne, romaine et toscane. Chacun envoyant des délégués à Paris pour les travaux.

      Le nouveau système sera-t-il accueilli avec joie et utilisé aussitôt ?

      Non, bien sûr que non. Sans parler des revenus que les anciennes mesures accordaient aux collectivités, la nouvelle nomenclature changeait les vieilles habitudes, les nouveaux noms ne sont pas dans la langue française (effectivement ils ont des racines grecques, comme nombre de mots de ladite langue) et ils étaient trouvés trop longs par les détracteurs du nouveau système. Ça rappelle les « guerres du nénufar » quand, en France, on s’emportait sur la réforme de l’orthographe de 1990. Toujours est-il, qu’un décret paraîtra le 12 février 1812 qui précise dans son article 3 que les instruments de mesure « porteront, sur leurs diverses faces, la comparaison des divisions et des dénominations établies par les lois, avec celles anciennement en usage. ». Ce qui n’est pas forcément le meilleur moyen de faire adopter pleinement le nouveau système. C’est un peu comme pour l’adoption de Linux, tant qu’on a un double démarrage, on aura tendance souvent à ne rester que sur Windows même en l’absence de logiciels spécifiques à ce système d’exploitation et qui n’existerait pas sous Linux. D’ailleurs, aussi bien au Canada, qu’en Australie ou au Royaume-Uni, le mélange des genres entre les deux systèmes continue à exister… avec des mesures impériales qui ne sont pas forcément toutes identiques.

      Néanmoins, si le décret se donne dix années d’expérimentation du système métrique (article 4), il précise bien (article 5) que « le système légal continuera à être seul enseigné dans toutes les écoles, y compris les écoles primaires, et à être seul employé dans toutes les administrations publiques, comme aussi dans les marchés, halles, et dans toutes les transactions, commerciales et autres, entre nos sujets. » L’arrêté qui en fixait l’exécution permettait, dans le domaine commercial, d’utiliser les toises, pieds, pouces et lignes qui étaient fixés par rapport au mètre : 1/3 de mètre pour la toise, 1/36 pour le pouce et 1/1296 mètres pour la ligne. Sans doute dans un esprit de simplification.

      Le système métrique était bien prêt pour être utilisé par la population, ladite population par contre… on ne lui facilitait pas tant que ça le changement de système. Au bout de quelques années, on finira par se retrouver dans une situation où les jeunes ne connaissaient que le système métrique, où l’administration n’utilisait que celui-là et où on continuait à utiliser les anciennes mesures dans le commerce de détail. Finalement c’est la loi du 4 juillet 1837 qui va définitivement imposer en France le système métrique, avec, toutefois, une tolérance jusqu’au 1er janvier 1840 pour que les commerces de détail passent sans difficulté de Python 2 à Python 3, pardon, du vieux système de mesure au nouveau.

      Van Swinden
      Jean Henri van Swinden (1746-1823), gravure tirée du Système métrique décimal.

      Le système métrique est enfin et définitivement adopté en France. Il l’avait déjà été en Suisse, (1801). En Hollande, une première proposition de loi avait été déposée par le physicien hollandais Van Swinden en 1802, l’Espagne se préparait activement à diffuser largement le nouveau système de mesure en 1807.

      Après cette difficile naissance, le système métrique entamera son essor à partir des années 1850 et sera très largement adopté.

      Courbe d’adoption du système métrique de 1790 à 1940
      Courbe de progression de l’adoption du système métrique par nombre d’habitants. Le système métrique met environ 60 ans pour toucher 50 millions de personnes. Et le même nombre d’années à peu près pour en concerner 500 millions.

      Et cela en dépit de quelques oppositions, ainsi le philosophe darwiniste anglais Herbert Spencer affirmait que :

       La survivance des plus aptes a toujours amené le triomphe des unités qui se divisent par 2 ou par 3 sur les divisions décimales. (rapporté dans Le Système métrique décimal.).

      Tandis que le parlementaire américain Samuel Dale estimait que le système anglais (qui deviendra le système impérial) était plus naturel car basé sur les dimensions du corps humain. Celui d’un corps humain en tout cas.

      Le Bureau International des Poids et Mesures (BIPM) et l’évolution du système métrique

      Un système de mesure n’est pas quelque chose qu’on conçoit, décide et fabrique une bonne fois pour toutes. Tout du moins, ce n’est pas le cas du système métrique tel qu’il vient d’être mis en place. Il faut s’assurer que les étalons de mesure soient toujours corrects, ce qui n’a pas été le cas d’ailleurs du mètre étalon, les distribuer, les contrôler mais aussi, le faire adopter le plus universellement possible pour les échanges commerciaux comme pour les recherches scientifiques. Il faut aussi que les bases du système puissent évoluer tout en restant cohérentes de façon à suivre les évolutions scientifiques.

      Un organisme de gestion du système de mesures international s’impose donc.

      La création du BIPM en 1875

      En 1875, le gouvernement français organise la Conférence diplomatique du mètre, vingt pays y participeront, essentiellement européens et américains : Allemagne, Argentine, Autriche-Hongrie, Belgique, Brésil, Danemark, Espagne, États-Unis, France, Grande-Bretagne, Grèce, Italie, Pays-bas, Pérou, Portugal, Russie, Suède et Norvège, Suisse, Turquie, Venezuela pour travailler sur le futur du système. Cela donnera le Bureau International des Poids et mesures créé par la Convention du Mètre en 1875. Il est internationalement reconnu comme l’organisme chargé de gérer le système métrique qui deviendra le Système International (SI) en 1960.

      Le budget, prévu dans la Convention du mètre issue de cette conférence de 1875 était de 75 000 F, qui pouvait aller jusqu’à 100 000 F maximum si nécessaire. Il comprenait les rétributions annuelles du directeur (15 000 F) et de ses deux adjoints (6 000 F chacun), celle de quatre aides à 3 000 F, d’un mécanicien-concierge à 3 000 F et de deux garçons de bureau pour 1 500 F chacun. À cela s’ajoutait un budget global de 24 000 F pour les savants et artistes1 amenés à intervenir à la demande du BIPM, l’entretien et la maintenance des locaux ainsi que les frais de fonctionnement. Enfin le secrétaire du Comité international des Poids et Mesures se voyait bénéficier d’une indemnité de 6 000 F pour son travail. Le budget sera moins détaillé par la suite. Pour 2025, il est fixé à 13 358 636 euros par la 27e réunion de la Conférence générale des poids et mesures, CGPM.

      Si on veut avoir une idée de ce que représentent ces montants, par exemple et à titre indicatif : le salaire brut annuel des employés de bureau est, en moyenne, d’environ 23 692 € (source). Quant à la direction du BIPM, le salaire proposé dans cette offre de recrutement de 2024 commençait à partir de 155 000 euros bruts annuels.

      Et, pour donner un ordre de grandeur du coût de la vie, le kilo de pain, élément principal de l’alimentation à l’époque, coûtait de 76 à 38 centimes (source). Aujourd’hui, un pain de 500 g coûte en moyenne 1,80 €, ce qui porte le kilogramme à 3,60 € (source). En un jour de travail, un garçon de bureau pour s’offrir quelque chose comme sept kilos de pain contre 14 pour un employé de bureau contemporain. Les limites de l’exercice est, dans les deux cas, que les charges récurrentes sont différentes.

      Le gouvernement français offre le lieu : ce sera le pavillon de Breteuil dans le parc de Saint-Cloud et qui a un statut d’enclave internationale. Un observatoire sera construit aussi sur les lieux pour les mesures et tout le travail de recherche. Et c’est toujours le siège et le lieu de travail du BIPM.

      Le pavillon de Breteuil
      Côté ouest du Pavillon de Breteuil et de l’observatoire, vers 1930.

      Des missions et des travaux qui dépassent le cadre des prototypes

      Lors des discussions, la question s’était posée de créer une institution pérenne ou de ne la faire que le temps de mettre au point et fabriquer les prototypes. L’option d’un organisme pérenne a prévalu, permettant au BIPM de continuer le travail sur les mesures et le travail de recherche.

      Les travaux vont donc porter dans un premier temps sur l’élaboration des étalons et des prototypes. Opérations qui vont nécessiter des prises de décision : quels matériaux adopter notamment et des analyses. Pour cela, le BIPM va se doter d’un laboratoire et d’outils qui vont lui permettre de vérifier la fiabilité des étalons dans le temps et de les conserver. Ce seront par exemple dans les années 1920-1930 des machines comme ce comparateur à dilatation.

      Comparateur à dilation
      Cette machine avec un système de commande électrique date de 1926. Elle pouvait mesurer des longueurs jusqu’à 1,25 mètres.

      Les étalons seront conservés de façon à limiter les risques d'altérations.
      Cloche à étalons
      À droite un poids étalon conservé sous une cloche de verre, à gauche une version dans un étui de voyage (le cylindre au milieu est le couvercle de l’étui).

      Le BIPM aujourd’hui

      Les missions du BIPM ont été étendues par rapport aux origines puisqu’il gère le Système international d’unités (SI), mais qu’il est aussi responsable du temps : l’UTC (pour Universel Temps Coordonné) ou temps universel coordonné, échelle de temps qui est devenu une norme internationale en 1963. En revanche, ne le maudissez pas pour les heures d’été et d’hiver, l’UTC ne s’en préoccupe pas et reste invariable toute l’année, a contrario du méridien de Greenwich. L’UTC base ses calculs sur la rotation terrestre et les horloges atomiques et non plus sur un méridien, même si l’heure zéro reste celle du méridien de Greenwich.

      On se souvient que, depuis le début des travaux du système métrique, l’idée était d’impliquer les autres États afin d’internationaliser son usage, le BIPM travaille ainsi avec les laboratoires de métrologie des États membres de la convention internationale du système métrique. Lesquels États participent au financement du BIPM. Il y a actuellement 64 membres, des grands pays comme le Brésil, la Chine, les États-Unis ou l’Inde, mais aussi un tout petit pays comme le Monténégro. La répartition géographique des pays membres du BIPM, sans surprise, n’est pas « équilibrée » entre les continents.

      Répartition des États membres du BIPM par continent
      En Europe 37 pays membres sur les 54 États du continent, 15 sur 35 pour l’Asie, 10 sur 49 pour l’Amérique, 5 sur 50 pour l’Afrique et 2 sur 16 pour l’Océanie.

      Son financement suit le modèle, avec quelques adaptations, de financement de l’ONU qui établit un barème des quotes-parts de chaque pays en fonction de divers critères incluant ses capacités de paiements. Le budget est décidé pour une période pluriannuelle et s’établit ainsi pour les années 2024 à 2027 (PDF) :

      • 2024 : 13 161 218 €
      • 2025 : 13 358 636 €
      • 2026 : 13 559 016 €
      • 2027 : 13 762 401 €

      L’évolution du système international

      Le système métrique de 1889 connaît plusieurs évolutions plus moins majeures.

      En 1901, le kilogramme devient l’unité de masse, une unité qui peut être mesurée en apesanteur, par exemple avec un certain type de chaise. Le poids, quant à lui, désigne « une grandeur de la même nature qu’une force ; le poids d’un corps est le produit de la masse de ce corps par l’accélération de la pesanteur ». Le nombre adopté pour la valeur de l’accélération normale de la pesanteur étant de 980,665 cm/s².

      En 1946, la CGPM ajoute avec l’ampère les unités électriques à la collection de celles que le SI gère. Il possède sept unités de base :

      • la seconde, s, unité de temps,
      • le mètre, m, unité de longueur,
      • le kilogramme, kg, unité de masse,
      • l’ampère, A, unité de courant électrique,
      • le kelvin, K, unité de température thermodynamique,
      • la mole, m, unité de quantité de matière,
      • le candela, cd, unité d’intensité lumineuse.

      En 1960, intervient ce que l’on peut considérer comme la première grande évolution du système métrique qui va changer de nom par la même occasion et devenir « International ». Il bénéficiera d’autres évolutions, la dernière, la plus importante, en 2018. Ce qui change : les définitions des mesures qui, bien que restant proches du système métrique initial gagnent en précision. Le mètre conserve toujours la même longueur grosso modo, le double décimètre promotionnel hérité de votre arrière-grand-tante reste toujours valable si cela peut vous rassurer. C’est important surtout pour l’infiniment petit, ou l’infiniment grand.

      De 1960 à 2018 :

      • la seconde est définie en 1960 comme « la fraction 1/31 556 925,9747 de l’année tropique pour 1900 janvier 0 à 12 heures de temps des éphémérides » pour, en 1967, devenir « la durée de 9 192 631 770 périodes de la radiation correspondant à la transition entre les deux niveaux hyperfins de l’état fondamental de l’atome de césium 133 »,
      • la longueur du mètre est égale à : « 1 650 763,73 longueurs d’onde dans le vide de la radiation correspondant à la transition entre les niveaux 2p_{10} et 5d_{5} de l’atome de krypton 86. », en 1987, le mètre deviendra « la longueur du trajet parcouru dans le vide par la lumière pendant une durée de 1/299 792 458 de seconde » 17e CGPM,
      • l’unité de température est le kelvin depuis 1967 et son symbole le K, ils « sont utilisés pour exprimer un intervalle de température » qui « peut aussi s‘exprimer en degrés Celsius »,
      • la mole s’ajoute au portefeuille des mesures de base du SI lors de la 14e CGPM en 1971, c’est la « quantité de matière d'un système contenant autant d'entités élémentaires qu'il y a d'atomes dans 0,012 kilogramme de carbone 12 ; son symbole est “mol” »,
      • le candela, mesure d’intensité lumineuse, est défini en 1967 comme l’intensité lumineuse, dans la direction perpendiculaire, d’une surface de 1/600 000 mètre carré d’un corps noir à la température de congélation du platine sous la pression de 101 325 newtons par mètre carré.  » définition qui sera abrogée par la suite.

      Depuis le 29 mai 2019, date de son application, le SI se définit selon ces bases :

      la fréquence de la transition hyperfine de l’état fondamental de l’atome de césium 133 non perturbé, ΔνCs, est égale à 9 192 631 770 Hz,

      • la vitesse de la lumière dans le vide, c, est égale à 299 792 458 m/s,
      • la constante de Planck, h, est égale à 6,626 070 15 × 10–34 J s,
      • la charge élémentaire, e, est égale à 1,602 176 634 × 10–19 C,
      • la constante de Boltzmann, k, est égale à 1,380 649 × 10–23 J/K,
      • la constante d’Avogadro, NA, est égale à 6,022 140 76 × 1023 mol–1,
      • l’efficacité lumineuse d’un rayonnement monochromatique de fréquence 540 × 10 12 Hz, Kcd, est égale à 683 lm/W.

      Ces spécifications relèguent au musée les étalons matériels puisque le SI est basé sur les éléments immatériels que sont les constantes de la physique. Par contrecoup, si on a gagné en précision et, semble-t-il, en pérennité, on s’est bien éloigné des spécifications de 1791 qui ne requéraient, pour être comprises, pas de connaissances particulières ni même de dispositifs complexes pour l’établissement des mesures. Cela d’ailleurs été reproché à la parution de la nouvelle version du SI. On notera au passage l’importance de la seconde qui avait été écartée en 1791.

      Le SI et les autres systèmes d’unités

      À l’heure actuelle il n’existe que deux systèmes d’unités couramment employés : le SI presque partout dans le monde, notamment scientifique et le système impérial qui reste encore en vigueur aux USA, où le SI est reconnu officiellement et enseigné, au Liberia et au Myanmar qui reste le seul pays du monde à n’utiliser que le système impérial.

      Le système impérial, qui date de 1824, se définit par rapport au SI depuis 1959. Ainsi un pied est subdivisé en douze pouces de 2,54 cm (ce qui fait un tout petit pouce) et mesure 30,48 cm, soit une pointure 48 environ, pas le pied de tout le monde. Et, naturellement, un alexandrin fait douze pieds2.

      L’OpenDocument Format (ODF)

      Le format ODF est une norme de fichiers bureautique qui doit sa naissance à des raisons similaires à celles qui ont abouti à la création du système métrique, à savoir une abondance de formats fermés qui rendait le processus d’archivage et de conservation des documents, au mieux, difficile.

      Logo de l’ODF, un oiseau bleu, crédits Andy OpenClipart

      Derrière l’ODF

      Derrière l’ODF, le consortium OASIS (Organization for the Advancement of Structured Information Standards), à ne pas confondre par exemple avec le consortium OASIS, une autre organisation à but non-lucratif mais dans le domaine de la santé ou encore avec le groupe de rock Oasis.

      Le consortium OASIS qui nous occupe est composé d’organismes très divers : des entreprises informatiques, des administrations publiques, des bibliothèques ou encore des organisations à but non-lucratif comme TheDocumentFoundation qui chapeaute le projet LibreOffice. Il a été créé en 1993 sous le nom de SGML dans le but de développer le langage de balisage du même nom. Le consortium changera de nom en 1998 en élargissant ses domaines d’action. OASIS a maintenu et maintient une collection assez impressionnante de projets dans des secteurs très variés (en), entre autres :

      • le modèle de documentation technique DocBook,
      • la norme de rédaction de documents structurés modulaires DITA,
      • le protocole d’échanges de données de service Web WS-Security.

      Une brève histoire de l’ODF

      En 2002 Sun Microsystems commence à travailler sur un format de fichiers bureautiques basé sur le XML pour sa suite bureautique OpenOffice. OASIS va reprendre le flambeau. La naissance, en 2002, du groupe de travail sur l’OpenDocument Format est d’ailleurs annoncé sur LinuxFr.

      En 2006 une première version 1.0 est publiée qui devient la norme ISO/IEC 26300. Elle sera suivie de quatre autres versions :

      • ODF 1.1 en 2007, ajout du support des formules,
      • ODF 1.2 en 2011 avec de nouvelles fonctionnalités,
      • ODF 1.3 en 2020 avec une focalisation sur la signature électronique et le chiffrement ainsi qu’une amélioration des fonctionnalités de formatage du texte et une amélioration de l’accessibilité,
      • et ODF 1.4 en 2024 qui poursuit notamment le travail d’amélioration de l’interopérabilité et de l’accessibilité en proposant par exemple une sémantique plus claire pour les dispositifs d’assistance ainsi qu’une meilleure navigation pour les lecteurs d’écran, elle ajoute également des contrôles de formulaires entre autres nouveautés.

      Les débuts de l’ODF se sont révélés houleux du fait de la contre-offensive lancée par Microsoft qui ne voulait pas perdre son monopole de fait. Il s’ensuivra une guerre d’influences auprès de l’ISO pour que l’OOXML soit considéré comme une norme ISO.

      Une petite histoire de son adoption à travers les dépêches, journaux et liens de LinuxFr.org

      En janvier 2010 le Danemark rendait obligatoires les formats normalisés ODF et PDF mais ne décidera de passer à Linux et LibreOffice que quinze plus tard. En juin 2010, l’Union européenne se posait la question des logiciels propriétaires dans les États de l’Union, une question qu’elle continue à se poser tout en l’ayant adopté comme format d’enregistrement depuis.

      Le Ministère italien de la défense commençait à migrer vers LibreOffice et ODF en septembre 2015.

      En France, la version datée d’avril 2016 2 du Référentiel Général d’Interopérabilité (RGI), recommande l’utilisation du format ODF comme seul format bureautique. La même année, la plateforme de dépôts de brevet de l’INPI s’assied sur ces recommandations et impose le format OOXML… En juillet 2025 un rapport sénatorial dénonce un recours massif de l’État français aux GAFAM.

      Le gouvernement fédéral allemand s’engage à utiliser le standard ODF en avril 2025. Le Schleswig-Holstein avait, quant à lui, pris la décision de passer à LibreOffice en mars.

      Les types de fichiers ODF

      L’ODF est un format de document de travail, donc de fichiers amenés à être modifiés, pas un format d’archivage comme peut l’être le PDF, voire, le format EPUB. Il comporte plusieurs « sous-formats » selon le type d’application qui sert à les générer.

      Illustrations des formats de fichier texte, tableur, présentation et image

      Les plus utilisés et, probablement, les plus connus :

      • ODP, pour les présentations, et sa variante OTP avec le T de « template » pour les modèles,
      • ODS, pour les feuilles de calcul (« spreadsheet » en anglais), et sa variante OTS,
      • ODT pour le traitement de texte, et sa variante OTT ainsi que, pour les documents maîtres : ODM et OTM. Ces derniers étant prévus pour gérer des fichiers volumineux : un document principal, le document maitre, contient du texte et des liens vers des sous-documents, des chapitres de livres par exemple. Chaque sous-document pouvant être travaillé individuellement.

      À cela s’ajoutent :

      • ODB pour les bases de données, qui, à ma connaissance, est essentiellement utilisé dans Base de LibreOffice et d’OpenOffice,
      • ODG, avec sa variante OTG pour les images vectorielles, utilisé essentiellement, à ma connaissance, par LibreOffice, Karbon de la suite Caligra et OpenOffice ; MsOffice peut, toutefois, ouvrir les fichiers ODG. Le format OTG accepte plusieurs pages et plusieurs calques,
      • ODF, avec sa variante OTF, pour les formules de mathématiques, on peut ainsi créer des formules de mathématiques séparément et les insérer dans des documents, mais il est possible aussi d’ajouter directement une formule dans un document, auquel cas elle ne fait pas l’objet d’un fichier à part,
      • ODC, avec sa variante OTC pour les graphiques (« chart » en anglais).

      Quelques avis

      Le 25 juillet 2007, dans Red Hat Magazine, T. Colin Dodd considérait le format comme inévitable. Il rapportait l’histoire d’un scientifique qui voulait, en 1999, consulter les données de la sonde Viking sur Mars, des données datant de 1979. Il exposait que après avoir retrouvé une copie des données sur bande magnétique (avec bien du mal), celles-ci étaient « dans un format si ancien que le programmeur qui le connaissait était mort. ».

      Le format a été qualifié de révolutionnaire car :

      il offre une alternative ouverte et interopérable aux formats propriétaires. Son architecture basée sur XML garantit la pérennité des données et facilite les échanges entre différents logiciels. Plongeons dans les arcanes de ce standard qui redéfinit notre approche du partage et de la conservation de l’information à l’ère numérique. Jenny, PC expert, 27 mars 2025.

      Et, bien évidemment, ce qui a été relevé c’est qu’il est un :

      symbole d’interopérabilité et de liberté numérique face à l’hégémonie de formats fermés tels que DOCX, PAGES ou Google Docs. actualitéscloud, 20 mai 2025.

      et que c’est

      à ce jour le seul format réellement ouvert pour les documents bureautiques. Goodtech.info.

      Références

      Quand on ne maîtrise pas trop un domaine, il faut lire pour compenser. On trouvera donc ci-dessous une bonne partie de ce qui a servi à bâtir cette dépêche qui m’a donné beaucoup de travail l’occasion de transformer en EPUB des documents sur le système métrique pour les rendre plus accessibles et utilisables. La majorité des sources est accessible en ligne.

      L’histoire du système métrique

      Un certain nombre de ces références sont issues de la BnF Gallica. J’en ai « epubifié » certaines. Je les propose en téléchargement également aux formats PDF et PDF hybride. Si vous préférez l’aspect des versions originales : elles sont téléchargeables sur le site de la BnF Gallica. Il est même possible de commander à ladite BnF un fac-similé imprimé.

      L’ODF

      Et si vous voulez un peu bricoler, dans le cadre d’animations et faire toucher du doigt concrètement la différence entre un format ouvert et un format propriétaire, il y a ces deux petits livres à tricoter. Mais on peut voler l’idée pour la reproduire dans d’autres matériaux.

      Remerciements

      En travaillant sur la version EPUB du livre Le Système décimal j’ai dû appeler à l’aide pour une formule. Insérer une formule de math dans Writer de LibreOffice est d’une simplicité enfantine, par contre, écrire la formule réclame des connaissances qui ne sont pas du tout innées. Je remercie les mastodonautes qui ont répondu à mon appel à l’aide et ont eu la gentillesse d’écrire la formule. Un grand merci à Cévhé qui a relu le fichier du livre et a corrigé quelques bourdes restantes.


      1. Les artistes avaient notamment pour tâche d’effectuer les travaux de gravure sur les étalons pour indiquer les graduations. Dans son rapport de 1790, Prieur précisait que cette opération ne devait « être confiée qu’à un artiste très-habile et l’extrême soin que ce travail exige indique assez que ce n’est pas sur cet objet qu’il convient de rechercher l’économie. »  

      2. Ceci est bien la preuve qu’il ne faut pas faire confiance aux littéraires, ces gens-là ne respectent rien et sont capables de jouer avec les nombres comme n’importe quel savant de Marseille. 

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      • ✇LinuxFr.org : les dépêches
      • Aeryth : Intégrer une AppImage dans un paquet et le bureau
        Convertir proprement une AppImage en paquet ? Aeryth le fait en une commande : ce script Bash GPL v3 emballe votre AppImage en .deb ou .tar.zst, ajoute icône et lanceur, et s’installe/désinstalle via apt ou pacman. lien nᵒ 1 : DépôtPourquoi Aeryth ? Le format AppImage simplifie la distribution d’applications Linux, mais pose deux soucis : Intégration bureau (menus, icônes) absente au sein de l'environnement. Mises à jour invisibles pour le gestionnaire de paquets. Aeryth règle ces points 

      Aeryth : Intégrer une AppImage dans un paquet et le bureau

      Convertir proprement une AppImage en paquet ? Aeryth le fait en une commande : ce script Bash GPL v3 emballe votre AppImage en .deb ou .tar.zst, ajoute icône et lanceur, et s’installe/désinstalle via apt ou pacman.

      Pourquoi Aeryth ?

      Le format AppImage simplifie la distribution d’applications Linux, mais pose deux soucis :

      1. Intégration bureau (menus, icônes) absente au sein de l'environnement.
      2. Mises à jour invisibles pour le gestionnaire de paquets.

      Aeryth règle ces points : il transforme toute AppImage en véritable paquet Debian (.deb) ou Arch (.tar.zst) prêt à être executé, et offre des options d'intégration d'un AppImage complet ou extrait au sein du paquet. 🤝

      La documentation est très explicite sur le dépôt git sur GitLab, l'outil peut être au choix totalement ou partiellement interactif, ou 100% CLI utilisable des arguments et intégrable. 🙂

      Il est en outre pensé multi-platforme, avec une gestion chroot et deboostrap pour pouvoir générer des paquets deb ou archlinux sur les deux familles de distributions, il est même possible de forcer le chroot pour ne pas devoir "polluer" la distribution actuellement utilisée même si elle peut générer nativement les paquets.

      Il est pensé pour s'adapter à des utilisateurs néophytes ou confirmés. 😉


      Fonctions principales

      Fonction Description
      Double cible Génère un paquet .deb ou .tar.zst
      Multilingue Interface interactive : FR · EN · ES · IT · DE
      Respect FHS Copie l’AppImage sous /opt/<app>/, wrapper dans /usr/bin
      Licence GPL v3

      Installation rapide

      git clone https://gitlab.com/pepinature/aeryth.git
      cd aeryth
      chmod +x aeryth.sh

      Feuille de route

      • Détection automatique des nouvelles versions AppImage.
      • CI : tests sur Debian 12, Ubuntu 24.04, Arch stable.

      Ressources


      Commentaires : voir le flux Atom ouvrir dans le navigateur

      L'April invite à participer à la Fête des Possibles, partout en France du 12 septembre au 12 octobre

      Une nouvelle édition de la Fête des Possibles aura lieu du 12 septembre au 12 octobre 2025. Des centaines d’événements seront organisés partout en France et en Belgique pour rendre visibles les initiatives citoyennes qui contribuent à construire un avenir plus durable et solidaire.

      Le logiciel libre a toute sa place dans cette dynamique ! Ainsi, l'April, partenaire de la Fête des Possibles, invite les organisations locales de promotion du logiciel libre et de la culture libre à proposer un voire plusieurs rendez-vous dans le cadre de cette initiative.

      Titre de l'image

      Initiée et coordonnée par le Collectif pour une Transition Citoyenne (CTC), la Fête des Possibles aspire à faire prendre conscience à un maximum de citoyennes et de citoyens que des solutions existent pour vivre en meilleure santé, pour moins polluer, pour mieux vivre ensemble. C’est aussi l'occasion de montrer à de nouveaux publics que « c’est possible » d’utiliser au quotidien des logiciels respectueux de nos libertés !

      Pour cette nouvelle édition de la Fête des Possibles, l'équipe d'organisation a voulu davantage mettre en valeur l'informatique libre : ainsi, des formats d'animation autour du logiciel libre sont désormais suggérés sur le site de la manifestation.

      Concrètement, comment participer ?

      • Si vous avez déjà prévu un événement autour du logiciel libre ou de la culture libre entre le 12 septembre et le 12 octobre 2025, pensez à l'ajouter sur le site de la Fête des Possibles, en indiquant la thématique « Vivre et faire autrement » ;
      • Vous pouvez aussi proposer un rendez-vous ad hoc pour la Fête ! Dans ce cas, n'hésitez pas à l'ajouter sur le site de la Fête des Possibles dès que vous connaissez la date, il sera toujours possible d'affiner la présentation plus tard ;​
      • Vous pouvez, sans doute aussi, vous « greffer » à un événement déjà prévu, en proposant à l'organisation de prévoir de la place pour de la sensibilisation au logiciel libre : vérifiez sur la carte des rendez-vous si des événements sont déjà programmés près de chez vous ;
      • Votre événement se déroule en ligne ? Il est possible de le préciser dans le formulaire de soumission 👍​

      Pour permettre à l'April de mettre en valeur la contribution des organisations autour du Libre, nous vous invitons à inscrire votre événement également sur l'Agenda du Libre, en ajoutant le mot-clé fete-des-possibles-2025.

      Préparez dès maintenant votre événement, et rendez-vous du 12 septembre au 12 octobre 2025 pour agir avec la Fête des Possibles !

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      • ✇LinuxFr.org : les dépêches
      • Application libre en ligne de suivi des aides aux écoliers avec SQLPage
        ThierryM : suite à un besoin exprimé par les enseignant⋅es d’une école et la découverte de SQLPage à travers l’application École Inclusive que j’ai découverte via ce site, je me suis lancé dans la réalisation d’une application en ligne permettant de suivre — sur toute leur scolarité dans le 1er degré — les différentes aides proposées aux élèves rencontrant des difficultés. Bien que cette application soit encore en cours de développement et de test, je relate ici mon retour d’expérience car SQ

      Application libre en ligne de suivi des aides aux écoliers avec SQLPage

      ThierryM : suite à un besoin exprimé par les enseignant⋅es d’une école et la découverte de SQLPage à travers l’application École Inclusive que j’ai découverte via ce site, je me suis lancé dans la réalisation d’une application en ligne permettant de suivre — sur toute leur scolarité dans le 1er degré — les différentes aides proposées aux élèves rencontrant des difficultés.
      Bien que cette application soit encore en cours de développement et de test, je relate ici mon retour d’expérience car SQLPage, qui évolue rapidement, mérite d’être plus largement connue.

      Jusqu’à présent je n’avais jamais osé me lancer dans ce genre de développements — principalement à cause de la sécurisation des accès et à la gestion de bases de données — mais SQLPage est arrivé…

        Sommaire

        Besoins et cahier des charges

        Le directeur d’une grosse école (13 classes + ULIS) avait besoin de pouvoir suivre pluriannuellement les différentes aides mises en place pour les élèves rencontrant des difficultés, ceci afin que les enseignant⋅es (dont les membres du RASED) disposent d’un historique pour voir ce qui avait déjà été proposé et ainsi décider ce que l’on pourrait mettre en place sans perdre de temps ni redite. Bref, l’idée était de gagner en temps et en efficacité.

        Au niveau d’une seule école, un tableur LibreOffice Calc pouvait très bien faire l’affaire et suffire (ce classeur existe d’ailleurs) mais il ne pouvait pas être complété à distance et de façon collaborative facilement :
        Classeur LibreOffice Calc de suivi
        On aurait pu mettre en place un classeur sur le Nuage-Nextcloud des Apps Éducation proposé par l’Éducation nationale et travailler de façon collaborative en ligne ou en drive (pour profiter des macros). Mais cette solution n’est pas aisée à mettre en place, avec des problèmes de synchronisation et des conflits de version de fichiers (je le sais par expérience, car nous gérons l’absentéisme de cette façon et ça demande un gros accompagnement, chaque classe ayant son propre classeur que l’on doit retravailler par la suite pour faire des synthèses d’école).

        L’idée était donc de disposer d’une application Web, en ligne pour que les enseignant⋅es puissent intervenir, compléter les données facilement et directement.
        L’avantage de cette solution était aussi de disposer d’une application unique pour étendre par la suite son utilisation aux 4 écoles de la ville (voire d’une circonscription) si le projet est concluant : en effet, les infos des élèves de maternelle suivraient lors du passage à l’école élémentaire.
        Seulement voilà, se posent pas mal de contraintes notamment par rapport à la sécurisation des données et au niveau du RGPD, l’outil envisagé contenant des informations sensibles. Il était impossible d’envisager un développement en Html/CSS/Javascript/PHP de zéro (manque de temps et de compétences). Et c’est là, que j’ai découvert l’existence de SQLPage qui paraissait répondre à nos inquiétudes avec des accès sécurisés, tout en étant à la portée de « débutant⋅es », à travers le récit de l’auteur de l’application « École Inclusive ».

        Début de l’aventure

        L’application « École Inclusive », bien que conçue pour le second degré, pouvait être adaptée à nos besoins plus modestes et a donc servi de base de départ : c’est beaucoup plus facile de partir de l’existant que d’une page blanche où il faut tout construire. Il s’est avéré que nous n’avions pas besoin de toutes les fonctionnalités et qu’il a fallu reprendre les logiques de fonctionnement mais la base étant là, c’était très rassurant d’autant que l'auteur de « École Inclusive » et le concepteur de SQLPage, très disponibles, étaient là pour m’éclairer, me conseiller ou rajouter des fonctionnalités au fil de mes demandes via les pages GitHub de leur projet respectif. Il faut rajouter que le site de SQLPage, conçu avec SQLPage ;-), regorge de ressources avec une documentation (en anglais) très claire et facilitante avec des exemples.
        Il est vrai que ce concept de programmation est assez déstabilisant au début : ne passer que par des fichiers .sql (ou presque) pour développer un site Web, ça paraît inadapté. Mais, une fois qu’on est rentré dedans, on se rend compte que pour le type d’application qu’on recherchait, c’est tout bonnement bluffant et terriblement efficace.
        Ce qui est aussi facilitant, c’est la possibilité d’utiliser des bases sqlite ne nécessitant pas la mise en place d’un serveur de type MySQL ou PostGreSQL rajoutant de la complexité. Mais SQLPage fonctionne aussi avec ces serveurs si on en a l’utilité : ce point est intéressant, car le temps consacré pour se former à SQLPage pourra être réinvesti avec d’autres types de bases de données.

        Matériel, données techniques et application ASDAEL

        Pour des tests les plus proches du fonctionnement prévu (on verra que ça changera), j’ai utilisé un NAS perso Synology 713+ sous DSM 7.1 avec un accès extérieur. Toutes les infos sont là pour ceux et celles que ça intéresse : https://lofurol.fr/joomla/logiciels-libres/104-bases-de-donnees/349-sqlpage-utilisation-sur-un-nas-synology-avec-docker-et-mysql-postgresql-sqlite.
        Toujours dans un souci de partage, les sources de l’application de suivi des aides sont disponibles sur la « Forge des communs numériques éducatifs » ou Forge Éduc, le GitLab mis à disposition par l’Éducation nationale pour favoriser le partage et le développement de ressources numériques pour l’enseignement.
        Source du projet: https://forge.apps.education.fr/thierrym/suivi-aides-eleves-ecoles

        Utilisation locale due au RGPD et à la sécurisation des données

        Cette application n’ayant pas reçu de soutien officiel et vu qu’elle contient des données sensibles sur les élèves (bien que ces données ne soient accessibles qu’aux seul⋅es enseignant⋅es concerné⋅es par le suivi des élèves), il a été décidé de ne pas exposer l’application sur Internet, comme prévu initialement. Elle sera donc installée sur un ordinateur localement sans accès de l’extérieur le temps de la tester. Après, il sera toujours possible d’évoluer vers une utilisation réellement en ligne si les essais sont concluants (et avec un audit sur la sécurité).
        Et là, encore une fois, l’application est très bien faite, car elle fait office de serveur web et il suffit de saisir son adresse ip sur le port 8080 pour y accéder à partir d’un autre ordinateur sur le même réseau. On ne peut pas faire plus simple (pas besoin de se monter un serveur Apache/Ngnix) !!!

        Pour lancer l’expérimentation, j’ai récupéré un “vieil” ordinateur HP 260 G2 Mini (Intel Pentium 4405U, 4 Go de Ram et HD de 100 Go) sur lequel j’ai installé Ubuntu 24.04 Server (avec accès SSH) avec le bureau Mate et Docker pour faire fonctionner les conteneurs Portainer et Adminer pour éventuellement agir sur la base de données SQLite.
        J’ai ensuite installé SQLPage avec mes fichiers dans un dossier « ASDAEL » à la racine de mon home puis configurer un démarrage automatique lançant SQLPage et Firefox pointant vers la page « localhost:8080 ».

        Captures d’écran

        Structure de la base de données
        Structure de la base de données

        Page d’accueil :
        Accueil

        Page de connexion :
        Page de connexion

        Localisation des écoles :
        Liste des écoles

        Liste des élèves suivi⋅es :
        Liste des élèves suivi⋅es

        Fiche individuelle de suivi :
        Fiche individuelle de suivi

        Vue synthétique du parcours de l’élève :
        Vue synthétique

        Page de paramétrage :
        Page de paramétrage

        Perspectives

        Avec l’arrivée du Livret de Parcours Inclusif (LPI) peut-être que ce genre d’applications ne sera plus utile… d’autant qu’elles n’ont aucun soutien institutionnel et qu’en l’état actuel elles ne peuvent être utilisées que localement, ce qui réduit pas mal leur intérêt.
        Mais l’idée de ASDAEL est d’obtenir rapidement une vision synthétique des différentes aides mises en place pour l’ensemble des élèves tout au long des années en facilitant leurs saisies, ce que ne permettra certainement pas le LPI.
        À suivre… ?

        Commentaires : voir le flux Atom ouvrir dans le navigateur

        • ✇LinuxFr.org : les dépêches
        • (Début de) la fin de Windows (10)
          La prise en charge de Windows 10 se termine le 14 octobre 2025, forçant ses utilisateurs à passer à Windows 11 qui requiert des performances beaucoup plus élevées tout en poursuivant la prise de contrôle de ses utilisateurs. La campagne « End of 10 » (fin de [Windows] 10) initiée il y a quelques mois vise à dénoncer le gaspillage de ressources (en forcant le remplacement anticipé de machines), et incite à un passage à Linux. Le lancement de la campagne sur les réseaux sociaux (i.e. Mastodon) a

        (Début de) la fin de Windows (10)

        La prise en charge de Windows 10 se termine le 14 octobre 2025, forçant ses utilisateurs à passer à Windows 11 qui requiert des performances beaucoup plus élevées tout en poursuivant la prise de contrôle de ses utilisateurs.

        La campagne « End of 10 » (fin de [Windows] 10) initiée il y a quelques mois vise à dénoncer le gaspillage de ressources (en forcant le remplacement anticipé de machines), et incite à un passage à Linux.

        Le lancement de la campagne sur les réseaux sociaux (i.e. Mastodon) a démarré le 28 mai.

        De bonnes raisons

        La campagne est axée sur cinq arguments principaux :

        • les économies financières : pas de coût de licence, pas d'obligation de renouveler son matériel de manière anticipée.
        • l'amélioration du respect de la vie privée : s'affranchir des publicités et logiciels espions intégrées de force dans Windows.
        • l'écologie : éviter un remplacement d'ordinateur a un impact carbone direct.
        • bénéficier d'un support adapté : communautaire ou professionnel, en ligne ou en physique.
        • reprendre contrôle de son ordinateur : bénéficier des libertés des logiciels libres pour utiliser votre ordinateur comme vous le souhaitez.

        La philosophie de la campagne

        La campagne est née du groupe de travail KDE Eco réfléchissant sur les impacts environnementaux des logiciels, cependant il est important de noter que dans le cadre de cette campagne la communication doit promouvoir « Linux » de manière générale et non promouvoir telle ou telle distribution. L'objectif premier est de quitter Windows.

        Le partage sur les réseaux sociaux vise à faire connaître l'initiative de manière plus large, cependant le succès est principalement attendu en s'appuyant sur des acteurs locaux existant : cafés réparation, boutiques informatiques, …

        Le site de la campagne fourni à la fois un registre des lieux et des dates où il est possible de se renseigner et se lancer. Plusieurs dizaines de possibilités ont déjà été ajoutées.

        Participer !

        De nombreuses façons de participer sont possibles :

        • prendre contact avec les structures locales (repair cafés, GULL, associations, …)
        • aider lors d'une install party ou en organiser une près de chez vous (et déclarer l'évènement sur le site)
        • en parler avec vos proches
        • relayer les messages Mastodon

        Microsoft a ouvert la porte pour faire de 2025 l'année Linux ! À nous de mettre le pied dans la fenêtre !

        Commentaires : voir le flux Atom ouvrir dans le navigateur

        • ✇LinuxFr.org : les dépêches
        • Photos et traces gps dans un blog statique
          Cette dépêche va présenter une méthode pour afficher sur un site personnel les traces, récits et photographies de balades (pédestres, cyclistes par exemple). Comme le contenu à afficher est diversifié (texte, photographies, cartes), la solution retenue sera un blog. Dans un soucis de sobriété numérique, le site sera sans base de données. Pour l'aspect esthétique, la barre de navigation et les cartes seront situées dans la partie gauche des pages et surtout, la carte ne bougera pas avec la navi

        Photos et traces gps dans un blog statique

        Cette dépêche va présenter une méthode pour afficher sur un site personnel les traces, récits et photographies de balades (pédestres, cyclistes par exemple).

        Comme le contenu à afficher est diversifié (texte, photographies, cartes), la solution retenue sera un blog. Dans un soucis de sobriété numérique, le site sera sans base de données.

        Pour l'aspect esthétique, la barre de navigation et les cartes seront situées dans la partie gauche des pages et surtout, la carte ne bougera pas avec la navigation dans la page.

          Sommaire

          N'ayant pas trouvé d'alternative libre à Polarstep, la solution retenue se base sur les briques logicielles libres suivantes :

          • un moteur de blog static : pelican (AGPL v3.0)
          • des thèmes pour le blog
          • des bibliothèques cartographiques : leaflet (BSD 2)

          1 - Préparation de pelican

          Pelican propose d'écrire chaque billet de blogs dans un fichier texte indépendant (au format markdown ou reStructuredText).

          Pelican les convertit en html et l'organisation du site ainsi généré (catégories, mots-clefs, archivage) se fait par le biais de gabarits (qui sont dans un sous-répertoire templates)

          a) Le moteur

          L'installation ne sera pas développée ici, pelican étant disponible dans de nombreuses distributions.

          Il faut créer la structure de travail (dans le répertoire personnel de notre choix) :

          pelican-quickstart
          

          b) Installation du thème graphique

          En allant sur le dépôt des thèmes de pelican, il est possible de trouver le style graphique qui nous convient le mieux.

          Nous allons utiliser le thème pelican-blue (sous licence MIT 2.0), qui a l'avantage d'être simple, et commençons son installation :

          • création du répertoire theme dans notre structure de travail
          • décompression de l'archive du thème dans le répertoire « theme »
          • modification du fichier pelicanconf.py pour configurer notre site. Il faut adapter quelques variables :
          SITENAME = 'Mon blog'
          SITEDESCRIPTION = 'Mes souvenirs de vacances'
          THEME = "./theme/pelican-blue"
          STATIC_PATHS = ['images', 'gpx']
          
          • modifications propres au thème. Souvent l'auteur d'un thème propose de le personnaliser à partir de variables déclarées dans le fichier de configuration.

          c) Écriture du premier billet

          On va créer notre premier billet

          Title: Première sortie
          Date: 2025-05-01
          Modified: 2025-05-01
          Category: Lieux
          Slug: depart
          Tags: bonjour, balade
          
          Bonjour tout le monde ! Quelle chouette sortie j'ai faite.
          

          d) Génération de notre site

          On lance la première compilation :

          make clean
          make html
          

          On peut voir le résultat :

          • soit en ouvrant directement le fichier index.html (présent dans le répertoire output)
          • soit en lançant un mini serveur web (make serve) et lancer son navigateur web à l'adresse http://localhost:8000/

          Pour plus de renseignements sur pelican, je vous invite à vous rendre sur la documentation du projet.

          2 - Peaufinage de base

          On va maintenant nettoyer le code des gabarits, en supprimant les choses que l'on trouve inutiles ou qui nous déplaisent. Tout se passe dans le répertoire templates de notre thème.

          • il y a les fichiers analytics.html et disqus.html
          • une recherche par mot nous informe des éventuelles références à Google, Twitter, Facebook

          On supprime les parties qui ne nous conviennent pas.

          3 - Gestion cartographique

          Nous attaquons désormais notre objectif : rendre visibles sur des cartes des fichiers de trace.

          a) Gestion des cartes

          On va maintenant configurer la gestion des cartes, par l'intermédiaire de leaflet. Comme l'indique sa page wikipédia, leaflet est très largement utilisé et très pratique.

          On va donc

          • le télécharger,
          • le décompresser dans le répertoire static de notre thème
          • modifier les entêtes de nos gabarits (cela se fait le plus souvent dans le fichier base.html) pour y ajouter au niveau <head> les références à leaflet :
              <link rel="stylesheet" href="{{ SITEURL }}/theme/leaflet/leaflet.css"   integrity="sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY="  crossorigin=""/>
              <script src="{{ SITEURL }}/theme/leaflet/leaflet.js"  integrity="sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo="  crossorigin=""></script>

          Comme on a récupéré en local les fichiers, on met des chemins propres à notre arborescence (via {{ SITEURL }}/theme/).

          b) Gestion des fichiers de trace (gpx)

          Elle va se faire par l’intermédiaire d'un module supplémentaire https://github.com/mpetazzoni/leaflet-gpx (BSD 2).

          De la même manière qu'on a intégré dans nos entêtes l'intégration de leaflet, nous allons ajouter une ligne pour faire référence à leaflet-gpx (bien vérifier le nom du fichier javascript) :

          <script src="{{ SITEURL }}/theme/leaflet-gpx/gpx.js"></script>

          Par rapport à la documentation officielle, on retire l'attribut defer (puisque nous utilisons les fichiers locaux et non distants).

          Pour tester notre environnement, on va déposer dans notre répertoire gpx un fichier de trace, puis on va ajouter dans notre billet les éléments de cartographie de notre voyage :

          <div id="map" style="width: 600px; height: 400px;"></div>
          <script>
                  var map = L.map('map');
                  L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
                    attribution: 'Carte et données : <a href="http://www.osm.org">OpenStreetMap</a>'
                  }).addTo(map);
                  var gpx = '/gpx/FICHIER.gpx';
                  new L.GPX(gpx, {async: true}).on('loaded', function(e) {
                      map.fitBounds(e.target.getBounds());
                  }).addTo(map); 
          </script>

          On regénère notre site web, et on peut visualiser notre billet

          Première version de notre billet

          Globalement, ça fait le boulot.

          Mais on peut améliorer la chose : on peut par exemple cacher les marques de début et de fin d'itinéraire en insérant la ligne suivante après le async: true

          markers: {startIcon: null, endIcon: null, }

          Mais surtout, nous souhaitons que pelican génère automatiquement la partie consacrée au fichier de trace (alors que dans notre test, nous avons dû l'ajouter nous-même) !

          c) Modification des gabarits

          Si l'on veut simplement ajouter notre fichier de trace et que notre gabarit le traite, on va ajouter cette information dans les entêtes de notre fichier markdown ! En effet pelican permet de créer des variables qui seront utilisables dans nos gabarits.

          Nous allons donc créer et utiliser une variable (qui s'appellerait… Gpx par exemple), qui stockera le nom du fichier gpx à afficher (les chemins sont relatifs à notre site web)

          Title: Première sortie
          Date: 2025-05-01
          Modified: 2025-05-01
          Category: Lieux
          Gpx: /gpx/monfichier.gpx
          Slug: depart
          Tags: bonjour, balade

          Nous modifions ensuite notre gabarit article.html pour qu'il génère la carte à partir de notre variable.

          Pelican est très souple : basé sur Jinja2, il permet les boucles, les conditions et les variables.

          Tous les éléments qu'il utilise sont insérés dans des accolades. Le fonctionnement est facilement lisible et compréhensible.

          On va donc conditonner (avec if) l'insertion de leaflet.

          {% if article.gpx %}
              <div id="map" style="width: 600px; height: 400px;"></div>
          <script>
              var map = L.map('map');
              L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
                attribution: 'Carte et données : <a href="http://www.osm.org">OpenStreetMap</a>'
              }).addTo(map);
          
              var gpx = '{{ article.gpx }}';
              new L.GPX(gpx, {async: true,
                                 markers: {startIcon: null, endIcon: null, }
                }).on('loaded', function(e) {
                   map.fitBounds(e.target.getBounds());
                }).addTo(map); 
          
          </script>
          {% endif %}

          Bien entendu, nous supprimons ces références du fichier markdown correspondant à notre billet de test.

          On regénère notre site web, et on peut visualiser notre billet… qui n'a pas changé : tout fonctionne. Pour chacune de nos sorties, il suffit donc d'indiquer le fichier de trace dans les entêtes pour que la carte soit insérée automatiquement dans notre billet.

          Passons maintenant à l'intégration de nos photos.

          4 - Gestion des photographies associées à notre cartographie

          Nous avons besoin :

          • d'une image
          • de ses coordonnées géographiques (latitude et longitude)

          Pour cela, nous allons procéder de la même manière que pour le fichier trace : nous allons créer et utiliser des variables dans les entêtes des fichiers markdown.

          a) Fichier des billets

          Nous modifions encore une fois les entêtes en ajoutant autant d'informations (image, latitude et longitude) que de photos à afficher en miniatures.

          Title: Première sortie
          Date: 2025-05-01
          Modified: 2025-05-01
          Category: Lieux
          Gpx: /gpx/monfichier.gpx
          Slug: depart
          Img: /images/image1.jpg
          Lat: 49.895517
          Lon: 2.295983
          Img: /images/image2.jpg
          Lat: 49.89443
          Lon: 2.30137
          Tags: bonjour, balade
          

          On remarque ici que l'on a mis plusieurs images avec les mêmes noms de variables.

          b) Modification des gabarits

          Nous allons ensuite modifier les gabarits de pelican pour qu'ils positionnent des miniatures des photos sur notre trajet.

          Nous allons à nouveau modifier notre fichier article.html, en y ajoutant (à la suite de notre précédente modification, dans la condition {% if article.gpx %}) le code suivant :

          Nous commençons par indiquer l'icône qui s'affichera sur la carte à chaque photo mise en valeur

          var MonIcone = L.icon({
              iconUrl: '/images/app-photo.png',
              iconSize: [36, 36]
          });
          

          Puis nous codons l'affichage du marqueur (qui sera géré par leaflet).

          {% if article.img %}
            {% if article.img is string %}
               imageTxt = 'Description';
               L.marker([{{ article.lat }}, {{ article.lon }}], {icon: MonIcone}).bindPopup(imageTxt + '<br><img src="{{ article.img }}" width="200px"><a href="#bal5">plus de détail</a>').addTo(map);    
            {% else %}
              {% for n in range(article.img| length) %}
                 imageTxt = 'Description';
                 L.marker([{{ article.lat[n] }}, {{ article.lon[n] }}], {icon: MonIcone}).bindPopup(imageTxt + '<br><img src="{{ article.img[n] }}" width="200px"><a href="#bal5">plus de détail</a>').addTo(map);
              {% endfor %}    
            {% endif %}
          

          La difficulté réside dans la gestion des éléments répétitifs :

          • s'ils sont plusieurs, on peut utiliser les méthodes python des listes.
          • s'il n'y en a qu'un seul, cette méthode renvoie toutes les lettres de notre variable ! Il a donc fallu tester si celle-ci est une chaine de caractères ou une liste.

          Les choix sont ici purement personnels ou démonstatifs :

          • on a laissé une variable imageTxt en dur, elle pourrait être passée dans les entêtes de nos fichiers markdown
          • le texte du popup peut être adapté (on pourrait y ajouter un lien direct vers notre image par exemple)
          • le lien (ancre) est à créer dans notre fichier markdown
          • la taille de l'image du popup est en dur (on peut passer par une feuille de style css)

          On regénère notre site web, et on peut visualiser notre billet :

          Carte avec icones indiquant des lieux visités

          Et lorsqu'on clique sur une icône d'appareil photo, on voit bien notre popup :

          Popup avec la miniature

          c) Gestion des photographies

          Comme indiqué plus haut, la taille des miniatures affichées peut se gérer :

          • par CSS
          • ou créer des miniatures (avec imagemagick) pour diminuer la charge de notre serveur (afficher une photo de 3000 pixels à 200 pixels n'est pas optimal). Dans ce cas, il suffira d'adapter notre gabarit pour lui indiquer où aller chercher les petites images (/images/miniatures/ par exemple)

          Par contre, le point le plus compliqué est la gestion des coordonnées des photographies : il faut les rentrer à la main !

          • Pour les photographies qui n'intègrent pas les coordonnées dans leurs métadonnées, il n'y a pas d'autre solution que d'aller chercher sur une carte (openstreetmap par exemple) et de trouver le lieu de la prise de vue et de repérer les coordonnées.

          • Pour les photographies qui contiennent leurs coordonnées géographiques, on peut utiliser l'outil exiftool pour les récupérer. On peut éventuellement faire un script bash qui affiche les lignes d'entête pour notre billet (on n'a plus qu'à les recopier ou les rediriger vers un fichier texte) :

              for photo in $(ls ./content/images);
              do
                  echo ""
                  echo "Img: /images/"$photo
                  LAT=$(exiftool -n -s3  -gpslatitude ./content/images/$photo)
                  echo "Lat: "$LAT
                  LONG=$(exiftool -n -s3  -gpslongitude ./content/images/$photo)
                  echo "Lon: "$LONG
              done

          Nous avons utilisé les options -n qui affichent les valeurs numériques au format décimal (celui utilisé par openstreetmap pour les coordonnées) et -s3 pour avoir la valeur du champ sans le nom de son attribut.

          5) Dernières modifications

          Nous venons de voir les différentes techniques qui permettent d'avoir le rendu que nous souhaitions. Et le résultat est déjà agréable à regarder.

          Nous pourrions nous arrêter ici, mais vous voulons que la carte reste en permanence dans le menu latéral. La solution est de la mettre dans une balise <aside>.

          a) Modifier les gabarits

          Notre thème comporte déjà une telle balise : elle est dans le fichier base.html… ce qui signifie qu'il ne peut pas voir les informations sur les articles (donc nos entêtes) !

          La solution va donc consister à déplacer, à l'intérieur du fichier article.html, tout notre code dans une section (que nous appellerons mamap :

          {% block mamap %}
              Mettre ici tout le code sur notre gestion cartographique
          {% endblock %}
          

          Et dans le fichier base.html, on va insérer à l'intérieur des balises <aside> son appel (qui ne tient que sur deux lignes) :

          {% block mamap %}
          {% endblock %}
          

          b) Ajuster les feuilles de style

          Il faut surcharger le comportement de la carte gérée par leaflet :

              .leaflet-container {
                  width: 400px;
                  height: 300px;
                  max-width: 100%;
                  max-height: 100%;
                  margin: auto;
              }

          Et vérifier que les largeurs de la carte, et de <aside> soient compatibles.

          Le résultat avec nos dernières modifications est désormais le suivant

          Site avec la carte à gauche

          6) Conclusion

          Il est temps de finir cette dépêche, dans laquelle nous avons pu découvrir la souplesse et la richesse des gabarits gérés avec jinja2, ainsi que la facilité d'utilisation de leaflet.

          Désormais, dans notre flux de travail, nos répertoires sont organisé ainsi :

          content 
              + gpx : les fichiers de trace
              + images : les photos que l'on veut afficher sur notre blog
              fichierXX.md : les billets
          output : notre site web (généré par pelican)
          theme
              + pelican-blue  : le thème choisi
                  + static
                      + css
                      + leaflet
                      + leaflet-gpx
                  + templates
          

          Et la rédaction de nos billets consiste à :

          • ajouter le fichier gpx de notre trace dans les entêtes
          • ajouter les informations sur chaque photo que l'on veut voir (toujours dans les entêtes)
          • écrire notre billet normalement (en y ajoutant éventuellement d'autres photos ou des ancres de navigation)

          Cette dépêche démontre qu'il est possible d'avoir, avec les outils actuels, un rendu intéressant pour partager ses sorties. Et totalement utilisable en auto-hébergement.

          Les outils utilisés sont très personnalisables et je vous invite à lire leurs documentations ou à parcourir leurs extensions respectives et de vous les approprier selon votre usage.

          Malheureusement, la solution présentée ne conviendra qu'à une minorité d'utilisateurs. En effet, elle se base sur des éléments qui sont le plus souvent rendus invisibles (site web, transfert de fichiers, métadonnées) et elle est inutilisable sur téléphone.

          Commentaires : voir le flux Atom ouvrir dans le navigateur

          Sortie de Fedora Linux 42, la réponse à la grande question sur le Libre, Linux et tout le reste ?

          En ce mardi 15 avril, les utilisateurs du Projet Fedora seront ravis d'apprendre la disponibilité de la version Fedora Linux 42.

          Fedora Linux est une distribution communautaire développée par le projet Fedora et sponsorisée par Red Hat, qui lui fournit des développeurs ainsi que des moyens financiers et logistiques. Fedora Linux peut être vue comme une sorte de vitrine technologique pour le monde du logiciel libre, c’est pourquoi elle est prompte à inclure des nouveautés.

          GNOME Shell nature

          Sommaire

          Expérience utilisateur

          L'environnement de bureau GNOME est proposé dans sa version 48. Cette version apporte comme toujours son petit lot de nouveautés.
          Tout d'abord les notifications sont regroupées par application par défaut ce qui permet d'éviter de rapidement saturer la liste dans le menu idoine. Il reste possible de les déplier manuellement si on souhaite voir le détail pour une application en particulier.

          Au sein de l'interface, une nouvelle police fait son apparition par défaut. Dénommée Adwaita, elle remplace l'illustre Cantarel qui remplissait ce rôle jusqu'alors. Elle est basée sur la police Inter qui permet une prise en charge plus complète des langues, une meilleure lisibilité sur les écrans à haute densité de pixels tout en étant accessible et lisible dont pour le terminal. En parlant d'affichage, la prise en charge de la technologie HDR a été introduite pour permette une meilleure qualité d'affichage avec les appareils compatibles.

          De manière globale, il est possible de changer les raccourcis clavier de l'interface et le placement des nouvelles fenêtres par défaut est centré.

          Comme de nombreux systèmes, GNOME propose des paramètres liés au bien-être. Il permet de rapporter le temps d'écran jour par jour au cours d'une semaine. Par ailleurs on peut lui demander de nous notifier régulièrement de faire une pause visuelle en regardant ailleurs ou en faisant quelques mouvements pendant quelques secondes. Il est également possible de définir une limite d'écran qui transforme l'interface en noir et blanc quand le temps limite est atteint. Au sein des options, pour ceux avec un matériel compatible, il est possible de configurer un pourcentage de charge maximale pour la batterie afin de la préserver dans le temps.

          Au niveau applicatif, un nouveau lecteur audio très minimaliste fait son apparition : Decibels. Destiné à remplacer le lecteur vidéo Totem pour jouer un morceau individuel depuis le navigateur de fichiers. Côté visionneur d'images, ce dernier bénéficie d'améliorations pour proposer une édition légère des images affichées. La rotation, le changement de ratio ou le découpage de l'image ce qui permet de faire ces opérations simples et courantes sans utiliser un logiciel d'édition complet qui est beaucoup plus lourd. Ensuite il propose un bouton pour revenir au niveau de zoom d'origine à la demande. Enfin, les images au format RAW peuvent être affichées. Concernant le calendrier, il est possible de renseigner le fuseau horaire pour le début ou la fin d'une activité afin de simplifier l'organisation notamment de réunions internationales. Les performances de l'application sont également améliorées.

          Sous le capot, un effort a été fait pour améliorer les performances de l'interface et du système. Par exemple le moteur JavaScript de GNOME consomme moins de mémoire et de processeur. En utilisant ffmpeg au lieu de gstreamer, l'indexation des gros fichiers et des métadonnées multimédia est aussi plus rapide et moins gourmand en mémoire. Les utilisateurs connectant leur écran à une carte graphique dédiée verront aussi leurs performances et la stabilité s'améliorer tandis que redimensionner ou créer de nouvelles fenêtres sera plus rapide.

          L'environnement de bureau Xfce bénéficie de la version 4.20. Si cette version introduit un support expérimental du protocole d'affichage Wayland, il n'est pas encore fonctionnel et des améliorations futures devront encore être fournies à ce sujet. Mais concernant l'affichage, la prise en charge des écrans à haute résolution a été améliorée ce qui devrait réduire les flous dans l'interface ou de certaines icônes pour de tels écrans.

          Dans le navigateur de fichiers Thunar, les points de montage adoptent une icône spécifique alors que les montages distants IPv6 sont désormais possibles. La barre d'outils s'enrichie avec un menu hamburger quand la barre de menu est masquée. Il permet aussi d'ouvrir facilement un nouvel onglet ou de changer la vue d'affichage du dossier en cours. Pour gagner de la place en hauteur, la décoration côté client est prise en charge ce qui permet de mettre le menu au même niveau que les touches d'actions pour réduire ou fermer la fenêtre. Des améliorations de performances sont également fournies notamment pour le transfert des fichiers ou pour afficher des dossiers avec de nombreux fichiers.

          De manière globale il est possible de définir un mode d'énergie ou de performance du système dans les propriétés d'alimentation pour choisir l'équilibre souhaité entre la consommation d'énergie et les performances du systèmes. Il y a également l'apparition des profils d'affichage particulièrement utiles quand il y a plusieurs systèmes de multi-écrans à gérer pour passer d'un mode à l'autre en fonction de ses déplacements.

          De nombreuses pages de paramètres ont été remaniées pour être plus simples et plus claires.

          L'environnement de bureau LXQt passe à la version 2.1. C'est la première version à fournir une compatibilité complète avec le protocole d'affichage Wayland qui devrait être activé par défaut dans Fedora. En dehors de cela cette version ne fournie que des changements et correctifs assez mineurs.

          Choix de langues avec le nouvel Anaconda

          Le logiciel d'installation Anaconda en profite pour également être une interface web par défaut pour Fedora Workstation. L'objectif est d'utiliser les technologies React et Cockpit pour définir cette nouvelle interface qui a été entièrement redessinée. Elle abandonne sa vieille approche de choisir les éléments à configurer dans l'ordre de son choix par l'usage d'un assistant de configuration linéaire. Donc après la configuration de la langue qui est basée par défaut sur celle de l'image en cours d'exécution, le choix de la date est ensuite suivie de l'étape de partitionnement qui a également été entièrement refaite avant de procéder à l'installation proprement dite. L'approche linéaire a été jugée plus simple d'utilisation et à maintenir même si cela ne permet pas de sauter des étapes si nécessaire, mais étant donné leur nombre réduit cela n'est pas considéré comme une grande perte.

          L'aide a été remaniée dans l'application pour être affichée de côté et qui peut être plus facilement maintenue et traduite à côté du code de l'application.

          Concernant le partitionnement, auparavant trois méthodes étaient disponibles :

          • Entièrement automatique ;
          • Personnalisé : approche dite top-down en définissant les points de montages avant de définir les détails concernant les partitions et les volumes ;
          • Basé sur l'outil blivet : approche dite bottom-up où on définit les partitions et volumes avant d'y associer les points de montage.

          Cela était complexe pour l'utilisateur et difficile à maintenir même si ça avait l'avantage d'être très flexible. L'objectif est maintenant d'offrir une approche plus guidée avec plusieurs choix plus clairs :

          • Réinstaller entièrement sur les disques ;
          • Installer uniquement dans l'espace libre disponible sur les disques ;
          • Réinstaller sur un Fedora Linux existant ;
          • Utiliser un partitionnement déjà existant ce qui permet à priori de configurer cela avec un autre outil au préalable ;
          • Supprimer manuellement des partitions pour utiliser l'espace résiduel.

          Le tout repose sur l'utilisation de la technologie Cockpit Storage ce qui simplifie la maintenance et permet d'avoir une apparence similaire avec le reste d'Anaconda. Dans le futur une installation distante par HTTPS devrait être possible grâce à cela.

          Pour les autres éditions, Anaconda devient une application Wayland native. Ce changement est utile pour supprimer les dépendances liées à X11 pour les environnements de bureaux qui peuvent s'en passer ce qui réduit la taille de l'image. Par ailleurs cela permet aussi de migrer pour les installations à distance du protocole réseau VNC à RDP qui est plus performant et sécurisé. Cela a été rendu possible par l'usage progressif de systemd-localed par les différents environnements ce qui permettait une meilleure prise en charge de la configuration du clavier dans ce contexte, faute de définition suffisament commune dans le protocole Wayland encore. Autrement le changement de clavier depuis Anaconda ne se reflétait pas sur le bureau et cela pouvait mener à des soucis comme la difficulté de déverrouillage de la machine après installation car la disposition clavier n'est plus celle utilisée lors de l'installation…

          L'édition KDE Plasma devient une édition à part entière, étant mise au même niveau que Fedora Workstation avec l'environnement GNOME. Cela récompense les efforts de longue haleine pour améliorer la qualité de l'intégration de KDE dans Fedora Linux. KDE était cependant déjà un environnement considéré comme assez important pour que son bon fonctionnement conditionne le report ou non d'une sortie de Fedora Linux, donc ce changement de statut n'aura pas d'impact de ce côté là. Elle sera maintenant proposée sur le site principal et mieux mise en avant.

          L'écran de chargement lors du démarrage plymouth utilise simpledrm par défaut pour réduire l'attente qu'une carte graphique soit disponible. Les cartes graphiques sont des composants complexes qui peuvent nécessiter du temps pour s'initialiser. Auparavant, plymouth pouvait attendre jusqu'à 8 secondes avant de basculer dans un affichage par défaut assez disgracieux. Cependant grâce à l'UEFI qui fourni un framebuffer, il est possible d'avoir un affichage plus sympa et plus tôt par l'usage de simpledrm qui peut être exploité à cette fin. Cela n'a pas été fait plus tôt car notamment simpledrm ne fournissait pas d'information concernant la rotation de l'écran et la taille physique de l'affichage.

          Cependant, dans certains cas l'affichage pourrait être plus moche par l'usage d'une résolution plus faible que ce qui est possible car l'heuristique pour définir si l'affichage est à haute définition de pixels peut se tromper. Il reste toujours possible de désactiver ce changement via la commande sudo grubby --update-kernel=ALL --args="plymouth.use-simpledrm=0"

          Si vous souhaitez changer le facteur d'agrandissement, si vous avez un écran à haute définition de pixels par exemple, vous pouvez utiliser la commande sudo grubby --update-kernel=ALL --args="plymouth.force-scale=1" et changer éventuellement la valeur 1 par 2 selon votre cas.

          L'environnement de bureau COSMIC bénéficie de sa propre édition Spin. Cet environnement est développé en Rust par l'entreprise System76 qui édite Pop! OS. Les progrès récents justifient selon le projet d'avoir sa propre variante, d'autant que Fedora Linux semblait être déjà une distribution recommandée pour tester cet environnement. Cependant COSMIC n'a pas le statut pour bloquer une sortie de Fedora Linux s'il s'avère trop instable.

          Activation de la mise à jour automatique par défaut pour la version atomique de KDE Plasma nommée Kinoite. Ces mises à jour concernent la partie de base du système reposant sur rpm-ostree. Ces mises à jour fonctionnent en arrière plan à intervalle régulier pour être instantanément appliquées lors du prochain redémarrage.

          Il est possible de désactiver la fonctionnalité en remplaçant la valeur du paramètre UseUnattendedUpdates à false dans le fichier /etc/xdg/PlasmaDiscoverUpdates.

          KDE est mis à l'honneur

          Gestion du matériel

          Amélioration de la prise en charge des webcams basées sur le protocole MIPI au lieu de USB dans les ordinateurs portables x86. Le travail entamé avec Fedora Linux 41 doit se poursuivre car ce protocole moins générique nécessite beaucoup d'adaptations spécifiques par modèle d'ordinateur portable sur le marché. Quelques nouveaux modèles doivent être pris en charge même si la route reste encore longue mais la voie est libre !

          L'Intel Compute Runtime, qui prend en charge notamment le fonctionnement de l'API OpenCL pour les processeurs Intel, a été mise à jour vers la version 24.39 qui signifie également une non prise en charge des processeurs d'avant 2020 (à partir de la 12e génération). Ce changement n'a pas d'impact sur l'Intel Media Driver qui permet l'accélération matérielle pour la lecture ou l'encodage de vidéo.

          Fedora restait sur l'ancienne version pour maintenir la compatibilité avec les vieux processeurs, jusqu'à l'architecture Broadwell sortie en 2015. Cependant avec l'évolution du noyau et de la couche graphique cela devenait un problème à maintenir et de l'autre côté Fedora n'était pas en mesure de fournir la compatibilité pour du matériel plus récent et les derniers correctifs qui améliorent notamment les performances.

          Introduction de la pile Intel SGX pour permettre son utilisation dans le futur pour améliorer l'isolation et la protection mémoire en particulier pour les machines virtuelles. Cette protection se fait notamment en chiffrant la mémoire ce qui la rend inaccessible aux autres applications, au noyau et aux différents firmwares de la machine. Les bibliothèques et en-têtes nécessaires pour ces opérations sont fournies dans le répertoire /usr/x86_64-intel-sgx. Aucune application n'est fournie avec de telles possibilités aujourd'hui, uniquement le nécessaire pour créer des applications pouvant en tirer profit.

          Intégration du projet FEX dans les dépôts pour permettre l'exécution des programmes x86 / x86_64 depuis les architectures AArch64. Contrairement à QEMU, il n'émule pas un système complet ce qui est plus performant pour émuler simplement une application non compatible avec cette architecture. Cela peut être nécessaire car de nombreuses applications non fournies par Fedora sont compilées nativement pour l'architecture x86_64 mais pas pour AArch64 alors que l'inverse est moins vrai.

          Pour permettre son fonctionnement sur les Mac avec des processeurs Apple, qui ont une taille de page de 16k au lieu de 4k pour les autres machines, le composant muvm est également fourni avec pour permettre une telle compatibilité.

          FEX est par ailleurs fourni par défaut dans la variante KDE Aarch64 du système.

          L'installateur Anaconda utilise la norme GPT par défaut pour la table de partitionnement pour les architectures PPC64LE et s390x, l'architecture x86_64 et Aarch64 ayant déjà sauté le pas avec Fedora Linux 37. L'objectif est de réduire les différences entre les architectures sur ce point ce qui simplifie les tests et la maintenance de l'ensemble.

          Les versions atomiques n'auront plus d'images compatibles avec l'architecture PPC64LE. D'après les statistiques, aucun utilisateur n'a utilisé de tels systèmes sur cette architecture. Cette suppression permet d'allouer plus de ressources matérielles et humaines pour générer et tester les images destinées pour les autres architectures où les utilisateurs sont plus nombreux de fait. Cela ne concerne pas les images de Fedora basées sur les paquets RPM qui restent disponibles pour cette architecture.

          Le paquet du logiciel Zezere qui sert à automatiser l'installation et la configurations de systèmes IoT a été retiré des dépôts. L'objectif est de remplacer ce composant par systemd-firstboot car Zezere ne fonctionnait pas bien notamment sur les réseaux IPv6, ne fournissait que la possibilité d'envoyer une clé SSH personnalisée et de nombreuses fonctions promises n'ont jamais vu le jour.

          Internationalisation

          Mise à jour de l'entrée de saisie IBus 1.5.32. Cette version apporte principalement la prise en charge du protocole des entrées Wayland version 2 ce qui permet son utilisation dans les bureaux Sway, COSMIC et Hyprland. Il permet également d'afficher la pop-up de suggestions dans les applications XIM ou GTK2 lorsqu'elles sont utilisées dans une session Wayland.

          Son aide à la saisie pour le chinois ibus-libpinyin est aussi mise à jour à la version 1.16. Il permet en outre de fournir des suggestions de ponctuations, de personnaliser la disposition du clavier ou d'afficher les convertisseurs Lua depuis un menu des méthodes d'entrées.

          Proposition d'une nouvelle aide à la saisie vocale avec Ibus Speech to Text via le paquet ibus-speech-to-text qui permet de faire de la reconnaissance vocale en local. Toutes les applications compatibles avec IBus peuvent donc avoir une telle saisie vocale qui exploite le logiciel VOSK pour la reconnaissance vocale. Aucune connexion à Internet n'est requise et il gère plusieurs langues qui peuvent être facilement téléchargées si besoin. Cela permet d'améliorer l'accessibilité du système tout en préservant la vie privée.

          Installation avec le nouvel Anaconda

          Administration système

          Les répertoires /usr/bin et /usr/sbin sont fusionnés. Ainsi /usr/sbin devient un lien symbolique vers le répertoire /usr/bin, de même que /usr/local/sbin vers /usr/local/bin. Cette séparation entre les utilitaires réservés aux superutilisateurs et les autres était artificielle et non exploitée.

          À l'origine, l'objectif de /sbin était d'avoir des binaires liés statiquement qui pouvaient être utilisés dans un système en mode de secours pour dépanner en cas de gros problème au niveau du système. Mais cette méthode n'est plus appliquée depuis longtemps et cette distinction était conservée comme une relique historique. Cela devenait un poids plus qu'autre chose car avec l'avénement des droits d'utilisateurs dynamiques via polkit par exemple, le besoin d'accéder à ces outils nécessitait de donner accès à ces répertoires même pour des utilisateurs sans droits particuliers. Puis, entre les distributions, un utilitaire pouvait être rangé dans un répertoire ou un autre en fonction des choix des empaqueteurs de chaque communauté ce qui rend la portabilité des commandes entre distributions plus difficiles inutilement. D'ailleurs ArchLinux a sauté le pas il y a quelques années déjà.

          Cela est la continuité de la suppression de la distinction entre /bin et /usr/bin qui avait le même genre de justifications qui a eu lieu avec Fedora 17, il y a 13 ans déjà.

          DNF5 va proposer à l'utilisateur de supprimer les clés GPG qui ont expiré, ou qui ont été révoquées, plutôt que de devoir le faire à la main avec la commande rpmkeys --delete. Si la commande est interactive, le choix sera laissé à l'utilisateur de supprimer ou non la dite clé. En mode non interactif via les options -y ou --assumeno, le choix dépendra de l'option choisie pour l'appliquer automatiquement.

          La commande fips-mode-setup a été retirée du paquet crypto-policies qui permet de rendre dynamiquement son système compatible avec les exigences du gouvernement américain concernant les modules cryptographiques. Cette option doit être activée lors de l'installation par d'autres moyens maintenant.

          Il est ainsi possible de le faire en utilisant l'argument noyau fips=1 pour le notifier à Anaconda, si l'image a été générée avec osbuild-composer, l'option fips=true dans la section [customizations] permet d'obtenir le même effet ou si bootc est utilisé pour une image atomique de passer par cette configuration.

          Le mode FIPS n'améliore pas forcément la sécurité, dans certains cas ça peut en bloquant l'usage des algorithmes obsolètes mais parfois cela peut avoir l'effet inverse en n'autorisant pas d'algorithmes plus récents jugés plus sécurisés, comme l'algorithme de chiffrement Argon2 utilisé par LUKS pour chiffrer le disque dur qui résiste mieux aux attaques effectuées par des cartes graphiques par rapport à l'algorithme PBKDF2 qui est lui autorisé. C'est un mode destiné aux entreprises ou personnes ayant besoin d'être certifiées à ce niveau.

          L'objectif de ce changement est de simplifier la vie des mainteneurs qui n'ont plus à se préoccuper de cet outil et de ce que cela nécessite car de nombreux changements dans le système doivent être mis en place pour activer (ou désactiver) ce mode. Par exemple reconfigurer tous les modules cryptographiques du système tels que OpenSSH, OpenSSL, GnuTLS, NSS, libgcrypt ou le noyau lui même, fournir également un module à l'initramfs pour effectuer une vérification de l'image du noyau au démarrage de la machine et ajouter un argument pour le noyau si jamais /boot est dans une partition dédiée afin d'effectuer cette vérification.

          Mais aussi le changement à la volée est source de problèmes et de confusions pour les utilisateurs. Par exemple installer Fedora Linux avec un chiffrement du disque avec un algorithme non compatible FIPS avant de l'activer après l'installation. De même si des clés de chiffrement sont générées avec OpenSSH ou autres outils avec des algorithmes non autorisés avant d'activer le dit mode. Ces situations hybrides peuvent induire des dysfonctionnement non prévus. L'objectif est de limiter ces cas problématiques en empêchant le changement à chaud.

          Le navigateur de fichiers pour Cockpit cockpit-navigator est remplacé par cockpit-files. Cela suit le changement effectué par le projet qui a entamé cette réécriture et ne maintient de fait plus l'ancien module.

          Les fichiers Kickstart seront distribués également comme des artéfacts OCI. L'objectif est de permettre de charger plus facilement une image de Fedora pour conteneurs qui est démarrable via le réseau. Dans ce cas précis, il était nécessaire pour l'utilisateur de récupérer et de transformer manuellement les différents fichiers depuis les dépôts RPM avec des numéros de versions très mouvants afin d'avoir les images du noyau, de l'initramfs, du chargeur de démarrage, de l'image d'installation et de lancement. Ici l'objectif est de pouvoir les fournir dans un endroit centralisé tel que ce dépôt avec des processus plus faciles à automatiser avec Ansible ou Foreman. Ces fichiers sont également signés avec GPG ce qui permet de facilement vérifier leur conformité.

          Les éditions dérivées de Fedora Workstation auront par défaut le pare-feu configuré avec l'option IPv6_rpfilter=loose, ce qui suit la politique appliquée pour l'IPv4 depuis Fedora 30. En effet, avec l'option IPv6_rpfilter=strict il y avait notamment régulièrement des soucis pour vérifier la connexion à Internet pour des machines ayant plusieurs interfaces connectées au réseau tel qu'un ordinateur portable passant du Wifi au réseau Ethernet pour se connecter à son réseau domestique.

          Ajout du paquet bpfman pour le déploiment et la gestion des programmes eBPF dans le système. Développé en Rust, il permet de fournir une vue d'ensemble des programmes eBPF utilisés dans le système actuellement. Il simplifie aussi leur déploiement dans un cluster Kubernetes par l'utilitaire bpfman-operator tandis que l'outil bpfman-agent exécuté au sein d'un conteneur permet de rapporter si les programmes eBPF sont dans l'état désiré.

          Mise à jour de l'outil de gestion de configuration Ansible à la version 11. Cette version propose d'ajouter des tags aux variables ou valeurs pour par exemple retourner un avertissement si on essaye d'accéder une valeur marquée comme dépréciée. Les boucles de tâches peuvent avoir une instruction d'interruption. Enfin, le module mount_facts prend en charge les périphériques non locaux.

          Le serveur de proxy inverse Apache Traffic Server évolue vers sa 10e version. Une nouvelle API basée sur JSON-RPC est proposée pour permettre des interactions avec des outils extérieurs. Le module traffic_ctl a une commande monitor pour rapporter en continue des métriques à jour. Les règles ip_allow.yaml et remap.config prennent en charge des intervalles d'IP nommées pour simplifier la configuration. La prise en charge du protocole HTTP/2 pour les connexions provenant du serveur d'origine a été ajoutée même si elle est désactivée par défaut. De plus, les plugins doivent être développés en C++20 uniquement au lieu du langage C.

          La version de compatibilité PostgreSQL 15 a été retirée, PostgreSQL 16 reste la version par défaut. Cela fait suite à l'ajout de PostgreSQL 17 dans les dépôts comme version alternative avec postgresql17 comme nom de paquet. Le projet ne souhaite pas maintenir davantage de versions pour réduire la charge de travail tout en permettant de migrer les données d'une version à l'autre. En effet, la migration nécessite le binaire de la version actuellement utilisée pour réaliser un dump avant d'utiliser la nouvelle version pour importer ce dump. Cela signifie que les utilisateurs utilisant PostgreSQL 15 doivent préparer la migration avant la mise à niveau de leur Fedora Linux.

          Les utilitaires liés au projet OpenDMARC ont été mis dans des paquets individuels au lieu du paquet opendmarc qui les fournissait tous. En effet de nombreux utilitaires notamment écrits en Perl étaient fournis avec ce paquet sans être nécessaires pour exécuter le service ce qui entrainait l'installation plus que 80 paquets Perl pour rien dans la plupart des cas. Le paquet opendmarc fournit maintenant les outils opendmarc et opendmarc-check quand le reste est fourni avec le paquet opendmarc-tools.

          L'agent pam-ssh-agent a été supprimé des dépôts. Le développement a été arrêté il y a plus d'un an par le projet OpenSSH et aucun paquet actuellement maintenu n'en dépend.

          La nouvelle application GNOME Decibels

          Développement

          La chaîne de compilation GNU bénéficie de GCC 15, binutils 2.44 et glibc 2.41. Concernant le compilateur GCC, comme d'habitude il fournit de nombreux changements. Il est possible pour l'optimisation de l'édition de lien de le faire de manière incrémentale afin que cette étape soit plus rapide en cas de petits changements dans le code source. Les très gros fichiers de code source sont également plus rapide à compiler et les erreurs les concernant sont mieux gérées. Les erreurs gagnent encore en lisibilité, en particulier pour les templates C++ ou en présentant le chemin d'exécution qui mène à l'erreur détectée.

          Pour la section OpenMP, la prise en charge des normes au dessus de la version 5.0 continue sa progression avec une meilleure gestion des cartes graphiques Nvidia et AMD. Pour le langage C, la norme C23 devient la norme par défaut tandis que le début de prise en charge de la future norme C2Y a été introduit. Pour le C++, c'est la prise en charge de la future norme C++26 qui progresse et une meilleure gestion des modules introduits dans les normes précédentes.

          Pour les architectures, de nombreuses améliorations pour la prise en charge des microarchitectures x86_64 dont des nouvelles instructions AMX. Côté Aarch64, ce sont les puces d'Apple qui sont prises en charge maintenant.

          Concernant la bibliothèque standard C, il y a quelques changements concernant la résolution DNS. Grâce à la variable d'environnement RES_OPTIONS il est possible d'ignorer des options précisées dans le fichier /etc/resolv.conf. Ainsi utiliser RES_OPTIONS=-no-aaaa permet d'ignorer l'option options no-aaaa. Les fonctions sched_setattr et sched_getattr ont été ajoutées pour permettre de changer les options de la politique d'ordonnancement des processus du noyau, par exemple quand SCHED_DEADLINE est utilisé où certains paramètres peuvent être utilisés. La prise en charge d'Unicode 16.0 a été ajoutée, de même que de nombreuses fonctions mathématiques introduites par la norme C23. Pour l'architecture AArch64, les fonctions mathématiques vectorielles devraient être plus performantes.

          Enfin pour les binutils, les extensions de l'assembleur pour les architectures AArch64, Risc-V et x86 ont été mises à jour. L'éditeur de lien peut mixer des objets avec et sans l'optimisation activée.

          La chaîne de compilation LLVM progresse à la 20e version. Comme pour son concurrent GCC, les dernières normes C et C++ ont bénéficié de nombreuses améliorations pour leur prise en charge. De même, de nombreuses instructions AMX pour l'architecture x86_64 ont été ajoutées. Un nouveau vérificateur TySan fait son apparition pour vérifier les violations d'aliasing de types, donc utiliser un pointeur d'un type particulier pour accéder à des valeurs d'un autre type en mémoire ce qui dégrade les performances ou peut engendrer des bogues. Le module de télémétrie a été extrait du débogueur pour être disponible dans l'ensemble de LLVM afin de pouvoir rapporter différentes mesures et usages de ces outils aux développeurs mais cela reste désactivé par défaut.

          Fedora par ailleurs fournit les outils llvm-bolt, polly, libcxx et mlir dans le paquet llvm au lieu d'être dans des paquets indépendants comme avant. Les binaires, bibliothèques et autres en-têtes sont installées dans le dossier /usr/lib64/llvm$VERSION/ au lieu de /usr, des liens symboliques sont proposés pour garder la compatibilité, l'objectif est de faciliter le passage d'une version à l'autre pour les utilisateurs.

          Le cadriciel web Python nommé Django utilise la version 5.x. Les formulaires peuvent bénéficier de la notion de groupe de champs pour simplifier significativement le code du template en évitant de devoir répéter les mêmes informations pour chaque champ s'ils ont la même structure. Les modèles peuvent également recevoir une valeur par défaut obtenue par la base de données. Il est également possible de générer des colonnes qui sont calculées à partir d'autres champs de la base de données.

          Mise à jour du langage Go vers la version 1.24. Côté langage, il prend en charge les alias de types génériques ce qui permet d'étendre leur champ d'applications et d'améliorer la lisibilité du code. Comme souvent avec Go, les performances sont améliorées, de l'ordre de 2-3% à l'exécution et la structure map est basée sur les tables suisses pour réduire la consommation mémoire pour les petits objets. La bibliothèque standard fournit des mécanismes pour se conformer au standard FIPS 140 concernant la cryptographie comme expliqué plus haut. Une nouvelle instruction du compilateur go:wasmexport permet d'exporter les fonctions du programme à l'hôte en WebAssembly.

          Le langage Ruby brille avec la version 3.4. Le parseur par défaut passe de parse.y à Prism pour améliorer la détection des erreurs, les performances et la portabilité. La bibliothèque de socket dispose du standard Happy Eyeballs Version 2 pour améliorer la résilience et l'efficience des connexions TCP. Le compilateur juste à temps YJIT améliore ses performances pour les architectures x86_64 et Aarch64, il est également plus fiable et réduit un peu sa consommation mémoire tout en ayant la possibilité de définir une limite maximale unifiée. Parser des structures JSON doit être également 1,5 fois plus rapide, de même pour Array#each grâce à une réécriture en Ruby.

          Le langage de programmation PHP s'impose de tout son poids à la version 8.4. Outre d'apporter un compilateur juste à temps basé sur IR Framework et diverses améliorations de performance, le langage propose de nouveaux concepts. Les property hooks permettent de facilement définir des structures basées sur une autre valeur pour les garder synchronisées tout en ayant une quantité de code plus réduites et avec moins de risque de faire des erreurs. Il est possible de définir une visibilité asymétrique, en autorisant la lecture d'une propriété mais pas son écriture publiquement et ce sans passer par des getters / setters. L'attribut #[\Deprecated] fait son apparition pour signaler à l'utilisateur qu'une méthode ou valeur sera probablement supprimée ultérieurement. Une nouvelle API pour manipuler les objets DOM apparaît et fournit la prise en charge de HTML5. Et d'autres changements encore.

          Le langage de scripts Tcl/Tk a été mis à jour vers la 9e version. Pour des raisons de compatibilité, la version 8 reste distribuée sous le nom de paquet tcl8. Grâce à l'exploitation du 64 bits, il peut maintenant manipuler des données de plus de 2 Gio. La prise en charge d'Unicode et des différentes méthodes d'encodage a été améliorée, en ajoutant d'une part mais aussi en gérant l'ensemble des valeurs existantes. L’interaction avec le système est améliorée avec la possibilité d'envoyer des notifications, d'imprimer ou d'utiliser les icônes de la barre du système. Il y a un début de prise en charge de l'affichage vectoriel permettant d'améliorer le visuel des applications. Les capacités d’interactions tactiles sont améliorées avec la possibilité de gérer des gestes à deux doigts.

          La bibliothèque de calcul scientifique en Python NumPy passe à la version majeure 2. Première version majeure depuis 2006, il fournit de nombreuses améliorations de performance en particulier autour des différents algorithmes de tri de même que la sauvegarde de gros objets. La transformée de Fourrier rapide prend en charge les types float32 et longdouble. Un nouveau type pour les chaînes de caractères de taille variable fait son apparition : StringDType qui doit fournir également de meilleures performances. La séparation entre l'API publique et privée a été aussi clarifiée avec une nouvelle structure des modules. API qui a aussi été nettoyée pour enlever ce qui n'était pas pertinent ce qui simplifie l'apprentissage de la bibliothèque.

          L'outil de développement de paquets Python Setuptools a été mis à jour vers la version 74. La commande setup.py qui était non recommandée depuis plus de 5 ans disparaît, cela a nécessité notamment de changer près de 150 paquets dans le système pour en tenir compte. D'autres changements plus mineurs sont également fournis.

          Mise à jour de la bibliothèque de compression zlib-ng à la version 2.2.x. Parmi les changements, sur l'architecture x86_64 les performances devraient être améliorées de 12% pour la compression avec le niveau par défaut. L'allocation mémoire est également fait en une seule fois ce qui réduit le nombre d'appels systèmes et le risque de fragmentation de la mémoire ce qui améliore également les performances globales. Le risque d'avoir un échec par manque de mémoire s'en retrouve également réduit.

          Le langage Copilot avec sa boîte à outil de vérification de runtime fait son apparition. Développé en Haskell par la NASA, il permet de définir des programmes concis qui peuvent ensuite être transpilés en C99 pour permettre un haut niveau de sécurité tout en étant capable de gérer des contraintes temps réel dures ce qui est important dans de nombreux contextes embarqués. Ce langage est disponible via le paquet ghc-copilot.

          La bibliothèque graphique SDL utilise la version 3 pour assurer la compatibilité avec ses versions 2 et 1.2 dorénavant. Cela passe par le paquet sdl2-compat qui fourni cette compatibilité car SDL 2 n'est plus développé.

          Les anciennes versions de OpenJDK pour le langage Java à savoir 8, 11 et 17 ne sont plus fournies par les dépôts de Fedora mais devront être installées via un dépôt tiers tel que Adoptium Temurin dont le paquet adoptium-temurin-java-repository permet son activation. La maintenance des différentes versions d'OpenJDK a été longtemps une problématique pour Fedora avec leur nombre de versions avec une maintenance officielle qui augmente, cela alourdissait considérablement la charge de travail sans avoir assez de mainteneurs en face. D'autant plus que la plupart des cas d'usage se contentent bien de la dernière version LTS disponible, les versions plus anciennes répondent à des cas plus spécifiques qui peuvent se contenter d'un dépôt externe où les mainteneurs de Fedora travaillent de toute façon ce qui garantie la qualité de l'intégration. Cela diminuera la consommation de ressources pour gérer ces paquets dans Fedora mais aussi l'allégement de la charge de travail permettra de mettre à jour OpenJDK plus rapidement à l'avenir.

          Le paquet de compatibilité Python pour la version 3.8 a été retiré. Cette version n'est plus maintenue par le projet Python et ce serait trop coûteux et peu sûr de poursuivre sa fourniture dans la distribution.

          La bibliothèque Rust zbus version 1 a été supprimée, la version 4 ou supérieure reste proposée dans les dépôts. Une vingtaine de dépendances obsolètes étaient également maintenues pour ce composant ce qui permettra de réduire la charge de travail pour les mainteneurs et la consommation de ressources pour le projet Fedora. La compatibilité avec les dernières versions du compilateur Rust et certains bogues sur certaines architectures rendaient sa maintenance problématique par ailleurs.

          La bibliothèque de compatibilité entre Rust et Python, PyO3, se voit retirer les anciennes versions 0.19, 0.20, et 0.21. Les versions 0.22 et 0.23 restent donc disponibles. Cet abandon devient nécessaire par les changements de l'API et de l'ABI de CPython qui rendent les anciennes versions de plus en plus difficiles à maintenir en état de fonctionnement.

          L'utilitaire d'exécution des tests unitaires en Python python-pytest-runner est déprécié et sera supprimé dans un futur proche. Depuis 2019 il est dans un état d'abandon par le projet source, il faut depuis envisager d'utiliser pytest à la place d'autant plus que les incompatibilités avec l'outil setuptools vont en grandissant.

          La bibliothèque de compatibilité entre GTK3 et Rust est marquée comme dépréciée et sera supprimée dans une prochaine version. En effet les versions récentes de gtk-rs ne le prennent plus en charge ce qui impose un coût de maintenance d'autant qu'il faut maintenir aussi les anciennes versions de compatibilité avec Cairo et GLib pour cela.

          Les nouveaux paramètres de GNOME bien être

          Projet Fedora

          Fedora Linux proposera des archives permettant d'être installé avec Windows Subsystem for Linux. Windows a récemment amélioré la prise en charge des installations d'un tel système en dehors du magasin d'applications Microsoft ce qui rend ce changement plus intéressant. Idéalement il faut utiliser WSL 2.4.4 ou supérieur même si une procédure sera fournie pour les versions plus anciennes. Le projet Fedora ne souhaite pas à ce jour accepter les conditions pour permettre une publication directement depuis le magasin d'applications. Cela permet de faciliter l'usage de Fedora dans un tel système.

          Les paquets RPM peuvent bénéficier de la fonction systemd sysusers.d pour créer des utilisateurs ou groupes dédiés lors de l'installation des paquets RPM. L'objectif à terme est de se débarasser des instructions useradd ou groupadd dans les paquets RPM voire l'usage de la macro %sysusers_create_compat. Cela va permettre d'uniformiser à terme la manière de créer de tels utilisateurs et groupes ce qui va également simplifier les scriplets des différents paquets RPM concernés. Comme cela est intégré dans le format RPM, il devient plus facile de retrouver quels utilisateurs et groupes sont créées par un paquet donné et de définir des dépendances basées sur ce critère si c'est pertinent.

          Les mises à jour de Fedora CoreOS passent de OSTree à OCI. Les mises à jour proviennent ainsi du dépôt quay.io/fedora/fedora-coreos. C'est la première étape avant d'être capable de passer à bootc pour gérer la base du système qui permettrait entre autre de faire des mises à jour en miroir en copiant un système existant sur le réseau local ou de laisser l'utilisateur personnaliser facilement ses propres images.

          Activation par défaut de composefs pour les images atomiques bureautiques de Fedora Linux pour les images non basées sur OSTree. Faisant suite à ce qui a été fourni pour les images CoreOS et IoT avec Fedora Linux 41, l'idée est de fournir une vérification d'intégrité des images atomiques lorsque le système tourne et d'avoir un système de fichiers du système réellement en lecture seule.

          En effet, jusqu'ici l'intégrité des fichiers du système n'est vérifiée que lors de la mise à jour ou l'installation d'une nouvelle image mais rien n'empêche d'avoir une altération malveillante par exemple entre temps. Il fallait exécuter ostree fsck à la main pour vérifier manuellement si le système était conforme. De plus le système même s'il est en lecture seule en théorie, en réalité il était monté en lecture/écriture avec la commande chattr +i / ajoutée pour prévenir les modifications accidentelles.

          Avec composefs, qui exploite overlayfs et EROFS, permet de supprimer ces limitations, le système de fichiers sera réellement en lecture seule et la moindre tentative de modification aboutira à une erreur au niveau du noyau Linux en toute circonstance. Les répertoires /etc et /var restent accessibles en lecture/écriture comme avant. L'objectif à terme est de fournir une vraie chaîne de démarrage sécurisée avec la vérification des signatures au niveau du système.

          L'utilitaire edk2 est compilé avec des options de sécurité supplémentaires pour améliorer la sécurité des machines virtuelles reposant sur l'UEFI. Ce composant est une implémentation de l'UEFI qui est notamment utilisée par les machines virtuelles créées avec libvirt. Ce changement passe par l'activation du mode strict pour NX qui empêche l'exécution de code provenant de zone mémoire en lecture/écriture. Les pointeurs NULL sont également capturés pour éviter de déférencer le vecteur d'interruption qui existe à cette adresse ce qui peut mener à des accès mémoires non souhaités. Cela ne sera appliqué que pour les sytèmes invités avec Secure boot activé, pour éviter d'introduire des régressions pour les systèmes invités plus anciens qui seraient non compatibles avec ces options de sécurité dans un environnement où ces protections additionnelles seraient moins pertinentes.

          En effet, cela est une réponse au problème de sécurité liée au composant shim pour les versions inférieures à 15.8 qui a nécessité en 2024 une mise à jour majeure des chargeurs de démarrage et du noyau Linux. Des systèmes invités avec ce problème de sécurité non corrigé entraineront une erreur mémoire prévenant toute exécution.

          Les images live de Fedora Linux utilisent le système de fichiers EROFS en lieu et place de SquashFS. Ce système de fichiers est aussi en lecture seule et est plus activement développé. De fait il peut utiliser des algorithmes de compression plus moderne pour réduire la taille de l'image et a été développé pour avoir de bonnes performances sur les systèmes embarqués ce qui devrait se retrouver aussi sur des machines plus performantes.

          Ajout d'un générateur de dépendances pour les extensions de GNOME Shell, permettant de lier la version de l'extension avec celle de gnome-shell à partir du fichier metadata.json de l'extension. Cela permet de détecter de manière générique et donc plus facilement et automatiquement un soucis de compatibilité entre une extension et la version de GNOME Shell fournie par le projet. Cela devrait permettre de travailler sur ces problèmes de compatibilité dès qu'ils apparaissent plutôt que d'attendre le retour d'utilisateurs qui découvrent une extension non fonctionnelle en pratique.

          Redéfinition des dépendances de nombreux paquets de git vers git-core. Plus de 200 paquets souhaitent utiliser le binaire git et ont une dépendance envers ce paquet éponyme alors qu'il est fourni en réalité par le paquet git-core. Ce qui implique une dépendance excessive envers 60 autres paquets inutiles dans ce contexte. Cela devrait entre autre réduire les ressources nécessaires pour générer certains paquets.

          La communauté francophone

          L'association

          Logo de Borsalinux-fr

          Borsalinux-fr est l'association qui gère la promotion de Fedora dans l'espace francophone. Nous constatons depuis quelques années une baisse progressive des membres à jour de cotisation et de volontaires pour prendre en main les activités dévolues à l'association.

          Nous lançons donc un appel à nous rejoindre afin de nous aider.

          L'association est en effet propriétaire du site officiel de la communauté francophone de Fedora, organise des évènements promotionnels comme les Rencontres Fedora régulièrement et participe à l'ensemble des évènements majeurs concernant le libre à travers la France principalement.

          Si vous aimez Fedora, et que vous souhaitez que notre action perdure, vous pouvez :

          • Adhérer à l'association : les cotisations nous aident à produire des goodies, à nous déplacer pour les évènements, à payer le matériel ;
          • Participer sur le forum, les listes de diffusion, à la réfection de la documentation, représenter l'association sur différents évènements francophones ;
          • Concevoir des goodies ;
          • Organiser des évènements type Rencontres Fedora dans votre ville.

          Nous serions ravis de vous accueillir et de vous aider dans vos démarches. Toute contribution, même minime, est appréciée.

          Si vous souhaitez avoir un aperçu de notre activité, vous pouvez participer à nos réunions mensuelles chaque premier lundi soir du mois à 20h30 (heure de Paris). Pour plus de convivialité, nous l'avons mis en place en visioconférence sur Jitsi.

          La documentation

          Depuis juin 2017, un grand travail de nettoyage a été entrepris sur la documentation francophone de Fedora, pour rattraper les cinq années de retard accumulées sur le sujet.

          Le moins que l'on puisse dire, c'est que le travail abattu est important : près de 90 articles corrigés et remis au goût du jour.
          Un grand merci à Charles-Antoine Couret, Nicolas Berrehouc, Édouard Duliège, Sylvain Réault et les autres contributeurs et relecteurs pour leurs contributions.

          La synchronisation du travail se passe sur le forum.

          Si vous avez des idées d'articles ou de corrections à effectuer, que vous avez une compétence technique à retransmettre, n'hésitez pas à participer.

          Comment se procurer Fedora Linux 42 ?

          Logo de Fedora Media Writer

          Si vous avez déjà Fedora Linux 41 ou 40 sur votre machine, vous pouvez faire une mise à niveau vers Fedora Linux 42. Cela consiste en une grosse mise à jour, vos applications et données sont préservées.

          Autrement, pas de panique, vous pouvez télécharger Fedora Linux avant de procéder à son installation. La procédure ne prend que quelques minutes.

          Nous vous recommandons dans les deux cas de procéder à une sauvegarde de vos données au préalable.

          De plus, pour éviter les mauvaises surprises, nous vous recommandons aussi de lire au préalable les bogues importants connus à ce jour pour Fedora Linux 42.

          Commentaires : voir le flux Atom ouvrir dans le navigateur

          • ✇LinuxFr.org : les dépêches
          • Réviser SQL en jouant au détective : SQLNoir
            SQL Noir est un jeu libre (licence MIT) par Hristo « Cool as a cucumber » Bogoev, où vous incarnerez le rôle d’une personne enquêtant sur un crime, mais à grand renfort de requêtes SQL. Le SQL pour Structured Query Language ou « langage de requêtes structurées » est un langage informatique normalisé servant à exploiter des bases de données relationnelles (Wikipédia). Bref vous avez une interface web qui vous permet de faire des requêtes dans les bases de données de témoins, suspects, enregist

          Réviser SQL en jouant au détective : SQLNoir

          26 février 2025 à 10:30

          SQL Noir est un jeu libre (licence MIT) par Hristo « Cool as a cucumber » Bogoev, où vous incarnerez le rôle d’une personne enquêtant sur un crime, mais à grand renfort de requêtes SQL. Le SQL pour Structured Query Language ou « langage de requêtes structurées » est un langage informatique normalisé servant à exploiter des bases de données relationnelles (Wikipédia).

          Logo SQL Noir

          Bref vous avez une interface web qui vous permet de faire des requêtes dans les bases de données de témoins, suspects, enregistrements audio ou vidéo, etc., et vous devez trouver qui est la personne ayant commis le crime. Sur le principe vous allez identifier des éléments dans les données, traquer les infos correspondantes ou manquantes, faire le lien entre les éléments, repérer des liens entre personnes ou des transactions, et tout cela avec des requêtes SQL.

          Il y a actuellement 4 enquêtes disponibles (et probablement plus à venir). C'est rapide, ludique, joli et ergonomique. L'outil aide en suggérant les mots clés SQL ou les noms de tables par exemple. L'outil dispose d'une zone pour prendre des notes, ce qui est à la fois pratique pour garder trace des requêtes SQL, mais surtout des résultats, et vous en aurez besoin pour les cas compliqués.

          Le premier commit du projet date du début du mois, et le projet est donc assez jeune, tout en étant à la fois prometteur, et déjà très sympa.

          Note: full disclosure, LinuxFr.org utilise du SQL. Cette information est-elle pertinente ici ? Absolument pas, mais des fois il y a des infos inutiles dans les enquêtes. Et merci à @siltaer d'avoir partagé ce message qui m'a fait découvrir ce jeu.

          Commentaires : voir le flux Atom ouvrir dans le navigateur

          • ✇LinuxFr.org : les dépêches
          • Alors ? Vous êtes content de votre imprimante Bambu Lab ?
            Cette dépêche est issue du journal d'Antoine Catton qui passe en revue le marché des imprimantes 3D à l'occasion verrouillage récent de l'accès à l'impression par le fabricant Bambu Lab. Plus de détails dans la suite de la dépêche. lien nᵒ 1 : Journal à l’origine de la dépêchelien nᵒ 2 : Le verrouillage d'accès par Bambu LabIl y a quelques années, je suis tombé dans la marmite de l'impression 3D. Mon employeur nous donne accès à un « makerspace » d'entreprise, en tant qu'avantage en nature. Il

          Alors ? Vous êtes content de votre imprimante Bambu Lab ?

          Cette dépêche est issue du journal d'Antoine Catton qui passe en revue le marché des imprimantes 3D à l'occasion verrouillage récent de l'accès à l'impression par le fabricant Bambu Lab.

          Plus de détails dans la suite de la dépêche.

          Il y a quelques années, je suis tombé dans la marmite de l'impression 3D. Mon employeur nous donne accès à un « makerspace » d'entreprise, en tant qu'avantage en nature. Il y a, entre autres, quelques imprimantes 3D.

          Au bout d'un moment, j'en avais marre de ne pouvoir imprimer qu'au boulot, donc j'ai passé le pas. Ch'suis pas dépensier, ch'suis pas fan de bagnoles, ni de foot, j'achète un nouvel ordi tous les 5-6 ans en moyenne, donc j'ai cassé la banque et me suis fait plaisir en m'achetant une imprimante 3D.

          Je sais pas si tu sais, mais il y a plusieurs types d'imprimantes 3D. Le type le plus connu, c'est le type « FDM » ou « dépôt de fil fondu » dans la langue de Molière. La meilleure description, c'est « un pistolet à colle chaude sur une table traçante. » Aujourd'hui, c'est ce que la majorité des gens imagine quand on dit « imprimante 3D. » Il y a d'autres types d'imprimantes 3D, comme, par exemple, les imprimantes à résine, qui utilisent un écran LCD ultraviolet pour solidifier de la résine au fond d'un bac de résine liquide. Ces imprimantes 3D sont, en général, utilisées pour imprimer des détails plus fins, surtout pour les otakus qui impriment des figurines de Manga et Animés, entre autres. Dans ce journal, je ne parle que d'imprimantes dites « FDM », c'est-à-dire, « l'imprimante 3D normale, » comme dirait François Hollande.

          Schéma d'une imprimante avec dépôt de fil fondu

          Je sais pas si tu sais, mais, en gros, y a cinq « marques » principales d'imprimantes 3D pour les « prosumer », comme disent les Américains qui ont la classe. (En françois on pourrait traduire ça par « utilisateur quasi-pro », j'ai aussi vu la traduction « prosommateur », mouais…)

          Dans l'ordre de ce que j'estime la plus grosse part de marché à la petite:

          • Bambu Lab : un constructeur de Shenzhen, en Chine, j'en parle plus tard dans ce journal.
          • Creality : un autre constructeur de Shenzhen, avec les prix parmi les plus bas du marché, pour une qualité médiocre.
          • Prusa : un constructeur tchèque, j'en parle plus tard dans ce journal.
          • Anycubic : un troisième constructeur de Shenzhen, avec les prix et la qualité qui rivalisent avec Creality.
          • Voron : c'est pas vraiment une marque, mais plus une gamme d'imprimantes conçue par des ingénieurs sur leur temps libre. Ils collaborent et publient les plans sur Internet, le tout sous licence libre. Si tu veux une imprimante de cette marque, il faut commander les pièces individuellement sur Amazon, Alibaba & Cie. Ya aussi des entreprises qui vendent des kits à assembler, comme chez Ikea, si tu veux pas trop t'embêter. La qualité des kits est… variable, on va dire.

          Si t'es comme moi, et que tu traînais dans les salons Linux et les conférences de logiciels libres ya 10-15 ans, je sais pas si tu te rappelles, y'avait toujours le geek du coin qui voulait se la raconter. Le mec ramenait son imprimante 3D pour la montrer, comme d'autres montrent leur Porsche dans les salons auto. C'était toujours une imprimante avec un châssis en contreplaqué, découpé au laser, et avec « Ultimaker » ou « Makerbot » écrit dessus, brûlé au laser. Tu t'souviens ? Eh bien, ces marques ont fusionné, maintenant, ils ne vendent que des imprimantes 3D professionnelles à plus de 5 000 €.

          Photo d'une imprimante Ultimaker

          Bref, pour en revenir à nos marques, je sais pas si t'as remarqué, mais la plupart sont de Shenzhen. C'est pas une coïncidence : Shenzhen, c'est La Mecque du composant électronique. Des servomoteurs ? Des circuits imprimés ? Tu trouves ça sur le marché local du coin pour faire du prototypage. Et, une fois que je veux fabriquer, ya 100 usines qui sont prêtes à mettre en production ton projet. Voilà pourquoi il est bien normal que ce soit plus facile pour un constructeur d'imprimante 3D de faire tourner une entreprise sur place, quand ses fournisseurs sont à 30 min de trajet.

          En dehors de Voron, y'a un constructeur qui sort du lot : Prusa. Alors, je suis partial, je suis fan de ce constructeur. Ils étaient parmi les premiers, après Ultimaker et Makerbot, à vendre des imprimantes 3D directement aux bidouilleurs en tout genre. Au début, c'était un mec dans son garage qui achetait des pièces détachées en gros, et les mettait en détail dans des kits qu'il revendait. C'était l'esprit RepRap. Depuis, ils ont grossi et utilisent leurs propres imprimantes pour imprimer les pièces en plastique des imprimantes qu'ils vendent. Beaucoup de leurs composants, surtout électroniques, viennent de Chine, mais ils disent qu'ils essaient de faire marcher au max des fabricants européens.

          Au fil des années 2010-2020, Prusa est devenu la référence de l'imprimante quasi-pro de qualité. Pendant cette période, Prusa a fait évoluer son imprimante petit à petit. Certaines pièces peuvent être imprimées avec l'imprimante pour que les utilisateurs puissent profiter des mêmes améliorations que les nouvelles imprimantes vendues. Une fois tous les 2 ou 3 ans, ils sortent une nouvelle version majeure de leur imprimante et vendent des kits à bas coût. Ça permet aux anciens clients de pouvoir moderniser leur imprimante. C'est l'esprit bidouille et réparabilité.

          Petit aparté : pour imprimer en 3D, il te faut un modèle 3D, ça va de soi. Mais, il te faut aussi un « slicer », en bon français, un « logiciel de découpage en tranches ». Ce logiciel convertit le modèle 3D en instructions physiques pour l'imprimante 3D : « va 2cm à droite, 5cm vers l'avant, etc. » On appelle ça du découpage en tranche, parce que ces instructions physiques permettent d'imprimer les couches successives de plastique.

          J'en parle, parce que ce qui a contribué significativement à l'ascension de Prusa comme référence pour l'impression, c'est son slicer. Ils ont très rapidement forké un logiciel libre sous AGPL : Slic3r. Ils l'ont amélioré grandement pour que les utilisateurs puissent profiter de leur imprimante au mieux.

          Très rapidement, Prusa Slicer est devenu la référence du logiciel de découpage en tranche, au côté de Ultimaker Cura.

          Mais, soudain, en 2020, un nouveau constructeur apparaît ! Bambu Lab.

          C'est le chamboulement ! Le nouveau constructeur vend une imprimante avec une qualité d'impression aussi bonne que Prusa, mais avec une vitesse supérieure incomparable, pour 900 € au lieu de 1 500 € chez Prusa. À ce prix-là, il y a aussi plus d'accessoires que Prusa. La Bambu Lab P1S vient avec un boîtier et un filtre à air d'origine (Le boîtier chez Prusa est dans les 300 € de plus et le filtre à air un peu en dessous de 100 € chez Prusa).

          C'est un carnage : le monde des « makers » se retourne contre Prusa et ne fait l'éloge que de Bambu Lab. Prusa est comparé à Blackberry et Nokia qui ont loupé le tournant du smartphone. Prusa est critiqué à chaque tournant.

          Pendant ce temps-là, les libristes et les makers originaux se sentent mal. Bambu Lab est l'iPhone de l'imprimante 3D. L'imprimante est fabriquée en grosses séries, avec du plastique moulé par injection.

          L'entreprise a forké Prusa Slicer, et a renommé le tout « Bambu Studio ». C'est dans leur droit, le logiciel est libre. Ils ont préservé la licence, et précisent bien dans leur README que c'est une reprise de Prusa Slicer. Jusque-là, tout va bien. Il n'y a pas réellement de fonctionnalité supplémentaire par rapport à Prusa Slicer, mais ils ont implémenté la compensation de la résonance. C'est compréhensible, c'est ça qui leur permet d'imprimer aussi vite, et à l'époque Prusa Slicer n'avait pas cette fonctionnalité.

          Le problème, c'est la partie impression… Bambu Lab promeut « le cloud. » Pour imprimer, il faut envoyer le modèle 3D sur des serveurs avec logiciel proprio, en dehors de l'Europe. L'imprimante se connecte aux mêmes serveurs et reçoit les instructions pour l'impression. Les gens s'en foutent, ce qui importe, c'est que ça marche et que l'interface utilisateur soit facile et harmonieuse ! On peut même imprimer depuis son téléphone, dis-donc !

          Tu dois te demander, pourquoi je te raconte tout ça ? Bein voilà… Il y a quelques jours, Bambu Lab a fait une mise à jour du logiciel interne de ses imprimantes. Ils prétendent que, pour des raisons de sécurité, ils ont dû verrouiller l'accès à l'impression. Maintenant, si tu veux imprimer avec ta Bambu Lab, de ce que j'ai compris, tu ne peux passer que par l'appli proprio « Bambu Connect » qui utilise des clés de chiffrement privées. Si j'étais dans les théories du complot, je dirais que ça sent la fermeture à distance d'un produit acheté.

          C'est le fameux Bait-and-Switch, comme Gandi. Bientôt, je vais être connu sur DLFP comme la moule qui dénonce les tromperies sur marchandises.

          Bref, j'ai acheté une Prusa, donc je m'en contrefiche. Mais, y'a deux ans, les gens me prenaient pour un loser qui avait encore un BlackBerry en 2010. Maintenant, je biche.

          Si t'es affecté, il y a des guides pour contourner les mesures techniques de « protection ».

          Sinon, si t'as pas d'imprimante, mais après cette dépêche tu réfléchis à t'en acheter une, tu dois te demander : j'achète quoi ?

          Avertissement : je suis un fanboy de Prusa, donc je suis pas impartial. Fais-toi ta propre idée. Je n'ai aucun lien financier direct ou indirect avec ces constructeurs, à part avoir été acheteur d'une Prusa MK4, qui a été modernisée en MK4S depuis.

          • Si tu fais attention à tes dépenses et que tu veux pas trop acheter de la crotte, regarde du côté de la Creality Ender-3. C'est principalement proprio, c'est pas la meilleure qualité, mais une bonne affaire pour le prix. Il y a une grosse communauté qui propose des améliorations avec les moyens du bord.
          • Si tu veux pas t'embêter, et que t'es prêt à mettre de l'argent, et que tu veux quelque chose à 80% ouvert et de bonne qualité, je conseillerai la Prusa MK4S pré-assemblée, avec l'option boîtier. Achète l'option filtre plus tard si besoin. Je sais que la Prusa Core One a été annoncée, mais personne ne l'a encore testée. Moi, j'attendrais le résultat des tests de consommateurs avant de juger.
          • Si t'es prêt à mettre plus d'argent, un ou deux week-ends d'assemblage, que tu veux quelque chose de presque totalement ouvert et de bonne qualité, il y a la Voron 2.4. Il va falloir que tu trouves un kit de qualité si tu veux pas acheter les pièces individuellement. Si tu veux pas trop te prendre la tête, regarde la Rat Rig V-Core 4 en kit à assembler sois-même. C'est une boite portugaise, c'est pas une Voron 2.4, mais c'est similaire et le kit arrive avec tout (Contrairement à la plupart de kits de Voron qui te demandent d'imprimer les pièces en plastique toi-même).

          En tout cas, si t'es libriste, j'espère que je t'ai empêché d'acheter une Bambu Lab.

          J'ai mis aucun lien vers les constructeurs pour éviter la pub, mais votre moteur de recherche vous mènera au bon site.

          Note: même si je ne suis pas journaliste, et que le droit de réponse ne s'applique pas, Bambu Lab a communiqué sur l'affaire. Je met un lien pour être fair-play.

          Commentaires : voir le flux Atom ouvrir dans le navigateur

          • ✇LinuxFr.org : les dépêches
          • La virtualisation pour les nuls et autres enjeux autour des datacenters
            Depuis quelques années la virtualisation sous toutes ses formes est devenue l'alpha et l'oméga de l'informatique, elle a révolutionné en quelques années la manière d'administrer les serveurs et de gérer les données. Cette dépêche est un essai de vulgarisation sur la virtualisation pour en exposer ses grands principes techniques, ses avantages et inconvénients et ses enjeux sous-jacents. lien nᵒ 1 : VirtualisationSommaire Commençons par quelques définitions C'est quoi la virtualisation ? C'est

          La virtualisation pour les nuls et autres enjeux autour des datacenters

          Depuis quelques années la virtualisation sous toutes ses formes est devenue l'alpha et l'oméga de l'informatique, elle a révolutionné en quelques années la manière d'administrer les serveurs et de gérer les données. Cette dépêche est un essai de vulgarisation sur la virtualisation pour en exposer ses grands principes techniques, ses avantages et inconvénients et ses enjeux sous-jacents.

          Sommaire

          Commençons par quelques définitions

          C'est quoi la virtualisation ?

          Pour pouvoir illustrer concrètement ce qu'est la virtualisation, à une époque pas si lointaine que ça, dans le monde professionnel on retrouvait des serveurs physiques dédiés, par exemple un serveur pour gérer les mails, un autre pour le serveur web et un dernier comme serveur de fichiers. Chacun des serveurs pouvant tourner sur des systèmes d'exploitation (OS) différents. Dans notre exemple il en résulte qu'il faut maintenir et administrer trois machines différentes qui vont prendre de la place et consommer de l'électricité, sans une utilisation optimale de chacune des machines, si le serveur web par exemple a besoin momentanément d'un accroissement de puissance et de mémoire, il ne pourra pas bénéficier des ressources des autres serveurs physiques.
          Avec la virtualisation, sur une seule machine physique on va faire tourner plusieurs environnements de serveurs distincts en même temps, sans avoir à redémarrer, ils vont se partager les ressources matérielles de la machine physique de manière plus optimale et efficace en réduisant les coûts d'administration. On retrouvera donc sur une seule machine physique, nos serveurs de courriel, web et de fichiers, chacun dans un environnement distinct fonctionnant de manière autonome et isolée.

          C'est quoi une machine virtuelle ?

          On appellera chaque environnement distinct machine virtuelle, elle s'exécute sur une machine physique avec son propre système d'exploitation, ses applications et avec les ressources de la machine physique qu'on veut bien lui allouer (mémoire, puissance de traitement, stockage). On dit aussi que la machine physique est appelée machine hôte et les machines virtuelles sont des machines invitées. Une machine hôte peut faire tourner plusieurs machines invitées.
          Une machine virtuelle fonctionne comme n'importe quel poste informatique avec son OS qu'on peut mettre à jour, ses applications, ses paramètres système et on pourra à partir de la machine hôte accéder à toutes les machines virtuelles.

          C'est quoi un hyperviseur ?

          Pour que les machines virtuelles puissent s'exécuter indépendamment et utiliser les ressources de la machine hôte simultanément sans qu'elles interfèrent entre elles, il est nécessaire de rajouter une couche logicielle qui va gérer tout ça, c'est ce qu'on appelle un hyperviseur.
          Il existe deux types d'hyperviseur:

          • L'hyperviseur de type 1, ou bien encore hyperviseur de matériel nu (bare metal en anglais) est en interface direct avec l'ordinateur physique, cela sous entend que votre machine soit compatible (Intel VT pour les processeurs Intel et AMD-V pour les processeurs AMD). Dans le monde libre, proxmox est certainement l'hyperviseur de type 1 le plus connu.
          • L'hyperviseur de type 2 ou bien encore hyperviseur de matériel invité (host metal en anglais) fonctionne dans un système d'exploitation déjà préinstallé, c'est le cas par exemple de VirtualBox qui permet de faire tourner une instance de windows dans un environnement Linux.

          Un hyperviseur de type 1 est une couche logicielle très légère et offre de meilleures performances et est la solution privilégiée pour des serveurs en production, l'hyperviseur de type 2 est plutôt une solution destinée aux utilisateurs qui souhaitent tester d'autres systèmes d'exploitation ou faire tourner un logiciel sur un OS particulier sur un poste de travail classique. Mais rien ne vous empêche de faire tourner plusieurs machines virtuelles sur un hyperviseur de type 2 qui pourront communiquer entre elles et fonctionner comme un hyperviseur de type 1, à la différence qu'elles seront moins performantes.
          Par abus de langage, le terme d'hyperviseur fait référence plutôt à l'hyperviseur de type 1.

          C'est quoi les avantages de la virtualisation ?

          Une administration centralisée et facilitée

          L'hyperviseur fournit des outils de gestion des machines virtuelles qui simplifient sensiblement le travail d'administration, comme les outils de déploiement à partir de modèles de machines virtuelles, les outils de gestion de charge, de sauvegarde et de restauration de machines virtuelles.

          La disponibilité et la robustesse aux pannes

          Un autre avantage de la virtualisation est la fonctionnalité de migration à chaud, elle permet de déplacer une machine virtuelle d'une machine physique à une autre sans qu'il soit nécessaire de l'arrêter. Si un serveur physique présente des défaillances, les machines virtuelles sont automatiquement déplacées sur un autre hôte physique.
          Alors bien sûr si le serveur physique tombe en rade sans crier gare, la migration à chaud peut ne pas être opérante, dans ce cas on peut très bien envisager la mise en place d'une machine physique redondante sur laquelle les machines virtuelles sont répliquées et qui prendra le relais automatiquement si le serveur primaire tombe.

          L'amélioration des performances

          La migration à chaud évoquée plus haut a un autre avantage si une machine virtuelle est sursollicitée et nécessite de la puissance de traitement et de la mémoire, elle pourra être déplacée automatiquement sur un autre serveur moins sollicité à ce moment-là.

          La sécurité

          La virtualisation isole les services chacun dans leur machine virtuelle, en cas de corruption d'une machine virtuelle par cyberattaque, l'impact est nul pour les autres services et la restauration d'une machine virtuelle est autrement plus rapide et plus simple qu'avec une machine physique.

          La disparition des machines physiques

          Le stade ultime de la virtualisation est de déléguer à un prestataire la gestion des machines physiques qui se retrouve quelque part dans un datacentre. On s'abstrait totalement du matériel physique et des contraintes qui vont avec et on gère seulement nos machines virtuelles à distance, c'est totalement transparent pour les utilisateurs qui accèdent à leurs services via internet ou sur un réseau privé. On parle aussi d'infrastructure virtuelle.

          Il existe d'autres types de virtualisation ?

          On a surtout évoqué jusqu'à présent la virtualisation des serveurs, mais il existe également d'autres types de virtualisation comme:

          La virtualisation du stockage

          Cela consiste en la création d'un espace virtuel de stockage à partir d'installations physiques de stockage bien réelles comme les serveurs de fichiers, NAS ou SAN qu'ils soient locaux ou distants. Cela permet de mettre en commun toutes ces installations et de la gérer à partir d'un outil unique de gestion pour effectuer toutes les opérations de sauvegarde, réplication, d'archivage et de restauration.

          La virtualisation des réseaux

          Un réseau est composé d'un tas d'éléments actifs comme les commutateurs, les routeurs et autres pare-feux, de type et de marques différentes. Là aussi on va créer un réseau virtuel qui combine l'ensemble de ces éléments actifs physiques pour pouvoir centraliser leur gestion sans avoir à y accéder physiquement. La virtualisation des réseaux permettra également d'améliorer les performances du réseau avec des analyseurs de trafic qui pourront équilibrer la charge ou favoriser certains flux.

          La virtualisation des données

          Les données sont issues de diverses sources, ont chacune leur format et sont stockées sur différents supports locaux ou distants. La virtualisation des données est une couche logicielle qui va gérer l'ensemble de ces données de manière centralisée et les mettre à disposition des utilisateurs et des applications dans le format désiré.

          La virtualisation d'application

          La virtualisation d'application permet de séparer l'application de son système d'exploitation hôte et de fonctionner sur un poste utilisateur sans qu'elle soit installée. Dans la pratique l'application est installée sur un serveur centralisé et peut tourner sur un poste utilisateur du réseau comme si elle était installée localement, quand bien même l'OS du poste utilisateur n'est pas celui pour lequel l'application a été conçue.

          La virtualisation des postes de travail

          La virtualisation permet de virtualiser des serveurs mais pas seulement, on peut virtualiser également des postes de travail pour en faciliter la gestion qui seront accessibles aux utilisateurs du réseau via un client léger bien moins cher qu'un PC client classique.

          Autres concepts autour de la virtualisation

          C'est quoi une infrastructure convergée et hyperconvergée ?

          Une infrastructure convergée regroupe plusieurs composants informatiques traditionnels et bien physiques comme les serveurs de calcul, les dispositifs de stockage ou les éléments actifs réseau pour en assurer la gestion dans un tout cohérent. Cela simplifie la gestion de l'administration et ça optimise les ressources matérielles et logicielles. On dit que c'est une approche modulaire basée sur le matériel physique.
          L'hyperconvergence a une approche plutôt logicielle, elle intègre une couche logicielle qui va combiner les ressources de calcul, de stockage et de réseau dans ce qu'on appelle un nœud. Les nœuds sont interconnectés et combinés entre eux pour former des pools au sein d'un cluster, on retrouve ainsi un pool de stockage ou un pool de calcul, si un nœud venait à défaillir ça n'aurait pas de conséquence pour les autres nœuds et le fonctionnement du pool et du cluster.

          OK, mais une fois que tout ça est posé, quelle est la différence entre les deux ?
          L'infrastructure convergée a une approche basée sur le matériel physique, c'est à dire qu'un serveur physique peut être séparé du reste du dispositif et toujours fonctionner comme un serveur indépendant alors que ce n'est pas possible avec l'infrastructure hyperconvergée où les noeuds sont nécessairement interconnectés entre eux pour que le cluster puisse fonctionner correctement. Par ailleurs l'infrastructure convergée intègre de base d'autres fonctionnalités comme la sauvegarde, la réplication, la déduplication des données, la compression, l'optimisation du réseau, etc.

          C'est quoi un cluster haute disponibilité ?

          On a bien vu que finalement qu'elle soit dans vos locaux ou chez un prestataire de service, la machine physique reste le maillon faible du dispositif. Pour améliorer encore plus la disponibilité et la robustesse, on va dupliquer les machines physiques et si possible en les dispatchant dans des locaux et sites différents. Le tout étant géré comme un seul système. La virtualisation du stockage prend alors toute son importance, pour éviter de se rendre dépendant d'un serveur physique de données.

          C'est quoi le cloud computing ?

          On appelle cloud computing le fait de confier à un tiers sur internet la gestion de services informatiques (applications, stockage, outils de gestion, …) mais aussi le fait d'utiliser des services fournis par un prestataire via internet. Le cloud computing repose largement sur la virtualisation, on peut dire que le cloud computing est un environnement alors que la virtualisation est une technologique. En matière de cloud computing, il en existe de différentes sortes :

          • Infrastructure as a service (IaaS) ou infrastructure en tant que service : L'IaaS offre une infrastructure informatique complète (serveurs, stockage, réseau, …) sur un réseau privé (ressources en accès limité), public (ressources en accès libre) ou hybride (qui mélange les deux).
          • Platform as a service (PaaS) ou plate-forme en tant que service : Le PaaS c'est grosso modo la même chose que l'IaaS sauf qu'en plus on bénéficie d'outils supplémentaires pour pouvoir développer des applications qu'on retrouvera sur le cloud et tous un tas de services supplémentaires, gestion de base de données, aide à la décision, etc.
          • Le Software as a service (SaaS) ou logiciel en tant que service : Le SaaS est une offre logicielle complète qu'on retrouvera sur internet, c'est typiquement des offres comme Microsoft Office 365 ou Google Workspace, dans le monde opensource, on peut dire que certains prestataires recensés par les CHATONS se rapprochent d'une solution SaaS.

          NdM: il est question ici de cloud computing sur un cloud public, une infrastructure gérée par un hébergeur tiers. Il est aussi possible de faire du cloud computing privé, interne, dans une grosse structure qui en a la capacité, ce qui revient à déléguer l'hébergement à un tiers (des collègues dans ce cas). Et on peut combiner les deux pour faire du cloud hybride. Le cloud computing implique aussi la création de ressources en libre-service, de la facturation à l'usage et de la mutualisation.

          Les enjeux

          Enjeu environnemental

          L'adoption quasi généralisée de solutions autour de la virtualisation dans le monde professionnel a conduit à la disparition progressive des serveurs locaux d'entreprise au profit d'un développement effréné des datacenters de par le monde. Or un datacenter est constitué de machines bien physiques tournant 24h24 7j/7 avec tout un dispositif lui aussi bien physique pour assurer leur fonctionnement optimal, leur sécurisation et la robustesse aux pannes, il s'agit notamment de :

          • La climatisation et le traitement d’air pour maintenir des conditions satisfaisantes de température et hygrométrie avec toute un système de circulation et de refroidissement d'air
          • La distribution de l’électricité avec un dispositif de sécurisation en cas de coupure d'alimentation, souvent basé sur tout un ensemble d'onduleurs et appuyé par groupes électrogènes
          • la protection physique de l'installation avec contrôle d'accès, vidéosurveillance et autres systèmes anti intrusion

          Le tout nécessite une consommation électrique massive et une forte consommation en eau. Si l'on traduit cela en équivalent d'émission de gaz de serre (GES), d'après une étude de l'ADEME les datacenters ont déjà atteint le même niveau d'émission que le transport aérien à l'échelle mondiale.
          Il se trouve que le destin des datacenters est maintenant également étroitement lié à celui de l'IA, même si dans ce domaine on envisage plutôt des datacenters dédiés, or les besoins générés par l'IA dopent l'expansion globale des datacenters dans le monde. La demande de puissance de calcul de l'IA est exponentielle et double tous les 3,4 mois selon OpenAI. Selon une étude Gartner citée par le Monde Informatique, rien que les besoins liés à l'IA feront exploser la demande énergétique des datacenters au point que les fournisseurs d'énergie ne pourront y répondre dès 2027 !

          Dans ce contexte il n'est pas étonnant donc que les grands acteurs du secteur poussent au développement des centrales nucléaires qui leur permettra par la même occasion de verdir leur image. Mais ces acteurs ne sont pas à une contradiction près, on peut s'étonner du développement dans certaines régions qui de prime abord ne se prêtent pas particulièrement à leur installation contrairement aux pays nordiques. Le projet d'installation de Meta dans une région aride d'Espagne où chaque goutte d'eau compte, en est une triste illustration. Les températures régionales élevées décupleront ses besoins en électricité et en eau pour les circuits de refroidissement alors que la région souffre de sécheresse chronique. On peut déplorer que tout cela ne pourrait se faire sans le soutien des gouvernements et des élus locaux qui ne trouvent rien à redire.

          Enjeu de résilience

          Le marché actuel est dominé par trois acteurs qui représentent à eux trois plus de 60% du marché mondial il s'agit dans l'ordre d'AWS (Amazon), d'Azure (Microsoft) et de Google Cloud Platform, on parle d'eux comme des hyperscalers car ils fournissent des services à l'échelle mondiale à grande échelle. Cette hyperconcentration des acteurs et des solutions techniques fragilise l'économie mondiale en la rendant davantage sensible et moins résiliente aux pannes, la défaillance d'un simple outil de sécurité a ainsi entraîné en cascade une panne informatique mondiale en juillet dernier avec des conséquences graves comme l'arrêt partiel du contrôle aérien, de centres d'appels d'urgence ou de services hospitaliers. Plus modestement l'incendie subi par OVH en 2021 a impacté des milliers d'entreprise et services publics, toutes les données contenues sur les serveurs sont perdues, puisqu'OVH a commis l'erreur de stocker au même endroit les données et les sauvegardes. NdM: historique de pannes GCP, AWS ou Azure
          Cette hyperconcentration fait planer également des risques en termes de cybersécurité, la corruption d'un élément du système et sa prise de contrôle par un hacker aura vite des conséquences majeures.

          Enjeu de souveraineté

          Il faut savoir que les données gérées par un datacenter sont soumises à la réglementation propre au pays où il est installé. Les autorités aux États-Unis, au nom du Patriot Act peuvent donc ainsi accéder aux données stockées sur leur territoire. Les datacenters souverains sont donc un enjeu majeur pour certains pays pour garantir que les données seront protégées par les lois nationales, sans ingérence étrangère possible.

          En France notamment, 71% des entreprises se reposent sur des solutions américaines dont des acteurs étatiques. Une affaire illustre à elle seule cet état de fait, la solution Azure de Microsoft a été ainsi choisi pour héberger l'ensemble des données de santé de 4 établissements hospitaliers (et non de l'ensemble des Français) à des fins de recherche dans un entrepôt de données de santé dénommé EMC2. Sauf qu'en l'espèce Microsoft a répondu à un appel d'offre en bonne et due forme, que la CNIL a donné son autorisation et que les différents recours à ce stade ont tous échoué. Néanmoins voici ci-dessous texto la conclusion du rapport de la CNIL en 2023 :

          (début de citation)

          • qu’aucun prestataire potentiel ne propose d’offres d’hébergement répondant aux exigences techniques et fonctionnelles du GIP PDS (Note de l'auteur : groupement d’intérêt public « Plateforme de données de santé", appelé aussi Health Data Hub) pour la mise en œuvre du projet EMC2 dans un délai compatible avec les impératifs ce dernier ;
          • que le développement d’un démonstrateur " cloud de confiance ", respectant les conditions de la circulaire précitée et permettant à terme d’héberger des projets de cette nature, et notamment la plateforme du GIP PDS, devrait se poursuivre sur les prochaines années ;
          • que la construction d’une plateforme d’hébergement spécifique pour le projet EMC2 pourrait retarder la migration de la solution d’hébergement du GIP PDS pour l’ensemble de ses missions ;
          • qu’en attendant cette migration, le projet EMC2 soit mené sur la solution technique actuelle du GIP PDS.

          À la lumière de ces conclusions, la CNIL déplore qu’aucun prestataire susceptible de répondre actuellement aux besoins exprimés par le GIP PDS ne protège les données contre l’application de lois extraterritoriales de pays tiers.
          De manière générale, elle regrette que la stratégie mise en place pour favoriser l’accès des chercheurs aux données de santé n’ait pas fourni l’occasion de stimuler une offre européenne à même de répondre à ce besoin. Le choix initial du GIP PDS, dès sa fondation, de recourir au cloud a conduit à privilégier des offres d’acteurs étasuniens dont il apparaît désormais difficile de se détacher à court terme malgré l’émergence progressive de fournisseurs souverains. Le projet EMC2 aurait pu être retenu par le GIP PDS pour préfigurer la solution souveraine vers laquelle il doit migrer.

          (fin de citation)

          À la lumière de cette conclusion, on peut comprendre que la CNIL s'est sentie contrainte et forcée de répondre favorablement pour ne pas faire capoter ce projet en espérant que cette solution ne soit que transitoire et qu'elle pourra basculer sur une solution souveraine dans quelques années.
          Autre affaire d'actualité, le contrat entre EDF et AWS pour le stockage de certaines informations sensibles de maintenance du parc nucléaire français, le Canard enchaîné vient de révéler récemment que le contrat battait de l'aile car Amazon refuse d'inscrire noir sur blanc dans le contrat que les données d'EDF seront stockées en France (autre article).
          Aussi la France cherche à développer son "cloud souverain" pour ne plus être dépendant des géants américains mais peine à avancer sur le sujet faute de barrières réglementaires et juridiques, de réticences des élus et des populations sur les territoires pouvant accueillir des datacenters et d'une certaine frilosité des banques et acteurs technologiques.

          En guise de réponse aux enjeux

          Réponse à l'enjeu environnemental

          Pour ne pas courir à la catastrophe annoncée, la mise en place de technologies plus efficaces et économes en énergie est un enjeu majeur, parmi les axes d'innovation on peut citer:

          • l'utilisation d'énergie renouvelable
          • le refroidissement des datacenters basé sur des technologies peu gourmandes en eau,
          • la réutilisation de l'énergie dissipée par les datacenters.

          Réponse à l'enjeu de résilience

          Des normes et des certifications se sont mises en place qu'elles soient internationales, européennes ou nationales. On peut citer :

          • TIA 942 qui couvre différents domaines comme la disponibilité, la sécurité, l'efficacité énergétique, le refroidissement, la redondance et la gestion de l'espace;
          • ANSI/BICSI-002 qui définit des standards de conception et de pose des systèmes de câblage, d'électricité, dissipation de chaleur, refroidissement, etc.
          • ISO 27001 qui couvre la gestion de la sécurité de la donnée;
          • ISO 22237 qui couvre l'installation et les infrastructures des datacenters;
          • le référentiel de sécurisation des services cloud SecNumCloud élaboré par l’ANSSI;
          • la certification d'Uptime Institute avec sa classification du niveau de sécurité des datacenters de Tier I à Tier IV.

          En France, France Datacenter est une organisation professionnelle qui fédère les entreprises qui conçoivent, construisent et exploitent les datacenters. Elle publie également des guides à destination de ses adhérents qui font référence, on peut citer notamment "le livre blanc sur la sécurité incendie" ou "l'humain et la sécurité du datacenter".

          D'un point de vue réglementaire, on peut citer :

          • le règlement général sur la protection des données RGPD;
          • La directive européenne relative à DEE l’efficacité énergétique DEE;
          • La directive européenne relative à la sécurité des réseaux et de l’information, dite NIS 2 pour Network and Information System Security.

          Le respect de ces normes, certification et a fortiori de la réglementation sont une garantie que les datacenters sont construits suivant les règles de l'art avec le niveau de qualité, de sécurité et de fiabilité attendu. A ce propos pour en revenir à l'incident OVH, les procédures judiciaires qui en ont découlé et qui ont conduit à la condamnation d'OVH ont mis en évidence que la société qui se targuait d'être certifié ISO 27001 n'a pas respecté la norme pour ne pas avoir prévu une copie de sauvegarde sur un site distant.

          Réponse à l'enjeu de souveraineté

          Le respect du RGPD et de la certification SecNumCloud sont une première réponse à la menace des lois extraterritoriales sur la confidentialité des données, en parallèle le premier ministre de l'époque a diffusé en 2021 une circulaire relative à la doctrine d'utilisation de l'informatique en nuage par l'État qui a été actualisé en 2023. Cette dernière "exige (…) en cas de recours à une offre commerciale d'informatique en nuage, l'hébergement des données d'une sensibilité particulière par des solutions disposant de la qualification SecNumCloud (…) et immunisées contre toute réglementation extracommunautaire".
          Il faut par ailleurs créer l'environnement pour que des acteurs locaux puissent se développer et former une alternative crédible aux hyperscalers. L'émergence d'acteurs alternatifs de proximité est donc un enjeu que le marché seul ne suffit pas à faire percer, il faut une volonté politique, une stratégie et une vision à long terme, des financements, une adaptation de la réglementation à l'échelle européenne et nationale.
          À ce sujet le précédent gouvernement avait concocté une loi de simplification de la vie économique destinée à faciliter l'installation de datacenters en France en les qualifiant de projets d'intérêt national majeur (PINM) pour qu'ils puissent bénéficier de mesures dérogatoires, de procédures accélérées tout en contournant le pouvoir des élus locaux puisque ça sera l’État qui signera les permis de construire. Avec cette loi la métropole de Rennes n'aurait sans doute pas pu refuser l'implantation d'un datacenter de Microsoft s'il avait été jugé d'intérêt national. Aujourd'hui ce projet de loi continue son bonhomme de chemin législatif malgré l'instabilité politique actuelle.
          Cet objectif de développement d'une offre de proximité n'est pas forcément compatible des objectifs environnementaux et de développement durable que la France s'est imposée, mais il faut voir ça comme une opportunité pour innover et ne plus être à la traîne des États-Unis dans ces domaines technologiques.

          En guise de conclusion

          D'une simple présentation technique autour de la virtualisation, on en arrive en tirant la pelote à des considérations à fort enjeu sur la gestion et la confidentialité des données que bien des utilisateurs de cloud n'imaginent pas, ni même ne considèrent à sa juste importance. Pourtant il suffirait qu'ils en prennent conscience pour orienter leur choix vers des solutions respectueuses qui peinent encore aujourd'hui à émerger malgré les vœux pieux de l’État qui n'est pas toujours exemplaire dans le domaine.

          Pour aller plus loin

          Quelques pages de vulgarisation

          Une sélection de sites sur les enjeux et le futur autour de la virtualisation et les datacenters

          Sites divers

          Commentaires : voir le flux Atom ouvrir dans le navigateur

          • ✇LinuxFr.org : les dépêches
          • L’exploration et le calcul de l’espace : l’horlogère, l’astronome et l’astrophysicienne
            En octobre 2024, on était allé à la conquête de l’espace, cette fois-ci, on va se concentrer sur l’exploration de l’espace vu de la Terre. Pour cela, on se penchera sur la vie et les travaux de trois femmes : Nicole-Reine Lepaute qui, au siècle des Lumières, a calculé la date du retour de la comète de Halley, Janine Connes qui prendra la direction du premier centre de calcul en France et Françoise Combes qui vient d’être élue présidente de l’Académie des sciences. C’est aussi l’occasion de voir

          L’exploration et le calcul de l’espace : l’horlogère, l’astronome et l’astrophysicienne

          En octobre 2024, on était allé à la conquête de l’espace, cette fois-ci, on va se concentrer sur l’exploration de l’espace vu de la Terre. Pour cela, on se penchera sur la vie et les travaux de trois femmes : Nicole-Reine Lepaute qui, au siècle des Lumières, a calculé la date du retour de la comète de Halley, Janine Connes qui prendra la direction du premier centre de calcul en France et Françoise Combes qui vient d’être élue présidente de l’Académie des sciences. C’est aussi l’occasion de voir l’évolution des outils utilisés en astronomie.

          Phases de l’éclipse du soleil du 1er avril 1764
          Illustration des douze phases principales selon les calculs de Nicole-Reine Lepaute

          Sommaire

          Préambule

          Les deux dépêches consacrées à la conquête de l’espace dans le cadre de la journée Ada Lovelace étaient très américano-centrées, et il manquait l’aspect étude et découverte de l’espace qui en précède la conquête. Sans cette connaissance, il n’aurait pas été possible d’envoyer des satellites artificiels, d’aller sur la Lune, sur Mars ou encore de créer des stations spatiales, voire, de concevoir les télescopes Hubble et James Webb. D’où cette dépêche, et le choix de ces trois femmes pour contrebalancer un peu leur américano-centrisme.

          Le choix a été guidé d’une part en tenant compte des informations dont je pouvais disposer, d’autre part de l’actualité : Janine Connes vient de mourir à l’âge de 98 ans et c’est une façon de lui rendre hommage, Françoise Combes vient d’être élue par ses pairs à la présidence de l’Académie des sciences.

          Nicole-Reine Lepaute, l’horlogère

          La vie de Nicole-Reine Lepaute nous est essentiellement connue grâce à l’Encyclopédie des dames de Jérôme Lalande. De fait les biographies que l’on peut trouver sur elle citent les mêmes passages en élucubrant souvent sur les relations qu’elle aurait pu avoir avec l’astronome. Mais comme LinuxFr.org n’est ni un site « people » ni un site de rencontre et que l’autrice de l’article n’aime généralement pas faire comme tout le monde, on vous renverra en fin de dépêche sur ces biographies.

          Nicole-Reine Lepaute en quelques dates (et hauts faits)

          Nicole-Reine Étable naît le 5 janvier 1723 à Paris. Elle n’est pas elle-même horlogère, mais elle épouse l’horloger Jean André Lepaute en 1749. Il deviendra le fournisseur officiel de la cour de Louis XV en 1750. Jean André Lepaute était réputé comme l’un des meilleurs horlogers de son temps. Quand il écrira son Traité d'horlogerie, contenant tout ce qui est nécessaire pour bien connoître et pour régler les pendules et les montres, c’est Nicole-Reine qui calculera la « longueur que doit avoir un Pendule simple pour faire en une heure un nombre de vibrations quelconque, depuis 1 jusqu’à 18000 » (table VI, pages 365 et suivantes du traité). Et on le sait parce qu’elle en est créditée.

          Le couple fait la connaissance de l’astronome Jérôme Lalande en 1754. Elle commencera peu après à travailler avec lui. En 1757, elle calculera les dates du retour de la comète de Halley avec Lalande et Clairaut. Quand, en 1759, Lalande est chargé des éphémérides annuelles de l’Académie royale des sciences : La Connaissance des temps1, elle fera partie de l’équipe qui travaille sur les tables et éphémérides astronomiques.

          En 1761, elle entre à l’Académie royale des sciences et belles lettres de Béziers. C’est, probablement, la première fois qu’une femme entre dans une académie pour ses travaux scientifiques. Elle offre aux académiciens les tables astronomiques pour Béziers qu’elle avait compilées à leur intention. Malheureusement ses travaux sont perdus.

          En 1764, une éclipse est prévue, pour éviter une éventuelle panique, le clergé est invité à informer le peuple du caractère inoffensif de ce phénomène céleste. Nicole-Reine Lepaute calculera les phases de l’éclipse et en dressera une carte. Elle fera publier deux documents :

          Elle meurt, aveugle, le 6 décembre 1783, elle aura passé les trois dernières années de sa vie à s’occuper de son mari loin des mathématiques. Son acte de décès figure sur le site archive.org.

          Elle ne reste pas complètement oubliée. Ainsi, quand une nouvelle édition de la Bibliographie ancienne et moderne ou (en nettement plus long) Histoire, par ordre alphabétique, de la vie publique et privée de tous les hommes qui se sont distingués, par leurs écrits, leurs actions, leurs talens, leurs vertus ou leurs crimes paraît en 1820, elle a sa notice relevée ici par le Journal des dames et de la mode. Signée d’un certain M. Weiss, elle porte cette mention :

          Mme Lepaute, douée de tous les avantages extérieurs, portoit dans la société cette politesse et cette fleur d’esprit, que semblent exclure les études profondes…

          Le numéro du 15 février 1898 du bi-mensuel La Femme (page 28) dresse un portrait de Nicole-Reine Lepaute en ajoutant :

          Telle fut la vie pure et simple de celle que Clairaut appelait « la savante calculatrice ». Plus grande lorsqu’elle partageait l’internement de son mari dans une maison de santé que lorsqu’elle compulsait les tables astronomiques.

          Et en concluant plus généralement :

          « L’examen attentif des faits, des biographies. l’étude de la vérité historique devraient rassurer les esprits chagrins. La famille n’est pas en péril parce que les filles s’adonnent aux mêmes études que les garçons et osent aspirer à des carrières libérales et scientifiques. » Le revenu qu’une jeune fille peut se procurer courageusement, dignement par son travail, à l’aide des diplômes qu’elle a remportés dans les concours par son énergie, sont un appoint pour couvrir les dépenses d’un ménage futur et assurer l’éducation libérale des enfants à venir, qui facilite l’établissement des jeunes époux. Un diplôme, c’est une dot dont la fiancée qui l’apporte dans une corbeille de mariage peut être justement fière, et, loin d’être un obstacle à fonder une famille, c’est une valeur qui favorise le mariage.

          Les outils des astronomes au XVIIIe siècle

          Il n’est pas possible de savoir ce que Nicole-Reine Lepaute utilisait pour ses calculs. Il est en revanche envisageable de dresser une liste des outils dont les astronomes disposaient pour explorer l’espace et calculer les mouvements des astres.

          Pour observer et cataloguer les astres, les astronomes du 18e siècle disposaient des lunettes d’astronomie. La paternité de leur invention est souvent attribuée à Galilée qui a construit sa première lunette en 1609. On trouve une première description de ce type d’instrument déjà en 1538 dans l’Homocentrica (texte-image en latin) de Jérôme Fracastor2. En 1608, l’opticien hollandais Hans Lippershey dépose un brevet pour des lunettes astronomiques qui lui sera refusé, car :

          il était notoire que déjà différentes personnes avaient eu connaissance de l’invention. L’optique par Fulgence Marion (texte-image) (source Gallica BnF).

          On doit l’invention du télescope à Isaac Newton en 1668. Son idée était d’ajouter un miroir : il fallait pour augmenter la puissance des lunettes astronomiques (et autres longues-vues et jumelles d’ailleurs) augmenter l’épaisseur de la lentille en perdant en précision. L’ajout d’un miroir concave donne une meilleure qualité d’image et permet d’augmenter la taille des télescopes. Est-ce que Lalande ou Nicole-Reine Lepaute pouvaient disposer d’un télescope ? Dans l’Encyclopédie des dames, Lalande mentionne un « un télescope de trente deux pouces qui coûte environ dix Louis » qui suffit pour « voir ce qu’il y a de plus singulier dans le ciel ».

          Concernant les outils de calcul : il ne fait aucun doute qu’elle a pu et dû utiliser les différentes tables existantes. À son époque, on utilisait divers abaques pour compter, par exemple un système de jetons, utilisé notamment dans le commerce. Il est possible qu’elle ait eu connaissance, en femme cultivée, de la Pascaline, voire, de la machine à calculer de Leibniz. Mais il est peu probable qu’elle les ait utilisées, notamment parce que ces machines ont été peu diffusées. Elle a pu, en revanche, utiliser les bâtons de Napier (francisé en Neper). Et elle utilisait certainement la bonne vieille méthode du papier et du crayon ou plutôt de la plume, ou « calcul indien » qui est celle que l’on apprend à l’école actuellement. Cette méthode est arrivée en Europe au XIIe siècle et a été adoptée par le monde scientifique assez rapidement mais pas dans les classes les moins instruites de la population.

          Nicole-Reine Lepaute aurait pu aussi utiliser une règle à calcul, les premières ont été inventées au XVIIe siècle, mais elles n’ont vraiment commencé à s’implanter en France qu’au XIXe siècle.

          Janine Connes, l’astronome

          Aussi paradoxal que cela puisse être, il y a encore moins d’éléments biographiques concernant Janine Connes que pour Nicole-Reine Lepaute. Son obituaire ne comporte aucun élément informatif autre que le strict minimum (nom et date). En revanche, on a la liste de ses publications et on peut même accéder à certaines.

          De la spectroscopie infrarouge à transformée de Fourier au centre de calcul d’Orsay

          Janine Connes naît en 1926. Elle épouse l’astronome Pierre Connes avec qui elle mènera diverses recherches. Elle meurt le 28 novembre 2024 à Orsay, presque centenaire (98 ans).

          En 1954, son professeur, le physicien Pierre Jacquinot lui suggère un sujet de thèse :

          Il s’agissait de faire des Transformées de Fourier (TF) de 1 million de points.
          Pierre Jacquinot faisait partie de mon jury cette année-là, et à l’issue du concours il m’avait proposé de faire une thèse dans son Laboratoire Aimé Cotton (LAC) alors spécialisé en spectroscopie atomique et développements instrumentaux. Le sujet proposé était la spectroscopie par transformation de Fourier qui théoriquement devait battre en résolution et en étendue spectrale tous les records des réseaux et des interféromètres de Fabry-Perot. (Janine Connes, in De l’IBM 360/75 au superordinateur Jean Zay, chapitre 1).

          La spectroscopie infrarouge à transformée de Fourier (IRTF ou FTIR en anglais) sur laquelle Janine Connes a basé sa thèse est une méthode d’analyse basée sur les ondes infrarouges :

          Ces ondes vont de 12 800 cm-1 à 10 cm-1 et sont divisées en trois groupes: le proche infrarouge, le moyen infrarouge et l’infrarouge lointain. La FTIR utilise quant à elle le moyen infrarouge qui s’étend de 4 000 cm-1 à 400 cm-1 (2,5 µm à 25 µm).
          Quand une onde infrarouge est envoyée sur une molécule, cette dernière absorbe une partie de l’onde qui correspond aux liaisons présentes dans la molécule. L’absorption du rayonnement infrarouge ne peut avoir lieu que si la longueur d’onde correspond à l’énergie associée à un mode particulier de vibrations de la molécule. (Spectroscopie infrarouge à transformée de Fourier (FTIR), A. Bonneau, Association des Archéologues du Québec).

          Comme on peut le voir, c’est une technique utilisée dans des domaines très différents, incluant donc l’astronomie. Sa thèse en établira les principes en astronomie. Actuellement la :

          méthode de Fourier conserve toutefois quelques niches spécifiques, comme dans le domaine de l’infrarouge lointain spatial ou pour la spectroscopie intégrale de grands champs. La spectroscopie de Fourier en astronomie : de ses origines à nos jours, Jean-Pierre Maillard, 21 décembre 2017 (Observatoire de Paris).

          La page qui lui est consacrée (en) sur le site CWP (Century Women to Physics) de l’UCLA (Université de Californie à Los Angeles) indique que sa thèse, ainsi que ses publications suivantes, ont été d’une importance majeure et a posé les bases de ce qui allait devenir un nouveau et important domaine de recherche qui rend les transformées de Fourier rapides et relativement courantes :

          Janine Connes's analysis of the technique of Fourier Transform Infrared Spectroscopy was of major significance and laid the foundations of what was to grow into a significant new field. Her thesis work and subsequent publications gave in-depth theoretical analysis of numerous practical details necessary for this experimental technique to work. All the more remarkable is that her work predates the age of digital computers, which now make fast Fourier Transforms relatively routine. Mary R. Masson

          En 1960, elle écrit avec le physicien H. P. Gush une Étude du ciel nocturne dans le proche infra-rouge dans lequel les deux auteurs remercient notamment le Comité Européen de Calcul Scientifique pour ses attributions d’heures de calcul à l’ordinateur 704 I.B.M.

          En 1961, elle publie une série de quatre articles, seule ou avec d’autres chercheurs : Études spectroscopiques utilisant les transformations de Fourier. Pour le professeur Ian McLean, fondateur du laboratoire infrarouge de l’UCLA, ce sont des « travaux fondamentaux d’une importance extrême pour le domaine ». Le travail de Janine et de Pierre Conne sur les transformations de Fourier aura notamment permis à Lewis Kaplan de déterminer, en 1966, la composition de l’atmosphère de Mars (en).

          Parallèlement à cela, elle enseigne à la faculté de Sciences de Caen. En 1963, elle sera invitée avec Pierre Connes à rejoindre le Jet Propulsion Laboratory de la NASA à Pasadena. De retour en France, elle commencera par intégrer le laboratoire de Meudon au poste de directrice adjointe avant de se voir confier en 1969 la création et la direction du Centre Inter-Régional de Calcul Électronique (CIRCÉ) à Orsay.

          En 1970, l’astronome Ruper Wildt la propose, avec son mari, Pierre Connes, et le physicien Robert Benjamin Leighton pour le prix Nobel de physique pour « leur développement de la méthode de spectroscopie infrarouge à transformée de Fourier ». Le prix sera attribué, finalement, à Louis Néel.

          En 2022, elle écrit avec la participation de Françoise Perriquet : De l’IBM 360/75 au superordinateur Jean Zay 50 ans d’informatique au centre de calcul du CNRS d’Orsay.

          Les ordinateurs de ses débuts et le centre Jean Zay

          Ce sont l’IBM 704 et l’IBM 360/75 dont on va voir quelques caractéristiques techniques.

          L’IBM 704 était la plus grande machine du monde. Il avait fallu deux avions pour la transporter des États-Unis à Orly. Son arrivée en France avait fait l’objet d’une émission de la Radio Télévision française (RTF). Le présentateur interrogeait la personne chargée de réceptionner l’ordinateur au titre de l’Institut européen de calculs scientifiques, une fondation IBM, destinée à offrir aux scientifiques européens (pas seulement français) la possibilité de procéder à des calculs, jusque-là peu envisageables.

          Les mentions en italiques sont des citations tirées de l’émission.

          L’IBM 704 pesait 21 tonnes. Celui reçu à Orly était composé de « 25 unités différentes constituants chacun autant de petits meubles de dimension normale ». Ne sachant pas ce qu’est un meuble aux « dimensions normales », on peut se donner une idée de la taille des éléments en se référant aux photos : environ la profondeur et la largeur de, disons, une armoire normande, mais en moins haut, quelque chose entre 1,10 m et 1,60 m selon les éléments.

          Il fonctionnait avec des bandes magnétiques et pouvait :

          • en physique, s’occuper du dépouillement de données de mesure,
          • faciliter l’exploitation de l’énergie atomique à des fins pacifiques,
          • faire des calculs en chimie,
          • faire des calculs dans tous les domaines de l’industrie et de la science.

          Dans l’émission de radio, le présentateur demandait à la fin un exemple de traitement que pouvait faire l’IBM :

          Neper a passé plus de trente ans de sa vie à établir les tables de logarithmes et l’ordinateur 704 pourrait exécuter le même travail en le transcrivant sur des bandes magnétiques en dix-sept secondes à peu près.

          Sorti en 1954, c’est le premier ordinateur commercialisé à utiliser des commandes arithmétiques en virgule flottante entièrement automatiques et ce grâce à John Backus qui avait insisté pour que ce soit configuré au niveau du matériel.

          L’IBM 360/75 qui équipait CIRCÉ faisait partie d’une gamme d’ordinateurs interopérables et polyvalents IBM 360 dont le premier est sorti en 1966 (la numérotation des séries d’ordinateurs chez IBM est étonnante). Les IBM 360 seront commercialisés jusqu’en 1978. Ce sont les premiers à avoir utilisé le système Solid Logic Technology (SLT). L’IBM 360/30 était le plus lent de la série ; il pouvait exécuter jusqu’à 34 500 instructions par seconde avec une mémoire allant de 8 à 64 ko. Le 360/75 est l’un des derniers de la série.

          Ces ordinateurs étaient évidemment programmés en FORTRAN. D’ailleurs, le premier compilateur FORTRAN a été écrit pour l’IBM 704.

          Le centre Jean Zay, que l’on peut considérer comme l’un des successeurs de CIRCÉ a été inauguré en janvier 2020. C’est l’un des plus puissants centres de calcul d’Europe. Sa puissance est de 125,9 Pétaflop/s. Il a coûté 40 M€, coûte en électricité 3 à 4 M€ par an et il requiert 93 tonnes d’équipement réparti sur 320 m2 (source Ministère de l’enseignement et de la recherche). Il tourne sous Linux évidemment, comme tous les supers calculateurs de sa génération.

          Françoise Combes, l’astrophysicienne

          Quelle différence y a-t-il entre les métiers d’astronome et d’astrophysicien ? À cette question, wikidifference propose :

          La différence entre astronome et astrophysicien est que « astronome » est celui ou celle qui s’occupe d’astronomie tandis que « astrophysicien » est [un ou une] scientifique qui étudie l’astrophysique, l’étude de l’espace et des propriétés des objets de l’univers.

          Pas très convaincant, ni explicite. Les astronomes observent et cataloguent l’espace sur la base d’observations quand, en astrophysique, on se base sur les lois de la physique pour observer l’univers. En fait, à l’heure actuelle, les personnes qui, au départ, étaient astronomes sont maintenant des astrophysiciennes : la connaissance a évolué, les méthodes de recherche aussi ainsi que les outils. Mais, évidemment, les astronomes sont, ont été des scientifiques, souvent diplômés en physique.

          De la physique galactique à l’Académie des sciences

          Françoise Combes naît le 12 août 1952. En 1975, elle réussit l’agrégation de physique ce qui l’amènera à enseigner à l’École normale supérieure (ENS) dont elle est issue. Elle soutient sa thèse d’État à Paris VII en 1980, sujet de la thèse : les dynamiques et les structures des galaxies. En 1985, elle devient sous-directrice du laboratoire de physique à l’ENS (Ulm). Et c’est en 1989 qu’elle devient astronome à l’Observatoire de Paris. Elle est, depuis 2014, titulaire de la chaire Galaxies et cosmologie au Collège de France.

          Pendant cette période, 1970 -1980, qui voit la naissance des premières simulations numériques des galaxies, elle a l’idée de les faire en trois dimensions au lieu des deux dimensions habituelles. Elle ainsi pu résoudre :

          un mystère jusqu’alors inexpliqué : la formation d’un bulbe (sorte de renflement) dans les galaxies spirales. La clé de l’énigme est la barre centrale, sorte de forme allongée centrale où toutes les étoiles se rassemblent. « Cette barre soulève les étoiles dans la direction perpendiculaire au plan, explique-t-elle. De ce fait, les étoiles ne restent pas confinées dans un disque très mince mais prennent de l’altitude, ce qui forme un bulbe. » Ses simulations ont aussi montré comment la même barre précipite le gaz vers le centre, ce qui a pour effet d’alimenter le trou noir central. Médaille d’or, site CNRS.

          Elle a été admise à l’Académie des sciences3 en 2004, une académie dont elle assure la vice-présidence pour le mandat 2023-2024 et qui l’élit à la présidence pour le mandat 2025-2026. Une élection qui devrait normalement être ratifiée par décret par le président de la République. Ce sera la deuxième femme à la tête de cette vénérable institution (elle a été créée en 1666) où elle succède à Alain Fischer et trente ans après la biochimiste Marianne Grunberg-Manago

          Des prix prestigieux et des publications

          Françoise Combes a engrangé les prix et les distinctions au cours de sa carrière à commencer par le prix de Physique IBM qu’elle obtient en 1986 et le prix Petit d'Ormoy de l’Académie des Sciences en 1993. En 2001, le CNRS lui décerne une médaille d’argent.

          En 2009, elle obtient le prix Tycho Brahe de la Société européenne d’astronomie (EAS) dont c’est la deuxième édition pour ses

          travaux fondamentaux dans le domaine de la dynamique des galaxies, sur le milieu interstellaire dans les systèmes extragalactiques, sur les lignes d’absorption moléculaire dans le milieu intergalactique et sur la matière noire dans l’Univers. » Communiqué de presse (en anglais) de l’EAS (pdf).

          En 2017 la Société Astronomique de France (SAF) lui décerne son prix Jules-Janssen. En 2020, le CNRS lui décerne une médaille d’or. L’année suivante, elle obtient le prix international pour les femmes de sciences L’Oréal-Unesco (en).

          Elle est autrice ou co-autrice de plusieurs livres dont les plus récents :

          • Le Big bang, PUF 2024, collection Que sais-je ?, en version papier (10 €) et numérique (PDF et EPUB)
          • Trous noirs et quasars, CNRS éditions 2021, collection Les grandes voix de la recherche, en papier (8 €), numérique PDF et EPUB sans DRM (5,99 €) et audio (9,99 €).

          Par ailleurs, l’entretien qu’elle a donné au Collège de France en février 2024 est aussi téléchargeable en PDF.

          Sources, références et remerciements

          L’illustration de tête est la reproduction de la gravure originale des phases de l’éclipse (je l’ai redessinée avec Inkscape) et on peut la télécharger sur mon site de modèles ainsi d’ailleurs que le CV de Nicole-Reine Lepaute ou sur OpenClipart.

          LinuxFr.org ne rend peut-être pas plus intelligent, mais la rédaction de dépêches pour le site rend indéniablement plus savant. Pour cette dépêche et compenser une grande ignorance du sujet, j’ai été amenée à lire, consulter, parcourir ou écouter un certain nombre de documents en plus de ce qui est cité dans le corps de la dépêche. À vous de voir si vous avez envie de poursuivre l’exploration.

          Nicole-Reine Lepaute

          Janine Connes

          • Spectroscopie du ciel nocturne dans l’infrarouge par transformation de Fourier. J. Connes, H.P. Gush, Journal de Physique et le Radium, 1959, 20 (11), pp.915-917. 10.1051/jphysrad:019590020011091500, jpa-00236163
          • Tous les articles de J. Connes sur HAL Science ouverte, à savoir : il y a un site academia.eu, mieux référencé, qui les propose moyennant une inscription au site, mais cela vient de HAL qui ne demande pas d’inscription (donc pas de courriel) pour le téléchargement des fichiers.
          • Principes & applications de la spectro. de Fourier en astronomie : de ses origines à nos jours, Jean Pierre Maillard, 8 février 2019, conférence mensuelle de la Société astronomique de France (SAF)
          • De l’IBM 360/75 au superordinateur Jean Zay 50 ans d’informatique au centre de calcul du CNRS d’Orsay, EDP Sciences, il existe en version papier (39 €), PDF et EPUB avec DRM LCP (26,99 €), on peut le feuilleter aussi sur le site Cairn Info.
          • Réception à l’aéroport d’Orly de l’IBM 704 qui avait servi à Janine Connes pour ses calculs, podcast France Culture, rediffusion d’une émission de 1957.
          • L’IBM 704
          • l’IBM 360 (es), Academia Lab (2024). Système IBM/360. Encyclopédie. Révisé le 29 décembre 2024.

          Françoise Combes

          L’histoire de l’astronomie

          • Les télescopes, Gilles Kremer, Sylvie Voisin, 30 mars 2018
          • Histoire et patrimoine de l’Observatoire de Paris
          • Une histoire de l’astronomie, Jean-Pierre Verdet, Seuil 1990, il a fait l’objet d’une publication au format EPUB avec DRM LCP (9,99 €) EAN : 9782021287929, mais on peut le trouver d’occasion assez facilement. Il est doté d’une bonne bibliographie et est plutôt passionnant.

          Remerciements

          Un très grand merci à vmagnin pour ses informations et ses précisions, même si je n’ai pas tout utilisé. Mais ce n’est pas perdu, un prochain portrait probablement (voire, sûrement).

          Merci aussi à Enzo Bricolo pour m’avoir signalé l’élection de Françoise Combes à la présidence de l’Académie des sciences, sans ça je l’aurais ratée et ce serait dommage.

          Ainsi se clôt cette série sur les femmes et la conquête de l’espace ainsi que l’année 2024. Et c’est mon cadeau de nouvelle année.


          1. La Connaissance du temps, qui se targue d’être la plus ancienne publication d’éphémérides toujours publiée est actuellement gérée et publiée par l’IMCCE - Observatoire de Paris, la version 2025 vient de paraître et est téléchargeable en PDF. Elle est accompagnée d’un logiciel de calcul d’éphémérides développé pour Windows, Mac et Linux. 

          2. Source : Les lunettes astronomiques, 29 mars 2018, Sylvie Voisin et Gilles Kremer, Le Blog Gallica. 

          3. Une académie qui s’engage en faveur de libre accès et dont les comptes rendus sont publiés depuis 2020 sous licence Creative commons CC BY – SA. 

          Commentaires : voir le flux Atom ouvrir dans le navigateur

          • ✇LinuxFr.org : les dépêches
          • Haiku a 23 ans et un quart
            La dernière dépêche annuelle sur les nouveautés dans Haiku a dépassé la longueur maximale tolérée par Linuxfr (et été finalement découpée en plusieurs parties publiées séparément). Aussi, les nouveautés sur Haiku seront désormais publiées trimestriellement, pour faire face à l’augmentation d’activité dans le projet. lien nᵒ 1 : Site officiel de Haikulien nᵒ 2 : Rapport d'activité de août 2024lien nᵒ 3 : Rapport d'activié de septembre 2024lien nᵒ 4 : Rapport d'activité de octobre 2024Sommaire A

          Haiku a 23 ans et un quart

          La dernière dépêche annuelle sur les nouveautés dans Haiku a dépassé la longueur maximale tolérée par Linuxfr (et été finalement découpée en plusieurs parties publiées séparément). Aussi, les nouveautés sur Haiku seront désormais publiées trimestriellement, pour faire face à l’augmentation d’activité dans le projet.

          Sommaire

          Ce rapport est basé sur les rapports mensuels d’activité d’août, septembre et octobre publiés sur le site de Haiku. Il couvre les changements de code survenus entre hrev57901 et hrev58291 de Haiku.

          Certains des changements mentionnés dans ce rapport font partie des derniers développements du mois d'août, et étaient déjà présents dans la version R1 bêta 5 qui a été publiée début septembre 2024.

          Les corrections de bugs sont appliquées sur la branche bêta 5 si elle est concernée, mais les nouveaux développements sont mis dans la branche principale et seront disponibles uniquement dans les « nighlty builds » (constructions journalières) puis dans la prochaine version, qui sera probablement étiquetée R1 bêta 6.

          La version R1 est très attendue, mais la feuille de route comporte toujours environ 600 bugs et demandes d’amélioration. Jusqu’à ce qu’ils soient tous traités (corrigés, devenus obsolètes ou déplacés vers une version plus tardive), Haiku continue de publier des versions bêta.

          Applications

          Amélioration et corrections de textes de messages dans diverses applications (humdinger).

          L’application Switcher — permettant de naviguer rapidement entre les différentes fenêtres et applications à l’aide d’un menu qui apparaît lorsque la souris se trouve sur les bords de l’écran — peut à nouveau être compilée. Cette application n’est pas terminée et non intégrée dans Haiku par défaut pour l’instant (nephele).

          Dans les préférences de disposition clavier, des icônes avaient disparu de certains menus suite à un problème dans une modification précédente. Ces icônes sont maintenant de retour (jscipione).

          Les réglages de polices de caractères de WebPositive peuvent faire des retours à la ligne dans le texte d’exemple utilisé pour visualiser la police choisie (correction récupérée depuis la fenêtre de réglage des polices du système, qui utilise une variante du même code). (nipos).

          Le raccourci clavier « muet » permet d’alterner entre l’activation et la désactivation du son, au lieu de toujours passer en mode muet (korli).

          Plusieurs applications pouvaient ouvrir leurs fenêtres en dehors de l’écran si leur dernière position enregistrée n’était pas bonne (après un changement de résolution d’écran par exemple). L’appel de la fonction MoveOnScreen() après la création d’une fenêtre permet de régler ce problème (korli, pinaraf, waddlesplash).

          Icon-O-Matic ouvre ses dialogues de sélection de fichiers dans le dossier où se trouve l’icône en cours d’édition (nipos).

          Il est possible de sélectionner une famille de polices directement dans FontDemo (nipos).

          Améliorations du mode sombre

          Modifications faites par nipos et nephele.

          Depuis la version bêta 5 de Haiku, il est beaucoup plus simple de configurer un thème de couleurs dans Haiku (avec seulement 3 couleurs à sélectionner, les autres étant calculées automatiquement).

          Cependant, toutes les applications et contrôles graphiques ne se comportent pas forcément très bien, en particulier si on choisit une couleur de fond de fenêtres sombre. Ce trimestre, on trouve donc des améliorations sur ColumnListView (contrôle permettant l’affichage de données en listes, en arbre et en colonnes), et dans les applications Debugger, Mail (en particulier les marqueurs de portions de message citées), WebPositive, ResEdit, FontDemo, Cortex, Sudoku et Tracker (les fenêtres de configuration des permissions de fichiers et de statut de copie de fichiers), ainsi que dans les préférences de disposition clavier (couleur des touches de clavier affichées), et de configuration des écrans et des écrans de veille. Ces applications utilisaient encore quelques couleurs codées « en dur » qui ne s’adaptaient pas automatiquement au thème choisi.

          En outre, les formules de calcul utilisées pour générer le thème de couleurs ont été améliorées pour donner de meilleurs résultats dans le cas de couleurs sombres, assurant de conserver un bon contraste entre tous les éléments graphiques et une meilleure cohérence des couleurs.

          AboutSystem

          L’application AboutSystem donne quelques informations sur la machine (RAM, CPU), et surtout affiche les noms des développeurs et les messages de copyright et clauses de licences obligatoires de logiciels libres qui sont embarqués dans Haiku.

          Correction d’un crash à cause d’une information de copyright mal enregistrée (madmax).

          Mise à jour des crédits à l’occasion de la version Beta 5 : ajout des nouveaux membres de l’équipe, et passage dans la catégorie « anciens développeurs » de certaines personnes qui ne participent plus pour l’instant. (waddlesplash).

          Débogueur

          Haiku est fourni avec un débogueur graphique permettant d’investiguer facilement les problèmes dans les applications.

          Waddlesplash a amélioré le désassembleur pour mieux décoder les adresses mémoire calculées à partir de la valeur d’un registre CPU. La correction a été remontée dans la bibliothèque tierce Zydis, utilisée pour le désassemblage.

          Il a également modifié le code du Debugger pour ne pas essayer de télécharger des informations de debug lorsque l’outil est lancé en mode non-interactif (dans le cas d’une test suite automatisée par exemple). Plusieurs autres problèmes qui pouvaient causer un plantage du debugger ou un blocage dans un état invalide (avec l’application qui ne s’arrête jamais) ont été également traités.

          DriveSetup

          L’outil DriveSetup permet de modifier la table de partitions et de formater les partitions avec différents systèmes de fichiers.

          Pour les partitions de type « Intel » (MBR), lorsqu’on crée une première partition, par défaut elle est marquée automatiquement comme partition active. Auparavant il fallait cocher une case pour cela, et de nombreux utilisateurs oubliaient de le faire, ce qui pouvait rendre le système impossible à démarrer (korli).

          Dans certains messages, le nom des partitions n’était pas mis entre guillemets, ce qui pouvait prêter à confusion avec des noms de partitions choisis maladroitement (ou judicieusement, selon de quel point de vue on se place). Maintenant le nom de la partition est clairement identifiable dans le message (humdinger).

          HaikuDepot

          HaikuDepot est le frontal graphique du gestionnaire de paquets de Haiku. L’application est maintenue par apl et se compose d’une interface graphique native développée en C++ et d’un webservice développé en Java qui permet de stocker des métadonnées supplémentaires sur les paquets : captures d’écrans, notes et revues des utilisateurs, liste des paquets à mettre en avant.

          • Refactoring du « language model », de la gestion des chemins, de la récupération des données des paquets, de l’affichage des auteurs de paquets, de la gestion des notes données par les utilisateurs. (apl)
          • Fenêtre des conditions d’utilisation: correction de la couleur du texte, correction d’un crash si on clique dans la fenêtre avant que le texte soit chargé. (apl et jscipione)
          • Le bouton « Ouvrir » permettant de lancer une application installée ne fonctionnait pas toujours (apl).
          • Amélioration de la sélection d’un icône par défaut pour les paquets qui n’ont pas d’icône inclus (apl).

          La liste de paquets mis en avant a été revue, un nouveau mainteneur (Michel) se charge de la tenir à jour avec des règles mieux définies : une sélection d’applications populaires (sur suggestion de participants aux forums de discussion) ainsi que des applications mises à jour récemment. Si vous utilisez Haiku, n’hésitez pas à passer un peu de temps à évaluer et noter les applications, peu de personnes le font et il est difficile d’exploiter les données de façon pertinente si beaucoup d’applications n’ont reçu qu’un seul vote.

          Horloge

          L’application horloge permet d’afficher l’heure (sans surprise). Elle propose diverses apparences de cadrans, peut être redimensionnée, et incrustée dans le bureau sous forme d’un replicant.

          Un bug dans l’application conduisait à afficher une heure aléatoire (non initialisée) pendant quelques centièmes de secondes au démarrage avant de commencer à afficher l’heure courante (OscarL)

          Les aiguilles de l’horloge étaient décalées de quelques pixels et ne pointaient pas précisément là ou elles devraient (dovsienko).

          Tracker

          Tracker est le gestionnaire de fichiers de Haiku. Il affiche le bureau et toutes les fenêtres de navigation et de recherche de fichiers. Il se distingue par son utilisation de la navigation dite « spatiale », où chaque dossier s’ouvre dans une fenêtre séparée dont la taille et la position à l’écran sont mémorisées.

          jscipione continue son travail d’amélioration du Tracker (cela comporte de nombreux changements qui sont encore en gestation). Ce trimestre, les changements intégrés permettent :

          • la désactivation d’entrées du menu « Nouveau » lorsque les opérations ne sont pas disponibles,
          • la mise à jour dynamique de certains menus en fonction des opérations disponibles,
          • la préservation de la sélection après une opération de copie où de déplacement (avec quelques problèmes d’affichage corrigés au passage),
          • des corrections de bug sur le choix de couleurs utilisées dans la fenêtre « Ouvrir avec »,
          • la possibilité de créer un lien symbolique lorsqu’on fait un drag and drop depuis un dossier virtuel,
          • utilisation de la police de caractères « menu » de façon cohérente dans tous les menus.

          Il a également travaillé sur des tâches de fond, sans changements visibles pour l’instant. Le code du Tracker provient de BeOS et est un peu vieillissant. Il est souvent nécessaire de faire beaucoup de nettoyage avant de pouvoir développer de nouvelles fonctionnalités sans casser autre chose. Cette fois-ci, on trouve entre autres une refonte de la gestion des raccourcis claviers, la fermeture automatique des fenêtres en double lors du passage en mode « navigation spatiale », et divers crashs liés à la gestion des menus popup.

          humdinger a également travaillé sur le Tracker pour améliorer certains messages concernant la copie et la création de fichiers, pour les rendre plus faciles à traduire.

          humdinger a également travaillé sur l’organisation du menu « templates » (affiché quand on fait un clic droit -> nouveau… et permettant de créer différents types de fichiers à partir de fichiers de référence). Ce menu peut maintenant être organisé en plusieurs sous-menus à l’aide d’une nouvelle option « New template folder », pour les personnes qui utilisent cette fonctionnalité avec de nombreux fichiers de référence au point d’avoir besoin de les organiser.

          La fenêtre de requêtes (recherche de fichiers en fonction de leurs attributs étendus indexés dans le système de fichiers) permet maintenant d’afficher en temps réel les résultats lorsqu’on édite une requête. En outre, il est possible de filtrer les résultats pour afficher uniquement les fichiers contenus dans un répertoire donné (auparavant, on pouvait au mieux restreindre par volume disque). Ces changements ont été réalisés dans le cadre du Google Summer of Code par CalistoMathias, avec également une participation de jscipione, humdinger et waddleplash pour finaliser le travail.

          Correction d’un crash du Tracker lors de changements de résolution d’écran (OscarL).

          Terminal

          Le Terminal permet d’exécuter des applications en ligne de commande.

          Lors du changement de la taille de texte du Terminal, ce dernier ajuste le nombre de lignes et colonnes de texte visibles, au lieu de redimensionner sa fenêtre (nipos).

          Prise en compte de la séquence d’échappement ANSI pour effacer l’historique de défilement (CodeForEvolution).

          PowerStatus

          L’application PowerStatus affiche des informations sur les batteries pour les ordinateurs portables.
          sen a effectué plusieurs améliorations pour les systèmes avec plusieurs batteries:

          • Gestion de plusieurs emplacements pour batteries qui ne sont pas forcément tous utilisés,
          • Meilleur calcul des alertes de batterie faible,
          • Prise en compte de la déconnexion de batteries pendant le fonctionnement du système.

          Outils en ligne de commande

          La commande profile (qui permet d’analyser les performances d’autres applications et du système) peut maintenant afficher le nombre d’évènements qui n’ont pas pu être enregistrés par l’analyseur système (waddlesplash).

          La commande package_repo update (utilisée pour mettre à jour un dépôt de paquets avec de nouveaux logiciels) peut maintenant fonctionner sans avoir accès au contenu complet des fichiers packages à inclure dans le dépôt (seuls les noms des paquets et quelques autres métadonnées sont réellement nécessaires).

          La commande package_repo list dispose d’une option -f pour afficher le nom de fichiers correspondant aux paquets contenus dans un dépôt de paquets. Les fichiers peuvent ainsi être téléchargés facilement par un outil tiers. (waddlesplash)

          Ces deux modifications sont utiles en particulier pour la ferme de build de HaikuPorts, qui souhaite héberger les fichiers dans des buckets S3 afin de simplifier l’infrastructure et de réduire les coûts de fonctionnement.

          Amélioration du format de sortie de la commande launch_roster pour indiquer le statut des services et pas simplement leur nom (kallisti5 + waddlesplash).

          Ajout dans strace du décodage des drapeaux de configurations de mutex (par exemple MUTEX_SHARED) (waddlesplash).

          Serveurs

          Les serveurs sont des applications fonctionnant en tâche de fond et qui implémentent une grande partie des fonctionnalités du système.

          app_server

          app_server est le serveur graphique qui se charge de l’affichage du bureau et des fenêtres.

          madmax a travaillé sur la gestion des polices de caractères: correction de problèmes de verrouillage pour éviter des accès concurrents au gestionnaire de polices par plusieurs fils d’exécution, amélioration du traitement de l’ajout et du retrait de polices, et une optimisation pour éviter de scanner deux fois de suite les dossiers de polices au démarrage.

          waddlesplash a complété ce changement en déplaçant une partie du code de gestion des polices pour éviter que d’autres parties de l’exécution soient bloquées par l’initialisation des polices, qui peut prendre beaucoup de temps (quelques secondes) au démarrage du système.

          waddlesplash a corrigé un problème de calcul de délai d’expiration (probablement sans conséquence, découvert par hasard en investiguant un autre problème).

          jscipione a corrigé un problème de rafraîchissement de l’affichage lorsque des fenêtres sont empilées, qui pouvait conduire à ne pas bien effacer la barre de titre dans certains cas.

          Un clic simple sur le coin bas-droite de la fenêtre (coin de redimensionnement) déclenchait par erreur une minimisation de la fenêtre concernée (madmax).

          media_server

          Le media_server prend en charge les flux audio et vidéo et permet de router ces flux entre différentes applications ainsi que depuis et vers le matériel (cartes son, cartes d’acquisition vidéo, webcams…).

          Travaux effectués par waddlesplash:

          Correction de problèmes de calculs de temps dans le mixeur audio (problèmes découverts suite à l’amélioration de la détection d’erreurs dans BTimeSource, mentionné plus haut), et ajout de contrôles d’intégrité supplémentaires lors du démarrage du mixeur.

          Cela corrige plusieurs bugs qui faisaient que le système n’avait pas de son au démarrage pendant un certain temps, avant que soudainement ça se mette à fonctionner.

          D’autre part, des améliorations de performance sur la programmation des évènements, et des corrections de crash sur la connexion et déconnexion des nœuds média vers la sortie audio, et sur le nœud multi-audio avec certaines cartes sons qui exposent des types de contrôles invalides.

          D’autres changements sont en cours pour pouvoir changer la sortie audio sans avoir besoin de redémarrer le serveur média, mais ça ne fonctionne pas encore.

          registrar

          Le registrar surveille quelles sont les applications déjà lancées et fournit divers services de communication entre applications, en particulier pour le presse-papier.

          Ajout de vérification d’erreurs si un message de récupération du contenu du presse-papier échoue. Cela peut arriver si on a mis beaucoup de données dans le presse-papier et qu’il n’y a plus assez de mémoire disponible.

          Des corrections du côté de la libbe permettent maintenant de gérer ces erreurs et de ne pas faire planter l’application concernée.

          input_server

          L’input_server` se charge des périphériques d’entrée (clavier, souris…)

          Améliorations la validation des données des fichiers de configuration de souris, qui dans certains cas pouvaient empêcher la souris de fonctionner. Refonte de la gestion des accès concurrents à la liste des périphériques, pour supprimer des verrous inutiles et permettre les accès à la liste même si un thread de gestion d’un périphérique est bloqué. (madmax)

          Les codes de touches pour la touche power et la touche \_ des claviers japonais s’étaient retrouvés assignées à des valeurs identiques (cela semble provenir tout droit de changements datant de BeOS, car ces touches non présentes sur un clavier de PC américain classiques sont assez mal documentées). La documentation a été mise à jour pour mieux expliquer quels sont les codes utilisés, et les différents pilotes (PS2, USB) ont été harmonisés pour utiliser les mêmes codes (x512 et PulkoMandy).

          Le code power pourra également être utilisé par un pilote GPIO sur les machines où c’est nécessaire (souvent non compatibles PC).

          net_server

          Le net_server se charge de toutes les opérations liées au réseau.

          mmlr a corrigé un problème dans le client DHCP, qui utilisait certaines variables sans les initialiser.

          package_daemon

          Le package_daemon vérifie la cohérence des paquets installés avec leurs dépendances, crée les dossiers de transactions et de sauvegarde de l’état passé du système, et se charge de lancer les scripts d’activation et de désactivation de paquets. L’accès au contenu des paquets est en revanche traité dans le noyau par le système de fichier packagefs.

          Changement des couleurs des fenêtres « problèmes » et « résultats » qui apparaissent quand il y a des conflits ou d’autres problèmes de résolution de dépendances lors de l’activation des paquets (jscipione).

          Kits

          Les « kits » sont les composants de la bibliothèque standard de Haiku. Il s’agit principalement d’une convention de documentation et d’organisation de code source pour regrouper des fonctionnalités liées entre elles.

          Interface

          L’interface kit` permet l’ouverture de fenêtre et l’ajout de contrôles d’interface graphiques à l’intérieur de ces dernières.

          Les objets BBitmap (permettant de stocker une image « raster ») avec le flag ACCEPT_VIEWS (permettant d’attacher une « vue" pour dessiner dans le bitmap ne sont plus automatiquement effacés. Cela permet de créer un bitmap à partir de données existantes, puis de dessiner autre chose par-dessus. Ce changement corrige un problème de compatibilité avec BeOS, et permet aussi d’utiliser cette méthode dans l’implémentation de WebKit pour Haiku (ZardShard).

          Un changement précédent avait causé un problème de compatibilité d’API avec BeOS, qui déclenchait dans certains cas une récursion infinie et un crash lorsqu’on essayait de faire défiler une BListView par glisser-déplacer (par exemple dans l’application Wonderbrush). Waddlesplash a corrigé ce problème, et jscipione a également ajouté quelques améliorations sur la mise à jour des items sélectionnés lorsqu’on effectue cette opération.

          Il est maintenant possible d’afficher des « checkmarks » (coche indiquant une option activée) sur les items de menus disposés en « matrice ». Habituellement les menus sont soit disposés sur une ligne, soit sur une colonne avec les items les un au-dessous des autres. Le mode « matrice » permet de s’affranchir de ces restrictions pour disposer les items librement avec du code applicatif.

          Mise à jour en direct des couleurs dans les contrôles BSpinner, refonte de l’héritage des couleurs de la vue parente, et changement de la couleur de fond des boutons en mode sombre (jscipione).

          Centrage vertical des dates dans BCalendarView (permettant d’afficher un calendrier) (nipos).

          Factorisation de code dans BView pour l’envoi des données BShape vers app_server (x512).

          La méthode de debug BPoint::PrintToStream affiche maintenant les coordonnées avec des décimales, permettant de détecter les points qui ne sont pas alignés avec la grille de pixels (ayu-ch).

          Les boîtes de texte marquées comme « invalides » ont maintenant un fond rouge. La bordure rouge utilisée précédemment n’était pas assez visible (nephele).

          Media

          Le media kit permet aux applications de s’interfacer avec le media server, et fournit en plus une interface standardisée pour les codecs audio et vidéo.

          Ajout d’assertions dans la classe BTimeSource pour empêcher les applications d’envoyer des temps avec un « drift » inférieur ou égal à 0. Le « drift" est utilisé comme multiplicateur et diviseur dans les calculs d’horloge, donc les valeurs inférieures ou égales à 0 causent des problèmes. Ceci a été mis en évidence par des corrections au niveau du noyau (voir plus loin dans la dépêche) et a ensuite permis de trouver encore d’autres problèmes en particulier dans les add-ons media (waddlesplash).

          Locale

          Le « locale » kit permet la traduction des applications, le formatage des nombres en fonction des préférences de chaque pays, la gestion des fuseaux horaires, et toutes les autres problématiques liées à l’internationalisation. Il s’agit principalement d’un enrobage de la bibliothèque ICU pour faciliter son utilisation avec les types natifs de Haiku.

          Meilleure gestion des erreurs si la bibliothèque ICU ne peut pas être initialisée (waddlesplash).

          Support

          Le support kit contient diverses méthodes et classes utilitaires et génériques.

          Contrôle d’intégrité des données lors de la déserialisation de BMessage (waddlesplash).

          Correction d’incohérence de nommage de paramètres de fonction entre les fichiers .cpp et .h détectés par cppcheck (mt).

          Pilotes de périphériques

          Les pilotes sont indispensables pour assurer le fonctionnement de Haiku sur une grande variété de matériel. Certains sont développés à partir des spécifications du matériel spécifiquement pour Haiku, et d’autres ont été adaptés de travaux réalisés pour d’autres systèmes d’exploitation.

          Le niveau de logging par défaut a été abaissé dans certains pilotes afin de ne pas trop polluer le journal système, en particulier:

          • Suppression de messages indiquant qu’aucun matériel compatible avec le pilote n’a été détecté,
          • Suppression de certains logs de debug dans les pilotes audio HDA et usb_audio.

          Processeurs et économie d’énergie

          Renommage du pilote intel_cstates en x86_cstates puisque les processeurs récents de chez AMD sont également pris en charge par ce pilote.

          Appel à ce pilote à plus d’endroits dans le noyau pour mettre les processeurs en veille ou au ralenti quand ils ne sont pas utilisés.

          Réseau

          virtio_net

          Le pilote virtio_net (carte réseau utilisée dans les machines virtuelles) implémente maintenant le « checksum offloading » pour les protocoles IP, TCP et UDP. En effet, dans le cas de ce pilote, les vérifications et calculs de sommes d’intégrité doivent être faits de toutes façons du côté de la machine hôte, il est donc inutile de les refaire dans la machine virtuelle.

          Au passage, correction de quelques erreurs dans ce driver, et en particulier de problèmes de calcul de taille de buffers en mémoire.

          broadcom750x

          Utilisation des interruptions par messages (MSI) lorsque c’est nécessaire pour certaines versions du matériel (waddlesplash).

           vmxnet

          Nouveau pilote porté depuis FreeBSD qui permet d’utiliser l’interface réseau paravirtualisée de VMWare (CodeForEvolution).

           Couches de compatibilité BSD

          Haiku utilise des pilotes réseau venus de FreeBSD et OpenBSD, cela permet de mutualiser les ressources et de ne pas perdre du temps à réinventer la roue. Une couche de compatibilité permet de réutiliser les pilotes avec très peu de modification dans leur code et une simple recompilation.

          Cette approche est également utilisée par d’autres systèmes d’exploitation comme RTEMS.

          La couche de compatibilité a reçu des corrections de problèmes sur l’allocation de mémoire dédiée aux transferts DMA, ainsi qu’un problème sur le calcul de la taille d’un buffer de réception, qui empêchait les pilotes de fonctionner sur certains matériels.

           TCP

          Waddlesplash a travaillé sur l’amélioration de l’implémentation de TCP :

          • Refonte de la gestion des ACK reçus dans le désordre,
          • Amélioration du code de débogage pour investiguer des crashs du noyau remontés par quelques utilisateurs,
          • Modification du code de mise à jour de la taille de fenêtre TCP pour éviter d’envoyer inutilement des changements de taille,
          • Correction de calcul du temps d’aller-retour,
          • Implémentation du redimensionnement dynamique de la fenêtre de réception (auparavant, elle était de taille fixe),
          • Ajout d’assertions à divers endroits dans la pile réseau pour détecter les problèmes à la source.

          Ces améliorations permettent au trafic TCP d’être au moins 10 fois plus rapide, selon le type de connexion utilisé, et règle un problème de lenteur des téléchargements depuis Haiku qui était présent depuis assez longtemps.

           Ethernet

          Du côté d’Ethernet, quelques améliorations et nettoyages sur le calcul de la MTU (taille maximale d’un paquet qui peut être envoyé). Pour l’instant, la découverte du « path MTU », la MTU du chemin complet entre deux machines, n’est pas encore disponible. Haiku ne s’autorise donc pas à envoyer du trafic plus large qu’une trame Ethernet standard, même si cela pourrait être possible pour le réseau local. Il reste donc une amélioration potentielle des performances réseau dans certains cas.

           UNIX domain sockets

          Les sockets UNIX sont une méthode de communication entre processus standardisée par POSIX, utilisée surtout par des logiciels portés depuis d’autres systèmes (les applications natives pour Haiku utiliseront plus volontiers des BMessages ou des ports).

          Amélioration et nettoyage du code autour de la gestion des données annexes dans les sockets UNIX. Correction de petites fuites de mémoire et d’un kernel panic qui pouvait se produire lors de la fermeture d’un socket (waddlesplash).

          USB

          Implémentation de l’USB « Super Speed Plus », qui permet des connexions USB avec un débit pouvant atteindre 10 gigabits par seconde (korli).

          Refonte et consolidation du comptage de références dans la pile USB, ce qui met en évidence sous forme de kernel panic des cas où les choses ne sont pas bien faites. Ce n’est pas agréable, mais c’est tout de même mieux qu’une corruption mémoire difficile à investiguer (waddleplash).

          Décodage des descripteurs USB Audio v2 dans la commande listusb, mais pas encore dans le pilote usb_audio qui implémente pour l’instant seulement la version 1 (gscrain).

          PCI

          Correction de problèmes d’accès au bus PCI sur les machines équipées de ACPI. Suite à une modification précédente, les accès sur 8 ou 16 bits étaient convertis en accès sur 32 bits, mais ce n’est pas le comportement attendu. En particulier, certains registres effacent automatiquement leur contenu lorsqu’ils sont lus, ou bien les données accessibles en lecture et en écriture ne sont pas les mêmes. (PulkoMandy)

          Il n’est donc pas possible de lire une valeur sur 32 bits, remplacer 8 bits, et réécrire 32 bits pour simuler une écriture sur 8 bits dans un registre.

          Les accès sont à nouveau traités correctement, ce qui permet à Haiku de fonctionner à nouveau normalement sur les machines concernées par ce type d’accès au bus PCI (cela dépend du matériel et des pilotes).

          Périphériques de stockage

          Petites améliorations de performances dans le pilote NVMe (waddlesplash).

          Modification du pilote AHCI/SATA (waddlesplash) :
          - Suppression de code dupliqué pour utiliser à la place des fonctions communes partagées avec d’autres pilotes,
          - Correction d’une confusion entre adresses 32 et 64 bits qui empêchait de démarrer la version 32
          bits de Haiku sur certains systèmes avec plus de 4Gio de RAM.

          La pile SCSI prend mieux en compte les restrictions sur les adresses DMA. Chaque pilote de périphérique qui implémente SCSI peut indiquer ce qu’il est capable de faire, et la pile SCSI fait en sorte que les demandes de transferts DMA respectent ces contraintes, ce qui évite aux pilotes de devoir découper par eux-mêmes les transferts en unités qu’ils sont capables de traiter (waddlesplash).

          ACPI

          ACPI est une interface standardisée avec le matériel. Elle permet la gestion d’énergie (extinction de la machine par exemple), ainsi que l’accès à du matériel annexe tels que les boutons on/off, la détection de rabat de l’écran sur un PC portable, le contrôle des LEDs indicatrices ; ainsi que la découverte de matériel non connecté sur le bus PCI (comme certains modules eMMC dans des tablettes et ordinateurs à bas coût).

          La spécification étant assez complexe, la bibliothèque ACPICA est utilisée pour implémenter les bases de ACPI. Ensuite, des pilotes dédiés permettent d’exposer chaque périphérique ACPI.

          Mise à jour de ACPICA avec la dernière version publiée par Intel (publiée en mars), et un peu de nettoyage afin de pouvoir intégrer quelques patchs dans la version upstream de ACPICA (PulkoMandy).

          Ajustement du pilote ACPI pour mapper sa mémoire physique en « write back » au lieu de désactiver complètement le cache. C’est nécessaire sur ARM64, car le cache permet d’intercepter les accès mémoire non alignés. Correction de problèmes liés au fait que la même zone de mémoire physique pouvait être mappée plusieurs fois avec des configurations différentes, ce qui est impossible (déclenche une « machine check exception ») (oanderso).

          Graphiques

          Avancées sur la prise en charge des cartes graphiques Intel de générations Tiger Lake, Ice Lake et Gemini Lake (ttmfx, ilzu, PulkoMandy). L’utilisation de ces cartes graphiques reste assez limité, sans accélération matérielle et sans possibilité d’utiliser plusieurs écrans pour l’instant.

          virtio

          Les pilotes virtio permettent l’utilisation de matériel virtuel défini pour tirer le meilleur parti des machines virtuelles. Plutôt que de copier le fonctionnement d’un matériel existant, l’interface peut être conçue pour rendre le travail plus simple aussi bien pour l’hôte que pour le système virtualisé.

          Correction de problèmes dans l’allocation des files de messages virtio et amélioration de la gestion des erreurs (mmlr).

          Vérification de l’état du périphérique après une réinitialisation, et correction d’un accès mémoire hors limite dans le pilote virtio_pci (korli).

          PS/2

          Les ports PS/2 ont disparu de la plupart des machines depuis de nombreuses années, mais le protocole est encore utilisé pour les claviers des ordinateurs portables ainsi que pour certains touchpads. Ces derniers utilisent de nombreuses extensions peu standardisées et mal documentées pour offrir des fonctions avancées qui n’existaient pas à l’époque des souris à deux boutons.

          Le driver reçoit ce trimestre une refonte de la gestion des verrous entre ses différents composants, pour essayer de régler quelques problèmes de synchronisation (waddlesplash).

          Systèmes de fichiers

          ram_disk et ramfs

          ram_disk est un périphérique bloc (block device) qui stocke ses données en RAM (non persistante au redémarrage). Il peut être formaté avec n’importe quel système de fichier.

          ramfs est un système de fichiers qui stocke ses données en RAM, sans passer par un block device. Cela permet de meilleures performances (pas besoin de journalisation par exemple), une meilleure intégration avec le cache de fichiers (la mémoire peut être partagée directement entre ramfs et le cache), et de s’affranchir des limites habituelles des périphériques de bloc (par exemple: une taille fixe connue lors de la création du système de fichiers).

          Un utilisateur a remonté un problème de compatibilité avec POSIX. Si on utilise mmap() sur un fichier stocké dans un ramfs, et que la taille du fichier n’est pas un multiple de la taille des pages de mémoire, la fin de la dernière page pouvait contenir des données aléatoires. Selon la spécification POSIX, il faut que cette zone soit remplie avec des 0, et le compilateur clang dépend de ce comportement pour implémenter une lecture rapide des fichiers sources compilés.

          Le problème a été corrigé, avec au passage une commonalisation de code entre ramfs et ram_disk, de petits ajustements de performances, et un peu de nettoyage.

          Enfin, la priorité des allocations mémoires de ces deux pilotes a été abaissée, ce qui permet d’éviter un gel du système s’il n’y a plus de mémoire disponible.

          Le pilote ramfs continue d’être stabilisé, quelques problèmes qui pouvaient encore causer des kernel panic ont été corrigés.

          packagefs

          packagefs est un système de fichier virtuel qui expose le contenu de fichiers de packages au format hpkg. Des paquets peuvent être ajoutés et supprimés pendant le fonctionnement du système, et il n’est pas nécessaire d’extraire leurs données sur disque.

          Plusieurs améliorations faites par waddlesplash :

          • Ajout de vérifications de la bonne utilisation de verrous entre différents threads et corrections de problèmes mineurs qu’elles ont mis en évidence,
          • Amélioration du message d’erreur si on essaie d’activer deux paquets qui entrent en conflit.

          Un reproche qui est souvent fait au packagefs est d’avoir augmenté les besoins en RAM de Haiku, en effet, depuis la version Beta 1 de Haiku, la configuration mémoire minimum recommandée est de 384Mio de RAM, alors que les versions précédentes se contentaient de 128Mio.

          • Utilisation d’object_cache` (un allocateur mémoire pour des objets qui font tous la même taille) dans différents endroits de packagefs pour réduire sa consommation de mémoire,
          • Utilisation de listes chaînées simples au lieu de listes chaînées doubles là où ça ne pose pas de problème de performances,
          • Suppression de champs constants dans certaines classes,
          • « inlining » des compteurs de références pour rendre les structures de données plus compactes,
          • Réorganisation des structures pour réduire le padding,
          • Retrait des « dépôts d’objets » dans les arènes d'allocation,
          • Découpage des allocations en plusieurs zones distinctes,
          • Utilisation de verrous moins fins (par exemple, avoir un seul verrou pour tout un dossier au lieu de un par fichier),
          • Utilisation d’un « bump allocator » pour les objets à courte durée de vie.

          La réduction de consommation mémoire avec ces changements est de près de 20%, soit environ 15Mio sur une installation de référence. En effet, un gain de quelques octets sur le stockage d’informations sur un fichier est multiplié par plusieurs milliers de fichiers présents sur le disque, ce qui fait que chaque petite optimisation est intéressante. Cependant, les investigations ont aussi permis de découvrir d’autres problèmes encore plus importants qui n’étaient pas directement liés au packagefs, on en reparle un peu plus loin.

          Un autre changement a été fait par waddlesplash, non seulement pour packagefs mais aussi pour d’autres endroits où le même code était utilisé : La fonction pour calculer un hash de chaîne de caractères utilisait un algorithme obsolète. Elle a été remplacée par hashdjb2 qui génère moins de collisions.

          FAT

          FAT est un système de fichier développé par Microsoft. Il est utilisé en particulier sur les cartes SD et les clés USB, ainsi que pour les partitions systèmes EFI. Bien que sa conception soit quelque peu obsolète, il reste donc indispensable.

          Le pilote FAT de Haiku, qui provenait tout droit d’un code source publié par Be, a été remplacé dans la version beta 5 par une nouvelle version basée sur le code de FreeBSD. Ce nouveau pilote reçoit depuis des améliorations régulières par Jim906, le développeur qui s’est chargé du portage du code de FreeBSD.

          Ce trimestre, le pilote reçoit des corrections sur l’initialisation des « media bytes » dans l’en-tête des partitions, des améliorations de performances pour réduire le temps nécessaire au montage d’une partition FAT, ainsi qu’une meilleure gestion des erreurs dans le traitement des noms de volumes. Il est également possible de monter les volumes FAT de taille supérieure à 2TiO.

          BFS

          BFS est le système de fichier hérité de BeOS et utilisé pour les partitions natives de Haiku. Il propose une très bonne implémentation des attributs étendus (sans limite de taille, et typés) et permet en plus d’exécuter des requêtes sur ces attributs pour localiser très rapidement les fichiers répondant à certains critères.

          L’implémentation du système de fichier BFS est assez mûre et reçoit habituellement peu d’évolutions. Cependant, il reste toujours des possibilités d’améliorer les performances.

          C’est le cas de la fonction de recherche de blocs libres. Les blocs sont chacun représentés par un bit dans une structure indiquant s’ils sont disponibles ou pas. La recherche de blocs libres se faisait bit à bit, mais il est possible de gagner beaucoup de temps en testant 64 bits d’un coup pour savoir tout de suite qu’ils représentent tous des blocs occupés, et passer directement aux 64 bits suivants. Cela améliore les performances de la création et du redimensionnement de fichier, en particulier sur les architectures RISC-V (waddlesplash).

          Query parser

          Plusieurs systèmes de fichiers conçus pour BeOS ou Haiku (bfs, ramfs, et packagefs) permettent l’utilisation d’attributs indexés par le système de fichiers qui permettent d’effectuer des requêtes pour localiser des fichiers comme dans une base de données.

          Depuis la version beta 5 de Haiku, ces 3 systèmes de fichiers partagent le code utilisé pour parser une requête (envoyée sous forme de texte) et la convertir en une opération de recherche exécutable.

          Ce parser pouvait dans certains cas (requêtes trop complexes) déclencher volontairement un kernel panic. Celui-ci a été remplacé par une « simple » erreur, remontée à l’application qui a déclenché la requête. L’application aura la charge de remonter cette erreur à l’utilisateur, et de l’inviter à simplifier sa demande.

          block_cache

          Le cache de blocs, comme son nom l’indique, stocke en mémoire RAM une copie de certains blocs des systèmes de fichiers. Cela permet d’accélérer les opérations bas niveau sur le système de fichier, en particulier pour mettre en cache des structures internes du disque. Il complète le file_cache, qui lui se trouve à un niveau plus haut, et met en cache uniquement le contenu des fichiers lus et écrits par les applications.

          Le seul changement notable sur le block_cache est le retrait de paramètres inutilisés dans certaines fonctions, afin de simplifier le code (waddlesplash).

          kernel

          Une correction de bug sur le blocage des threads avec timeout (par exemple, l’attente d’un mutex ou d’un sémaphore avec un délai maximum): dans certains cas, une fonction pouvait retourner B_TIMED_OUT pour d’autres raisons que l’expiration du timer. Ce n’était pas traité correctement, et le noyau supposait que le timeout avait expiré, alors qu’il s’agissait d’autre chose. Des vérifications supplémentaires permettent de traiter ce cas correctement.

          Correction de problème sur la programmation des timeouts « absolus temps-réel ». Comme leur nom l’indique, ils référencent l’horloge « real time » (qui essaie de suivre l’heure et la date « réelle », par opposition à l’horloge système qui est basée sur l’uptime de la machine, mais garantit de ne jamais faire de saut ou revenir en arrière). Ces timers ne fonctionnaient pas du tout (ou alors, seulement sur un coup de chance), et restaient probablement bloqués pendant une durée beaucoup plus longue que demandé. Au passage, nettoyage du code de gestion des timers.

          Dans le code de gestion des interruptions: ajout d’assertions pour investiguer un bug dans les addons vmware ou virtualbox.

          Correction d’un bug dans l’implémentation de kqueue qui produisait un blocage au démarrage de la libevent (qui utilise maintenant kqueue pour Haiku).

          Des petites améliorations de performances: sur l’allocateur mémoire du noyau, sur l’utilisation de verrous dans la gestion de la mémoire virtuelle, des fuites de mémoire dans l’allocation de page, des améliorations sur la détection de références devenues invalides (jpelczar + waddlesplash).

          Le script de link du noyau refuse maintenant les sections inconnues avec un message d’erreur, au lieu de simplement les ignorer (korli).

          Correction du décompte du temps CPU utilisé par le thread en cours d’exécution, pour donner des résultats plus fiables dans les applications qui affichent l’utilisation CPU (waddlesplash).

          Refactorisation du décompte du temps d’exécution des appels systèmes. Seul le temps passé dans l’exécution du syscall est prise en compte, sans mesurer la mise en place d’un appel système et du retour vers l’espace utilisateur (qui ne peuvent de toutes façons pas être mesurées de façon fiable depuis le noyau). Cela rend l’affichage des durées d’exécution dans strace plus facile à interpréter (waddlesplash).

          Réduction de la taille maximale des tampons mémoire pour stocker des dirent à 8Kio. La plupart des applications n’utilisent pas un tampon aussi large, et les quelques-unes qui le faisaient ont été modifiées pour réduire la taille. Cette réduction permet d’utiliser un allocateur spécialisé beaucoup plus rapide, ce qui devrait compenser les rares cas où le tampon est trop petit pour récupérer tout le contenu d’un dossier en une seule fois (waddlesplash).

          Correction de plusieurs problèmes dans le système de gestion des ressources faibles (qui essaie de libérer de la mémoire quand il n’y en a plus assez de disponible). Dans certains cas, le système finit par geler ou déclencher un kernel panic, alors qu’il devrait toujours être possible de refuser des demandes d’allocation mémoire venant de l’espace utilisateur, et de conserver suffisamment de mémoire libre pour au moins afficher proprement une erreur.

          Amélioration de la gestion des mutex (exclusions mutuelles entre threads):

          • Ajout d’assertions pour détecter des cas de réveil d’un thread qui ne devrait pas l’être.
          • Correction d’un problème introduit récemment et investigué à l’aide de ces nouvelles assertions.
          • L’ABI des locks est identiques entre les builds du kernel en version debug ou release, ce qui permet de ne pas avoir besoin de recompiler tous les pilotes dans le même mode que le kernel. Les pilotes compilés en mode release vont déclencher une erreur de symbole manquant si on essaie de les utiliser avec un noyau en mode debug, dans l’autre sens, il n’y a pas de problème. Auparavant, dans les deux cas on obtenait des crashes ou un gel complet du système, difficile à investiguer et faisant perdre du temps.
          • Ajout d’assertions dans plusieurs cas pour détecter les utilisations incorrectes des rw-locks. Certaines activées par défaut, et d’autres uniquement sur demande à la compilation du noyau en raison de coût de vérification trop importants.
          • Correction de mauvaises utilisations des rwlocks ainsi détectées.

          Généralisation de l’utilisation de fonctions utilitaires partagées pour la conversion des timespec en durées en microsecondes. Cela permet aux fonctions concernées (entre autres kqueue) de bénéficier de contrôles de validité supplémentaires (waddlesplash).

          Ajout d’informations de debug supplémentaires dans la sortie de la commande slab_object du debugger du noyau.

          Réactivation de la calibration du TSC à partir d’informations du CPUID lorsque Haiku s’exécute dans un hyperviseur, comme c’était déjà le cas lorsqu’il s’exécute directement sur une machine physique. Le TSC est un timer interne du CPU qui permet des mesures de temps très rapides (une seule instruction CPU) mais dans une échelle de temps arbitraire qu’il faut corréler avec le « vrai » temps. Cela peut être fait soit à l’aide d’une mesure empirique (méthode historique), soit à l’aide d’informations sur cette horloge disponibles dans les informations retournées par l’instruction CPUID.

          Affichage de plus de fonctionnalités du CPU reconnues dans les logs de debug pour les processeurs x86 (korli).

          Ajout d’un raccourci clavier (Control+D) pour quitter le debugger noyau et reprendre l’exécution normale si possible (équivalent à la commande continue ou co) (mmlr).

          Le chargement des pilotes de périphériques se fait en priorité depuis les dossiers non-packaged avant de rechercher les fichiers dans les paquets logiciels, ce qui permet de tester facilement une version modifiée d’un pilote - sauf si les dossiers non-packaged sont désactivés dans la configuration du noyau (korli).

          VFS

          Le VFS (virtual file system) est le composant de Haiku qui gère l’accès aux fichiers. Il fait l’intermédiaire entre les appels systèmes liés aux fichiers (open, read, write…) et les systèmes de fichiers eux-mêmes. Il implémente autant que possible ce qui peut être mis en commun entre tous les systèmes de fichiers: résolution de chemins relatifs, vérification de permissions…

          Cela rend plus facile l’écriture d’un nouveau système de fichiers, qui peut alors se concentrer sur les aspects bas niveau et la gestion de ses structures de données.

          Ajout de vérifications d’intégrités supplémentaires dans le VFS pour détecter des bugs dans les systèmes de fichiers le plus rapidement possible, au lieu d’obtenir un crash du noyau difficile à investiguer un peu plus tard.

          Retrait d’un scan du bus SCSI et des pilotes associés par le device manager pour réduire un peu le temps de démarrage.

          Correction d’un gros problème dans l’API du noyau IORequest qui aboutissait à une confusion entre la taille totale d’une requête et l’offset de la dernière donnée transférée (les transferts ne commençant pas forcément à l’offset 0). La conséquence était l’écrasement de données dans le cache de fichiers, déclenchant des crashes du noyau avec des messages d’erreur incompréhensibles à propos des structures de pages. Correction d’un problème de calcul d’offset qui faisait que certaines opérations étaient considérées comme réussies, alors qu’il y avait en fait une erreur.

          Correction de problèmes de décomptage de références et de gestion du cache à l’interface entre ramfs et VFS, mis en évidence lors du travail de portage de Firefox.

          Ajout d’une acquisition de référence sur un vnode qui manquait dans le cache de fichiers (waddlesplash).

          Améliorations du cache d'entrées, dont en particulier la mise en cache du hash des noms de fichiers, pour éviter des comparaisons de chaînes de caractères inutiles.

          Gestion de la mémoire

          La gestion de la mémoire virtuelle est une des tâches essentielles d’un système d’exploitation. Elle garantit l’isolation entre les différents processus, permet d’utiliser la mémoire physique le mieux possible (éventuellement en déplaçant certaines allocations peu utilisées vers un espace d’échange sur disque), et permet aussi aux différents processus de se partager des données.

          Il s’agit également d’un composant très sollicité, et dont les performances impactent beaucoup le comportement du système. Une mauvaise gestion de la mémoire peut fortement ralentir le système ou le rendre instable.

          Ajout d’assertions dans le code gérant les pages de mémoire, pour essayer d’intercepter ce type de correction plus rapidement si elles se reproduisent.

          Dans l’arbre des areas globales : ajout d’assertions pour détecter les identifiants d’areas dupliqués (chaque area doit bien sûr avoir un identifiant unique).

          Implémentation de PAT (Page Attribute Table) pour les processeurs x86. Les PAT permettent de configurer des zones de mémoires qui peuvent ou ne peuvent pas être mises en cache (complètement ou en write-through). Elles remplacent les MTRR en permettant un contrôle plus fin et plus flexible. Au passage, nettoyage de l’implémentation des MTRR (préservée pour les processeurs plus anciens incompatibles avec PAT), ajout de nouvelles commandes dans le debugger noyau. Renommage des constantes B_MTR_* pour indiquer précisément leur rôle indépendamment des dénominations utilisées dans les registres MTRR qui ne sont pas très claires (mmlr).

          Lorsque le système utilise PAT, ajout d’assertions pour détecter les tentatives d’accéder à la même zone de mémoire physique avec des configurations de cache différentes. Elles ne sont pas activées lorqu'on utilise les MTRR, car ces dernières ne permettent pas une configuration aussi fine (waddlesplash).

          Ajout d’informations supplémentaire dans le message de kernel panic indiquant qu’une page devrait être libre mais qu’elle ne l’est pas. Modification de la commande page du debugger noyau pour récupérer la liste des espaces d’adressage depuis les structures du kernel plutôt que d’itérer sur tout l’espace d’adressage (ce qui pouvait fonctionner sur un espace 32 bit, mais pas en 64 bit).

          Correction du code de « guarded heap » du noyau qui ne compilait plus. Il s’agit d’un allocateur mémoire plus lent mais avec de nombreuses vérifications d’intégrité pour détecter les débordements de tampons, double free, et autres problèmes de gestion de la mémoire dans le noyau (kallisti5).

          Le fichier swap est automatiquement supprimé, et l’espace disque libéré, lors de la désactivation de la swap. Auparavant, un redémarrage était nécessaire (waddlesplash).

          Correction d’un problème dans l’allocation de mémoire « early boot » (avant que l’allocation normale soit mise en place), qui empêchait le démarrage sur les systèmes pouvant gérer de grandes quantités de mémoire (plusieurs centaines de Gio) (waddlesplash).

          libroot

          La libroot regroupe tous les composants de la librairie standard C (parfois découpée en libc, libm et libpthread pour d’autres systèmes). Elle contient en plus un certain nombre d’extensions spécifiques à Haiku et à BeOS.

          Changements effectués par waddlesplash, sauf mentions spécifiques:

          Nettoyage de code dans la classe WeakReferenceable, une classe de comptage de références intrusive qui autorise les références "faibles".

          Correction de problèmes dans le code d’interfaçage avec ICU pour la conversion de dates (nipos et waddlesplash).

          libnetwork

          Nettoyage de code de compatibilité avec BeOS dans la libnetwork, pour faire en sorte qu’il ne soit plus du tout compilé sur les architectures n’offrant pas de compatibilité avec BeOS.

          Compatibilité POSIX

          Implémentation minimale de mknod et mknodat dans le seul cas spécifié par POSIX, qui permet de réaliser une opération équivalente à mkfifo. La gestion des devices dans Haiku est très différente de celle utilisée traditionellement par UNIX, et ne se prête pas à l’implémentation des autres utilisations de ces fonctions.

          Rectification de l’implémentation des fonctions *at (par exemple linkat) qui permettent de réaliser une opération à partir d’un descripteur de fichier au lieu d’un path. Dans la libroot, ces fonctions envoyaient la valeur -1 aux appels systèmes pour implémenter AT_FDCWD. La valeur de AT_FDCWD a été modifiée pour choisir autre chose que -1 (qui est souvent utilisé pour indiquer une erreur dans le code de retour d’autres fonctions). Les appels systèmes acceptent pour l’instant les valeurs -1 et AT_FDCWD, mais rejettent maintenant toutes les autres valeurs négatives.

          Remplacement d’une partie du code de gestion des flux d’entrée-sortie par la version de la glibc. La bibliothèque libroot est un patchwork d’implémentations provenant de la glibc, de musl, et de divers BSD, un objectif à terme est d’essayer de se rapprocher d’une de ces implémentations, mais on ne sait pas encore trop de laquelle. En tout cas, le code des I/O provient majoritairement de la glibc afin d’être très compatible avec ce qui était utilisé dans BeOS.

          La fonction gmtime retourne une struct tm avec le champ tm_zone contenant la chaîne "GMT" (waddlesplash).

          Correction de la conversion des "surrogate pairs" dans la fonction mbrtowc.

          Mise en conformité de l’implémentation des threads avec POSIX :

          • Ajustement de code d’erreurs retournés par les fonctions
          • Suppression de la possibilité de retourner EINTR depuis un rwlock
          • Correction de deadlocks dans les barriers
          • Correction de plusieurs problèmes dans l’implémentation des sémaphores anonymes.

          Mise en place systématique de l’utilisation de _DEFAULT_SOURCE pour protéger les extensions à la norme POSIX, ce qui permet de les activer automatiquement via l’inclusion de features.h lorsque c’est possible.

          Nettoyage de quelques fichiers d’en-tête, dont en particulier <sys/select.h>, pour éviter de polluer l’espace global avec des macros et des définitions en double (waddlesplash).

          Prise en compte correcte du drapeau O_NONBLOCK lors de l’ouverture d’un FIFO (korli).

          runtime_loader

          Le runtime_loader est le composant responsable du chargement en mémoire des exécutables et du lancement de nouveaux processus. Il réalise la résolution des dépendances et la recherche des bibliothèques partagées nécessaires pour l’exécution d’un programme.

          Il reçoit des évolutions suite au portage d’applications complexes venues de Linux, qui nécessitent souvent plusieurs dizaines de bibliothèques partagées.

          Correction de problèmes détectés en testant un portage expérimental et instable de Firefox: crash du runtime_loader dans certains cas si on charge une bibliothèque (via dlopen ou load_add_on) dont il manque des dépendances.

          Retrait de l’option -fno-builtin dans les drapeaux de compilation du runtime_loader, comme cela avait déjà été fait pour la majorité de la libroot. Cela permet à gcc de remplacer des appels à des fonctions standardisées par une implémentation inline plus performante (waddlesplash).

          Outils de debug

          Développement d’outils pour enregistrer ce qu’il se passe pendant le démarrage du système et détecter d’éventuels problèmes de latence, de 'lock contention', etc. Au passage, correction de divers problèmes liés à ces outils : les barres de défilement de DebugAnalyzer, les permissions noyau dans transfer_area, etc.

          Amélioration de la remontée des valeurs de retour des appels systèmes vers strace sur les plateformes x86 32-bit.

          Pour terminer, un changement réalisé par mmlr : amélioration de l’allocateur mémoire "guarded heap" pour le rendre utilisable plus facilement, y compris comme allocateur pour tout le système. Cet allocateur permet de détecter les accès au-delà de la fin d’une zone mémoire allouée avec malloc(), ainsi que les accès à de la mémoire déjà libérée, mais au prix d’une consommation mémoire nettement plus élevée qu’un allocateur classique. La disponibilité d’un espace d’adressage de 64 bits permet de limiter les cas où une adresse mémoire est initialement utilisée pour une allocation, puis libérée et allouée à nouveau pour autre chose.

          Un problème de gestion d’erreur dans l’interfaçage entre le Debugger et le noyau pouvait conduire à un gel complet du système dans certains cas de plantage du debug_server, en particulier s’il n’y a plus assez de mémoire RAM disponible.

          Bootloader

          Ajout d’une vérification manquante pour prendre en compte l’option « BlockedEntries » dans le bootloader. Cette option s’appelait précédemment « EntriesBlacklist » mais a été renommée pour utiliser un terme non entaché de racisme. L’ancien nom continue de fonctionner pour ne pas casser les installations existantes, mais n’est plus documenté.

          Augmentation de la taille maximum autorisée pour les allocations « standard » sur la pile. L’allocateur mémoire du bootloader traite séparément les allocations de grande taille, mais ces allocations ne sont pas correctement libérées lors du transfert de contrôle vers le noyau, en particulier sur les machines utilisant un BIOS non EFI. Pour l’instant, une correction complète du problème semble compliquée à mettre en place, mais la modification permet de libérer de la mémoire allouée pour l’accès au packagefs (le bootloader a besoin d’y accéder pour trouver le noyau, qui est stocké dans un paquet). Ce changement permet de libérer plusieurs dizaines de Mio de mémoire, et complète les changements mentionnés plus haut sur la gestion des paquets après démarrage. Il est possible de configurer Haiku pour fonctionner avec moins de 100Mio de mémoire (waddlesplash).

          Réparation de la ré-initialisation des ports série sur le bootloader EFI. Le port série est utilisé à des fins de debug, mais il peut être accédé de plusieurs façons différentes (en adressant directement le matériel, ou bien via des services EFI dédiés). Le bootloader doit passer d’une méthode à l’autre à différentes étapes du démarrage: accès direct au port physique dans les premières étapes (en détectant s’il est bien présent à une adresse standard), accès via les services EFI une fois ceux-ci initialisés, puis à nouveau accès direct au matériel après l’arrêt des services EFI pour la dernière étape de passage de contrôle au noyau (cette fois-ci à une adresse qui peut être configurée dans les options du bootloader et du noyau). Ce fonctionnement ne s’insère pas forcément très bien dans la logique du bootloader, qui n’avait à l’origine pas été conçu pour une gestion aussi complexe des entrées-sorties (VoloDroid).

          Réduction de la quantité de logs liés à la mise en place de SMP (gestion de plusieurs processeurs) dans le bootloader pour BIOS (waddlesplash).

          Le menu de démarrage affiche la version (numéro 'hrev') du paquet système correspondant à chaque point de restauration disponible, ce qui facilite l’identification des états qui correspondent à un changement de version du système, et pas une simple installation, désinstallation ou mise à jour de paquets logiciels (waddlesplash).

          Documentation

          Haiku Book

          Le « Haiku Book » est un projet de documentation des APIs publiques de Haiku. Il doit à terme remplacer le « Be Book », qui documente les APIs de BeOS, mais ne peut pas être mis à jour à cause de se license CC BY-NC-ND. Actuellement, il faut jongler entre ces deux documentations.

          La documentation de B_INFINITE_TIMEOUT (constante permettant d’indiquer à certaines fonctions qu’on veut les exécuter sans timeout, et attendre indéfiniment) a été mise à jour pour indiquer explicitement que sa valeur numérique est INT64_MAX (waddlesplash).

          Correction de fautes de frappe dans la documentation des API liées aux entrées clavier (drea233).

          Haiku Interface Guidelines

          Ce document présente les bonnes pratiques et conventions pour la conception d’interfaces graphiques fonctionnant avec Haiku.

          Ajout d’une section sur la gestion des fichiers récemment utilisés et la façon dont ils peuvent être exposés aux utilisateurs.

          Wiki et documentation interne

          Le wiki contient des informations utiles aux développeurs de Haiku.

          La documentation « interne" documente le fonctionnement de Haiku en s’adressant principalement aux contributeurs du système, par opposition aux personnes qui souhaitent seulement développer ou porter des applications.

          Mise à jour de la page « release cookbook » indiquant toutes les étapes à suivre lors de la publication d’une version de Haiku.

          Notes d’administration système : mise à jour des instructions pour instancier des machines Google Cloud Platform (kallisti5).

          Système de build, environnement de compilation

          La compilation d’un système d’exploitation complet n’est pas chose facile. D’autant plus pour Haiku, qui présente les particularités suivantes:

          • Utilisation de deux versions de gcc (gcc 2.95.3 et gcc 13) pour la version 32 bit de Haiku, afin d’assurer la compatibilité binaire avec BeOS,
          • Possibilité de compilation croisée depuis Linux, Mac OS et d’autres systèmes, ou depuis un hôte Haiku,
          • Compilation d’outils pour la machine hôte de la compilation croisée, avec si nécessaire une couche de compatibilité permettant d’écrire ces outils en utilisant des API et fonctionnalités spécifiques à Haiku,
          • Possibilité de compiler des applications pour un système hôte existant (une autre version de Haiku) à des fins de test,
          • Compilation d’un système complet (noyau, bibliothèques, applications, image disque) en une seule opération.

          Pour ces raisons, l’utilisation d’un système de build haut niveau (CMake, Meson…) s’avère plutôt complexe. L’utilisation de make ou de ninja directement serait de trop bas niveau. Le choix de Haiku est donc d’utiliser l’outil jam, qui est malheureusement assez peu populaire et tombé à l’abandon dans sa version originale. Haiku maintient un fork de jam qui est concurrent de ceux maintenus par Boost et par Freetype.

          Reformatage des fichiers Jamfile pour lister une seule cible par ligne au lieu de les rassembler, cela facilite les rebase et résolutions de conflits (x512).

          Mise à jour de paquets en préparation pour la version beta 5: OpenSSL 3, Python 3.10, et autres mises à jour diverses (PulkoMandy, waddlesplash, kallisti5).

          Ajout de l’inclusion de <features.h> dans <sched.h>. Le fichier d’en-tête features.h configure la visibilité des extensions GNU et BSD aux fichiers d’include standards C et POSIX, en fonction d’options de ligne de commande du compilateur. L’inclusion de ce fichier permet d’utiliser facilement et par défaut ces extensions (PulkoMandy).

          Mise à jour des marque-pages fournis par défaut avec le navigateur WebPositive (waddlesplash).

          Ajout des en-têtes de la bibliothèque linprog dans le paquet haiku_devel. Ces en-têtes sont nécessaires pour les applications associées au système de layout d’interfaces graphiques ALM (korli).

          Correction de fautes de frappe dans des commentaires (jmairboeck) et d’un problème de compatibilité C89 dans un en-tête système (waddlesplash).

          La taille des images « nightly build » de Haiku est maintenant de 650 Mo, ce qui laisse un peu plus de place disponible pour les utiliser et créer quelques fichiers (jscipione).

          Diverses corrections pour une nouvelle fois essayer de faire fonctionner la compilation de Haiku avec Clang (waddlesplash, oanderso). Les choses en sont toujours au même point depuis plusieurs années, avec des corrections de temps en temps mais quelques parties du système qui ne fonctionnent toujours pas correctement.

          La compilation du profil « nightly » n’a plus besoin de générer le paquet haiku_source contenant le code source de Haiku. Ce paquet est inclus uniquement dans les images de releases (pour faciliter le respect strict de la licence GPL de certains composants de Haiku), mais, pour des raisons de dépendances entre cibles dans le système de build, il était tout de même généré pour les autres profils, ralentissant la compilation (waddlesplash).

          Améliorations du script ./configure (jessicah, OscarL et waddlesplash):

          • Le script vérifie que les options passées fournies sont valides, et rejette immédiatement les configurations incohérentes plutôt que de laisser la compilation échouer bien plus loin.
          • Validation que l’interpréteur Python sélectionné existe bien, et uniformisation de la syntaxe utilisée pour choisir un interpréteur avec la façon dont c’est fait pour d’autres outils.
          • Détection des options disponibles pour demander à wget de ré-essayer un téléchargement en cas d’échec, ce qui permet d’assurer la compatibilité avec wget2.
          • Utilisation automatique d’une version moderne de GCC pour compiler les outils « hôtes » lors de la compilation à partir d’une machine hôte fonctionnant sous Haiku en version 32 bit, en ignorant le compilateur par défaut qui est gcc 2 pour des raisons de compatibilité avec BeOS.

          Réorganisation du code source de libroot pour déplacer les implémentations de malloc dans des sous-dossiers séparés, et faciliter l’expérimentation avec d’autres implémentations de malloc. L’allocateur hoard2 utilisé actuellement n’est pas adapté aux architectures 64 bits, une tentative a été faite il y a quelques années avec rpmalloc, mais ce dernier pose des problèmes sur les
          architectures 32 bits. Des investigations sont en cours avec l’implémentation de malloc d’OpenBSD.

          L’outil de dessin Wonderbrush est maintenant disponible sur toutes les architectures. Historiquement, le code de Wonderbrush n’était pas libre, mais une version gratuite était offerte aux utilisateurs de Haiku. Le développeur principal de Wonderbrush n’est plus très actif sur le projet et a décidé de publier les sources, ce qui a permis de recompiler le programme en version 64 bits et plus tard sur les autres architectures non x86. Mais ces nouvelles versions n’avaient jamais été incluses dans Haiku (PulkoMandy).

          Nettoyage et centralisation des définitions préprocesseur pour la compatibilité avec BeOS. Désactivation de la compatibilité avec BeOS dans le noyau, la compatibilité avec les pilotes et modules noyau de BeOS n’étant plus assurée depuis quelque temps dans Haiku.

          Suppression de définitions de règles obsolètes et inutilisées dans le Jamfile permettant de construire le fichier package_repo (CodeforEvolution).

          Remise en service du test DiskDeviceManagerTest qui ne compilait plus (waddlesplash).

          ARM & PowerPC

          Actuellement, Haiku est disponible officiellement pour les architectures x86 32 et 64 bits. Une version RISC-V 64 bits expérimentale est également disponible mais pas encore totalement intégrée dans le dépôt de code principal, des discussions sont en cours sur la bonne façon de faire certains changements nécessaires. Les versions ARM (32 et 64 bits) et PowerPC sont les prochaines cibles sur la liste. La première, car c’est une architecture très populaire, la deuxième plutôt pour des raisons historiques : c’est l’une des architectures sur lesquelles fonctionne BeOS.

          Renommage de structures qui étaient initialement spécifiques à l’architecture x86, mais qui sont finalement utilisées également sur d’autres CPU sans nécessiter de changements (waddlesplash).

          Réparation de la console de texte du chargeur de démarrage OpenFirmware qui était cassée depuis l’adaptation pour OpenBOOT sur les machines SPARC (zeldakatze).

          Sur ARM, utilisation de la bonne instruction CPU pour mettre le processeur en veille quand il n’y a rien à faire (archeYR).

          oanderso continue le travail sur le portage ARM64:

          • Correction de plusieurs problèmes liés à la gestion du cache et de la MMU dans le bootloader, ce qui permet de démarrer le noyau dans une machine virtuelle sur un hôte Apple M1.
          • Correction de l’implémentation des timers dans le kernel qui ne fonctionnait pas dans les environnements virtualisés.
          • Quelques avancées sur la gestion de la MMU : Implémentation de la table de translation de la mémoire virtuelle, du traitement des exceptions matérielles (défauts de page), des TLBs.
          • Synchronisation du cache d’instructions.
          • Correction de problèmes de double lock.

          Ajout de messages sur le port série traçant l’exécution de méthodes spécifiques à une architecture qui ne sont pas encore implémentées. Ceci permet de détecter facilement quelle est la prochaine fonction à implémenter (waddlesplash).

          Nettoyage et documentation du fichier ArchitectureRules pour simplifier la configuration des options en ligne de commande du compilateur (qui doit savoir traiter deux versions de gcc et clang) (waddlesplash).

          Commentaires : voir le flux Atom ouvrir dans le navigateur

          • ✇LinuxFr.org : les dépêches
          • Deno 2.0 est là
            Le temps où Node.js régnait en maître comme la solution incontournable pour exécuter du code JavaScript côté serveur est-il révolu ? En tout cas, il a aujourd’hui des challengers de taille comme Bun (qui pourrait lui aussi mériter une dépêche) ou Deno. C'est donc de ce dernier qu'il sera question dans cette dépêche, à l'occasion de la sortie de sa version 2.0 lien nᵒ 1 : Annonce sur le blog officiellien nᵒ 2 : Site officiel de Denolien nᵒ 3 : JSRSommaire Pour rappel La mascotte ! Deno 1.x, de

          Deno 2.0 est là

          Le temps où Node.js régnait en maître comme la solution incontournable pour exécuter du code JavaScript côté serveur est-il révolu ? En tout cas, il a aujourd’hui des challengers de taille comme Bun (qui pourrait lui aussi mériter une dépêche) ou Deno. C'est donc de ce dernier qu'il sera question dans cette dépêche, à l'occasion de la sortie de sa version 2.0

          Sommaire

          Titre de l'image

          Pour rappel

          Deno est un runtime JavaScript et TypeScript. Il a vu le jour suite au constat de Ryan Dahl (créateur aussi de Node.js), que Node avait des problèmes de conceptions, et qu'il était nécessaire de repartir de zéro en tenant compte de l'expérience de Node pour ne pas refaire les mêmes erreurs. Il imagine Deno comme un runtime avec un modèle de sécurité par défaut plus strict. Les programmes Deno n'ont pas accès au système de fichiers, au réseau ou à l'environnement, sauf si on leur accorde explicitement ces permissions. Deno est écrit en Rust, et se base sur le moteur JavaScript V8 de Google. Deno se distingue également de Node en offrant la possibilité d'importer les dépendances via des URL, mettant en cache chaque module lors de l’importation pour améliorer la vitesse d’exécution.

          La mascotte !

          La première chose notable quand on passe de Node.js à Deno, c'est sa mascotte ! En effet, même si Node.js possède bien une petite tortue comme mascotte, celle-ci n'est utilisée nulle part ! Personnellement, j'ai toujours trouvé bien plus chouettes les projets qui ont des petites bestioles comme mascotte (Mozilla, Tux …). Et chez Deno, le dinosaure mascotte est omniprésent sur tout le site. Et en plus, à l'occasion de la version 2.0, on peut habiller notre dino sur la home page du projet ! Et ça c'est cool ! Voici le mien, qui est en compagnie de Ferris, la mascotte officieuse de Rust !

          Mon dino

          Bon, comme je ne suis pas sûr que tout le monde partage ma passion pour les mascottes, on va passer au côté plus technique ! 🤣

          Deno 1.x, des débuts difficiles !

          La version 1.0 sortie en mai 2020 a du mal à se faire une place et reste dans l'ombre de son grand frère. En effet, même si Deno offre un grand lot de nouveautés et est plus sécurisé par défaut, la très large adoption de Node et le fait que les projets développés pour Node ne sont pas forcément compatibles avec Deno rend l’adoption de ce dernier difficile. De plus, l'utilisation de CDN plutôt que d'installer les dépendances localement (dans le répertoire node_modules) a certes de nombreux avantages, mais cela rend votre projet dépendant de disponibilité du réseau ou peut entraîner des problèmes de performances si le CDN est éloigné géographiquement.

          Les nouveautés de la version 2.0

          Deno est désormais 100% compatible avec Node.js, et un gestionnaire de paquets officiel a vu le jour. Vous pouvez maintenant utiliser deno add et deno removepour ajouter ou retirer un paquet à votre projet.

          Autour du projet Deno, JavaScript Registry (JSR) un dépôt de paquets JavaScript universel !

          Le registre NPM s'est construit autour de Node.js afin de gérer facilement les dépendances de nos projets. Il a donc été développé pour Node.js à une époque où Node était la seule solution pour exécuter du code JavaScript côté serveur. En près de 15 ans, le registre NPM a rassemblé un peu moins de 3 millions de paquets et a très largement rempli sa mission toutes ces années. Mais aujourd'hui, la situation a changé, il existe plusieurs runtimes pouvant exécuter du code JavaScript (ou TypeScript) côté serveur. Et du côté front-end, les frameworks se sont multipliés et sont devenus de plus en plus complexes et nécessitent aussi l'utilisation d'un gestionnaire de paquets. Un registre de paquets fondé autour de Node.js uniquement est donc beaucoup moins pertinent qu'en 2010.
          C'est donc pourquoi, à l'initiative du projet Deno, un nouveau registre de paquets JavaScript et TypeScript universel pointe aujourd'hui le bout de son nez. Il s'agit donc de JSR (JavaScript Registry).

          Dans JSR, quand on va sur la page d'un paquet, en haut à droite, on a les logos des environnements compatibles avec le paquet :

          Titre de l'image

          Performances du runtime

          Niveau performance, ça donne quoi ?

          On voit souvent l'affirmation que Deno serait plus rapide que Node.js. Mais ça donne quoi en réalité ?

          J'ai voulu faire un petit test sans prétentions pour voir ce que ça donne. Je voulais faire des tests plus poussés sur différents systèmes d'exploitation et architectures, mais par manque de temps, le test sera donc fait sur un seul système et un seul ordinateur et il s'agit d'un Mac… Un comble pour LinuxFr.org, mais c'est l'ordinateur que j'avais à disposition à ce moment-là. Mais sinon, je ne porte pas spécialement Apple dans mon cœur, bien au contraire !

          J'ai testé l’exécution d'une même API sur Node. et Deno pour voir les différences de performance entre ces solutions. Pour ce test, j'ai utilisé une API Rest que j'ai développée pour le site de la société AudioSoft. J'ai fait la même requête POST 10 fois sur la même route avec les mêmes données. Il est important de préciser que c'est la première fois que je fais ce genre de tests, et que je ne fais peut-être pas tout dans les règles de l'art. Il y a des éléments extérieurs à Node et Deno qui peuvent influencer les scores. Notamment, la base de données utilisée pour le test était accessible via Internet, et des différences de débit ont pu fausser les tests.

          Test sur un MacBook Pro (2,6 GHz Intel Core i7 6 cœurs, AMD Radeon Pro 5300M 4 Go Intel UHD Graphics 630 1536 Mo, 16 Go 2667 MHz DDR4) sous macOS Sonoma

          Node: Le temps moyen pour exécuter le test de 126 millisecondes
          Deno: Le temps moyen pour exécuter le test de 93 millisecondes

          Performances du gestionnaire de paquets

          Comme dit précédemment, Deno c'est aussi un gestionnaire de paquets. J'ai donc trouvé intéressant de tester les principaux gestionnaires de paquets sur différents environnements.
          Pour ce test je me base sur la même API Rest que pour le test précédant, les dépendances à installer pour cette API sont : bcrypt, body-parser, dotenv, express, jsonwebtoken, mariadb, multer, mysql2, nodemailer, et sequelize. Le test a été fait sur un MacBook Pro. Pour effectuer ce test, le cache des gestionnaires de paquets ont été nettoyés et les fichiers-verrous supprimés.

          Avec NPM, l'installation a mis 10 secondes.

          Avec Deno, l'installation a mis 1 seconde.

          Avec Bun, l'installation a mis 3 secondes.

          On voit très clairement que NPM est beaucoup plus lent que ses deux concurrents. L'écart est plus faible entre Deno et Bun. Mais Deno est bien le plus rapide des trois.

          Avant de réaliser ce test, j'en ai effectué un en oubliant de nettoyer le cache et de supprimer package-lock.json. Les résultats étaient alors 8 secondes pour NPM, 5 secondes pour Deno et 4 secondes pour Bun. Il est logique de constater que NPM est plus rapide, en revanche, je trouve surprenant que Deno et Bun aient été ralentis. Il est possible que les gestionnaires de paquets aient parcouru package-lock.json pour garder les versions présentes dans ce fichier, ce qui les aurait tous les trois ralentis. Et NPM a peut-être pu bénéficier de son cache (car je l'utilise bien plus que les deux autres sur mon ordinateur), Deno et Bun eux n'avaient peut-être pas grand-chose dans leurs caches, ont donc été ralentis. Il est donc important de supprimer les lockfile en cas de migration d'un projet.

          Comme je le disais plus haut, c'est la première fois que j'effectue ce genre de test comparatif. Si vous avez des conseils sur les bonnes méthodes pour faire des tests plus fiables, ça m’intéresse !

          Deno 2.1 est là

          Étant donné que j'ai mis environ un siècle pour rédiger cette dépêche, Deno 2.1 est sortie entre temps ! 🤣
          Je vous liste donc les principales nouveautés apportées à la version 2.1 sans les commenter 😉

          • Support natif de WebAssembly (Wasm) : Il est désormais possible d'importer directement des modules Wasm, simplifiant leur utilisation et améliorant les performances.
          • Version Long Term Support (LTS) : Deno 2.1 inaugure la première version LTS, garantissant des correctifs de bugs et des améliorations de performance pendant… Six mois… On n'est pas encore aux 30 mois des versions LTS de Node.js… Cela viendra peut-être plus tard. 🙂
          • Commande deno init --npm vite : Cette commande simplifie la création de nouveaux projets en utilisant des outils comme Vite, en automatisant l'initialisation et en réduisant la configuration manuelle.
          • Gestion des dépendances : Introduction de la commande deno outdated pour gérer les mises à jour des dépendances JSR et npm.

          Conclusion

          Si vous êtes développeur Node.js, je vous conseille de vous intéresser à Deno, et même à Bun. Je ne sais pas si ces deux runtime sont totalement prêts pour des projets en production (par exemple, Deno 2.1 n'a que 6 mois de durée de vie, ce qui est plutôt contraignant pour les serveurs.). Mais peut-être que dans un futur proche, il sera cohérent de migrer vers l'un de ces deux-là.

          Commentaires : voir le flux Atom ouvrir dans le navigateur

          • ✇LinuxFr.org : les dépêches
          • Venez nous retrouver à Open Source Experience les 4 et 5 décembre #OSXP2024
            La quatrième édition d'Open Source Experience (ou OSXP2024 pour les intimes) arrive à grand pas les 4 et 5 décembre prochains au Palais des Congrès de Paris. C'est un événement désormais rituel qui propose à la fois : une centaine de conférences avec 125 conférenciers, dont le programme est en ligne et détaillé dans la suite de la dépêche ; une partie exposition avec 90 exposants, dont un village associatif un peu réduit cette année (sept stands) Et LinuxFr.org répond présent comme d’habit

          Venez nous retrouver à Open Source Experience les 4 et 5 décembre #OSXP2024

          La quatrième édition d'Open Source Experience (ou OSXP2024 pour les intimes) arrive à grand pas les 4 et 5 décembre prochains au Palais des Congrès de Paris. C'est un événement désormais rituel qui propose à la fois :

          • une centaine de conférences avec 125 conférenciers, dont le programme est en ligne et détaillé dans la suite de la dépêche ;
          • une partie exposition avec 90 exposants, dont un village associatif un peu réduit cette année (sept stands)

          Bannière OSXP24

          Et LinuxFr.org répond présent comme d’habitude depuis de nombreuses années. Vous pourrez donc nous y retrouver, stand A02 (tout en bas à droite sur le plan). Une partie de l’équipe du site LinuxFr.org sera présente au sein du village associatif pour vous faire découvrir le site, discuter, répondre à toutes les questions que vous pourriez vous poser, vous donner des autocollants du site et vous faire gagner des kilos de livres, mais pas que (lisez plus bas, on renouvelle comme chaque année).

          Ce sera aussi l’occasion de se retrouver en chair et en os pour celles et ceux qui pourront faire le déplacement et au vu du programme toujours très dense, on vous incite vraiment à venir y faire un tour.

          Sommaire

          Programme des conférences

          Le programme de cette 4e édition d'Open Source Experience a été publié par les organisateurs. Plus d'une centaine de conférences, tables rondes, workshops à l'affiche, autour de trois thématiques qui veulent mettre en avant les enjeux et bénéfices de l'open source pour les organisations avec des cas d’utilisation concrets, le tout autour de cinq thématiques.

          Thématiques

          • IA, Machine Learning & Data ;
          • Cloud, Infra & IoT ;
          • Cybersécurité ;
          • Solutions d'entreprise ;
          • Business et enjeux.

          Temps forts

          En marge des conférences vous retrouverez plusieurs événements dans l'événement :

          • L'AssoLution, le temps fort associatif
          • Le concours des Acteurs du Libre dont nous avons remporté le prix du numérique ouvert et éthique en 2019
          • Les trophées Territoire Numérique Libre

          Vous pourrez également assister à plusieurs animations : podcasts, jeux, concerts,…

          Découvrez le programme complet sur le site de OSXP !

          Village associatif

          Les associations présentes

          Comme chaque année, un village associatif sera présent, mais il sera plus réduit cette année, suite à une réduction de l'espace exposition. Seront présents en plus de LinuxFr.org : Adullact, April, Framasoft, Libervia, MozFr, La Mouette, les Mongueurs de Perl, VLC et Wikimedia France.

          Mais que vient faire LinuxFr.org à Open Source Experience ?

          Nous serons en A02, exilés au bout du village des associations lui même dans le coin du salon, au plus loin des conférences et de l'espace VIP. Ferait-on trop de bruit avec notre mégaphone ? Une partie de l’équipe sera présente pour :

          • rencontrer les personnes contributrices et notre lectorat ;
          • expliquer le principe de LinuxFr.org aux personnes qui ne connaissent pas (encore) (bien) le site ;
          • inciter notre lectorat à contribuer : nous avons pu constater que certaines personnes ne se sentaient pas — à tort, le plus souvent – le niveau pour passer la modération (il y a les journaux aussi) et surtout affronter la communauté de LinuxFr.org, qui peut être très exigeante ;
          • vous faire gagner des livres (nous nous sommes encore démenés pour vous ! Merci aux éditions D-Booker, Eyrolles et ENI pour les dons) ;
          • vous donner (oui, on est comme ça, on donne) des autocollants LinuxFr.org inspirés de nos logos passés ou actuels (encore un énorme merci à nos amis de Grafik plus pour les impressions à un tarif proprement indécent) ;
          • parader avec nos nouveaux polos plus responsables ; polos LinuxFr
          • participer à quelques-unes des 100 conférences décrites plus haut
          • Et surtout animer avec Bookynette, la présidente de l'April, l'AssoLution, le temps fort associatif !
          Le stand Linuxfr tirage au sort sur le stand

          Merci à tous ceux qui passeront nous saluer mercredi et jeudi sur le stand B10, nous vous attendons de pied ferme. Nous allons tenter de relayer les nouvelles de l’événement via notre compte X @linuxfrorg et/ou BlueSky, en attendant un compte-rendu plus formel post-salon.

          « L'AssoLution »

          Après Section d’Assos , l’Assaut de Bien Fêteurs et la Zone Associative Déjantée, OSXP propose cette année L'AssoLution, l’absolution à la dissolution ! Comme chaque année, LinuxFr.org fait l’animation des associations, réunissant geeks, décideurs et lutins pour un moment festif et détendu. La partie musicale sera gérée par KPTN (aka Clément Oudot) de Worteks. Un bon moment festif en perspective. ! Et nous avons encore vu les choses en grand pour s’assurer de votre présence, moins de rébarbatif et plus de fun. Au menu :

          • Discours d’absolution aux codeurs propriétaires repentis
          • Après nos 25 ans l'année passée, Framasoft viendra nous faire un rapide bilan de ses 20 ans cette année (. Toujours une bonne occasion de célébrer !
          • Notre Quiz sympatico-ludique façon Burger Quizz avec plein de cadeaux et de goodies à remporter grâce à nos sympathiques mécènes (voir plus loin).
          • Vu que cela se déroule pendant la pause méridienne, nos amis des Fondations AlmaLinux OS, Eclipse et Open Source Initiative fourniront les cupcakes (une fois n'est pas coutume) !

          📅 Jeudi 5 décembre 2024
          ⏰ 12h30
          🗺️ Salle Laurent Séguin

          quiz à l’OSXP 2023, la scène quizz à l’OSXP 2023, le public Les cupcakes de 2023

          Des cadeaux en pagaille

          C’est pas tout ça, mais on sait que vous venez aussi nous voir pour les cadeaux et les tirages au sort quotidien pour repartir avec votre dose de connaissance, mais aussi de joie et de bonne humeur !

          L'année dernière, nous avions eu pas mal de succès avec notre Fairphone et nos Lego. On remet donc ça, mais pour les remporter, il faudra se distinguer au quiz pour tenter de remporter :

          • un Fairphone 5 vert (de chez Murena avec /e/OS dessus) ;
          • un casque audio Fairbuds XL vert ;
          • un kit de démarrage Raspberry Pi 5 ;
          • le jeu de société "Les Aventuriers du Rail : Légendes de l’Ouest" ;
          • une boîte de Lego architecture Notre-Dame de Paris vu qu'elle va rouvrir sous peu !
          • et des abonnements à la bibliothèque numérique des éditions ENI (en plus des livres, voir plus loin).

          Liste des lots pour le quiz comprenant un Fairphone 5 vert (smartphone durable), un casque audio Fairbuds XL vert, un kit de démarrage Raspberry Pi 5, le jeu de société "Les Aventuriers du Rail : Légendes de l’Ouest", et une boîte LEGO représentant la cathédrale Notre-Dame de Paris dans la collection Architecture.

          Nous en profitons pour remercier les sociétés Passbolt et AdmanTIC qui ont financé ces cadeaux.

          Merci Passbolt Merci Admantic

          Il y aura aussi plus de 25 de livres à gagner parmi 22 références de nos partenaires habituels : les éditions ENI, les éditions Eyrolles et désormais les éditions D-Booker.

          Logo éditions ENI Logo éditions Eyrolles Logo éditions B-BookeR
               

          Soyez présent, on remet en jeu tout lot non réclamé sur place ! Et nous aurons des lots de consolation.

          Livres à gagner

          Informations pratiques

          Concrètement, pour nous rejoindre sur place

          • Adresse : Palais des Congrès – 2 Place de la Porte Maillot – 75017 Paris
          • Stand LinuxFr.org : A02
          • Dates : mercredi 4 et jeudi 5 décembre 2024
          • Horaires d’ouverture : de 9h00 à 18h00
          • Accès transport en commun
            • Métro Ligne 1, Station Porte Maillot – sortie 3.
            • RER Ligne C, Station Neuilly – Porte Maillot.
            • BUS Lignes 43, 73, 82, 244 PC

          Commentaires : voir le flux Atom ouvrir dans le navigateur

          • ✇LinuxFr.org : les dépêches
          • FreeCAD 1.0
            FreeCAD est sorti le 18 novembre 2024 en version 1.0 (voir l'annonce officielle et sa vidéo associée). Cette sortie est marquée par une amélioration majeure : l'atténuation du problème de dénomination topologique. lien nᵒ 1 : Site officiellien nᵒ 2 : Le forum officiel multilanguelien nᵒ 3 : Notes de versions de la sortie de la version 1.0lien nᵒ 4 : Versions publiées de FreeCADlien nᵒ 5 : Blog FreeCAD : annonces, suivi avancement, tutorielsSommaire Qu'est-ce que FreeCAD ? Historique Le probl

          FreeCAD 1.0

          FreeCAD est sorti le 18 novembre 2024 en version 1.0 (voir l'annonce officielle et sa vidéo associée). Cette sortie est marquée par une amélioration majeure : l'atténuation du problème de dénomination topologique.

          Nouveau logo FreeCAD

          Sommaire

          La dernière dépêche sur FreeCAD remonte à avril 2021 pour la sortie de la version 0.19. Depuis, il y a eu les versions 0.20 (juin 2022) et 0.21 (août 2023). Cette version 1.0 a porté le nom de 0.22 pendant son développement.

          Qu'est-ce que FreeCAD ?

          Exemple 1 utilisation

          Extrait de wiki.freecad.org :
          FreeCAD est un modeleur paramétrique de CAO 3D open source sous licence LGPL. FreeCAD est destiné à l'ingénierie mécanique et à la conception de produits mais — étant très générique — il s'adapte également à une gamme plus large d'utilisations autour de l'ingénierie, telles que l'architecture, l'analyse par éléments finis, l'impression 3D et d'autres tâches.

          FreeCAD propose des outils similaires à CATIA, SolidWorks, Solid Edge ou Revit et entre donc également dans la catégorie CAO, GCVP, CFAO, IAO et BIM. Il s'agit d'un modélisateur paramétrique basé sur les caractéristiques d'une architecture logicielle modulaire qui permet de fournir des fonctionnalités supplémentaires sans modifier le système de base.

          FreeCAD est aussi multiplateforme. Il fonctionne sous Windows, Linux/Unix et macOS avec la même apparence et les mêmes fonctionnalités sous toutes les plateformes.

          Historique

          La toute première version de FreeCAD est sortie en 2002. FreeCAD est développé en C++, Qt et Python et son cœur repose sur les bibliothèques OpenCASCADE (ou OCCT) spécialisées dans la CAO.

          Son développement est assuré par un large panel de contributeurs : certains sont historiques, d'autres sont spécialisés sur un aspect particulier et beaucoup sont plus ou moins occasionnels.

          Les versions se sont enchaînées à un rythme quasi annuel, apportant moult améliorations et fonctionnalités nouvelles.

          En 2021, quelques contributeurs historiques fondent la FreeCAD Project Association (FPA) qui est un organisme indépendant à but non lucratif pour collecter des dons et apporter un soutien au développement du projet.
          Ce soutien passe notamment par leur programme "FreeCAD Grant Program", qui permet d'embaucher ou de récompenser des personnes pour des projets spécifiques. Ce programme a un budget de 50k$ pour l'année 2024. A titre d'exemple récent, 500$ ont été octroyés pour une étude sur les runners CI de Github, 1000$ pour un gros travail de correction de bugs, et enfin 500$ pour la création d'une vidéo sur les nouvelles fonctionnalités de cette version 1.0.

          FreeCAD bénéficie d'une communauté impliquée permettant notamment d'avoir une documentation complète, à jour et traduite dans de nombreuses langues.

          Le problème de dénomination topologique

          C'était un des points noirs de FreeCAD jusqu'à cette version 1.0.
          Il faut imaginer que dans ce logiciel, la modélisation d'une pièce (dans le sens objet physique) passe par une suite d'opérations mathématiques et géométriques en définissant à chaque fois des contraintes ou des paramètres. Une opération est par exemple la création d'un trou borgne de 5 mm sur telle face à 10 mm des bords haut et gauche. Un autre exemple est d'ajouter une « languette » sur telle face cylindrique. Ou bien d'ajouter un chanfrein de 2 mm sur telle arête, etc.

          Ainsi, petit à petit, la pièce modélisée se construit, prend forme, se détaille et se complexifie.

          Cet historique de ces opérations successives est toujours présent et modifiable. À tout moment, il est possible de modifier une des étapes intermédiaires.

          D'un point de vue technique, vous aurez sans doute compris que chaque opération s'applique à un élément précis et existant de la pièce à ce moment-là (une face ou une arête par exemple). Dans FreeCAD ces éléments ont tous un identifiant unique (Face6, Edge9, etc.), continu et incrémental. Si l'objet a 13 faces à une des étapes, les faces seront numérotées de Face1 à Face13. Chaque opération est rattachée à l'identifiant de l'élément (Face5 par exemple).

          Et le problème se situe à ce niveau : lors d'une modification d'une étape intermédiaire, il arrive souvent que cela change la géométrie globale de la pièce et donc que les nombres de faces ou d'arêtes augmentent ou diminuent. Et FreeCAD réattribue alors ces identifiants uniques aux différents éléments.
          Ainsi, si l'objet passe de 13 à 11 faces, c'est l'ensemble des faces qui vont recevoir un nouvel identifiant dans la plage Face1 à Face11, avec un très fort risque qu'une face, pourtant non touchée par la modification, porte un identifiant différent.

          Et vous voyez le problème arriver : si une des opérations suivantes dans l'historique était de faire un perçage sur la Face6 qui est maintenant devenue la Face3… Toute la modélisation part en vrille.

          Ce problème de dénomination topologique est documenté sur le wiki de FreeCAD : problème de dénomination topologique.

          Pour éviter cela, il était conseillé de suivre un ensemble de bonnes pratiques de modélisation sous FreeCAD : Édition de fonctions. Il faudra certainement suivre l'évolution de cette page avec cette sortie.

          Cette version 1.0 marque donc l'intégration de codes correctifs de cette problématique. Les notes de version indiquent tout de même que tout n'est pas résolu, et qu'il y aura d'autres améliorations dans les prochaines versions. Cette petite vidéo en anglais vous montre la différence de comportement entre la version 0.21 et 0.22dev (qui a servi de base à la 1.0).

          Les autres améliorations

          Un outil d'assemblage par défaut avec solveur dynamique

          Le terme assemblage désigne la fonctionnalité de regrouper plusieurs éléments afin d'obtenir un objet fonctionnel. Ce peut être, par exemple, une boîte constituée d'un couvercle sur charnières maintenues par des vis avec des rangements amovibles à l'intérieur. Ou bien un moteur thermique avec ses carters, vilebrequin, bielles, pistons, soupapes, etc. Il est parfois utile de pouvoir fournir des indications de positionnement et/ou de liberté des éléments entre eux, et de pouvoir animer le tout.
          Ces opérations d'assemblage n'étaient pas intégrées dans FreeCAD avant la version 1.0. Elles étaient néanmoins possibles grâce aux ateliers. Plusieurs ont été créés pour cela avec chacun leurs spécificités et leurs approches mais aussi une incompatibilité entre eux : A2plus, Assembly3 ou Assembly4.
          Cette version 1.0 propose un nouvel atelier mais intégré par défaut. Il a été mis au point par la société Ondsel (voir plus bas). Il est encore jeune, et il est encore trop tôt pour savoir s'il finira par s'imposer par rapport à l'existant déjà en place. Un tutoriel concernant l'atelier d'assemblage est d'ores et déjà disponible pour une introduction à cette nouvelle fonctionnalité de la v1.0.

          L'atelier sketcher amélioré

          Cet atelier permet de dessiner les esquisses techniques utilisées dans la conception mécanique. C'est dans celui-ci que sont dessinés les « plans 2D » avec les cotes et les contraintes dimensionnelles et spatiales. Cette version apporte un nombre conséquent d'améliorations et de nouvelles fonctionnalités rendant son utilisation plus facile, plus puissante et plus rapide. Le mieux est de regarder les notes de version animées.

          Les ateliers Arch et BIM sont morts, vive la prise en charge native du format ouvert IFC

          Si le titre est cryptique, c'est que l'on parle de BTP et d'outils destinés aux équipes de Maîtrise d'Œuvre impliquées dans la conception d'une opération construction (Architectes, Bureaux d'Études). Comme ce n'est pas forcément le lot commun des visiteurs de LinuxFr.org, résumons la situation:

          • L'atelier Arch, pour Architecture, exploite depuis longtemps les capacités de création 3D de FreeCAD pour dessiner facilement, fondations, murs, planchers, fenêtres, portes etc. Cet atelier se basait sur le format natif des fichiers FreeCAD, *.FcStd.

          • Dans l'atelier BIM (pour Building Information Model <= l'article Wikipedia_FR est bien écrit pour qui veut comprendre l'essentiel), on retrouve un certain nombre d'outils de dessin et de création d'objets qui s'avèrent redondants pour certains avec ceux de l'outil Arch tout en implémentant les paradigmes bien plus vastes qu'induit l'approche BIM d'un projet de construction <=> pas uniquement de la géométrie, mais aussi du prix, des données mécaniques, physiques, des fiches produit, du planning …

          • L'approche BIM tend à se généraliser dès lors que la complexité et le coût du projet le justifient. Elle repose (en théorie) sur un format d'échange IFC (pour Industry Foundation Class).
            Il est ouvert et au format texte.
            Oui avec vim, c'est possible de bidouiller ;)
            mais un fichier IFC fait rapidement quelques centaines de Mo voire quelques Go …

          L'Association "Building Smart" en définit les caractéristiques. Tous les logiciels sur le marché savent ouvrir et exporter dans ce format, à la norme IFC 2.3 ad minima et IFC 4.2 voire 4.3 pour les up to date.

          L'atelier BIM de FreeCAD utilisait jusqu'à présent IfcOpenShell, une application tierce Open Source pour convertir un fichier du format *.ifc vers du *.FcStd en passant (sans doute) par du OpenScad dans le processus.

          Titre de l'image
          Une image qui devrait parler au LinuxFrien (!) pour la classe IFC Material-Constituent-Set,

          Pour la version 1.0 de FreeCAD, Yorik Van Havre, développeur historique de FreeCAD, (par ailleurs, architecte et Président la FreeCAD Project Association) a entrepris de fusionner ces deux ateliers, d'en faire une fonctionnalité native de FreeCAD, c'est-à-dire qui se passe du vaillant IfcOpenShell (grâce notamment au travail fait sur Blender-Bim) pour que FreeCAD puisse ouvrir et enregistrer directement au format IFC sans conversion inutile.

          L'atelier FEM

          Cet atelier d'analyse par éléments finis comporte également des améliorations considérées comme majeures avec cette version 1.0, détaillées dans un article de blog sur l'atelier FEM de FreeCAD.

          Les avancées majeures sont liées à la prise en charge de fonctionnalités de CalculiX, un des solveurs utilisés par cet atelier : symétrie cyclique, analyses 2D et contraintes de corps rigide.

          Le reste

          Comme à chaque nouvelle version, beaucoup de choses ont été apportées, que ce soit dans l'interface, ou dans la plupart des ateliers intégrés. Les notes de version de la v1.0, comme très souvent détaillées en images, permettent de voir l'évolution de ce logiciel.

          FreeCAD a également annoncé son nouveau logo, choisi après un appel à concourir auprès de la communauté (lien). Le logo en SVG est disponible sur cette page.

          L'essai commercial d'Ondsel

          Outre la création en 2021 de l'association FPA (voir plus haut), d'autres développeurs, notamment Brad Collette, mainteneur de longue date de l'atelier Path et auteur de deux livres sur FreeCAD, ont créé début 2023 la société américaine ONDSEL sous la forme d'une Public Benefit Corporation (PBC) qui pourrait se traduire par « une entreprise d'intérêt pour la société ». Malheureusement, après environ 2 ans, Brad Collette informe de l'arrêt de la société ONDSEL, faute d'avoir trouvé un marché.

          La société voulait s'appuyer sur FreeCAD pour « apporter des fonctionnalités commerciales qui rendent FreeCAD plus utile aux utilisateurs commerciaux ». (Source)

          Pour cela, ONDSEL a produit sa propre version de FreeCAD avec ses propres choix esthétiques et ergonomiques, et a fourni un cloud pour simplifier le travail en équipe et le partage.
          À noter qu'ONDSEL indiquait soumettre ses améliorations à FreeCAD pour intégration et que son cloud était disponible sous forme de module dans FreeCAD. Ces améliorations se retrouvent dans cette version 1.0 de FreeCAD, notamment le nouvel outil intégré d'assemblage ainsi que les très nombreuses nouvelles fonctionnalités de l'atelier Sketcher.

          La société ONDSEL avait détaillé sa relation avec le projet FreeCAD indiquant notamment leur mode de collaboration. Ils avaient également un blog en anglais intéressant, où ils abordent plusieurs thématiques, notamment sur l'évolution de CATIA ou bien la liste des nouveautés agrémentée de nombreuses animations.

          Dans l'annonce de cet arrêt, Brad Collette revient également sur ce qu'ils ont apporté au projet FreeCAD. Tout ce qu'ils ont développé était en open source et déjà intégré pour la plupart à FreeCAD. Les fondateurs d'ONDSEL continueront de contribuer au projet directement.

          Commentaires : voir le flux Atom ouvrir dans le navigateur

          • ✇LinuxFr.org : les dépêches
          • La conquête de l’espace : une affaire féminine, première partie du NACA à la NASA
            Pour cette journée Ada Lovelace, on vous invite à la conquête de l’espace, une histoire qui n’aurait peut-être pas pu se faire sans les femmes. Pas uniquement parce que ce sont des femmes : les anonymes qui ont tressé les mémoires en tore de ferrite des missions Apollo, ou les plus connues qui ont voyagé dans l’espace. Mais aussi parce qu’elles ont calculé ou codé les explorations spatiales. Et comme c’est un sujet vaste, il s’agit, pour l’instant, de la première partie consacrée à trois femmes

          La conquête de l’espace : une affaire féminine, première partie du NACA à la NASA

          Pour cette journée Ada Lovelace, on vous invite à la conquête de l’espace, une histoire qui n’aurait peut-être pas pu se faire sans les femmes. Pas uniquement parce que ce sont des femmes : les anonymes qui ont tressé les mémoires en tore de ferrite des missions Apollo, ou les plus connues qui ont voyagé dans l’espace. Mais aussi parce qu’elles ont calculé ou codé les explorations spatiales. Et comme c’est un sujet vaste, il s’agit, pour l’instant, de la première partie consacrée à trois femmes afro-américaines qui ont travaillé au NACA puis à la NASA : Dorothy Vaughan (1910 – 2008), Katherine Johnson (1919-2020) et Mary Jackson (1921 – 2005). Les portraits de ces trois femmes sont précédés d’une chronologie de la conquête de l’espace.

          Journée Ada Lovelace

          Sommaire

          Préambule

          La journée Ada Lovelace (en) (Ada Lovelace Day ou ALD en anglais) est une journée internationale consacrée aux réalisations des femmes en science, technologie, ingénierie et mathématiques (STIM ou STEM en anglais). Elle a lieu le deuxième mardi du mois d’octobre. En 2023, cette journée avait été, pour LinuxFr.org, l’occasion d’évoquer Lorinda Cherry, membre de l’équipe de conception d’Unix, Evi Nemeth et la première hackeuse Judith Milhon. Et c’est, on l’aura peut-être compris, surtout un prétexte pour parler de l’histoire de l’informatique.

          Cette dépêche et sa suivante sont malheureusement américano-centrées. Et ce pour la bonne et simple raison que, s’il est facile de trouver de l’information sur les cosmonautes russes, en trouver sur les informaticiennes est beaucoup plus ardu. En fait, on n’en a pas trouvé d’autre que Rozetta Zhilina (en), 1933 – 2003, qui a plutôt travaillé dans un contexte militaire et dont la spécialité était les algorithmes en balistique et Ekaterina Samoutsevitch, née en 1982, membre du groupe de punk-rock féministe les Pussy Riot. C’est d’autant plus regrettable que l’URSS avait une réelle avance en matière de conquête de l’espace. Avance que la Russie a toujours sur certains points. Par exemple, le côté russe de la station spatiale internationale a des toilettes prévues pour que les femmes puissent avoir leur règles et changer ainsi leurs protections hygiéniques.

          Les portraits des trois femmes qui figurent ci-dessous peuvent sembler assez idylliques. Dans la réalité elles ont dû affronter beaucoup de difficultés du fait de leur groupe ethnique et de leur genre : méprisées par les hommes blancs, peu valorisées, Dorothy Vaughan n’aura pas eu la promotion à laquelle elle pouvait prétendre du fait de ses fonctions, Mary Jackson verra sa carrière bloquée, et souvent pas assez outillées pour leur travail. Par exemple, Katherine Johnson n’aura pas toujours accès à l’intégralité des données dont elle avait besoin dans le cadre de son travail pour le « SpaceTask Group ».

          Les portraits des femmes seront donnés dans l’ordre chronologique de leur naissance.

          La conquête de l’espace en quelques dates

          La conquête de l’espace a été d’abord marquée par la lutte entre les deux grands blocs : Est contre Ouest, la « Course à l’espace » (Race for Space en anglais). La Russie soviétique ayant conservé pendant plusieurs années son avance sur les USA. Une chronologie qui s’arrête à la fin du programme Apollo et qui est centrée sur les réalisations des deux géants.

          Un aperçu de la chronologie de la conquête dans l’espace
          Un rendu un peu plus visuel des dates qui sont données ci-après, la Russie est dans la colonne de gauche, les USA dans celle de droite. Le document est téléchargeable au format fichier pdf hybride et nettement plus lisible.

          1957 : la Russie envoie dans l’espace le Spoutnik 1, premier satellite artificiel en octobre. En novembre c’est la chienne Laïka qui s’envole, c’est le premier animal vivant à réaliser une orbite dans l’espace.

          1958 : création de la NASA.

          1960 : les deux chiennes, Belka et Strelka que la Russie soviétique avait envoyées dans l’espace reviennent vivantes de leur vol orbital, ainsi que le lapin et les souris qui les accompagnaient.

          1961 : en janvier, la NASA envoie le chimpanzé Ham accomplir un vol orbital. En avril c’est le Russe Youri Gagarine qui s’envole et devient le premier homme à avoir accompli un voyage dans l’espace, ainsi que la coqueluche des foules. Dix mois après les Russes, le 20 février 1962, les USA envoient John Glenn pour accomplir un vol orbital. La même année, en décembre, la sonde Mariner 2 survole Vénus. Le Royaume-uni et le Canada envoient leur premier satellite en orbite.

          1963 : la cosmonaute russe Valentina Terchkova est la première femme à aller dans l’espace et, à ce jour, la seule à y avoir effectué une mission en solo. Le 18 mars 1965, le cosmonaute soviétique Alexeï Leonov effectue la première sortie dans l’espace. En juillet, la sonde américaine Mariner 4 survole Mars. La même année, la France lance la fusée-sonde LEX, l’Italie un satellite. La sonde russe Luna 9 se pose sur la Lune le 3 février 1966. Luna 10, quant à elle, se placera en orbite autour du satellite de la Terre.

          1968 : septembre dans le cadre de la mission russe Zond 5, un vaisseau habité par des tortues survole la lune. Décembre, c’est au tour de la NASA d’envoyer un vaisseau habité vers la lune. Elle envoie un équipage en orbite lunaire, mission Apollo 8.

          Juillet 1969 : tandis que les Russes lancent leur première navette spatiale, BOR-2, elle servira au programme Bourane, la mission Apollo 11 envoie Neil Armstrong et Buzz Aldrin sur la Lune.

          1971 : en avril, les Russes lancent Saliout 1, première station spatiale habitée. En novembre, la sonde américaine Mariner 9 orbite autour de Mars. En décembre, la sonde russe Mars 3 se pose en douceur sur Mars.

          1972 : Apollo 17 dernière mission lunaire du programme Apollo. La conquête de l’espace entre dans une autre phase peu après.

          Le NACA (National Advisory Committee for Aeronautics, en français, Comité consultatif National pour l’Aéronautique), prédécesseur de la NASA

          Le NACA est une agence fédérale états-unienne créée en 1915.

          Comme son nom le suggère, l’objectif du NACA était de favoriser la recherche en aéronautique, un secteur qui commençait à se développer et sur lequel les États-Unis étaient en retard par rapport à l’Europe. Le centre de recherche Langley du NACA était basé à Hampton en Virginie. Dans cette Amérique ségrégationniste, les zones de travail entre Blancs et Noirs sont séparées, celle de l’unité de calcul de la zone ouest (West Area Computing Unit) étant réservées aux personnes afro-américaines où travailleront les trois héroïnes de cette dépêche. Quand le NACA disparaîtra en 1958 pour faire place à la NASA, les secteurs raciaux disparaîtront également et il n’y sera plus fait, sur le plan des locaux, de distinction entre les personnes selon leur couleur de peau ou selon leur sexe.

          On doit au NACA (et peut-être même en partie à Mary Jackson) un type de prise d’air la prise d’air NACA qu’on verra par la suite sur à peu près toutes les voitures à partir de 1956.

          Dorothy Vaughan (1910 – 2008), mathématicienne et informaticienne

          Dorothy Vaughan naît en 1910. Elle obtient un Bachelor of Arts (l’équivalent d’une licence) de mathématique à l’université de Wilberforce (Ohio) en 1929, elle a dix-neuf ans. À la suite de ça, elle va enseigner les mathématiques dans un lycée afro-américain de Farmville (Virginie).

          Arrive la deuxième guerre mondiale, le gouvernement états-unien fait appel aux travailleurs et travailleuses pour soutenir l’effort de guerre, le NACA recrute. Elle candidate au poste de « calculateur » à Langley. Elle est recrutée en décembre 1943 et affectée à l’unité de calcul de la zone ouest dont l’objet était de faire des calculs mathématiques pour les ingénieurs qui se livraient à des expériences aéronautiques. Pour cela, point d’ordinateur (le premier ordinateur reconnu comme tel date de 1942), mais des règles à calcul, des calculatrices mécaniques (merci Pascal), et le visionnage de films. Elles fournissaient ainsi aux ingénieurs les paramètres techniques en matière de vol et de soufflerie.

          Au départ, les chefs de sa section seront des hommes, blancs. Finalement, elle sera promue à la tête de l’unité informatique de la zone ouest qu’elle dirigera de 1949 à 1958. Elle aura été la première femme afro-américaine à diriger un département du NACA tout en étant une mathématicienne aux compétences respectées. Il arrivait ainsi qu’on lui demande personnellement d’effectuer certains calculs complexes. Pendant cette période, elle co-écrira avec deux autres mathématiciennes, Sara Bullock et Vera Huckel, un manuel de méthodes algébriques pour les machines à calculer utilisées dans le groupe. Elle participera à la « Course à l’espace », cette période où les USA et l’URSS luttaient pour avoir la suprématie dans le domaine spatial.

          Arrive 1958, le NACA est dissout remplacé par la NASA. Elle rejoint le « Numerical Techniques Branch » (section des techniques numériques) et acquiert une expertise en FORTRAN. Elle contribuera au programme de développement des lanceurs de fusée Scout. Elle continuera pendant toute sa carrière à apprendre les nouvelles technologies informatiques. Elle formera d’ailleurs ses collègues à ces disciplines.

          Elle quitte la NASA en 1971.

          Après sa mort, survenue en 2008, elle reçoit à titre posthume la Médaille d’or du congrès pour son travail pour la NASA.

          Katherine Johnson (1918 – 2020), la calculatrice humaine

          Katherine Johnson est née en 1918. Elle fait ses études au West Virginia State College, qui deviendra l’université d’État de Virginie occidentale (West Virginia State University). Elle en sort en 1937 avec un diplôme de mathématiques et de français. Elle intègre en 1939, avec deux autres étudiants afro-américains, l’université de Virginie occidentale qui accueille ainsi ses tout premiers étudiants afro-américains. Elle obtiendra un doctorat (PhD) de mathématiques.

          Elle est recrutée en juin 1953 par le NACA où elle intègre la section de calcul de Langley. Elle fait partie des calculateurs humains noirs dans cette Amérique qui pratique encore la ségrégation raciale, plus précisément des calculatrices car la section était purement féminine. Deux semaines après son entrée en fonction, Dorothy Vaughan l’assigne à un projet dans la branche des charges de manœuvre (Maneuver Loads Branch) de la division des Recherches en vol (the Flight Research Division) pérennisant ainsi son poste. Elle effectuera toute sa carrière à la NASA qu’elle quittera en 1986.

          L’année 1957 est une année charnière dans sa carrière et dans la conquête l’espace : la Russie, on l’a vu, y envoie le Spoutnik 1, premier satellite artificiel d’une famille de dix qui marque le début de la « course à l’espace ». Elle fournit une partie des calculs des « Notes on Space Technology (en) » de 1958. Ces notes font partie d’un cours de technologie spatiale donné à la division des Recherches en vol du NACA. Elle intègre ainsi le « SpaceTask Group » (groupe de travail de l’espace). Quand le NACA sera dissout pour faire place à la NASA, elle suivra naturellement le chemin.

          Elle effectuera les analyses de trajectoire pour la capsule spatiale Freedom 7 d’Alan Shepard en mai 1961, premier Américain dans l’espace pour un vol suborbital. En 1960 elle co-écrit avec l’ingénieur Ted Skopinski la note technique « Determination of Azimuth Angle at Burnout for Placing a Satellite Over a Selected Earth Position (en) » qui expose les équations décrivant un vol spatial orbital dans lequel la position d’atterrissage du vaisseau spatial est spécifiée. Elle sera la première femme de la division des Recherches en vol du NACA à être créditée comme auteur.

          En 1962, préparation du vol orbital de John Glenn : elle est appelée à y participer. C’est une opération complexe, qui entraîne des calculs complexes eux aussi. Les ordinateurs étaient programmés pour contrôler la trajectoire de la capsule Friendship 7. Cependant, les astronautes étaient réticents à l’idée de confier leur vie à des machines susceptibles de tomber en panne ou de subir des coupures de courant.

          Dans le cadre de la liste de contrôle avant le vol, Glenn avait demandé aux ingénieurs de « demander à la fille » (Johnson) d’exécuter les mêmes nombres dans les mêmes équations que celles programmées dans l’ordinateur, mais à la main, sur sa machine à calculer mécanique de bureau. « Si elle dit qu’ils sont bons », se souvient Katherine Johnson, « alors je suis prêt à partir ». Le vol de Glenn fut un succès et marqua un tournant dans la compétition entre les États-Unis et l’Union soviétique dans l’espace.1

          Elle aura aussi calculé la synchronisation du module lunaire d’Apollo 11 avec le module de commande et de service en orbite lunaire, ce qu’elle considérait comme sa plus grande contribution à la conquête de l’espace. Elle a travaillé aussi sur les navettes spatiales (Space Shuttle) et sur le programme d’observation de la Terre à des fins civiles Landsat (en).

          En 2015, Barack Obama la décore de la plus haute décoration américaine : la médaille présidentielle de la Liberté.

          Mary Jackson (1921 – 2005), l’ingénieure

          Mary Jackson naît le 9 avril 1921 à Hampton, Virginie où elle passera toute sa vie. En 1942 elle obtient un BS en mathématiques et sciences physiques au Hampton Institute. Elle commence sa carrière professionnelle comme ses deux collègues en tant qu’enseignante dans un établissement d’enseignement pour enfants noirs. Après d’autres emplois (réceptionniste, comptable, secrétaire militaire), elle est embauchée par le NACA et rejoint la section de calcul de la zone ouest en 1951 dirigée par Dorothy Vaughan.

          Deux ans après, elle reçoit une proposition de travail pour l’ingénieur aéronautique Kazimierz Czarnecki (en) (qui a un homonyme polonais et althérophile) sur la soufflerie supersonique. Il lui suggère de suivre une formation pour devenir ingénieure. Ce qu’elle fera avec succès, non sans avoir eu à obtenir une autorisation spéciale de la ville de Hampton pour suivre les cours car ils se déroulaient dans l’école secondaire, blanche, de la ville. Elle deviendra la première ingénieure afro-américaine de la NASA en 1958. Elle écrira aussi, avec Czarnecki, cette même année « Effects of Nose Angle and Mach Number on Transition on Cones at Supersonic Speeds » (en). Dans ses fonctions d’ingénieure aérospatiale, son travail portera sur l’analyse des données des expériences en souffleries et en vol à des vitesses supersoniques.

          De 1958 à 1975, elle aura écrit en tout douze documents techniques pour le NACA et la NASA.

          Elle change d’orientation en 1976 (avec diminution de salaire), sa carrière étant bloquée pour œuvrer en faveur de l’embauche et de la promotion de la nouvelle génération d’ingénieures, de mathématiciennes et scientifiques de la NASA. Elle prendra sa retraite en 1985. Mary Jackson meurt le 11 février 2005.

          Le siège de la NASA à Washington DC est rebaptisé a sa mémoire en 2020 et s’appelle désormais le « Mary W. Jackson NASA Headquarters ».

          Remarques incidentes

          Les trois femmes ainsi portraiturées ont fait l’objet d’un film sorti en 2016 : «Hidden Figures » (Les Figures de l’ombre). Dans les pages qui leur sont consacrées sur le site de la NASA (en), le nom de l’actrice associée à chaque rôle dans le film est ajouté. Je me suis beaucoup inspirée de ces pages d’ailleurs. Il y a aussi, probablement, dans tout cela une excellente affaire de marketing dont on n’a pas l’équivalent pour la Russie qui a une histoire politique plus compliquée.

          Ceci n’était que le premier volet, celui des calculatrices humaines. Le prochain consacrera une partie à l’environnement informatique, tant aux USA qu’en Russie. Il y aura aussi des portraits de femmes (américaines, mais si vous avez des noms et des liens d’informaticiennes russes à suggérer…) dont, évidemment Margaret Hamilton.

          Cette dépêche ne saurait se terminer sans remercier vmagnin et Benoît Sibaud d’avoir pensé à mes longues soirées d’automne en m’ouvrant d’autres portes parce qu’en fait ce texte aurait dû n’être qu’en une seule partie et plus court.


          1. Biographie de Katherine Johnson (en sur le site de la NASA. 

          Commentaires : voir le flux Atom ouvrir dans le navigateur

          • ✇LinuxFr.org : les dépêches
          • Haiku a 23 ans - Haiku R1 bêta 5 (partie 3 : documentation, finances et GSOC)
            Les deux parties précédentes ont présenté les principales évolutions dans le code de Haiku. Mais le code ne fait pas tout. Cette troisième (et dernière) partie présente les nouveautés dans la documentation, ainsi qu’un court aperçu du rapport financier et aux dons qui permettent à Haiku d’employer un développeur à plein temps de façon durable. Enfin, elle présente la participation au Google Summer of Code et les travaux réalisés par les cinq étudiants encadrés par Haiku cette année. lien nᵒ 1

          Haiku a 23 ans - Haiku R1 bêta 5 (partie 3 : documentation, finances et GSOC)

          Les deux parties précédentes ont présenté les principales évolutions dans le code de Haiku. Mais le code ne fait pas tout.

          Cette troisième (et dernière) partie présente les nouveautés dans la documentation, ainsi qu’un court aperçu du rapport financier et aux dons qui permettent à Haiku d’employer un développeur à plein temps de façon durable.

          Enfin, elle présente la participation au Google Summer of Code et les travaux réalisés par les cinq étudiants encadrés par Haiku cette année.

          Sommaire

          Documentation

          La documentation de Haiku se découpe en 3 parties principales : un manuel de l’utilisateur, une documentation d’API, et une documentation interne pour les développeurs qui travaillent sur les composants du système.

          Ces documents sont complétés par de nombreuses pages et articles sur le site Internet, et deux livres pour apprendre à programmer en C++ avec Haiku, ou encore un document de référence pour la conception d’interfaces graphiques et un autre pour le style graphique des icônes.

          Documentation d’API

          La documentation d’API de BeOS était assez complète et de bonne qualité. L’entreprise Access Co Ltd qui a hérité de la propriété intellectuelle de BeOS a autorisé le projet Haiku à la réutiliser et à la redistribuer. Malheureusement, cette autorisation est faite avec une licence Creative Commons n’autorisant pas les modifications. Cette documentation ne peut donc pas être mise à jour, ni pour corriger les erreurs, ni pour ajouter des informations sur toutes les nouvelles fonctions ajoutées par Haiku ou les différences entre les deux systèmes.

          Il est donc nécessaire de réécrire une nouvelle documentation à partir de zéro. Ce travail est assez ingrat lorsqu’il s’agit de re-décrire ce qui est déjà très bien expliqué dans la documentation existante. La nouvelle documentation a donc tendance à se concentrer sur les nouvelles fonctions, et il faut souvent jongler entre les deux documentations, le contenu des fichiers .h, et des exemples de code d’applications existantes pour découvrir toutes les possibilités offertes.

          Il ne semble pas utile de lister chaque fonction ou méthode qui a été documentée. On peut mentionner une page d’explications sur la bibliothèque C standard, comprenant des liens vers les spécifications POSIX qui documentent déjà la plupart des choses, et quelques détails sur les différences avec d’autres systèmes.

          Une autre nouvelle page documente les primitives de synchronisation qui sont disponibles pour le code s’exécutant dans le noyau.

          Documentation interne

          La documentation interne était à l’origine simplement une accumulation de fichiers dans divers format dans un dossier « docs » du dépôt Git de Haiku. Depuis 2021, ces fichiers ont été rassemblés et organisés à l’aide de Sphinx, qui permet de mettre à disposition une version navigable en HTML et de donner une meilleure visibilité à ces documents.

          D’autres pages sont petit à petit migrées depuis le site web principal de Haiku, qui n’est pas un très bon support pour de la documentation, et bénéficiera un jour d’une refonte pour être plus tourné vers les utilisateurs que vers les développeurs.

          Quelques nouvelles pages ajoutées cette année:

          • Une documentation sur l’utilisation de divers outils de complétion de code automatique avec le code source de Haiku
          • Une page présentant l’organisation du code source et les principaux dossiers et sous-dossiers
          • La documentation de l’outil rc utilisé pour compiler les « resources » attachées aux exécutables a été intégrée
          • Le système de fichier FAT a reçu également une page de documentation à l’occasion de sa réécriture

          Un point sur le financement

          L’association Haiku inc qui gère le compte en banque de Haiku publie chaque année un rapport financier.

          Le financement provient principalement de dons des utilisateurs et soutiens de Haiku. Le projet reçoit également une compensation financière de Google pour le temps passé à encadrer les participants du Google Summer of Code (voir le paragraphe suivant). La contribution de Google cette année est de 3 300$.

          Les plateformes de don les plus utilisées sont Paypal et Github sponsor. Ce dernier est recommandé car, pour les dons reçus via Github, c’est Microsoft qui paie les frais bancaires de la transaction. 100% de l’argent donné arrive donc sur le compte de Haiku. Tous les autres opérateurs ont un coût, soit fixe lors des retraits, soit un pourcentage de chaque don, soit un mélange des deux.

          En 2023, l’association a reçu 25 422$ de dons et a dépensé 24 750$. Elle dispose d’une réserve confortable de 100 000$ (accumulés avant 2021, alors qu’il n’y avait pas de développeur salarié) ainsi que d’environ 150 000$ en cryptomonnaies.

          Les dons en cryptomonnaies sont pour l’instant bloqués sur un compte Coinbase suite à des problèmes administratifs (le compte n’est pas correctement déclaré comme appartenant à une association, il faudrait donc payer un impôt sur le revenu lors de la conversion en vraie monnaie). Il semble difficile de contacter Coinbase pour régler ce problème.

          Du côté des dépenses, le poste le plus important est le paiement de 21 000$ à Waddlesplash, développeur employé par Haiku inc pour faire avancer le projet Haiku. Il travaille à temps partiel et avec un salaire très bas par rapport au marché, comme cela a été fait pour les précédents contrats entre Haiku inc et d’autres développeurs. Les finances de l’association ne permettent pas encore d’assurer un emploi à plein temps avec un salaire correct sur le long terme (c’est faisable sur le court ou moyen terme à condition de puiser dans les réserves de trésorerie).

          Le reste des dépenses concerne principalement le paiement de l’infrastructure (serveurs pour le site Internet, l’intégration continue, hébergement cloud pour les dépôts de paquets) pour environ 3 000$.

          Il faut enfin compter environ 500$ de frais Paypal, puis quelques dépenses administratives (déclaration de changement d’adresse de l’association, déclaration d’embauche) pour des montants négligeables (moins de 10$ au total).

          En 2024, l’objectif fixé en janvier était de récolter 20 000$ de dons supplémentaires. Cet objectif a été atteint dès le mois de juillet, et a donc été révisé pour tenter d’atteindre les 30 000$. Cela permettra de rémunérer Waddlesplash pour un plus grand nombre d’heures cette année, ou bien d’envisager l’embauche d’une deuxième personne si un ou une candidate se présente parmi les personnes contribuant au projet (l’embauche d’une personne extérieure ne se fera pas tant que l’association ne peut pas se permettre de proposer une rémunération raisonnable).

          Google Summer of Code

          Haiku participe au Google Summer of Code depuis 2007. Il s’agit d’un programme où des étudiants (et d’autres participants pas forcément étudiants, ces dernières années) sont payés par Google pendant deux mois pour découvrir la contribution à des projets de logiciels libres.

          Ce programme a été monté par « l’Open source program office » de Google. Leur intérêt est de défendre leur image d’entreprise sympathique (bien mise à mal ces dernières années, c’est devenu un géant de la publicité en ligne et de l’aspiration des données personnelles), et de contribuer à la richesse d’un écosystème de logiciels libres dont ils bénéficient beaucoup. Cela permet aussi d’encourager des personnes à s’essayer au développement logiciel, facilitant indirectement le recrutement chez Google en augmentant le nombre de candidats. Ces justifications peuvent sembler hypothétiques ou très indirectes, mais elles ont convaincu Google d’attribuer un budget de quelques millions de dollars à ce programme.

          Une équipe de Google choisit les projets de logiciel libres participants parmi de nombreuses candidatures. Chaque projet participant propose une liste « d’idées » (un peu sous la forme d’un sujet de stage) et a ensuite la responsabilité de choisir parmi les candidats qui ont répondu à cette offre (en respectant les critères de non-discrimination imposées par Google ainsi que les embargos imposés par les USA), et d’assurer l’encadrement des personnes sélectionnées. Google rémunère les participants, et dédommage les projets participants pour le temps investi.

          Cette année les développeurs de Haiku encadrent cinq participants :

          Calisto Mathias — Re-design de la fenêtre de recherche de fichiers

          Le système de fichier BFS utilisé par Haiku permet l’exécution de requêtes (comme une base de données) exploitant les attributs étendus des fichiers, qui peuvent être indexés.

          Ce système permet de faire beaucoup de choses, et la fenêtre de recherche du navigateur de fichier essaie d’en tirer parti. Cependant, l’interface résultante est trop complexe, et peu de personnes prennent le temps de concevoir des requêtes améliorant leur façon de travailler, se cantonnant aux quelques exemples fournis.

          L’objectif de ce projet est de refondre l’interface de cette fenêtre pour obtenir quelque chose de plus intuitif, et également d’afficher en temps réel les résultats de la requête dès qu’elle est modifiée, pour encourager les utilisateurs à expérimenter avec des requêtes plus complexes.

          Daniel Martin — Virtualisation matérielle accélérée avec NVMM

          Haiku n’est pas encore parfait, et certaines tâches nécessitent encore l’utilisation d’autres systèmes d’exploitation. Une partie des utilisateurs ont donc une configuration en double boot, ou bien lancent Haiku dans une machine virtuelle.

          L’objectif de ce projet est de permettre d’utiliser Haiku comme système principal, et de lancer les autres systèmes dans des machines virtuelles. Cela sera réalisé à l’aide d’un portage de NVMM, qui a été développé à l’origine par NetBSD et Dragonfly BSD. Cette bibliothèque a l’avantage d’être bien documentée et conçue pour faciliter son adaptation vers d’autres systèmes.

          NVMM sera complétée par l’utilisation de QEMU qui pourra fournir un « front-end » à cette mécanique.

          Diego Roux — Pilote pour les cartes sons virtuelles VirtIO

          Pour les personnes utilisant Haiku dans une machine virtuelle, il est intéressant d’utiliser autant que possible la famille de périphériques VirtIO.

          Il s’agit de périphériques virtuels conçus sans s’inspirer de matériel existant, et plutôt pour avoir l’interface la plus simple possible entre la machine virtualisée et son hôte.

          Haiku dispose déjà d’un jeu de pilote Virtio relativement complet (réseau, stockage de masse, affichage graphique). Le but de ce projet est de compléter cet ensemble avec un pilote pour les cartes son VirtIO.

          trungnt2910 — Portage de GDB

          Haiku dispose de son propre débugger (appelé Debugger, de façon assez peu originale). Ce dernier présente une interface graphique confortable, mais une interface en ligne de commande beaucoup plus limitée. Il souffre également de quelques problèmes de performances et d’un manque de prise en charge des fichiers exécutables et bibliothèques compilés avec autre chose que GCC. Il est également incapable de faire du debug à distance ou de s’intégrer dans une interface graphique existante (par exemple au sein d’un IDE).

          L’objectif de ce projet est de ressusciter la version de GDB ciblant Haiku. Cette version très ancienne était utilisée avant l’apparition du Debugger natif. Le projet est en bonne voie, le code d’interfaçage a été entièrement réécrit pour s’adapter aux versions modernes de GDB, et plusieurs évolutions et corrections ont été intégrées dans le système de debugging de Haiku (par exemple, pour mettre en pause tous les threads nouvellement créés afin que le debugger puisse les intercepter).

          Zardshard — Migration du navigateur web WebPositive vers WebKit2

          Le navigateur WebPositive utilise le moteur de rendu webKit. Actuellement, il s’interface avec ce moteur via l’API WebKitLegacy. Cette API exécute tout le moteur de rendu web dans un seul processus, et ne fournit pas les garanties d’isolation nécessaires pour les navigateurs web modernes (que ce soit en termes de sécurité, ou en termes de fiabilité).

          L’objectif de ce projet est de reprendre les travaux déjà entamés en 2019 pour migrer WebPositive vers la nouvelle API « WebKit2 », et bénéficier d’une séparation entre l’interface graphique, la communication réseau, et le rendu HTML/CSS/JavaScript dans des applications séparées. Ainsi, un crash d’un de ces composants peut être récupéré de façon transparente sans faire disparaître toute l’application (et les données non enregistrées de l’utilisateur avec).

          Le projet est également en bonne voie, un navigateur de test permet déjà d’afficher quelques pages ce qui montre que les bases sont en place. Il reste à régler de nombreux problèmes de rendu de texte, ainsi qu’à implémenter la gestion des entrées (clavier et souris) pour avoir un navigateur web utilisable. Il faudra ensuite migrer WebPositive vers ces nouvelles APIs.

          Commentaires : voir le flux Atom ouvrir dans le navigateur

          • ✇LinuxFr.org : les dépêches
          • Revue de presse de l’April pour la semaine 32 de l’année 2024
            Cette revue de presse sur Internet fait partie du travail de veille mené par l’April dans le cadre de son action de défense et de promotion du logiciel libre. Les positions exposées dans les articles sont celles de leurs auteurs et ne rejoignent pas forcément celles de l’April. [clubic.com] Les meilleurs logiciels libres et open source en 2024 [ouest-france.fr] Quimper. La distribution d’ordinateurs continue tout l’été au Centre des Abeilles [Le Monde.fr] Google condamné pour pratiques anticon

          Revue de presse de l’April pour la semaine 32 de l’année 2024

          Par : echarp Arkem
          13 août 2024 à 08:28

          Cette revue de presse sur Internet fait partie du travail de veille mené par l’April dans le cadre de son action de défense et de promotion du logiciel libre. Les positions exposées dans les articles sont celles de leurs auteurs et ne rejoignent pas forcément celles de l’April.

          [clubic.com] Les meilleurs logiciels libres et open source en 2024

          ✍ Naïm Bada, le mercredi 7 août 2024.

          L’open-source est un mouvement né dans les années 80 avec le projet GNU qui donnera plus tard naissance à Linux. Avec le web et la facilitation de la collaboration en ligne dans les années 2000, de nombreux développeurs ont lancé des projets plus ou moins ambitieux dans l’optique de concurrencer les logiciels propriétaires. Aujourd’hui, le libre et l’open-source sont plus populaires que jamais!

          [ouest-france.fr] Quimper. La distribution d’ordinateurs continue tout l’été au Centre des Abeilles

          Le mercredi 7 août 2024.

          Pas de pause en août 2024 pour les bénévoles du Centre des Abeilles et de Linux Quimper. La distribution d’ordinateurs de bureau sous Linux continue!

          [Le Monde.fr] Google condamné pour pratiques anticoncurrentielles avec son moteur de recherche

          Le lundi 5 août 2024.

          Le géant américain, reconnu coupable d’avoir imposé, par défaut, son logiciel de recherche sur des appareils, a annoncé sa volonté de faire appel.

          Et aussi:

          [atlantico] Mettre l'IA de Meta/Facebook en open source: le pari (faussement) audacieux de Mark Zuckerberg

          ✍ Atlantico, le lundi 5 août 2024.

          Le 23 juillet, Mark Zuckerberg a publié un manifeste exposant les arguments commerciaux en faveur de l’IA open source.

          Et aussi:

          [LeMagIT] L'UE laisse planer le doute sur le financement des projets open source

          ✍ Gaétan Raoul, le mercredi 31 juillet 2024.

          Plus de 150 associations et organisations, dont le Conseil National du Logiciel Libre, OW2, OpenStreeMap France et Framasoft, s’inquiètent pour le devenir des projets open source financés par l’initiative Next Generation Internet (NGI) inscrit au programme de la Commission européenne, Horizon Europe.

          Et aussi:

          [Le Temps] La Suisse championne du code source ouvert? Quand les internautes se passionnent pour une loi fédérale

          Le samedi 27 juillet 2024.

          Une disposition légale impose à la Confédération de publier le code source des logiciels qu’elle développe. Un média américain a surinterprété la mesure et a suscité des réactions enthousiastes sur les réseaux sociaux, y compris d’Elon Musk

          Commentaires : voir le flux Atom ouvrir dans le navigateur

          • ✇LinuxFr.org : les dépêches
          • Sailfish OS, quoi de neuf en 2024 depuis octobre 2022 ?
            Sailfish OS est un système d'exploitation basé sur le noyau Linux et développé par la société finlandaise Jolla. Il vise surtout le marché des appareils mobiles (smartphones, tablettes). Dans la suite de la dépêche, vous découvrirez les dernières nouvelles concernant Jolla et Sailfish OS. lien nᵒ 1 : Sailfish OSSommaire Introduction Nouveautés depuis Sailfish OS 4.4 Version 4.5 - Struven Ketju Version 4.6 - Sauna Nouveaux modèles pris en charge Contributions communautaires Les applications

          Sailfish OS, quoi de neuf en 2024 depuis octobre 2022 ?

          Sailfish OS est un système d'exploitation basé sur le noyau Linux et développé par la société finlandaise Jolla. Il vise surtout le marché des appareils mobiles (smartphones, tablettes).

          Dans la suite de la dépêche, vous découvrirez les dernières nouvelles concernant Jolla et Sailfish OS.

          Sommaire

          Introduction

          Après une période turbulente, Jolla est enfin prête à attaquer cette nouvelle année sereinement. En attendant les répercussions de cette nouvelle ère, petit tour d'horizon des dernières nouveautés dans Sailfish OS depuis la dépêche d'octobre 2022 et des annonces survenues lors du Jolla Love Day 2.

          Basée sur la distribution GNU/Linux MeeGo, initialement développée par Nokia et Intel, Sailfish a le principal avantage de fournir une couche supplémentaire nommée AppSupport basée sur Android AOSP. AppSupport s'exécute dans un container LXC et permet d'installer des applications Android, compensant ainsi l'absence de certaines applications ou services natifs. Cela positionne Sailfish comme une réelle alternative à Android, sans pour autant être handicapé par le peu d'applications natives.

          Pour la petite histoire, en 2011, Nokia opère un choix stratégique consistant à passer à Windows Phone pour tous ses modèles. Cela a abouti au démantèlement de la division en charge de MeeGo et du Nokia N9, qui était aussi à l'origine du Nokia N900 sous Maemo.
          En raison de ces turbulences, plusieurs employés décident de fonder Jolla afin de continuer le développement de MeeGo et de concevoir leur propre matériel. En 2013, leur premier modèle — le Jolla 1 — est dévoilé et sera maintenu jusqu'en septembre 2020.

          Par la suite, la société Jolla a développé une tablette mais pour diverses raisons, notamment de fabrication, sa commercialisation a dû être arrêtée et seule une partie des commandes a été livrée. Enfin, il y a eu une nouvelle tentative pour un second smartphone dédié aux développeurs dont nous parlerons dans la suite de cette dépêche.

          C'est après cet échec, que Jolla a décidé de se concentrer sur le système d'exploitation en s'appuyant entre autres sur le programme «Sony Open Devices». La première version du programme Sailfish X est publiée en 2017 pour le Xperia X.

          Il y a eu par la suite le Xperia XA2 (32bits), toujours maintenu, puis le Xperia 10 II et enfin le 10 III (64bits).

          Nouveautés depuis Sailfish OS 4.4

          Chaque nouvelle version apporte sa grosse nouveauté. L'occasion aussi de stabiliser l'OS et mettre à niveau les différentes dépendances. Toutes les modifications sont listées dans les notes de version de chaque mise à jour.

          Écran de verrouillage

          Version 4.5 - Struven Ketju

          Cette mise à jour sortie le 09 février 2023 est nommée en l'honneur de l'arc géodésique de Struve.
          Struven Ketju
          Elle apporte la mise à niveau d'Android vers la version 11, tout comme diverses contributions pour stabiliser et améliorer l'expérience utilisateur tant au niveau d'Android qu'au niveau de Sailfish OS.
          Dans les principales améliorations, notons :

          • une meilleure intégration d'Android au sein de Sailfish OS ;
          • une connectivité (Wi-Fi, réseau mobile) plus stable ;
          • une amélioration lorsque l'utilisateur active le Bluetooth et cherche de nouveaux appareils ;
          • ou encore la possibilité d'utiliser une phrase de passe. Précisions de taille, cela sert à déchiffrer la partition, déverrouiller le système ou encore à obtenir les droits root lorsque c'est nécessaire.

          Cette mise à jour est aussi l'occasion d'ouvrir l'accès à plusieurs API. Comme aux bibliothèques QtLocation, BluezQt ou encore Sailfish.media. Cette dernière permettant d'intégrer le lecteur audio dans une application. Voir la liste de toutes les nouvelles API dans la note de version struven ketju 4.5.0-16 pour l'énumération complète.

          Autre nouveauté apportée, cette fois-ci par dcaliste : en plus de la vue « à la semaine » l'application calendrier offre une vue « au mois » ainsi qu'une autre vue « au jour ». dcaliste en a aussi profité pour améliorer la synchronisation avec les divers comptes en lignes.
          Calendrier
          Dernier point, l'ajout d'une option native arrêtant la charge pour réduire l'impact sur la batterie.

          Au fil de l'année, plusieurs mises à jour mineures ont été déployées afin de corriger divers bugs introduit par la 4.5.0.16.
          La 4.5.0.19 publiée le 23 mars 2023 apporte la gestion de CLAT à ConnMan, permettant d'utiliser les données mobiles sur les réseaux IPv6.

          En mars 2024 est publiée une mise à jour mineure modifiant les conditions générales d'utilisation. Ceci afin de marquer le changement de propriétaire et donc le renouveau de Sailfish.

          Version 4.6 - Sauna

          À l'occasion du Jolla Love Day 2, la version 4.6.0.11 a été publiée pour les utilisateurs aguerris ayant activé le mode « Early Access ». La version définitive sera rendue publique lorsque les bugs découverts durant la seconde phase de test seront corrigés.

          Parmi les principales nouveautés, l'apport de la 5G pour le Sony Xperia X10 III. Le précédent modèle, en l'occurrence le X10 II en étant dépourvu, il n'y a pour l'instant qu'un seul appareil compatible. Précision de taille, l'apport de la 5G est intimement lié au matériel malgré l'adaptation de ConnMann et oFono pour gérer la 5G.

          Autre changement de taille, le partage de connexion par Bluetooth est désormais implémenté.

          À nouveau, calendrier est l'une des principales applications à recevoir une nouvelle fonctionnalité l'améliorant grandement avec la possibilité de rechercher des événements.

          Le 06 juin, la version 4.6.0.13 a été déployée aux abonnés « Early Access » et corrige certains bugs introduits précédemment.

          Nouveaux modèles pris en charge

          De nombreuses rumeurs mentionnaient la prise en compte de nouveaux appareils. En suivant divers dépôt Github, il a été possible de déduire quel était le futur appareil Sony géré par Jolla. Le 18 avril, la lettre d'information met enfin un terme aux diverses spéculations et confirme le portage de Sailfish sur les Sony X10 IV et Sony X10 V. D'autres portages toutefois non-officiels sont en cours de développement, comme pour le Fairphone 5.

          Suite au Jolla Love Day 2, un nouvel appareil officiel limité à 1 000 unités est annoncé. À savoir le Jolla Community Phone aussi nommé Jolla C2 et développé en collaboration avec le constructeur turc Reeder.

          Pour rappel, le premier appareil dédié à la communauté était le Jolla C. Ce modèle a été développé sur la base du Intex Aquafish du constructeur indien Intex Technologies. D'ailleurs il était relativement facile, pour ceux et celles qui n'avaient pu obtenir le Jolla C de convertir l'Intex Aquafish en Jolla C. Il en reste encore des traces dans le forum. Le Jolla C et l'IntexAquafish « as a Jolla C » sont encore maintenus, mais la version 4.6 sera la dernière mise à jour. Le Jolla C étant sorti en 2016, et l'Intex Aquafish quelques mois plus tard, nous pouvons considérer que c'est une bonne durée de maintenance et équivalente à celle du Jolla 1.

          Contributions communautaires

          Sailfish OS n'est certes pas entièrement libre, cela n'empêche pas d'avoir une communauté d'utilisateurs active contribuant aux parties libres de la distribution. Ce faisant, Sailfish OS fait ainsi partie des solutions alternatives aux deux autres grands systèmes du marché que sont iOS et Android.

          Historiquement, pour le navigateur natif, Sailfish OS a toujours utilisé Gecko comme moteur de rendu, en utilisant l'adaptation Qt (QtMozEmbed) pour ce dernier. Maintenir cette adaptation pour un logiciel tel que Gecko est une tâche ardue et chronophage, raison pour laquelle Sailfish Browser utilise encore la version ESR 78. Un ancien employé de Jolla, flypig, a pris en main la mise à niveau du moteur de rendu à la version Gecko 91.
          Ce travail titanesque est entièrement documenté dans un journal. La lecture en vaut d'ailleurs la chandelle !

          En ce qui concerne oFono, un autre contributeur de Sailfish, piggz, a entrepris de gommer les divergences avec la version maintenue par Jolla. piggz est également connu pour ses portages, principalement sur le PinePhone. Suite à l'initiative de flypig de documenter son projet, l'avancement de son projet est documenté dans un journal.

          La nouvelle n'a pas encore eu d'énormes répercussions, mais une équipe d'utilisateurs a entrepris de porter Flutter sur Sailfish OS. Pour l'instant, seule une application est disponible.

          Les plus téméraires d'entre vous pourront également installer le gestionnaire de paquets nix sur SailfishOS. Le développeur qui s'est lancé dans cette aventure a eu droit à un bel entretien dans le Community News de décembre 2023.

          Entre le 26 et 30 septembre 2024 se tiendra le second Hackathon organisé par la communauté d'utilisateur. L'événement étant en cours d'organisation les informations suivront prochainement.

          Les applications natives

          Il est évident que la liste des applications natives est moins fournie que les OS concurrents dominant le marché. Pour autant, l'essentiel est disponible ! Chaque 2 semaines lors du « Community News », les dernières applications actualisées sont mis en évidence dans cette lettre de diffusion. Par exemple — et outre le calendrier déjà évoqué — voici de manière non exhaustive quelques applications tierces natives :

          Grille d'application

          • Pure Maps : associée avec OSMScoutServer, offre un système de navigation hors-ligne performant. Certes, il n'y a pas toutes les informations que l'on peut trouver dans les applications concurrentes, mais son usage reste très confortable ;
          • Barcode, anciennement Codereader, un lecteur de codes-barres et de codes QR. Disponible dans Openrepos et Chum. Parfait pour récupérer les codes QR des timbres postes en lettre suivie. A noter également que l'auteur de Barcode a publié une application pour utiliser une Yubikey disponible dans Chum.
          • Paketti : une application de suivi de courrier et de colis ;
          • Chum : magasin d'applications fonctionnant dans les mêmes principes que F-Droid. Il est possible d'installer aisément via https://chumrpm.netlify.app/. Voir aussi cet article de blog du Nico's blog au sujet de Chum ;
          • ownKeepass : application capable d'emporter avec vous votre fichier .kdbx Application et offre toutes les fonctions basiques présentes dans KeepassX. Malheureusement le développement d'ownKeepass s'est arrêté, ce qui n'empêche pas qu'un jour le développement soit repris par quelqu'un d'autre :

          ownKeepass

          Si l'utilisateur ne trouve pas son bonheur, grâce au Android AppSupport il sera toujours possible d'installer Fdroid et Aurora Store. A noter aussi que microG peut également être installé assez facilement, notamment pour permettre l'usage de certaines applications bancaires.

          Ainsi, le magasin d'applications fourni par Jolla permet de trouver le magasin F-droid ou encore Aptoide. C'est depuis F-droid qu'il sera possible d'installer Aurora Store.

          Rappelons que parmi les limitations, le Bluetooth n'est opérationnel que pour le son dans les applications Android. A ce jour, seuls certains modèles de montres assez spécifiques sont capables de communiquer avec le smartphone grâce à l'application native Amazfish développé par piggz, toutes les autres montres ne pouvant pas se connecter en Bluetooth au smartphone en raison de cette limitation du Bluetooth.
          Pour en savoir plus, vous pourrez lire cet article du Nico's blog. Il en est exactement de même pour le NFC. Implémenter une interface entre Android et Sailfish requiert malheureusement énormément de ressources, mais nous pourrions espérer qu'un jour cela finisse par arriver. Principalement depuis que l'industrie automobile s'intéresse à la prise en charge d'Android.

          Nouveau modèle économique pour Sailfish OS

          Suite à l'échec de la tablette Jolla et du modèle « commerce entre entreprises et particuliers », une politique de licence régionale a été mise en place dès 2017 avec un partenariat dans plusieurs pays. Cela s'est concrétisé avec l'Intex Aquafish en Inde, qui a servi de base pour le Jolla C. En Amérique Latine, un accord de licence a été signé avec l'entreprise bolivienne Jala sous la marque Accione et enfin avec Rostelcom en Russie, certainement lors de son entrée au capital de Jolla.

          Pour des raisons douanières et administratives, Jolla ne commercialisait ses licences qu'au sein de l'Union européenne ainsi que dans l'Association européenne de libre-échange (AELE). Suite au « Brexit », la commercialisation avec la Grande-Bretagne n'a repris qu'en 2021.

          Lors du Jolla Love Day 2, un nouveau modèle économique a été présenté. Les appareils apparus avant les Sony X10 IV et Sony X10 V sont livrés avec une licence perpétuelle. Les nouveaux modèles eux sont utilisables avec un abonnement mensuel, voire annuel. La documentation sur les licences sera mise à jour lors de la commercialisation des licences pour les X10 IV, V et Jolla C2. Quelle que soit la licence payante (perpétuelle pour X10 II et X10 III ou à abonnement pour le X10 IV et X10 V et aussi le J2), les services fournis demeurent les mêmes :

          • Les mises à jour logiciel OTA ;
          • L'accès au support client tant que l'appareil est garanti ;
          • La possibilité d'installer les extensions suivantes :
            • Android AppSupport ;
            • Support Microsoft Exchange ;
            • Saisie prédictive.

          Petite particularité du Jolla Community 2, l'abonnement valide une année est inclus dans le prix d'achat.

          En dehors du Jolla Community 2, où Sailfish OS est flashé par défaut, tous les autres modèles nécessitent d'être manipulé par l'utilisateur pour changer l'OS. Les instructions en anglais sont fournies pour tous les modèles et rédigées pour être exécutées depuis Linux, Mac OS ou encore Windows.

          Jolla et le logiciel libre

          Jolla a toujours été ouvert à l'idée de libérer les sources, il est dommage que depuis 2013 certaines parties comme le compositeur Lipstick restent encore propriétaires. Un bref instant, une vague de projets a été libéré. Malheureusement, cela a été de courte durée. Cela n'empêche pas que Jolla reste un contributeur au logiciel libre et qu'il a libéré les sources de certaines applications comme le navigateur ou encore le lecteur de document. La grosse partie du backend est lui libre. Avec un changement radical dans leur modèle économique, les choses pourraient changer.

          Récemment, quelques nouvelles bibliothèques ont été développées avec une licence open-source, comme une exportation vers le QML de l'interface MPRIS.

          Autre point intéressant à noter, Jolla a grandement contribué à l'essor de Linux sur les téléphones portables avec le développement du projet libhybris.

          Voici une liste non exhaustive des projets auxquels Jolla contribue ou a libéré les sources :

          • amber-web-authorization qui permet de faire de l’authentification OAuth en QML ;
          • sailfish-secrets qui est un projet ambitieux, permettant de chiffrer / déchiffrer depuis le QML en choisissant son backend (principalement OpenSSL, mais aussi GnuPG), mais qui permet aussi de stocker des informations chiffrées sur le téléphone, un peu comme un kwallet ;
          • messagingframework, hérité de l’ère Nokia et hébergé par le projet Qt. C’est un quadriciel de gestion des courriels ;
          • KCalendarCore, un « framework » KDE pour la gestion du calendrier.

          Et bien sûr tout l’héritage de MeeGo, directement maintenu par Jolla, également utilisé par d’autres projets comme LuneOS ou encore AsteroidOS :

          Notons aussi que Jolla participe régulièrement à FOSDEM. Si vous souhaitez lire à ce sujet : https://www.ncartron.org/jolla-and-sailfish-os-at-fosdem-23.html

          Restructuration

          Cette restructuration s'est opérée dans le cadre du droit finlandais. L'objectif était notamment de restructurer le capital et faire sortir l'actionnaire russe Rostelcom. Pour ce faire, et comme vraisemblablement les négociations amiables n'ont pas dû aboutir, les dirigeants de Jolla ont demandé à la justice de placer l'entreprise dans le cadre d'une procédure que nous pourrions comparer en droit français à la procédure de sauvegarde.

          Cette procédure a fini par aboutir et — selon notre compréhension — cela s'est traduit par la création d'une nouvelle entité : l'entreprise Jollyboys Ltd.

          Jollyboys a repris ainsi tous les actifs de Jolla, y compris la marque, les noms de domaines et bien entendu Sailfish OS.
          Nous comprenons, selon les planches qui furent publiées pendant le Jolla Love Day 2, que les entreprises Jolla/Jollyboys Ltd et Seafarix ont été rachetées par le personnel dirigeant de l'entreprise Jolla.
          Chaque technologie est séparée dans une structure juridique différente :

          • Seafarix pour ce qui concerne l'automobile ;
          • Jollyboys pour Sailfish OS ;
          • VenhoAI pour les produits relatifs à l'IA.

          La réorganisation de l'entreprise Jolla a suscité l'objet de beaucoup de discussions sur le forum.
          Nous comprenons également que la marque Jolla et le nom de domaine jolla.com sont la propriété de la société Jollyboys.

          Conclusion

          Lors du Jolla Love Day 2, une feuille de route pour la version 5 a été dévoilée.
          Une séparation de Sailfish est planifiée avec une partie nommée Sailfish Core et dévouée à l'embarqué et une autre conçue pour les téléphones portables, tablettes et autres appareils.

          À voir ce que donnera le nouveau modèle de financement, mais il est réjouissant de voir du changement. L'année prochaine nous confirmera si cette nouvelle voie est la bonne. Le développement logiciel étant coûteux, offrir la possibilité d'y contribuer financièrement en tant qu'utilisateur donne plus de garantie de survie et de développement.

          Si vous souhaitez suivre Sailfish, des comptes rendu des réunions de la communauté organisés par Jolla sont également accessibles. Il existe un blog officiel et une lettre de diffusion qui parait toutes les deux semaines et dont le numéro du 6 juin est précisément consacré à la 4.6 - Sauna.

          Commentaires : voir le flux Atom ouvrir dans le navigateur

          • ✇LinuxFr.org : les dépêches
          • Systemd v256
            Systemd est une suite logicielle primordiale du monde GNU/Linux. Elle peut être présente du début à la fin de l'allumage du système, permettant de gérer de manière fine la vie des autres services. Systemd est sorti en 2010, en a énervé certains notamment en raison de l'approche audacieuse et intégrée, et a séduit une grande majorité de systèmes GNU/Linux à partir de 2015. Aujourd'hui il est possible de voir Systemd dans la plupart des grandes distributions, gérant les arcanes du système en s'ap

          Systemd v256

          Systemd est une suite logicielle primordiale du monde GNU/Linux. Elle peut être présente du début à la fin de l'allumage du système, permettant de gérer de manière fine la vie des autres services.

          Systemd est sorti en 2010, en a énervé certains notamment en raison de l'approche audacieuse et intégrée, et a séduit une grande majorité de systèmes GNU/Linux à partir de 2015. Aujourd'hui il est possible de voir Systemd dans la plupart des grandes distributions, gérant les arcanes du système en s'appuyant sur les mécanismes noyau de cgroup, dbus et namespace notamment.

          La version 256 succède à la v255 sortie en décembre 2023, où vous trouverez encore d'énormes évolutions et encore plus d'intégration afin de proposer un écosystème cohérent, le plus automatique possible, compatible avec chacun des autres systèmes, et cherchant à offrir de la sécurité par défaut associé à une granularité de configuration et d'isolation.

          Il peut être intéressant de remarquer qu'au moins, à ma connaissance, deux développeurs fortement actifs, sont des salariés de Microsoft, travaillant autant sur systemd qu'à la normalisation d'un certain standard Linux par le truchement du groupe UAPI. Ce sont Lennart Poettering et Luca Boccassi, mais peut être en connaissez vous d'autres ?

          Je vous invite également à vous pencher sur casync et mkosi (maintenu par Daan De Meyer, de chez Meta), deux nouvelles marottes de ces développeurs fous mais qui semblent avoir réussi le pari, qu'en pensez-vous ?

          NdM : La dépêche qui suit est une traduction en français des nouveautés de la version 256.

          Sommaire

          Une nouvelle version de systemd v256 est sortie

          Modifications depuis la version précédente v255

          Annonces de futures suppressions de fonctionnalités et de modifications incompatibles

          • La prise en charge du vidage automatique des caches de la base de données des utilisateurs/groupes nscd sera abandonnée dans une prochaine version.

          • La prise en charge du groupe de contrôle cgroupv1 (hiérarchies « héritées » et « hybrides ») est désormais considérée comme obsolète, et systemd refusera par défaut de démarrer sous celui-ci. Pour réactiver de force la prise en charge de cgroup v1, SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1 doit être défini sur la ligne de commande du noyau. L'option Meson 'default-hierarchy=' est également obsolète, c'est-à-dire que seul le groupe cgroup v2 (hiérarchie unifiée) peut être sélectionné comme valeur par défaut au moment de la compilation.

          • La prise en charge des scripts de service System V est à présent obsolète et sera supprimé dans une prochaine version. Veuillez vous assurer de mettre à jour votre logiciel maintenant pour inclure un fichier d'unité systemd natif au lieu d'un héritage de scripts System V, afin conserver la compatibilité avec les futures versions de systemd.

          • La prise en charge de la variable EFI SystemdOptions est à présent obsolète. bootctl systemd-efi-options émettra un avertissement lorsqu'il sera utilisé. Il semble que cette fonctionnalité soit peu utilisée et qu'il soit préférable d'utiliser des approches alternatives comme les informations d'identification et les contextes. Le plan est d'abandonner complètement le support ultérieurement, mais cela pourrait être réexaminé en fonction des commentaires des utilisateurs.

          • Le commutateur --expand-environment= de systemd-run, qui est actuellement désactivé par défaut lorsqu'il est combiné avec --scope, sera modifié dans une prochaine version pour être activé par défaut.

          • Auparavant, systemd-networkd ne supprimait explicitement aucun ID de VLAN de pont attribué sur le maître de pont et les ports. Depuis la version 256, si un fichier .network pour une interface possède au moins un paramètre valide dans la section [BridgeVLAN], alors tous les ID de VLAN attribués sur l'interface qui ne sont pas configurés dans le fichier .network sont supprimés.

          • Le paramètre IPForward= dans le fichier .network est obsolète et remplacé par les paramètres IPv4Forwarding= et IPv6Forwarding=. Ces nouveaux paramètres sont pris en charge à la fois dans le fichier .network et dans networkd.conf. S'ils sont spécifiés dans un fichier .network, ils contrôlent les paramètres correspondants par lien. S'ils sont spécifiés dans networkd.conf, ils contrôlent les paramètres globaux correspondants. Notez qu'auparavant IPv6SendRA= et IPMasquerade= impliquaient IPForward=, mais maintenant ils impliquent les nouveaux paramètres par lien. L'un des moyens les plus simples de migrer les configurations, qui fonctionnait comme un routeur avec la version précédente, consiste à activer à la fois IPv4Forwarding= et IPv6Forwarding= dans networkd.conf. Voir systemd.network(5) et networkd.conf(5) pour plus de détails.

          • systemd-gpt-auto-generator arrêtera de générer des unités pour les partitions ESP ou XBOOTLDR s'il trouve des entrées de montage pour ou en dessous des hiérarchies /boot/ ou /efi/ dans /etc/fstab. Cela permet d'éviter que le générateur n'interfère avec les systèmes dans lesquels l'ESP est explicitement configuré pour être monté sur un chemin, par exemple /boot/efi/ (ce type de configuration est obsolète, mais reste courant).

          • Le comportement de systemd-sleep et systemd-homed a été mis à jour pour geler les sessions utilisateur lors de l'entrée dans les différents modes de veille ou lors du verrouillage d'une zone d'accueil gérée par homed. Ceci est connu pour causer des problèmes avec les pilotes propriétaires NVIDIA. Les conditionneurs des pilotes propriétaires NVIDIA peuvent souhaiter ajouter des fichiers de configuration déroulants qui définissent SYSTEMD_SLEEP_FREEZE_USER_SESSION=false pour systemd-suspend.service et les services associés, et SYSTEMD_HOME_LOCK_FREEZE_SESSION=false pour systemd-homed.service.

          • systemd-tmpfiles et systemd-sysusers, lorsqu'ils reçoivent un chemin de fichier de configuration relatif (avec au moins un séparateur de répertoire /), ouvriront le fichier directement, au lieu de rechercher le chemin partiel donné dans les emplacements standard. L'ancien mode n'était pas utile car la configuration tmpfiles.d/ et sysusers.d/ a une structure plate sans sous-répertoires sous les emplacements standard et ce changement facilite le travail avec des fichiers locaux avec ces outils.

          • systemd-tmpfiles applique désormais correctement la configuration imbriquée aux strophes (stanzas) « R » et « D ». Par exemple, avec la combinaison de « R /foo » et « x /foo/bar », /foo/bar sera désormais exclu de la suppression.

          • systemd.crash_reboot et les paramètres associés sont obsolètes au profit de systemd.crash_action=.

          Modifications générales et nouvelles fonctionnalités v256

          • Divers programmes tenteront désormais de charger le fichier de configuration principal à partir d'emplacements situés sous /usr/lib/, /usr/local/lib/ et /run/, et pas seulement sous /etc/. Par exemple, systemd-logind recherchera /etc/systemd/logind.conf, /run/systemd/logind.conf, /usr/local/lib/systemd/logind.conf et /usr/lib/systemd/logind.conf et utilise le premier fichier trouvé. Cela signifie que la logique de recherche pour le fichier de configuration principal et pour les drop-ins est désormais la même.

            • De même, l'installation du noyau recherchera les fichiers de configuration dans /usr/lib/kernel/ et dans les autres emplacements de recherche, et prend désormais également en charge les drop-ins.
            • systemd-udevd prend désormais en charge les drop-ins pour udev.conf.
          • Un nouveau binaire systemd-vpick a été ajouté. Il implémente le nouveau protocole vpick, dans lequel un répertoire *.v/ peut contenir plusieurs fichiers dont les versions (suivant la spécification du format de version UAPI) sont intégrées dans le nom du fichier. Les fichiers sont classés par version et la plus récente est sélectionnée.

            • systemd-nspawn --image=/--directory=, systemd-dissect, systemd-portabled et les paramètres RootDirectory=, RootImage=, ExtensionImages= et ExtensionDirectories= pour les unités prennent désormais en charge le protocole vpick et permettent d'utiliser la dernière version sélectionnée automatiquement si un répertoire *.v/ est spécifié comme source.
          • Les informations d'identification du service chiffrées peuvent désormais être rendues accessibles aux utilisateurs non privilégiés. systemd-creds a obtenu de nouvelles options --user/ --uid= pour chiffrer/déchiffrer les informations d'identification d'un utilisateur spécifique.

          • Le nouvel outil de ligne de commande importctl pour télécharger, importer et exporter des images disque via systemd-importd est ajouté avec les verbes suivants : pull-tar, pull-raw, import-tar, import-raw, import-fs, export-tar, export-raw, list-transfers et cancel-transfer. Cette fonctionnalité était auparavant disponible dans machinectl, où elle était utilisée exclusivement pour les images machine. Le nouveau importctl généralise cela pour les images de service sysext, confext et portables.

          • Les sources systemd peuvent désormais être compilées proprement avec toutes les dépréciations d'OpenSSL 3.0 supprimées, y compris la logique du moteur OpenSSL désactivée.

          Sur la gestion des services

          • Un nouveau paramètre de gestionnaire système ProtectSystem= a été ajouté. C'est analogue au réglage de l'unité, mais s'applique à l'ensemble du système. Il est activé par défaut dans le fichier initrd.

            • Notez que cela signifie que le code exécuté dans initrd ne peut pas être naïvement attendu à ce qu'il puisse écrire dans /usr/ pendant le démarrage. Cela affecte dracut <= 101, lequel écrit un crochet ("hooks") dans /lib/dracut/hooks/. src.
          • Un nouveau paramètre d'unité WantsMountsFor= a été ajouté. Il est analogue à RequiresMountsFor=, mais crée une dépendance Wants= au lieu de Requires=. Cette nouvelle logique est désormais utilisée à divers endroits où des montages ont été ajoutés en tant que dépendances pour d'autres paramètres (WorkingDirectory=-…, PrivateTmp=yes, lignes cryptsetup avec nofail).

          • Le nouveau paramètre d'unité MemoryZSwapWriteback= peut être utilisé pour contrôler le nouveau bouton de groupe de contrôle memory.zswap.writeback ajouté dans le noyau 6.8.

          • Le gestionnaire a acquis une méthode D-Bus org.freedesktop.systemd1.StartAuxiliaryScope() pour déléguer certains processus d'un service vers une nouvelle portée.

            • Cette nouvelle étendue restera en cours d'exécution, même lorsque l'unité de service d'origine est redémarrée ou arrêtée. Cela permet à une unité de service de diviser certains processus de travail qui doivent continuer à s'exécuter. Les propriétés du groupe de contrôle de la nouvelle étendue sont copiées à partir de l'unité d'origine, de sorte que diverses limites sont conservées.
          • Les unités exposent désormais les propriétés EffectiveMemoryMax=, EffectiveMemoryHigh= et EffectiveTasksMax=,

            • qui signalent la limite la plus stricte dont systemd a connaissance pour l'unité donnée.
          • Un nouveau spécificateur de fichier d'unité %D

            • correspondra à $XDG_DATA_HOME pour les services utilisateur
            • ou correspondra à /usr/share/ pour les services système
          • AllowedCPUs= prend désormais en charge l'extension du spécificateur.

          • Le paramètre What= dans les unités .mount et .swap accepte désormais les identifiants de style fstab, par exemple UUID=… ou LABEL=….

          • RestrictNetworkInterfaces= prend désormais en charge les noms d'interface réseau alternatifs.

          • PAMName= implique désormais SetLoginEnvironment=yes.

          • systemd.firstboot=no peut être utilisé sur la ligne de commande du noyau pour désactiver les requêtes interactives,

            • mais autoriser d'autres configurations de premier démarrage en fonction des informations d'identification.
          • Le nom d'hôte du système peut être configuré via les informations d'identification système systemd.hostname.

          • Le binaire systemd ne chargera plus en chaîne le binaire telinit de sysvinit lorsqu'il est appelé sous le nom init/telinit sur un système qui n'est pas démarré avec systemd.

            • Cela a déjà été pris en charge pour garantir qu'une distribution sur laquelle les deux systèmes d'initialisation sont installés peut raisonnablement passer de l'un à l'autre via un simple redémarrage. Les distributions ont apparemment perdu tout intérêt pour cela, et la fonctionnalité n'a pas été prise en charge sur la distribution principale à laquelle elle était encore destinée depuis longtemps, et a donc été supprimée maintenant.
          • Un nouveau concept appelé capsules a été introduit.

            • Les capsules enveloppent des gestionnaires de services supplémentaires par utilisateur, dont les utilisateurs sont transitoires et ne sont définis que tant que le gestionnaire de services est en cours d'exécution.
            • (Ceci est implémenté via DynamicUser=1), permettant à un gestionnaire d'utilisateurs d'être utilisé pour gérer un groupe de processus sans avoir besoin de créer un compte utilisateur réel.
            • Ces gestionnaires de services fonctionnent avec les répertoires personnels de /var/lib/capsules/<capsule-name>
              • et peuvent contenir des services réguliers et d'autres unités.
            • Une capsule est démarrée via un simple systemctl start capsule@<name>.service.
            • Consultez la page de manuel capsule@.service(5) pour plus de détails.
            • Divers outils systemd (y compris, et surtout, systemctl et systemd-run) ont été mis à jour pour interagir avec les capsules via le nouveau commutateur --capsule=/-C.
          • Les unités .socket ont obtenu un nouveau paramètre PassFileDescriptorsToExec=, prenant une valeur booléenne.

            • S'ils sont définis sur true, les descripteurs de fichiers que l'unité de socket encapsule sont transmis à ExecStartPost=, ExecStopPre=, ExecStopPost= en utilisant l'interface $LISTEN_FDS habituelle.
            • Cela peut être utilisé pour effectuer des initialisations supplémentaires sur les sockets une fois qu'elles sont allouées. (Par exemple, pour y installer un programme eBPF supplémentaire).
          • Le paramètre .socket MaxConnectionsPerSource= (qui imposait jusqu'à présent une limite aux connexions simultanées par IP dans les unités de socket Accept=yes),

            • a désormais également un effet sur les sockets AF_UNIX 
              • il limitera le nombre de connexions simultanées à partir du même UID source (tel que déterminé via SO_PEERCRED).
            • Ceci est utile pour implémenter les services IPC dans un simple mode Accept=yes.
          • Le gestionnaire de services maintiendra désormais un compteur des cycles de redémarrage logiciel effectués par le système.

            • Il peut être interrogé via les API D-Bus.
          • La logique d'exécution de systemd prend désormais en charge la nouvelle API pidfd_spawn() introduite par la glibc 2.39,

            • qui nous permet d'invoquer un sous-processus dans un groupe de contrôle cible et de récupérer un pidfd en une seule opération.
          • systemd/PID 1 enverra désormais un message sd_notify() supplémentaire à son VMM ou gestionnaire de conteneur superviseur signalant le nom d'hôte sélectionné (X_SYSTEMD_HOSTNAME=) et l'ID de la machine (X_SYSTEMD_MACHINE_ID=) au démarrage.

            • De plus, le gestionnaire de services enverra des messages sd_notify() supplémentaires (X_SYSTEMD_UNIT_ACTIVE=) chaque fois qu'une unité cible est atteinte.
            • Cela peut être utilisé par les VMM/gestionnaires de conteneurs pour planifier précisément l’accès au système.
            • Par exemple, dès qu'un système signale que ssh-access.target est atteint, un gestionnaire VMM/conteneur sait qu'il peut désormais se connecter au système via SSH.
            • Enfin, un nouveau message sd_notify() (X_SYSTEMD_SIGNALS_LEVEL=2) est envoyé au moment où le PID 1 a terminé avec succès l'installation de ses différents gestionnaires de signaux de processus UNIX (c'est-à-dire le moment où SIGRTMIN+4 envoyé au PID 1 commencera à avoir pour effet d'arrêter proprement le système).
            • X_SYSTEMD_SHUTDOWN= est envoyé peu de temps avant l'arrêt du système et contient une chaîne identifiant le type d'arrêt, c'est-à-dire poweroff, halt, reboot.
            • X_SYSTEMD_REBOOT_PARAMETER= est envoyé en même temps et porte la chaîne passée à systemctl --reboot-argument= s'il y en avait une.
          • Les nouvelles propriétés D-Bus ExecMainHandoffTimestamp et ExecMainHandoffTimestampMonotonic sont désormais publiées par unités de services.

            • Cet horodatage est considéré comme la toute dernière opération avant de transférer le contrôle aux binaires invoqués. Ces informations sont disponibles pour d'autres types d'unités qui exécutent des processus (c'est-à-dire les unités de montage, d'échange, de socket), mais actuellement uniquement via systemd-analyze dump.
          • Un horodatage supplémentaire est désormais pris par le gestionnaire de service lorsqu'une opération d'arrêt du système est lancée. Il peut être interrogé via D-Bus pendant la phase d'arrêt. Il est transmis lors des redémarrages logiciels à l'invocation suivante du gestionnaire de services, qui l'utilisera pour enregistrer le temps de « grisage » global de l'opération de redémarrage logiciel, c'est-à-dire l'heure à laquelle l'arrêt a commencé jusqu'à ce que le système soit à nouveau complètement opérationnel.

          • systemctl status affichera désormais l'ID d'invocation dans sa sortie habituelle, c'est-à-dire l'ID de 128 bits attribué de manière unique au cycle d'exécution actuel de l'unité.

            • L'ID est pris en charge depuis longtemps, mais il est désormais affiché de manière plus visible, car il s'agit d'un identifiant très utile pour un appel spécifique d'un service.
          • systemd génère désormais une nouvelle chaîne taint unmerged-bin pour les systèmes qui ont /usr/bin/ et /usr/sbin/ séparés.

            • De nos jours, il est généralement recommandé de faire de ce dernier un lien symbolique vers le premier.
          • Une nouvelle option de ligne de commande kernel systemd.crash_action= a été ajoutée qui configure ce qu'il faut faire après le crash du gestionnaire système (PID 1).

            • Cela peut également être configuré via CrashAction= dans systemd.conf.
          • systemctl kill prend désormais en charge --wait qui fera attendre la commande jusqu'à ce que les services signalés se terminent.

          Journalisation et autres gestions d'erreurs

          • systemd-journald peut désormais transférer les entrées de journal vers un socket (AF_INET, AF_INET6, AF_UNIX ou AF_VSOCK).

            • Le socket peut être spécifié dans journald.conf via une nouvelle option ForwardAddress= ou via les informations d'identification journald.forward_address.
            • Les enregistrements de journaux sont envoyés au format d'exportation du journal.
            • Un paramètre associé MaxLevelSocket= a été ajouté pour contrôler les niveaux de journalisation maximum pour les messages envoyés à ce socket.
          • systemd-journald lit désormais également les informations d'identification de journal.storage lorsque cherche où stocker les fichiers journaux.

          • systemd-vmspawn a obtenu une nouvelle option --forward-journal= pour transmettre les entrées de journal de la machine virtuelle à l'hôte.

            • Cela se fait via un socket AF_VSOCK, c'est-à-dire qu'il ne nécessite pas de mise en réseau dans l'invité.
          • journalctl a obtenu l'option -i comme raccourci pour --file=.

          • journalctl a gagné une nouvelle option -T/--exclude-identifier= pour filtrer certains identifiants syslog.

          • journalctl a gagné une nouvelle option --list-namespaces.

          • systemd-journal-remote accepte désormais également les sockets AF_VSOCK et AF_UNIX : il peut donc être utilisé pour recevoir les entrées transmises par systemd-journald.

          • systemd-journal-gatewayd permet de restreindre la plage horaire des entrées récupérées avec un nouveau paramètre d'URL realtime=[<since>]:[<until>].

          • systemd-cat a gagné une nouvelle option --namespace= pour spécifier l'espace de noms du journal cible auquel la sortie doit être connectée.

          • systemd-bsod a gagné une nouvelle option --tty= pour spécifier le TTY de sortie

          À propos de la gestion des périphériques

          • /dev/ contient désormais des liens symboliques qui combinent des informations by-path & by-{label,uuid}:

            • /dev/disk/by-path/<chemin>/by-<label|uuid|…>/<label|uuid|…>
            • Cela permet de distinguer les partitions avec un contenu identique sur plusieurs périphériques de stockage.
            • Ceci est utile, par exemple, lors de la copie du contenu brut du disque entre périphériques.
          • systemd-udevd crée désormais des liens symboliques /dev/media/by-path/ persistants pour les contrôleurs multimédias.

            • Par exemple, le pilote uvcvideo peut créer /dev/media0 qui sera lié en tant que /dev/media/by-path/pci-0000:04:00.3-usb-0:1:1.0-media-controller.
          • Une nouvelle unité systemd-udev-load-credentials.service a été ajoutée pour récupérer les drop-ins udev.conf et les règles udev à partir des informations d'identification.

          • Une liste d'autorisation/liste de refus peut être spécifiée pour filtrer les attributs sysfs utilisés lors de la création des noms d'interface réseau.

            • Ces listes sont stockées sous forme d'entrées hwdb
              • ID_NET_NAME_ALLOW_<sysfsattr>=0|1
              • et ID_NET_NAME_ALLOW=0|1
              • L'objectif est d'éviter des modifications inattendues des noms d'interface lorsque le noyau est mis à jour et que de nouveaux attributs sysfs deviennent visibles.
          • Une nouvelle unité tpm2.target a été ajoutée pour fournir un point de synchronisation pour les unités qui s'attendent à ce que le matériel TPM soit disponible.

            • Un nouveau générateur systemd-tpm2-generator a été ajouté qui insérera cette cible chaque fois qu'il détectera que le micrologiciel a initialisé un TPM, mais que Linux n'a pas encore chargé de pilote pour celui-ci.
          • systemd-backlight prend désormais correctement en charge les périphériques numérotés créés par le noyau pour éviter les collisions dans le sous-système LED.

          • L'opération de mise à jour systemd-hwdb peut être désactivée avec une nouvelle variable d'environnement SYSTEMD_HWDB_UPDATE_BYPASS=1.

          systemd-hostnamed offre divers manières de modifier le nom et la description du système

          • systemd-hostnamed expose désormais l'ID de la machine et l'ID de démarrage via D-Bus.

            • Il expose également les hôtes AF_VSOCK CID, si disponible.
          • systemd-hostnamed fournit désormais une interface Varlink de base.

          • systemd-hostnamed exporte les données complètes dans os-release(5) et machine-info(5) via D-Bus et Varlink.

          • hostnamectl affiche désormais l'UUID du produit du système et le numéro de série du matériel s'il est connu.

          La gestion du réseau avec systemd

          • systemd-networkd fournit désormais une interface Varlink de base.

          • La prise en charge du proxy ARP de systemd-networkd a gagné une nouvelle option pour configurer une variante de VLAN privé du proxy ARP pris en charge par le noyau sous le nom IPv4ProxyARPPrivateVLAN=.

          • systemd-networkd exporte désormais les propriétés NamespaceId et NamespaceNSID via D-Bus et Varlink.

            • qui exposent l'inode et le NSID de l'espace de noms réseau géré par l'instance networkd)
          • systemd-networkd prend désormais en charge les paramètres IPv6RetransmissionTimeSec= et UseRetransmissionTime= dans les fichiers .network pour configurer le temps de retransmission pour les messages de sollicitation de voisin IPv6.

          • networkctl a acquis de nouveaux verbes « mask » et « unmask » pour masquer les fichiers de configuration réseau tels que les fichiers .network.

          • networkctl edit --runtime permet de modifier la configuration volatile sous /run/systemd/network/.

          • La mise en œuvre derrière le paramètre réseau TTLPropagate= a été supprimée, et ce paramètre est désormais ignoré.

          • systemd-network-generator récupérera désormais la configuration situé dans .netdev/.link/.network/networkd.conf à partir des informations d'identification du système.

          • systemd-networkd récupérera désormais les secrets de wireguard depuis les informations d'identification (credentials).

          • L'API Varlink de systemd-networkd prend désormais en charge l'énumération des homologues LLDP.

          • Les fichiers .link prennent désormais en charge les nouveaux champs Property=, ImportProperty=, UnsetProperty= pour définir les propriétés udev sur un lien.

          • Les différents fichiers .link fournis par systemd pour les interfaces censées être gérées uniquement par systemd-networkd portent désormais une propriété udev ID_NET_MANAGED_BY=io.systemd.Network garantissant que les autres solutions de gestion de réseau honorant cette propriété udev n'entrent pas en conflit avec networkd, en essayant de gérer ces interfaces.

          • Les fichiers .link prennent désormais en charge un nouveau paramètre ReceiverPacketSteeringCPUMask=

            • pour configurer les processeurs vers lesquels diriger les paquets entrants.
          • La section [Réseau] des fichiers .network a gagné un nouveau paramètre UseDomains=,

            • qui est un bouton générique unique pour contrôler les paramètres du même nom dans [DHCPv4], [DHCPv6] et [IPv6AcceptRA].
          • Le fichier 99-default.link que nous livrons par défaut

            • (qui définit la politique pour tous les périphériques réseau auxquels aucun autre fichier .link ne s'applique)
            • répertorie désormais mac parmi AlternativeNamesPolicy=.
            • Cela signifie que les interfaces réseau recevront désormais par défaut un nom de périphérique alternatif supplémentaire basé sur l'adresse MAC. (c'est-à-dire enx…)

          À propos de systemd-nspawn, l'alternative sécurisée et fine de chroot

          • systemd-nspawn fournit désormais un répertoire /run/systemd/nspawn/unix-export/ dans lequel la charge utile du conteneur peut exposer les sockets AF_UNIX pour leur permettre d'y accéder de l'extérieur.

          • systemd-nspawn teintera l'arrière-plan du terminal des conteneurs d'une couleur bleuâtre. Cela peut être un contrôleur avec le nouveau commutateur --background=.

          • systemd-nspawn a obtenu la prise en charge de l'option owneridmap pour les montages --bind= afin de mapper le propriétaire du répertoire cible depuis l'intérieur du conteneur vers le propriétaire du répertoire lié au système de fichiers hôte.

          • systemd-nspawn prend désormais en charge le déplacement des périphériques réseau Wi-Fi dans un conteneur, tout comme les autres interfaces réseau.

          À propos du multi résolveur systemd-resolved, qui peut remplacer dnsmasq, Avahi & libnss-mdns

          • systemd-resolved lit désormais les codes d'erreur RFC 8914 EDE fournis par les services DNS en amont.

          • systemd-resolved et solvectl prennent désormais en charge les enregistrements RFC 9460 SVCB et HTTPS, ainsi que les enregistrements RFC 2915 NAPTR.

          • solvectl a acquis une nouvelle option --relax-single-label= pour permettre d'interroger des noms d'hôtes en une seule partie via DNS unicast pour chaque requête.

          • L'interface Varlink IPC de systemd-resolved prend désormais en charge la résolution des services DNS-SD ainsi qu'une API pour résoudre les RR DNS bruts.

          • Les fichiers de description de service .dnssd DNS_SD de systemd-resolved prennent désormais en charge les sous-types DNS-SD via le nouveau paramètre SubType=.

          • La configuration de systemd-resolved peut désormais être rechargée sans redémarrer le service, c'est-à-dire que systemctl reload systemd-resolved est désormais pris en charge.

          Une intégration fine de SSH

          • Un drop-in de configuration sshd pour permettre aux clés ssh acquises via userdbctl (par exemple exposées par des comptes de type systemd-homed) d'être utilisées pour l'autorisation des connexions SSH entrantes.

          • Un petit nouveau générateur d'unités systemd-ssh-generator a été ajouté. Il vérifie si le binaire sshd est installé. Si tel est le cas, il le lie via l'activation de socket par connexion à différentes sockets en fonction du contexte d'exécution :

            • Si le système est exécuté sur une VM prenant en charge AF_VSOCK, il lie automatiquement sshd au AF_VSOCK port 22 .
            • Si le système est invoqué en tant que conteneur OS complet et que le gestionnaire de conteneur pré-monte un répertoire /run/host/unix-export/, il liera sshd à un socket AF_UNIX /run/host/unix-export/ssh. L'idée est que la liaison du gestionnaire de conteneur monte également le répertoire à un endroit approprié sur l'hôte, de sorte que le socket AF_UNIX puisse être utilisé pour se connecter facilement de l'hôte au conteneur.
          • sshd est également lié à un socket AF_UNIX /run/ssh-unix-local/socket, qui consiste à utiliser ssh/sftp à la manière de sudo pour accéder aux ressources d'autres utilisateurs locaux.

          • Via l'option de ligne de commande du noyau systemd.ssh_listen= et les informations d'identification système ssh.listen, sshd peut être lié à des options supplémentaires explicitement configurées, notamment les ports AF_INET/AF_INET6.

          • En particulier, les deux premiers mécanismes devraient faciliter grandement la gestion des machines virtuelles locales et des conteneurs de système d'exploitation complets, car les connexions SSH fonctionneront basiquement à partir de l'hôte – même si aucun réseau n'est disponible.

          • systemd-ssh-generator génère optionnellement un fichier de service d'activation de socket par connexion en encapsulant sshd. Ceci n'est fait que si la distribution n'en fournit pas elle-même sous le nom de sshd@.service. L'unité générée ne fonctionne correctement que si le répertoire de séparation des privilèges SSH privsep existe. Malheureusement, les distributions varient & placent ce répertoire de manière très variable. Voici une liste incomplète :

            • /usr/share/empty.sshd/ (nouveau sous Fedora)
            • /var/empty/
            • /var/empty/sshd/
            • /run/sshd/ (debian/ubuntu ?)

          Si le répertoire SSH privsep est placé sous /var/ ou /run/, il faut veiller à ce que le répertoire soit créé automatiquement au démarrage si nécessaire, car ces répertoires peuvent être ou sont toujours vides. Cela peut être fait via un drop-in tmpfiles.d/. Vous pouvez utiliser l'option meson sshdprivsepdir fournie par systemd pour configurer le répertoire, au cas où vous souhaiteriez que systemd crée automatiquement le répertoire selon vos besoins, si votre distribution ne le couvre pas de manière native.

          Recommandations aux distributions, afin que les choses fonctionnent correctement :

          • Veuillez fournir un fichier de service SSH par connexion sous le nom sshd@.service.
          • Veuillez déplacer le répertoire SSH privsep dans /usr/
          * afin qu'il soit véritablement immuable sur les systèmes d'exploitation basés sur des images
          * qu'il soit strictement sous le contrôle du gestionnaire de paquets
          * et qu'il ne nécessite jamais de recréation si le système démarre avec un répertoire /run/ ou /var vide.
          • Dans le prolongement de ceci : veuillez envisager de suivre l'exemple de Fedora ici et d'utiliser /usr/share/empty.sshd/ pour minimiser les différences inutiles entre les distributions.
          • Si votre distribution insiste pour placer le répertoire dans /var/ ou /run/ alors veuillez au moins fournir un drop-in tmpfiles.d/ pour le recréer automatiquement au démarrage, afin que le binaire sshd fonctionne correctement, quel que soit le contexte dans lequel il se trouve appelé.

          • Un petit outil systemd-ssh-proxy a été ajouté, censé faire office de pendant de systemd-ssh-generator. C'est un petit plug-in pour le client SSH (via ProxyCommand/ProxyUseFdpass) pour lui permettre de se connecter aux sockets AF_VSOCK ou AF_UNIX. Exemple : ssh vsock/4711 se connecte à une VM locale avec le cid 4711, ou ssh unix/run/ssh-unix-local/socket pour se connecter à l'hôte local via le socket AF_UNIX /run/ssh-unix-local/socket.

          systemd-boot et systemd-stub et outils associés, une alternative minimale & ukify à grub

          • La prise en charge des mesures PCR TPM 1.2 a été supprimée de systemd-stub. Le TPM 1.2 est obsolète et – en raison de la faiblesse (selon les normes actuelles) des algorithmes cryptographiques qu'il ne prend en charge – n'offre pas réellement les avantages en matière de sécurité qu'il est censé offrir. Étant donné que le reste de la base de code de systemd n'a jamais pris en charge TPM 1.2, la prise en charge a également été supprimée de systemd-stub.

          • systemd-stub mesurera désormais sa charge utile via les nouvelles API EFI Confidential Computing (CC), en plus des mesures préexistantes du TPM.

          • Les confextes (cf [systemd-sysext](https://www.freedesktop.org/software/systemd/man/latest/systemd-sysext.html)) sont également chargés par systemd-stub depuis l'ESP.

          • kernel-install a obtenu le support de --root= pour le verbe list.

          • bootctl fournit désormais une interface Varlink de base et peut être exécuté en tant que service(démon) via une unité modèle.

          • systemd-measure a obtenu de nouvelles options --certificate=, --private-key= et --private-key-source= pour permettre l'utilisation des moteurs ou fournisseurs d'OpenSSL comme mécanisme de signature à utiliser lors de la création de valeurs de mesure signées PCR TPM2

          • ukify a obtenu la prise en charge de la signature des signatures PCR via les moteurs et fournisseurs OpenSSL.

          • ukify prend désormais en charge les noyaux zboot.

          • systemd-boot prend désormais en charge la transmission de commutateurs de ligne de commande de noyau supplémentaires aux noyaux invoqués via une chaîne SMBIOS Type #11 io.systemd.boot.kernel-cmdline-extra. Ceci est similaire à la prise en charge préexistante de cela dans systemd-stub, mais s'applique également aux entrées de spécification du chargeur de démarrage de type n°1.

          • La prise en charge automatique de l'inscription SecureBoot par systemd-boot prend également en charge l'inscription dbx (auparavant, seule l'inscription db/KEK/PK était prise en charge). Il prend également désormais en charge le mode UEFI « Personnalisé ».

          • La politique pcrlock est enregistrée dans un fichier d'informations d'identification non chiffré pcrlock.<entry-token>.cred sous XBOOTLDR/ESP dans le répertoire /loader/credentials/. Il sera récupéré au démarrage par systemd-stub et transmis à initrd, où il pourra être utilisé pour déverrouiller le système de fichiers racine.

          • systemd-pcrlock a obtenu une option --entry-token= pour configurer le jeton d'entrée.

          • systemd-pcrlock fournit désormais une interface Varlink de base et peut être exécuté en tant que démon via une unité modèle.

          • La politique d'accès au TPM nvindex de systemd-pcrlock a été modifiée

            • cela signifie que les politiques pcrlock précédentes stockées dans nvindexes sont invalidées.
            • Ils doivent être supprimés (systemd-pcrlock remove-policy) et recréés (systemd-pcrlock make-policy).
            • Pour le moment, systemd-pcrlock reste une fonctionnalité expérimentale, mais elle devrait devenir stable dans la prochaine version, c'est-à-dire la v257.
          • Le commutateur --recovery-pin= de systemd-pcrlock prend désormais trois valeurs : hide, show, query. Si « afficher » est sélectionné, le code PIN de récupération généré automatiquement est affiché à l'utilisateur. Si « requête » est sélectionné, le code PIN est demandé à l'utilisateur.

          • sd-stub prend désormais en charge la nouvelle section PE .ucode dans les UKI, qui peut contenir des données de microcode CPU. Lorsque le contrôle est transféré au noyau Linux, ces données sont ajoutées au début de l'ensemble des initrds transmis.

          systemd-run/run0, une alternative sécurisée à sudo

          • systemd-run est désormais un binaire multi-appels. Lorsqu'il est invoqué en tant que run0, il fournit une interface similaire à sudo, tous les arguments commençant au premier paramètre non-option étant traités comme la commande à invoquer en tant que root.

            • Contrairement à « sudo » et aux outils similaires, il n'utilise pas de binaires setuid ou d'autres méthodes d'élévation de privilèges
            • mais exécute à la place la commande spécifiée comme une unité transitoire
            • Elle est démarrée par le gestionnaire de services système, de sorte que les privilèges sont supprimés plutôt que gagnés.
            • Cela met ainsi en œuvre un modèle de sécurité beaucoup plus robuste et sûr.
            • Comme d'habitude, l'autorisation est gérée via Polkit.
          • systemd-run/run0 teintera désormais l'arrière-plan du terminal sur les terminaux pris en charge :

            • dans un ton rougeâtre lors de l'appel d'un service racine
            • dans un ton jaunâtre sinon.
            • Cela peut être contrôlé et désactivé via le nouveau commutateur --background=.
          • systemd-run a gagné une nouvelle option --ignore-failure pour supprimer les échecs de commandes.

          Outillages en ligne de commande

          • systemctl edit --stdin permet la création de fichiers d'unité et de drop-ins avec du contenu fourni via l'entrée standard.

            • Ceci est utile lors de la création d’une configuration par programme ; l'outil se charge de déterminer le nom du fichier, de créer les répertoires éventuels et de recharger ensuite le gestionnaire.
          • systemctl disable --now et systemctl mask --now fonctionnent désormais correctement avec les modèles d'unités.

          • systemd-analyze architectures répertorie les architectures CPU connues.

          • systemd-analyze --json=… est pris en charge pour les architectures, capability, exit-status

          • systemd-tmpfiles --purge purgera (supprimera) tous les fichiers et répertoires créés via la configuration tmpfiles.d.

          • systemd-id128 a gagné de nouvelles options --no-pager, --no-legend et -j/ --json=.

          • hostnamectl a gagné -j comme raccourci pour --json=pretty ou --json=short

          • loginctl prend désormais en charge -j/ --json=.

          • resolvectl prend désormais en charge -j/ --json= pour --type=.

          • systemd-tmpfiles a gagné une nouvelle option --dry-run pour simuler ce qui serait fait sans réellement agir.

          • varlinkctl a obtenu un nouveau commutateur --collect pour collecter toutes les réponses d'un appel de méthode qui prend en charge plusieurs réponses et le transforme en un seul tableau JSON.

          • systemd-dissect a acquis une nouvelle option --make-archive pour générer un fichier d'archive (tar.gz et similaire) à partir d'une image disque.

          systemd-vmspawn, permet de générer un système d'exploitation dans une machine virtuelle

          • systemd-vmspawn a gagné

            • une nouvelle option --firmware= pour configurer ou lister les définitions de firmware pour Qemu
            • une nouvelle option --tpm= pour activer ou désactiver l'utilisation d'un TPM logiciel
            • une nouvelle option --linux= pour spécifier un noyau binaire pour le démarrage direct du noyau
            • une nouvelle option --initrd= pour spécifier un initrd pour le démarrage direct du noyau
            • une nouvelle option -D/--directory pour utiliser un répertoire simple comme système de fichiers racine
            • une nouvelle option --private-users similaire à celle de systemd-nspawn
            • de nouvelles options --bind= et --bind-ro= pour lier une partie de la hiérarchie du système de fichiers de l'hôte à l'invité
            • une nouvelle option --extra-drive= pour attacher du stockage supplémentaire
            • et -n/--network-tap/--network-user-mode pour configurer le réseau.
          • Un nouveau systemd-vmspawn@.service peut être utilisé pour lancer systemd-vmspawn en tant que service.

          • systemd-vmspawn a obtenu les nouveaux commutateurs --console= et --background= qui contrôlent la manière d'interagir avec la VM.

            • Comme auparavant, une interface de terminal interactive est fournie par défaut, mais désormais avec un fond teinté d'une teinte verdâtre.
          • systemd-vmspawn peut désormais enregistrer ses VM auprès de systemd-machined, contrôlé via le commutateur --register=.

          • La commande start de machinectl (et associée) peut désormais appeler des images

            • soit en tant que conteneurs via systemd-nspawn (le commutateur est --runner=nspawn, la valeur par défaut)
            • soit en tant que VM via systemd-vmspawn (le commutateur est --runner=vmspawn , ou court -V).
          • systemd-vmspawn prend désormais en charge deux commutateurs --pass-ssh-key= et --ssh-key-type= pour configurer éventuellement des clés SSH transitoires à transmettre aux machines virtuelles invoquées afin de pouvoir y accéder en SSH une fois démarrées.

          • systemd-vmspawn activera désormais diverses options sur les VMs

            • HyperV enlightenments"
            • et le VM Generation ID
          • Une nouvelle variable d'environnement $SYSTEMD_VMSPAWN_QEMU_EXTRA peut contenir des options de ligne de commande qemu supplémentaires à transmettre à qemu.

          • systemd-machined a acquis une nouvelle méthode D-Bus GetMachineSSHInfo() qui est utilisé par systemd-vmspawn pour récupérer les informations nécessaires pour se connecter au système.

            • systemd-machined a acquis une nouvelle interface Varlink qui est utilisée par systemd-vmspawn pour enregistrer les machines avec diverses informations & métadonnées supplémentaires.

          systemd-repart, pour retailler un disque à la volée

          • systemd-repart a obtenu de nouvelles options --generate-fstab= et --generate-crypttab=

            • pour écrire les fichiers fstab et crypttab correspondant aux partitions générées.
          • systemd-repart a obtenu une nouvelle option --private-key-source=

            • pour permettre d'utiliser les moteurs ou fournisseurs d'OpenSSL comme mécanisme de signature à utiliser lors de la création de partitions de signature Verity.
          • systemd-repart a obtenu un nouveau paramètre DefaultSubvolume= dans les drop-ins repart.d/

            • qui permettent de configurer le sous-volume btrfs par défaut pour les systèmes de fichiers btrfs nouvellement formatés.

          Bibliothèques autours du monde systemd

          • libsystemd a obtenu un nouvel appel sd_bus_creds_new_from_pidfd()

            • pour obtenir un objet d'informations d'identification pour un pidfd
            • et sd_bus_creds_get_pidfd_dup() pour récupérer le pidfd à partir d'un objet d'informations d'identification.
          • La logique d'identification de sd-bus acquerra désormais également les listes de groupes UNIX du homologue

            • et le pidfd du homologue si pris en charge et demandé.
          • La macro RPM %_kernel_install_dir a été ajoutée avec le chemin d'accès au répertoire des plugins d'installation du noyau.

          • Les dépendances liblz4, libzstd, liblzma, libkmod, libgcrypt ont été modifiées

            • de dépendances de bibliothèque partagée habituelles en dépendances basées sur dlopen().
            • Notez que cela signifie que ces bibliothèques pourraient ne pas être automatiquement récupéré lorsque les dépendances ELF sont résolues. En particulier le manque de libkmod peut causer des problèmes de démarrage. Cela affecte le dracut <= 101
          • Les binaires systemd ELF qui utilisent des bibliothèques via dlopen() sont maintenant construits avec une nouvelle section de note d'en-tête ELF, suite à une nouvelle spécification définie à
            docs/ELF_DLOPEN_METADATA.md, qui fournit des informations sur lesquels le sonames sont chargés et utilisés s'ils sont trouvés au moment de l'exécution. Cela permet aux outils et packagers pour découvrir par programme la liste des éléments facultatifs
            dépendances utilisées par tous les binaires systemd ELF. Un analyseur avec packaging les outils d'intégration sont disponibles sur git

          • L'API sd-journal a obtenu un nouvel appel sd_journal_stream_fd_with_namespace()

            • qui ressemble à sd_journal_stream_fd() mais crée un flux de journaux ciblé sur un espace de noms de journal spécifique.
          • L'API sd-id128 a obtenu un nouvel appel d'API sd_id128_get_invocation_app_special()

            • pour acquérir un ID spécifique à l'application dérivé de l'ID d'appel de service.
          • L'API sd-event a obtenu un nouvel appel d'API sd_event_source_get_inotify_path()

            • qui renvoie le chemin du système de fichiers pour lequel une source d'événement inotify a été créée.

          systemd-cryptsetup systemd-cryptenroll, où l'aide au chiffrement de disque

          • L'argument du nœud de périphérique pour systemd-cryptenroll est désormais facultatif.

            • S'il est omis, il sera automatiquement déduit du périphérique de bloc de support de /var/
              • (qui est très probablement le même que le système de fichiers racine, ce qui signifie effectivement que si vous ne spécifiez rien, sinon l'outil enregistrera désormais par défaut une clé dans périphérique LUKS du système de fichiers racine).
          • systemd-cryptenroll peut désormais s'inscrire directement avec une clé publique PKCS11 (au lieu d'un certificat).

          • systemd-cryptsetup systemd-cryptenroll peuvent désormais verrouiller un disque avec une clé EC fournie par PKCS#11

            • (auparavant, il ne prenait en charge que RSA).
          • systemd-cryptsetup prend en charge l'option crypttab link-volume-key=

            • pour lier la clé du volume au jeu de clés du noyau lorsque le volume est ouvert.
          • systemd-cryptenroll n'activera plus la protection contre les attaques par dictionnaire (c'est-à-dire activer NO_DA) pour les inscriptions TPM qui n'impliquent pas de code PIN.

            • DA ne devrait pas être nécessaire dans ce cas (puisque l'entropie de la clé est suffisamment élevée pour rendre cela inutile),
            • mais un risque un verrouillage accidentel en cas de modifications inattendues du PCR.
          • systemd-cryptenroll prend désormais en charge l'inscription d'un nouvel emplacement tout en déverrouillant l'ancien emplacement via TPM2

            • (auparavant, le déverrouillage ne fonctionnait que via un mot de passe ou FIDO2).

          systemd-homed systemd-logind, systemd-userdbd

          • systemd-homed prend désormais en charge le déverrouillage des répertoires personnels lors de la connexion via SSH.

            • Auparavant, les répertoires personnels devaient être déverrouillés avant toute tentative de connexion SSH.
          • Les enregistrements utilisateur au format JSON ont été étendus avec une zone de stockage publique distincte appelée « Répertoires binaires des enregistrements utilisateur » ("User Record Blob Directories").

            • Ceci est destiné à stocker l'image d'arrière-plan de l'utilisateur, l'image de l'avatar et d'autres éléments similaires qui sont trop volumineux pour tenir dans l'enregistrement utilisateur lui-même.
            • systemd-homed, userdbctl et homectl prennent désormais en charge les répertoires binaires.
            • homectl a gagné --avatar= et --login-background=
              • pour contrôler deux éléments spécifiques des répertoires binaires.
            • Un nouveau champ additionalLanguages a été ajouté aux enregistrements utilisateur JSON (tel que pris en charge par systemd-homed et systemd-userdbd),
              • qui est étroitement lié au preferredLanguage préexistant, et permet de spécifier plusieurs langues supplémentaires pour le compte utilisateur.
              • Il est utilisé pour initialiser la variable d'environnement $LANGUAGES lorsqu'elle est utilisée.
          • Une nouvelle paire de champs preferredSessionType et preferredSessionLauncher a été ajoutée aux enregistrements utilisateur JSON,

            • qui peuvent être utilisées pour contrôler le type de session de bureau à activer de préférence lors des connexions de l'utilisateur.
          • homectl a gagné un nouveau verbe firstboot, et une nouvelle unité systemd-homed-firstboot.service

            • ce verbe est utilisé pour créer des utilisateurs dans un environnement de premier démarrage,
              • soit à partir des informations d'identification du système
              • soit en interrogeant de manière interactive.
          • systemd-logind prend désormais en charge une nouvelle classe de session background-light qui n'envoie pas l'unité user@.service.

            • Ceci est destiné aux sessions automatisées, type cron, sans nécessiré d'interactions utilisateurs
            • Cela rend l'ouverture plus légère et rapide.
          • Le gestionnaire de services par utilisateur sera désormais suivi comme un type de session « gestionnaire » (manager) distinct parmi les sessions de connexion de chaque utilisateur.

          • homectl prend désormais en charge un mode --offline,

            • grâce auquel certaines propriétés du compte peuvent être modifiées sans déverrouiller le répertoire personnel.
          • systemd-logind a acquis une nouvelle méthode org.freedesktop.login1.Manager.ListSessionsEx()

            • qui fournit des métadonnées supplémentaires par rapport à ListSessions().
            • loginctl l'utilise pour lister des champs supplémentaires dans les sessions de liste.
          • systemd-logind a gagné une nouvelle méthode org.freedesktop.login1.Manager.Sleep()

            • qui redirige automatiquement vers SuspendThenHibernate(), Suspend(), HybridSleep() ou Hibernate(),
              • selon ce qui est pris en charge et configuré,
                • une nouvelle paramètre de configuration SleepOperation=,
                • ainsi qu'une méthode d'assistance associée org.freedesktop.login1.Manager.CanSleep()
                • et une propriété org.freedesktop.login1.Manager.SleepOperation.
                • systemctl sleep appelle la nouvelle méthode pour mettre automatiquement la machine en veille de la manière la plus appropriée.
          • systemctl sleep appelle une nouvelle méthode pour mettre automatiquement la
            machine dans le mode sommeil de la manière la plus appropriée.

          systemd-creds, mécanisme de gestion des authentifications, pour arrêter de balancer du mot de passe en clair partout

          • systemd-creds fournit désormais une API Varlink IPC pour chiffrer et déchiffrer les informations d'identification.

          • La sélection de clé tpm2-absent de systemd-creds a été renommée en null, puisque c'est ce qu'elle fait réellement :

            • chiffrer et signer avec une clé nulle fixe.
            • --with-key=null ne doit être utilisé que dans des cas très spécifiques,
            • car il n'offre aucune protection en matière d'intégrité ou de confidentialité.
            • c'est-à-dire qu'il n'est sûr à utiliser comme solution de secours que dans des environnements dépourvus à la fois d'un TPM et d'un accès au système de fichiers racine pour utiliser la clé de chiffrement de l'hôte, ou lorsque l'intégrité est assurée d'une autre manière.
          • systemd-creds a obtenu un nouveau commutateur --allow-null.

            • S'il est spécifié, le verbe decrypt décodera les informations d'identification chiffrées qui utilisent la clé null
            • Par défaut, cela est refusé, car l'utilisation de la clé null annule le cryptage authentifié normalement effectué.

          De quoi mettre en veille et mettre en veille prolongée

          • Le fichier de configuration sleep.conf a obtenu un nouveau paramètre MemorySleepMode=

            • pour configurer le mode veille plus en détail.
          • Un nouveau petit service systemd-hibernate-clear.service a été ajouté

            • qui efface les informations d'hibernation de la variable EFI HibernateLocation,
              • au cas où le périphérique de reprise disparaîtrait.
              • Normalement, cette variable est censée être nettoyée par le code qui lance l'image de reprise depuis l'hibernation.
              • Mais lorsque le périphérique est manquant et que ce code ne s'exécute pas,
              • ce service effectuera désormais le travail nécessaire, garantissant qu'aucune information d'image d'hibernation obsolète ne reste lors des démarrages suivants.

          Espaces de noms utilisateurs non privilégiés et gestion des montages de disques

          • Un nouveau petit service systemd-nsresourced.service a été ajouté.

            • Il fournit une API Varlink IPC qui attribue une plage UID/GID de 64 Ko gratuite et allouée de manière transitoire à un espace de noms d'utilisateur non initialisé fourni par un client. Il peut être utilisé pour implémenter des gestionnaires de conteneurs sans privilèges et d'autres programmes nécessitant des plages d'ID utilisateur dynamiques. Il fournit également des interfaces pour déléguer ensuite des descripteurs de fichiers de montage, des groupes de contrôle et des interfaces réseau aux espaces de noms utilisateur configurés de cette manière.
          • Un nouveau petit service systemd-mountfsd.service a été ajouté.

            • Il fournit une API Varlink IPC pour monter des images DDI et renvoyer un ensemble de descripteurs de fichiers de montage pour celles-ci. Si un espace de noms utilisateur fd est fourni en entrée, alors les montages sont enregistrés avec l'espace de noms utilisateur. Pour garantir la confiance dans l'image, elle doit fournir des informations Verity (ou bien une authentification polkit interactive est requise).
          • L'outil systemd-dissect peut désormais accéder aux DDI sans aucun privilège en utilisant systemd-nsresourced/systemd-mountfsd.

          • Si le gestionnaire de services s'exécute sans privilèges (c'est-à-dire systemd --user),

            • il prend désormais en charge RootImage= pour accéder aux images DDI, également implémenté via systemd-nsresourced/systemd-mountfsd.
          • systemd-nspawn peut désormais fonctionner sans privilèges,

            • si un DDI approprié est fourni via --image=, encore une fois implémenté via systemd-nsresourced/systemd-mountfsd.

          Divers changements

          • timedatectl et machinectl ont obtenu l'option -P,
            • un alias pour --value --property=….
          • Divers outils permettant d'imprimer joliment les fichiers de configuration mettront désormais en évidence les directives de configuration.

          • varlinkctl a obtenu le support du transport ssh:.

            • Cela nécessite OpenSSH 9.4 ou plus récent.
          • systemd-sysext a obtenu la prise en charge de l'activation des extensions système de manière mutable,

            • où un répertoire supérieur inscriptible est stocké sous /var/lib/extensions.mutable/,
            • et une nouvelle option --mutable= pour configurer ce comportement.
            • Un mode « éphémère » n'est pas non plus pris en charge lorsque la couche mutable est configurée pour être un tmpfs qui est automatiquement libéré lorsque les extensions système sont rattachées.
          • Les coredumps sont désormais conservés pendant deux semaines par défaut (au lieu de trois jours comme auparavant).

          • Le paramètre portablectl --copy= a obtenu un nouvel argument mixte,

            • qui entraînera la liaison des ressources appartenant au système d'exploitation
            • (par exemple : les profils portables) mais aux ressources appartenant à l'image portable à copier (par exemple les fichiers unitaires et les images elles-mêmes).
          • systemd enregistrera désormais les types MIME de ses divers types de fichiers

            • (par exemple, fichiers journaux, DDI, informations d'identification cryptées…) via l'infrastructure d'informations mime partagées XDG.
            • (Les fichiers de ces types seront ainsi reconnus comme leur propre élément dans les gestionnaires de fichiers de bureau tels que les fichiers GNOME.)
          • systemd-dissect affichera désormais la taille de secteur détectée d'un DDI donné dans sa sortie par défaut.

          • systemd-portabled génère désormais des messages de journal structurés reconnaissables chaque fois qu'un service portable est attaché ou détaché.

          • La vérification de la signature Verity dans l'espace utilisateur (c'est-à-dire la vérification par rapport aux clés /etc/verity.d/) lors de l'activation des DDI peut désormais être activée/désactivée

            • via une option de ligne de commande du noyau systemd.allow_userspace_verity=
            • et une variable d'environnement SYSTEMD_ALLOW_USERSPACE_VERITY=.
          • La gestion des quotas du système de fichiers ext4/xfs a été retravaillée,

            • de sorte que quotacheck et quotaon soient désormais invoqués en tant que services basés sur un modèle par système de fichiers
            • (par opposition à des singletons uniques à l'échelle du système), de style similaire à la logique fsck, growfs, pcrfs.
            • Cela signifie que les systèmes de fichiers avec quota activé peuvent désormais être raisonnablement activés au moment de l'exécution du système, et pas seulement au démarrage.
          • systemd-analyze dot affichera désormais également les dépendances BindsTo=.

          • systemd-debug-generator a acquis la possibilité d'ajouter des unités arbitraires en fonction de leur transmission via les informations d'identification du système.

          • Une nouvelle option de ligne de commande du noyau systemd.default_debug_tty= peut être utilisée pour spécifier le TTY pour le shell de débogage, indépendamment de son activation ou de sa désactivation.

          • portablectl a obtenu un nouveau commutateur --clean qui efface les données d'un service portable (cache, logs, state, runtime, fdstore) lors de son détachement.

          Documentations

          Contributeurs

          Contributions from: A S Alam, AKHIL KUMAR,
          Abraham Samuel Adekunle, Adrian Vovk, Adrian Wannenmacher,
          Alan Liang, Alberto Planas, Alexander Zavyalov, Anders Jonsson,
          Andika Triwidada, Andres Beltran, Andrew Sayers,
          Antonio Alvarez Feijoo, Arthur Zamarin, Artur Pak, AtariDreams,
          Benjamin Franzke, Bernhard M. Wiedemann, Black-Hole1, Bryan Jacobs,
          Burak Gerz, Carlos Garnacho, Chandra Pratap, Chris Simons,
          Christian Wesselhoeft, Clayton Craft, Colin Geniet, Colin Walters,
          Costa Tsaousis, Cristian Rodríguez, Daan De Meyer,
          Damien Challet, Dan Streetman, David Tardon, David Venhoek,
          Diego Viola, Dionna Amalie Glaze, Dmitry Konishchev,
          Edson Juliano Drosdeck, Eisuke Kawashima, Eli Schwartz,
          Emanuele Giuseppe Esposito, Eric Daigle, Evgeny Vereshchagin,
          Felix Riemann, Fernando Fernandez Mancera, Florian Schmaus,
          Franck Bui, Frantisek Sumsal, Friedrich Altheide,
          Gabríel Arthúr Pétursson, Gaël Donval, Georges Basile Stavracas Neto,
          Gerd Hoffmann, GNOME Foundation, Guido Leenders,
          Guilhem Lettron, Göran Uddeborg, Hans de Goede, Harald Brinkmann,
          Heinrich Schuchardt, Henry Li, Holger Assmann, Ivan Kruglov,
          Ivan Shapovalov, Jakub Sitnicki, James Muir, Jan Engelhardt,
          Jan Macku, Jeff King, JmbFountain, Joakim Nohlgård,
          Jonathan Conder, Julius Alexandre, Jörg Behrmann, Keian, Kirk,
          Kristian Klausen, Krzesimir Nowak, Lars Ellenberg,
          Lennart Poettering, Luca Boccassi, Ludwig Nussel, Lukáš Nykrýn,
          Luna Jernberg, Luxiter, Maanya Goenka, Mariano Giménez,
          Markus Merklinger, Martin Ivicic, Martin Srebotnjak,
          Martin Trigaux, Martin Wilck, Matt Layher, Matt Muggeridge,
          Matteo Croce, Matthias Lisin, Max Gautier, Max Staudt, MaxHearnden,
          Michael Biebl, Michal Koutný, Michal Sekletár, Mike Gilbert,
          Mike Yuan, Mikko Ylinen, MkfsSion, MrSmör, Nandakumar Raghavan,
          Nick Cao, Nick Rosbrook, Norbert Lange, Ole Peder Brandtzæg,
          Ondrej Kozina, Oğuz Ersen, Pablo Méndez Hernández,
          Pierre GRASSER, Piotr Drąg, QuonXF, Rafaël Kooi, Raito Bezarius,
          Rasmus Villemoes, Reid Wahl, Renjaya Raga Zenta, Richard Maw,
          Roland Hieber, Ronan Pigott, Rose, Ross Burton, Sam Leonard,
          Samuel BF, Sarvajith Adyanthaya, Sergei Zhmylev, Sergey A, Shulhan,
          SidhuRupinder, Simon Fowler, Sludge, Stuart Hayhurst, Susant Sahani,
          Takashi Sakamoto, Temuri Doghonadze, Thilo Fromm, Thomas Blume,
          TobiPeterG, Tobias Fleig, Tomáš Pecka, Topi Miettinen,
          Tycho Andersen, Unique-Usman, Usman Akinyemi, Vasiliy Kovalev,
          Vasiliy Stelmachenok, Vishal Chillara Srinivas, Vitaly Kuznetsov,
          Vito Caputo, Vladimir Stoiakin, Werner Sembach, Will Springer,
          Winterhuman, Xiaotian Wu, Yu Watanabe, Yuri Chornoivan,
          Zbigniew Jędrzejewski-Szmek, Zmyeir, aslepykh, chenjiayi,
          cpackham-atlnz, cunshunxia, djantti, hfavisado, hulkoba, ksaleem,
          medusalix, mille-feuille, mkubiak, mooo, msizanoen, networkException,
          nl6720, r-vdp, runiq, sam-leonard-ct, samuelvw01, sharad3001, sushmbha,
          wangyuhang, zzywysm, İ. Ensar Gülşen, Łukasz Stelmach,
          Štěpán Němec, 我超厉害, 김인수

          — Edinburgh, 2024-06-11

          Vous êtes invité à télécharger l'archive tar ici si vous souhaitez le compiler vous-même.

          Commentaires : voir le flux Atom ouvrir dans le navigateur

          • ✇LinuxFr.org : les dépêches
          • Élections européennes: bilan rapide de la conférence « Convergences numériques »
            Le collectif « Convergences Numériques », qui regroupe dix organisations professionnelles du numérique françaises, dont Numeum et le Cigref (mais pas le CNLL), avait organisé jeudi dernier une soirée pour à la fois présenter un « manifeste » concernant la politique européenne du numérique, et pour auditionner 7 représentants des listes candidates aux élections européennes de juin prochain. Sur les 10 pages du manifeste, une seule proposition concerne le logiciel libre: « Encourager l’Europe à

          Élections européennes: bilan rapide de la conférence « Convergences numériques »

          Le collectif « Convergences Numériques », qui regroupe dix organisations professionnelles du numérique françaises, dont Numeum et le Cigref (mais pas le CNLL), avait organisé jeudi dernier une soirée pour à la fois présenter un « manifeste » concernant la politique européenne du numérique, et pour auditionner 7 représentants des listes candidates aux élections européennes de juin prochain.

          Sur les 10 pages du manifeste, une seule proposition concerne le logiciel libre: « Encourager l’Europe à soutenir l’open source : largement adopté par les entreprises et administrations françaises, l’open source est un atout majeur pour répondre aux défis de l’indépendance technologique et de la transition écologique. » C'est peu, compte-tenu notamment du fait que le logiciel libre représente plus de 10% du chiffre d'affaire annuel de la filière informatique (logiciels et services) en France et un peu moins de 10% en Europe (source: étude Markess 2022 pour le CNLL, Numeum et Systematic), et que la stratégie de la Commission pour l'Open Source s'arrête à 2023.

          Lors des auditions, seuls deux candidats ont parlé du logiciel libre, y consacrant chacun l'essentiel de leur temps de parole: Sven Franck, co-tête de liste du parti Volt, et Pierre Beyssac, numéro 2 de la liste du Parti Pirate. Sven Franck a notamment présenté l'intérêt du logiciel libre pour la souveraineté et la compétitivité européennes, et Pierre Beyssac l'importance d'une forme de souveraineté numérique « personnelle » en plus d'une vision plus « étatique » de la souveraineté.

          Notons enfin que le CNLL a publié en mars un questionnaire adressés aux partis politiques qui souligne l'importance stratégique du logiciel libre pour la souveraineté numérique, l'innovation et les valeurs démocratiques de l'Europe. Il invite les candidats à partager leur vision et leurs propositions sur un large éventail de sujets liés au logiciel libre, notamment la gouvernance numérique, l'éducation et la formation, le soutien aux PME, l'innovation, les politiques spécifiques et la collaboration. Les questions portent sur des aspects concrets tels que la promotion du logiciel libre dans l'administration publique, l'accès aux marchés pour les PME, les programmes de financement, l'interopérabilité, l'inclusion sociale et la durabilité numérique.

          À ce jour, aucune réponse n'a été reçue (malgré de multiples relances), et seuls Volt et le Parti Pirate se sont engagés à répondre. Notons pour finir que des propositions en faveur du logiciel libre sont détaillées dans leurs programmes (cliquez sur "lire la suite" pour en savoir un peu plus).

          À propos des programmes des partis

          Les propositions relatives au logiciel libre du programme du Parti Pirate se trouvent sur cette page et celles de Volt dans ce PDF (p. 73).

          Les deux partis vont dans le même sens d'un soutien affirmé au logiciel libre, mais le Parti Pirate entre davantage dans les détails et propose un programme plus exhaustif et radical de transition vers l'open source, là où Volt en reste à des propositions plus générales. Les motivations mises en avant diffèrent également en partie.

          Convergences

          Les programmes de Volt et du Parti Pirate concernant le logiciel libre présentent plusieurs points de convergence:

          1. Les deux partis soutiennent la publication sous licence open source des logiciels développés grâce à des fonds publics, afin de garantir leur transparence et leur réutilisation.
          2. Ils souhaitent tous deux promouvoir l'utilisation de logiciels libres et formats ouverts dans l'administration publique.
          3. Ils proposent de soutenir financièrement le développement de l'écosystème du logiciel libre et des technologies open source.
          4. Ils veulent éviter de rendre de facto obligatoire l'usage de formats propriétaires dans les communications avec l'administration.

          Différences

          1. Le Parti Pirate va plus loin dans les détails et les mesures concrètes proposées (migration du secteur public vers le libre, création d'OSPO dans les États membres, licences copyleft, compatibilité multi-plateformes des logiciels publics, accès aux données publiques…).
          2. Le Parti Pirate insiste davantage sur les enjeux de transparence, d'autonomie et de vie privée des utilisateurs, tandis que Volt met plus l'accent sur la pérennité de l'écosystème.
          3. Le Parti Pirate veut éviter de soumettre le développement de logiciel libre aux mêmes contraintes que le logiciel propriétaire, point qui n'est pas abordé par Volt.
          4. Volt propose de responsabiliser les intégrateurs sur la conformité des logiciels libres déployés, ce qui n'apparaît pas dans le programme du Parti Pirate.

          Les propositions des autres partis

          À ce jour, et malgré des dizaines de courriels envoyés aux autres partis, nous n'avons pas identifié de propositions concernant le logiciel libre dans les programmes des autres partis. Si vous avez des contacts au sein de ces partis, n'hésitez pas à relayer cette information. Une nouvelle dépêche sera publiée si nous arrivons à obtenir des réponses.

          Commentaires : voir le flux Atom ouvrir dans le navigateur

          • ✇LinuxFr.org : les dépêches
          • Entretien avec GValiente à propos de Butano
            GValiente développe un SDK pour créer des jeux pour la console Game Boy Advance : Butano. Cet entretien revient sur son parcours et les raisons qui l’ont amené à s’intéresser à cette console. lien nᵒ 1 : Butanolien nᵒ 2 : Un article sur l'architecture de la Game Boy Advancelien nᵒ 3 : Le dossier de Grospixels sur cette consoleSommaire Partie 1: présentation Qui êtes-vous, quel est votre parcours et est-il lié aux jeux vidéos ? Pourquoi le retrogaming est-il important pour vous ? Partie

          Entretien avec GValiente à propos de Butano

          GValiente développe un SDK pour créer des jeux pour la console Game Boy Advance : Butano.

          Cet entretien revient sur son parcours et les raisons qui l’ont amené à s’intéresser à cette console.

          Game Boy Advance

          Sommaire

          Partie 1: présentation

          Qui êtes-vous, quel est votre parcours et est-il lié aux jeux vidéos ?

          Après des études d'informatique, j'ai travaillé dans plusieurs domaines autour du logiciel comme les pages web ou les applications graphiques Java/Swing.

          Aujourd'hui je travaille plutôt en C et C++ dans l'embarqué, ainsi même si mon parcours professionel n'est pas directement lié aux jeux vidéos, mon boulot actuel en est plutôt proche.

          Comme loisir, j'ai joué un peu avec RPG Maker 2K avant de commencer à programmer pour la GBA.

          Pourquoi le retrogaming est-il important pour vous ?

          D'abord pour la nostalgie : être capable de jouer à nouveau aux jeux de votre enfance est très important pour tout le monde. Malheureusement, pouvoir rejouer à de vieux jeux est quelque chose que nous sommes en train de perdre à cause des restrictions des jeux modernes (mode en ligne obligatoire, DRM…).

          Ensuite, grâce aux émulateurs il est très facile de lancer sans problème des jeux que j'ai créés pour la GBA il y a 20 ans. Si je les avais fait pour Mandrake 8.0 à la place, ce ne serait pas aussi facile de les tester aujourd'hui sans recompiler du vieux code et autre.

          Partie 2: Game Boy Advance

          Comment en êtes-vous venu à vous intéresser à la Game Boy Advance ?

          La GBA SP était un grand progrès par rapport au modèle original grâce à l'écran rétro-éclairé et la batterie intégrée, alors j'en ai acheté une dès qu'elle est sortie.

          Les jeux 2D me manquaient après la N64 et la GameCube, alors pouvoir jouer à des classiques de la 2D comme Final Fight sur une console portable était génial.

          Mais ce qui m'intéressait vraiment à propos de la GBA était la possibilité de créer des jeux grâce au HAM SDK et aux flashcarts.

          La GBA SP

          Qu’est-ce que cette console a de particulier ?

          C'est la dernière console 2D. Le système graphique de la GBA fonctionne comme les consoles 16 bits classiques comme la SNES ou la Megadrive, avec des sprites, des arrières plans…

          Toutefois elle utilise un processeur ARM 32 bits tourant à 16MHz, alors il n'est plus nécessaire ou aussi important de programmer en assembleur pour avoir de bonnes performances.

          En plus, je trouve plus "magique" de voir votre jeu tourner sur un écran d'une vieille console portable que sur un écran de télévision.

          Est-elle proche de la Game Boy ou de la SNES ?

          Au niveau graphique, c'est comme une SNES avec plus de couleurs simultanées, plus d'arrière plans et beaucoup de sprites par scanline (proche d'une Neo Geo et en plus on peut leur appliquer une rotation !). Elle permets aussi d'utiliser un "framebuffer" qui rends le rendu "logiciel" plus facile. Les jeux 3D comme Doom sont beaucoup plus rapide sur la GBA grâce à ces modes. Malheureusement la résolution de l'écran est un peu trop basse (240x160 contre 256x224 pour la SNES par exemple).

          Cependant, au niveau son, c'est pire que la SNES: la GBA partage le même canal PSG que la Game Boy originale avec deux nouveaux canaux directs pour jouer des samples PCM. Avoir seulement deux canaux PCM demande presque toujours de gâcher des tonnes de cycles CPU en mixage audio et même après cela sonne toujours pire que la SNES.

          Comment fonctionne l'affichage (PPU, écran LCD) ?

          Comme je l'ai dit, cela fonctionne comme une SNES : vous avez un nombre fixe d'arrière plans et de sprites, vous les configurez en écrivant des registres. La GBA a aussi des interruptions HDMA et H-Blank, donc vous pouvez faire beaucoup d'effets "raster" comme le fameux mode 7 de la SNES.

          Néanmoins, quelques limitations pénibles du PPU de la SNES ont été retiré, ce qui rends le PPU de la GBA plus facile à programmer. Par exemple, la GBA permets d'écrire en VRAM pendant le "V-Draw" (quand le PPU rafraîchit l'écran). Cela permets d'utiliser toutes les tailles de sprites disponibles en même temps alors que la SNES ne permettait que deux tailles simultanément.

          La console peut-elle faire de la 3D ?

          La GBA n'a pas d'accélération 3D matérielle, mais son CPU est assez rapide pour faire du rendu logiciel (à un faible taux de rafraîchissement). Il y a quelques techniques pour dessiner des polygones 3D avec des sprites 2D, mais cela vient avec des tonnes de limitations. Dans Varooom 3D, j'ai utilisé des sprites 2D poour dessiner des lignes horizontales, ce qui m'a permis de dessiner quelques polygones non texturés à 60 images par seconde.

          Comment fonctionne le son ?

          Je ne sais pas très bien comment fonctionne l'audio de la GBA, car je n'en ai pas eu besoin : il y a de très bonnes bibliothèques disponibles et j'ai préféré les intégrer plutôt que d'implémenter ma propre solution.

          Comment marche la rétrocompatibilité avec les précédentes Gameboy ?

          Il y a 3 modèles de GBA disponible: GBA, GBA SP and GBA Micro. Seules les deux premières sont compatibles avec la Game Boy originale.
          La rétrocompatibilité est transparente pour le développeur et la plupart des fonctionnalités de la Game Boy sont indisponibles en mode "natif" : un jeu GBA ne peut pas utiliser le CPU de la Game Boy par exemple.

          La machine possède une ROM interne, à quoi sert-elle ?

          La GBA démarre depuis le BIOS, une petite ROM qui montre l'écran d'accueil et exécute le jeu après cela. Il a aussi quelques fonctions liées à l'énergie, comme arrêter le CPU jusqu'au V-Blank ou mettre la console en veille. Enfin, il propose quelques routines comme des fonctions mathématiques, mais je ne les utilise pas pour des questions de performances. Cela aide aussi à éviter les bugs d'émulation du BIOS.

          La GB possède un dispositif anti piratage, comment fonctionne-t-il ?

          Je préfère vous renvoyer à l'article de copetti.org sur le sujet.

          Comment fonctionne le réseau (Game Boy Link) ?

          Comme pour l'audio, je ne sais pas trop comment cela fonctionne, car j'ai préféré intégrer une bibliothèque.
          En général je préfère une bonne bibliothèque plutôt que passer du temps à implémenter une plus mauvaise solution.

          Les cartouches peuvent-elles embarquer des coprocesseurs ?

          Bien sûr, mais le CPU est tellement puissant par rapport à ceux des consoles 16 bits, qu'il n'y en a pas souvent besoin. Le meilleur exemple d'une cartouche officielle avec un coprocesseur dont je me rappelle est la Play-Yan : elle semble embarquer un VideoCore 1 pour jouer des musiques mp3 et des vidéos mp4 depuis une carte SD.

          Les émulateurs sont-ils bons ?

          Extraordinaires. Les émulateurs GBA sont si bons que vous n'avez presque jamais besoin de tester sur du vrai matériel. Si votre jeu fonctionne sur la plupart des émulateurs modernes, alors votre jeu a toutes les chances de fonctionner sur une console réelle sans souci. D'ailleurs la plupart des membres actifs de gbadev ne possèdent même pas de GBA.

          Quels sont vos jeux commerciaux préférés sur cette console ?

          Beacoup :

          • des joyaux de Treasure comme Astro Boy Omega Factor et Gunstar Super Heroes ;
          • d'autres jeux d'action comme Ninja Five-0, Dragon Ball Advanced Adventure et Final Fight ;
          • tous les Castlevanias (qui sont proches du Simphony of the Night de la PS1) ;
          • les ports de Doom ;
          • bien sûr les classiques de Nintendo comme Wario Ware et Zelda the Minish Cap ;
          • des RPGs bien connus comme Mother 3, Mario and Luigi et Final Fantasy I&II ;
          • quelques RPGs moins connus comme Riviera et CIMA the Enemy.

          Astro Boy Omega Factor

          Quels sont vos jeux "homebrew" préférés sur cette console ?

          Il y en a beaucoup aussi, mais mon préféré est de loin GBA Microjam '23: c'est une collection de mini jeux très amusants à la Wario Ware.
          Ce qui le rend très spécial, c'est que chaque mini-jeu a été fait par un membre différent de gbadev, c'est un jeu "communautaire".

          D'autres très bons:

          gba-microjam-23

          Partie 2 : Butano

          Pourquoi créer un SDK aujourd’hui pour si vieux système ?

          L'objectif de Butano était de pouvoir travailler avec le PPU de la GBA et le reste du système aussi facilement que possible sans perdre trop de cycles CPU. Et je pense que j'y suis arrivé : avec Butano, vous pouvez créer, afficher et détruire des sprites, des arrière plans, du texte, des effets raster et plus encore avec une seule ligne de C++.

          Les prémisses de Butano étaient une bibliothèque interne à mes jeux. Je n'avais pas de plan pour rendre ça public à part faire quelques exemples et de la documentation.

          Finalement je suis content d'avoir rendu ça public : le plus grand accomplissement de Butano est le grand nombre de jeux de qualité fait avec.

          Est-ce que vous participez vous même à la création de jeux ?

          Oui, Butano vient avec le code source de deux jeux que j'ai fait : Butano Fighter et Varooom 3D.

          Varooom 3D

          Quels ont été les difficultés pour créer Butano ?

          Pour être honnête, je n'ai pas eu beaucoup de difficultés grâce au grand nombre de bibliothèques, tutoriaux, émulateurs et outils disponibles pour la GBA.

          Vous aimeriez vivre du développement de ce logiciel libre?

          Bien sûr, mais à moins de travailler à plein temps sur un jeu homebrew à grand succès, c'est difficile voire impossible de vivre de ça.

          Est-ce que Butano gère les accessoires (e-Reader, WormCam, Play-Yan…) de la console ?

          Il gère les accessoires les plus communs : SRAM, rumble et l'horloge temps réel / real time clock (RTC).

          Pour les accessoires plus exotiques, je pense qu'il est préférable d'utiliser d'autres bibliothèques.

          Quels conseils donneriez-vous à quelqu’un qui veut se lancer dans le développement de jeux Game Boy Advance ?

          Premièrement, vous devez apprendre les bases du C/C++ : la plupart des nouveaux connaissent uniquement des langages de haut niveau comme Javascript ou Python, malheureusement ils sont un peu trop lourds pour la pauvre GBA.

          Après, vous pouvez suivre cet excellent guide plutôt que suivre mes modestes conseils.

          Quels sont les outils pour créer/préparer des graphismes utilisable par Butano ?

          J'utilise Gimp et Usenti (un logiciel proche de MS Paint pour la GBA et notamment une gestion des couleurs 15 bits et des palettes). Toutefois, la plupart des outils permettant de produire des images indexées peuvent faire l'affaire.

          Pour le travail des cartes, j'aimais utiliser Tiled par le passé.

          Quels sont les outils pour créer/préparer des musiques et des sons utilisable par Butano  ?

          OpenMPT est l'outil audio le plus populaire pour la GBA, les musiques étant généralement créées avec un tracker. Il a aussi de bons outils pour travailler avec les samples. D'autres utilisent hUGETracker et Furnace.

          Est-il possible de créer ses propres cartouches ?

          Je ne suis pas juriste, mais comme Butano est sous licence zlib, tant que vous respectez cette licence et celles des autres dépendances, vous pouvez faire vos propres cartouches et même les vendre.

          Je pense que ce que font la plupart des gens aujourd'hui, c'est acheter des cartouches pirates Pokémon pas chères, et les flasher pour y mettre leurs propres jeux.

          Pourquoi le choix de C++ pour ce SDK ?

          Comme je l'ai dit, un langage de haut niveau avec ramasse miettes est généralement trop pour la GBA.

          Entre C et C++, j'ai choisi ce dernier, car il permet de réduire grandement la quantité de code sans gâcher trop de CPU.

          Par exemple:

          • les destructeurs de C++ permettent de ne pas avoir à écrire trop de code pour nettoyer les ressources, ce qui est une source de bugs importante sur les grands projets GBA ;
          • la GBA ne gère pas les nombres flottants en hardware, donc utiliser des nombres en virgule fixe est essentiel. Grâce à la surcharge d'opérateurs, C++ permets d'écrire des classes qui se comportent comme des nombres flottants.
          • L'opérateur constexpr permet de générer et stocker des tables de correspondance (lookup tables) ou autres constantes en ROM sans avoir à utiliser d'outils externes.

          Est-ce qu'il existe d'autres SDK libres pour ces consoles ?

          Il y a beaucoup de SDK pour GBA, mais malheureusement (à mon avis) la plupart sont de plus bas niveau que Butano.

          Voici une liste de ressources (compilers, toolkits, libraries, etc.) pour la GBA: resources GBA.

          Partie 3: pour finir

          En dehors du travail, quels logiciels libres utilisez-vous, sur quel OS ?

          J'utilise généralement Windows à cause du boulot et de certains jeux PC, mais la plupart des programmes que j'utilise sont libres.

          L'éditeur de code que j'utilise presque toujours est Qt Creator, il est génial pour C++.

          À part les logiciels libres pour le développement GBA, j'utilise Firefox, Notepad++, VLC, 7-Zip, LibreOffice, TortoiseGit, VirtualBox et bien sûr les émulateurs pour les vieilles consoles et bornes d'arcade.

          Au travail, quels logiciels libres utilisez-vous, sur quel OS ?

          Pour le développement embarqué, j'utilise GCC et les outils GNU. Pour les applications de bureau, j'utilise Qt avec MinGW.

          GCC est aussi le compilateur le plus populaire pour le développement GBA, alors je n'aurais pas pu l'éviter même si j'avais voulu.

          D'autres logiciels que j'utilise au travail : Thunderbird, Putty and WinSCP.

          Quelle est votre distribution GNU/Linux préférée et pourquoi, quels sont vos logiciels libres préférés ?

          Ubuntu est bien pour le peu d'usage de Linux que je fais.

          Mes logiciels libres favoris sont ceux avec lesquels je passe le plus de temps : Firefox, Qt Creator, GCC, les émulateurs.

          Quelle question auriez-vous adoré qu’on vous pose ?

          Mmh… rien qui me vienne à l'esprit.

          Quelle question auriez-vous détesté qu’on vous pose ?

          Pourquoi perdez-vous votre temps avec des consoles vieilles de 20 ans ?

          Maintenant que j'y pense… J'aurais adoré qu'on me demande ça.

          Commentaires : voir le flux Atom ouvrir dans le navigateur

          • ✇LinuxFr.org : les dépêches
          • Nouveautés d'avril 2024 de la communauté Scenari
            Scenari est un ensemble de logiciels open source dédiés à la production collaborative, publication et diffusion de documents multi-support. Vous rédigez une seule fois votre contenu et vous pouvez les générer sous plusieurs formes : site web, PDF, OpenDocument, diaporama, paquet SCORM (Sharable Content Object Reference Model)… Vous ne vous concentrez que sur le contenu et l’outil se charge de créer un rendu professionnel accessible et responsive. À chaque métier/contexte son modèle Scenari :

          Nouveautés d'avril 2024 de la communauté Scenari

          Scenari est un ensemble de logiciels open source dédiés à la production collaborative, publication et diffusion de documents multi-support. Vous rédigez une seule fois votre contenu et vous pouvez les générer sous plusieurs formes : site web, PDF, OpenDocument, diaporama, paquet SCORM (Sharable Content Object Reference Model)… Vous ne vous concentrez que sur le contenu et l’outil se charge de créer un rendu professionnel accessible et responsive.

          À chaque métier/contexte son modèle Scenari :

          • Opale pour la formation
          • Dokiel pour la documentation
          • Optim pour les présentations génériques
          • Topaze pour les études de cas

          Mini-webinaire Scenari

          L’association propose un mini-webinaire intitulé « Scenaristyler : ajouter son logo dans les publications PDF, web, diapo » le lundi 15 avril 2024 de 17h à 18h heure de Paris, à l’adresse https://scenari.org/visio/miniwebinaire.
          Pour préparer la session, vous pouvez participer à ce fil de discussion sur le forum Scenari.

          Rencontres Scenari : inscriptions ouvertes

          Découvrez le programme en détails, et inscrivez-vous dès maintenant aux Rencontres Scenari 2024 à l’Université Toulouse Capitole du 3 au 7 juin.

          Tarifs préférentiels pour toute inscription avant le 3 mai. N’attendez pas !

          L’équipe de l’UT Capitole a négocié des options de logement. Les détails sur le site des Rencontres.

          Aidez-nous à diffuser l’événement et partagez l’annonce des Rencontres sur les réseaux sociaux : Mastodon, LinkedIn et Telegram.

          Offres d’emploi autour de Scenari

          Deux offres d’emploi autour de Scenari :

          • Une offre de Sorbonne Université pour un⋅e ingénieur⋅e pédagogique devant « connaître les outils numériques de l’établissement » : Scenari entre autres.
          • Une offre d’une école supérieure localisée à La Défense pour un⋅e technicien⋅ne support de plateformes pédagogiques. Le poste consiste à « administrer des environnements numériques », « suite logicielle Scenari » entre autres, et à « participer à la médiatisation des contenus en utilisant la chaîne éditoriale Scenari ».

          Nouvelles versions d’outils Scenari

          Nouvelles versions d’outils Scenari :

          • Sortie de IDKey 2 et mise à jour de OpenKeys. Retrouve les détails sur le forum.
          • Nouvelle version de Topaze (4.0.7) apportant quelques corrections.
          • Sortie de TechnOpale 2.2.5 (dérivé d’Opale 4.0.5). TechnOpale est une modification d’Opale destinée à l’enseignement des sciences expérimentales dans le secondaire. Les détails d’installation de la nouvelle version sont sur le forum.

          Mettez à jour vos modèles dès que possible !

          Évolutions Opale : à vos claviers

          Le Comité Opale prévoit de se réunir en mai pour analyser les demandes d’évolution, et les passer à priorisation par les adhérent⋅e⋅s lors des Rencontres 2024 (tiens, encore une bonne raison pour adhérer :) ).

          Donc si vous avez une idée d’évolution, essayez de la proposer avant mai (sinon ce n’est pas grave ça sera pour l’année prochaine).

          Ça se passe sur la place des évolutions Opale (lisez les explications pour bien comprendre comment on s’y prend)

          Traductions vers l’italien

          L’équipe de traduction communautaire vers l’italien a été constituée.

          Si vous pouvez donner un coup de main pour traduire du français vers l’italien (chacun⋅e en fonction de ses disponibilités), écrivez à direction@scenari.org.

          Ainsi nos amis transalpins pourront utiliser aussi les outils Scenari dans leur langue.

          Le savais-tu ?

          Astuce Scenari : si vous utilisez ScenarichainDesktop ou bien toute autre application Scenari individuellement sur votre propre poste, il est possible de manipuler deux fenêtres application du même atelier.

          Il suffit de cliquer sur le menu de trois petits points verticaux en haut à gauche de la fenêtre, puis d’aller dans le sous-menu Fenêtres > Dupliquer la fenêtre. Il existe un raccourci clavier : ctrl+n sur Windows/Linux, pomme+n sur Mac.

          Duplication d’une fenêtre Scenari desktop

          Commentaires : voir le flux Atom ouvrir dans le navigateur

          • ✇LinuxFr.org : les dépêches
          • FRR dans cloonix dans podman
            Cloonix est un outil d’aide à la construction de réseau virtuel. Il est basé sur Open vSwitch pour l’émulation du réseau constitué de switchs et LANs virtuels, sur crun et les namespaces pour la gestion de conteneurs et sur KVM pour ce qui concerne l’émulation des machines complètes. Cloonix peut être considéré comme un hyperviseur qui permet de lancer des scénarios de démonstration impliquant des réseaux connectant de nombreuses machines virtuelles ou conteneurs. Ce logiciel open source permet

          FRR dans cloonix dans podman

          Cloonix est un outil d’aide à la construction de réseau virtuel. Il est basé sur Open vSwitch pour l’émulation du réseau constitué de switchs et LANs virtuels, sur crun et les namespaces pour la gestion de conteneurs et sur KVM pour ce qui concerne l’émulation des machines complètes.
          Cloonix peut être considéré comme un hyperviseur qui permet de lancer des scénarios de démonstration impliquant des réseaux connectant de nombreuses machines virtuelles ou conteneurs. Ce logiciel open source permet d’automatiser et de rejouer des scénarios complets.

          FRR est le logiciel open source qui permet de transformer une machine Linux en l’équivalent d’un routeur professionnel, ce logiciel implémente tous les protocoles de routage classique.

          Podman est exactement comme Docker, un gestionnaire de conteneur.

          Le but de cette dépêche est de présenter une démonstration qui tourne dans un podman et qui met en œuvre un réseau d’une soixantaine de conteneurs et qui peut être lancé en tant qu’utilisateur simple sans les droits root.

          Il y a le lien « demo » qui montre une vidéo un peu accélérée de cette démonstration qui démarre les machines, les configure et les met en réseau. On peut ensuite y voir la convergence du protocole OSPF.

          Commentaires : voir le flux Atom ouvrir dans le navigateur

          • ✇LinuxFr.org : les dépêches
          • TuxRun et le noyau Linux
            Il y a quelques années, je vous avais présenté TuxMake, un utilitaire pour faciliter la (cross-)compilation du noyau Linux supportant une grande variété de toolchains différentes : TuxMake et le noyau Linux. TuxMake facilitant la compilation du noyau Linux, nous nous sommes alors attaqués à rendre l’exécution de ces noyaux plus aisée : ainsi est né TuxRun. lien nᵒ 1 : TuxMakelien nᵒ 2 : TuxRunlien nᵒ 3 : QEMUlien nᵒ 4 : FVPlien nᵒ 5 : LinaroExemples TuxRun propose une interface en ligne de com

          TuxRun et le noyau Linux

          Il y a quelques années, je vous avais présenté TuxMake, un utilitaire pour faciliter la (cross-)compilation du noyau Linux supportant une grande variété de toolchains différentes : TuxMake et le noyau Linux.

          TuxMake facilitant la compilation du noyau Linux, nous nous sommes alors attaqués à rendre l’exécution de ces noyaux plus aisée : ainsi est né TuxRun.

          Exemples

          TuxRun propose une interface en ligne de commande simple pour exécuter un noyau dans QEMU. TuxRun se charge de fournir un environnement suffisant pour démarrer le noyau avec QEMU.

          tuxrun --device qemu-arm64 \
                 --kernel https://example.com/arm64/Image

          TuxRun va alors télécharger le noyau et un système de fichier compatible avec ARM64 puis lancer qemu-system-arm64 avec les bons arguments et afficher les logs du boot.

          La ligne de commande de qemu générée par TuxRun est la suivante :

          /usr/bin/qemu-system-aarch64 \
              -cpu max,pauth-impdef=on \
              -machine virt,virtualization=on,gic-version=3,mte=on \
              -nographic -nic none -m 4G -monitor none -no-reboot -smp 2 \
              -kernel /.../Image \
              -append "console=ttyAMA0,115200 rootwait root=/dev/vda debug verbose console_msg_format=syslog systemd.log_level=warning earlycon" \
              -drive file=/.../rootfs.ext4,if=none,format=raw,id=hd0 \
              -device virtio-blk-device,drive=hd0

          Il est également possible de lancer une suite de tests directement depuis la ligne de commande :

          tuxrun --device qemu-arm64 \
                 --kernel https://example.com/arm64/Image \
                 --tests ltp-smoke

          Les résultats de la suite de test seront analysés par TuxRun et la valeur de retour de TuxRun sera 0 uniquement si la suite de tests passe intégralement. Ceci permet d’utiliser TuxRun pour valider qu’une suite de tests donnée fonctionne toujours correctement sur un nouveau noyau.

          Architectures

          QEMU

          Grâce à QEMU, TuxRun supporte de nombreuses architectures:
          - ARM: v5/v7/v7be/64/64be
          - Intel/AMD: i386/x86_64
          - MIPS: 32/32el/64/64el
          - PPC: 32/64/64le
          - RISCV: 32/64
          - sh4, sparc64, …

          La liste complète est disponible dans la documentation.

          FVP

          Il est également possible d’utiliser FVP, le simulateur de ARM pour simuler un processeur ARMv9. FVP est un simulateur bien plus précis que QEMU au prix d’un temps d’exécution bien supérieur.

          FVP permettant de configurer et simuler de nombreux composants du processeur, TuxRun propose une configuration permettant de démarrer et tester Linux dans un temps raisonnable.

          tuxrun --device fvp-aemva \
                 --kernel https://example.com/arm64/Image \
                 --tests ltp-smoke \
                 --image tuxrun:fvp

          ARM ne permettant pas (pour le moment) de redistribuer les binaires FVP, il faut construire localement le container tuxrun:fvp.

          Système de fichiers

          Par défaut, TuxRun télécharge et utilise un système de fichier compatible avec l’architecture cible. TuxRun fournit donc 20 systèmes de fichiers différents, un pour chaque architecture disponible.

          Ces systèmes de fichiers sont basés sur buildroot et comportent les outils nécessaires pour faire tourner la majorité des suites de tests supportés par TuxRun. La liste complète est disponible dans la documentation.

          Il est également possible d’utiliser un autre système de fichiers :

          tuxrun --device qemu-arm64 \
                 --kernel https://example.com/Image \
                 --rootfs https://example.com/rootfs.ext4.zst

          Runtimes

          TuxRun télécharge et utilise un container que nous maintenons. Ce container inclut l’ensemble des binaires nécessaires ainsi que QEMU. Par défaut, TuxRun utilise toujours la dernière version du container disponible.

          Il est cependant possible de spécifier une version particulière afin de reproduire plus facilement une erreur. Les nouvelles versions de QEMU introduisent quelques fois des régressions dans les suites de tests. Il est alors nécessaire d’utiliser exactement la même image pour reproduire le problème.

          Reproduire un test

          TuxRun est utilisé, via tuxsuite notre service de compilation et de test dans le cloud, par le projet LKFT (Linux Kernel Functional Testing) de Linaro. Lorsqu’une régression est détectée, il suffit de fournir la ligne de commande TuxRun pointant sur les artefacts utilisés pour pouvoir reproduire le problème.

          Les développeurs du noyau sont alors à même de reproduire et de corriger les régressions détectées par LKFT. TuxRun simplifie ainsi énormément la reproduction du test.

          Un exemple parmi tant d’autres : selftests: sigaltstack: sas…

          Installation

          TuxRun étant un programme Python, il est possible de l’installer depuis pypi :

          python3 -m pip install tuxrun

          Nous fournissons également un paquet Debian, et un rpm.

          TuxMake et Tuxrun

          Dans un prochain article, je vous montrerai comment combiner TuxMake et TuxRun pour automatiquement trouver le commit responsable de la régression dans le noyau.

          Commentaires : voir le flux Atom ouvrir dans le navigateur

          • ✇LinuxFr.org : les dépêches
          • Fedora Linux 40 Beta est disponible pour les tests
            En ce mardi 26 mars, la communauté du Projet Fedora sera ravie d'apprendre la disponibilité de la version Beta de Fedora Linux 40. Malgré les risques concernant la stabilité d’une version Beta, il est important de la tester ! En rapportant les bogues maintenant, vous découvrirez les nouveautés avant tout le monde, tout en améliorant la qualité de Fedora Linux 40 et réduisant du même coup le risque de retard. Les versions en développement manquent de testeurs et de retours pour mener à bien leur

          Fedora Linux 40 Beta est disponible pour les tests

          Par : Renault Arkem
          25 mars 2024 à 20:30

          En ce mardi 26 mars, la communauté du Projet Fedora sera ravie d'apprendre la disponibilité de la version Beta de Fedora Linux 40.

          Malgré les risques concernant la stabilité d’une version Beta, il est important de la tester ! En rapportant les bogues maintenant, vous découvrirez les nouveautés avant tout le monde, tout en améliorant la qualité de Fedora Linux 40 et réduisant du même coup le risque de retard. Les versions en développement manquent de testeurs et de retours pour mener à bien leurs buts.

          La version finale est pour le moment fixée pour le 16 ou 23 avril.

          Sommaire

          Expérience utilisateur

          • Passage à GNOME 46 ;
          • L'environnement de bureau KDE Plasma change de version majeure avec sa nouvelle version 6 ;
          • Le fichier firefox.desktop est renommé en org.mozilla.firefox.desktop pour permettre son utilisation dans la barre de recherche de GNOME.

          Gestion du matériel

          • Fourniture de ROCm 6 pour améliorer la prise en charge de l'IA et le calcul haute performance pour les cartes graphiques AMD ;
          • Passage à l'étape 2 de la prise en charge du noyau unifié nommée UKI (donc unifiant noyau, initrd, ligne de commande du noyau et signature) pour les plateformes avec UEFI mais rien ne change par défaut à ce sujet.

          Internationalisation

          • Le gestionnaire d'entrée de saisie IBus passe à la version 1.5.30 ;
          • Mise à jour de ibus-anthy 1.5.16 pour la saisie du japonais.

          Administration système

          • NetworkManager tente de détecter par défaut les conflits d'usage d'adresse IPv4 avec le protocole Address Conflict Detection avant de l'attribuer à la machine ;
          • NetworkManager va utiliser une adresse MAC aléatoire par défaut pour chaque réseau Wifi différent, et cette adresse sera stable pour un réseau donné. Cela permet de concilier vie privée et confort d'utilisation ;
          • Les unités système de systemd vont utiliser par défaut beaucoup d'options pour améliorer la sécurité des services ;
          • Les entrées des politiques SELinux qui font référence au répertoire /var/run font maintenant référence au répertoire /run ;
          • L'outil SSSD ne prend plus en charge les fichiers permettant de gérer les utilisateurs locaux ;
          • DNF ne téléchargera plus par défaut la liste des fichiers fournie par les différents paquets ;
          • L'outil fwupd pour mettre à jour les firmwares va utiliser passim comme cache pour partager sur le réseau local les métadonnées liées aux mises à jour disponibles pour les firmwares ;
          • Les systèmes Fedora Silverblue et Kinoite disposent de bootupd pour la mise à jour du chargeur de démarrage ;
          • Le paquet libuser est marqué en voie de suppression pour Fedora 41 alors que le paquet passwd est supprimé ;
          • Le paquet cyrus-sasl-ntlm a été supprimé ;
          • La gestion des droits utilisateurs pam_userdb passe de la base de données BerkeleyDB à GDBM ;
          • Le filtre antispam bogofilter utilise SQLite au lieu de BerkeleyDB pour gérer sa base de données interne ;
          • Le serveur LDAP 389 passe de la version 2.4.4 à la version 3.0.0 ;
          • Le paquet iotop est remplacé par iotop-c ;
          • L'orchestrateur de conteneurs Kubernetes évolue de la version 1.28 à la version 1.29 ;
          • Par ailleurs ses paquets sont restructurés ;
          • Pendant que podman est mis à jour vers la version 5 ;
          • Le paquet wget2 remplace le paquet wget en fournissant une nouvelle version ;
          • Le gestionnaire de base de données PostgreSQL migre vers sa 16e version ;
          • Les paquets MySQL et MariaDB sont remaniés et mis à jour vers la version 10.11.

          Développement

          • Mise à jour de la suite de compilation GNU : GCC 14.0, binutils 2.41, glibc 2.39 et gdb 14.1 ;
          • La suite de compilateurs LLVM est mise à jour à la version 18 ;
          • Mise à jour de la bibliothèque C++ Boost à la version 1.83 ;
          • Le langage Go passe à la version 1.22 ;
          • Le JDK de référence pour Java passe de la version 17 à 21 ;
          • Mise à jour du langage Ruby 3.3 ;
          • Le langage PHP utilise la version 8.3 ;
          • La boîte à outils pour le machine learning PyTorch fait son entrée dans Fedora ;
          • Le paquet python-sqlalchemy utilise la nouvelle branche majeure 2.x du projet, le paquet python-sqlalchemy1.4 est proposé pour garder la compatibilité ;
          • La bibliothèque de validation des données Pydantic utilise dorénavant la version 2 ;
          • La bibliothèque Thread Building Blocks passe du fil 2020.3 au fil 2021.8 ;
          • La bibliothèque OpenSSL 1.1 est supprimée ne laissant que la dernière version de la branche 3.x ;
          • Les bibliothèques zlib et minizip utilisent leur variante zlib-ng et minizip-ng dorénavant ;
          • Le langage Python ne bénéficie plus de la version 3.7.

          Projet Fedora

          • L'édition Cloud sera construite avec l'utilitaire Kiwi dans Koji ;
          • Tandis que l'édition Workstation aura son ISO générée avec l'outil Image Builder ;
          • L'image minimale ARM sera construite avec l'outil OSBuild ;
          • Fedora IoT bénéficiera d'images Bootable Containers ;
          • Il bénéficiera également des images Simplified Provisioning ;
          • Et le tout sera construit en utilisant rpm-ostree unified core ;
          • Fedora sera construit avec DNF 5 en interne ;
          • Les macros forge passent du paquet redhat-rpm-config à forge-srpm-macros ;
          • La construction des paquets échouera si l'éditeur de lien détecte certaines classes de vulnérabilité dans le binaire en construction ;
          • Phase 3 de l'usage généralisé des noms abrégés de licence provenant du projet SPDX pour la licence des paquets plutôt que des noms du projet Fedora ;
          • Clap de fin pour la construction des mises à jour au format Delta RPM ;
          • Suite du projet de ne générer les JDKs qu'une fois, et les rempaqueter ainsi à toutes les variantes du système ;
          • Compilation des paquets en convertissant plus d'avertissements comme erreurs lors de la compilation des projets avec le langage C ;
          • Les images immuables comme Silverblue seront nommées sous la dénomination Atomic pour éviter la référence au terme immuable qui est confus pour les utilisateurs.

          Tester

          Durant le développement d'une nouvelle version de Fedora Linux, comme cette version Beta, quasiment chaque semaine le projet propose des journées de tests. Le but est de tester pendant une journée une fonctionnalité précise comme le noyau, Fedora Silverblue, la mise à niveau, GNOME, l’internationalisation, etc. L'équipe d'assurance qualité élabore et propose une série de tests en général simples à exécuter. Il suffit de les suivre et indiquer si le résultat est celui attendu. Dans le cas contraire, un rapport de bogue devra être ouvert pour permettre l'élaboration d'un correctif.

          C'est très simple à suivre et requiert souvent peu de temps (15 minutes à une heure maximum) si vous avez une Beta exploitable sous la main.

          Les tests à effectuer et les rapports sont à faire via la page suivante. J'annonce régulièrement sur mon blog quand une journée de tests est planifiée.

          Si l'aventure vous intéresse, les images sont disponibles par Torrent ou via le site officiel.

          Si vous avez déjà Fedora Linux 39 ou 38 sur votre machine, vous pouvez faire une mise à niveau vers la Beta. Cela consiste en une grosse mise à jour, vos applications et données sont préservées.

          Nous vous recommandons dans les deux cas de procéder à une sauvegarde de vos données au préalable.

          En cas de bogue, n'oubliez pas de relire la documentation pour signaler les anomalies sur le BugZilla ou de contribuer à la traduction sur Weblate. N'oubliez pas de consulter les bogues déjà connus pour Fedora 40.

          Bons tests à tous !

          Commentaires : voir le flux Atom ouvrir dans le navigateur

          • ✇LinuxFr.org : les dépêches
          • Retour d’expérience sur l’utilisation de GrapheneOS (ROM Android libre)
            Suite à la dépêche Comparatif : GrapheneOS vs LineageOS, je souhaitais faire part d’un retour d’expérience sur l’utilisation de GrapheneOS sur un téléphone Android Pixel 7a. Ce commentaire est repris ici sous forme de dépêche. Sommaire PixelOS Installation Interface Fonctionnalités spécifiques/avancées de PixelOS GrapheneOS Installation Interface Applications et « stores » Gestion des autorisations Séparation des usages Détail des approches suivies 1ʳᵉ approche 2ᵉ approche (test en cours)

          Retour d’expérience sur l’utilisation de GrapheneOS (ROM Android libre)

          Suite à la dépêche Comparatif : GrapheneOS vs LineageOS, je souhaitais faire part d’un retour d’expérience sur l’utilisation de GrapheneOS sur un téléphone Android Pixel 7a. Ce commentaire est repris ici sous forme de dépêche.

            Sommaire

            Le point de départ est celui d’un utilisateur sensible aux logiciels libres mais qui utilise un téléphone Android Samsung « comme tout le monde », avec :

            • Utilisation du Google Play Store, avec un compte Google personnel
            • Utilisation d’un compte Google professionnel
            • Utilisation du Samsung store, avec un compte Samsung
            • Utilisation d’une montre connectée Samsung avec appli Samsung health

            L’utilisateur a déjà expérimenté par le passé les solutions suivantes :

            • UbuntuOS (abandonné rapidement par manque d’applications)
            • LineageOS, avec Micro-G + « signature spoofing » pour permettre l’installation des applications bancaires

            PixelOS

            Installation

            La mise en œuvre du système « stock » installé sur le smartphone est très facile et simple d’utilisation. Les téléphones Pixel proposent des fonctionnalités « avancées » spécifiques qui sont proposées au démarrage, avec à chaque fois le jeu de « voulez-vous activer cette fonctionnalité ? Si oui, acceptez le contrôle des données suivantes… »
            On est dans un environnement full google, donc avec quelques habitudes à changer me concernant venant d’un environnement Samsung (la surcouche de l’OS est différente).

            Interface

            Launcher Pixel avec une barre de recherche Google qui ne peut pas être enlevée (The search bar cannot be removed from the bottom of the home screen, it's part of the Pixel Launcher https://support.google.com/pixelphone/thread/133065648/is-there-any-way-to-remove-the-google-search-bar-from-the-home-screen?hl=en), sinon tout est fluide / "beau"

            Fonctionnalités spécifiques/avancées de PixelOS

            • Déblocage du téléphone par reconnaissance faciale (probablement un cauchemar en termes de privacy, mais je pourrais comprendre pourquoi une personne lambda souhaiterait activer ce service)
            • « Double tap » au dos du téléphone pour lancer une action (dans mon cas : la lampe torche)
              • On peut utiliser Torchie pour une fonctionnalité proche (https://f-droid.org/fr/packages/in.blogspot.anselmbros.torchie/)
              • Les fonctions d’urgence « avancées » fournies par l’application « sécurité personnelle » (https://play.google.com/store/apps/details?id=com.google.android.apps.safetyhub&hl=fr&gl=US)
              • L’application est disponible sur le playstore mais ne fonctionne pas sur GrapheneOS
              • Il existe une fonction d’urgence « de base » dans GrapheneOS (AOSP ?) (appuyer 5x sur power pour lancer un appel d’urgence vers le 112)
              • Dans PixelOS, il y a un conflit de raccourcis entre « appuyer 5x sur power pour lancer un appel d’urgence » et l’option « appuyer 2x pour lancer l’appareil photo » (quand les deux sont activées : l’appareil photo prend le dessus)
            • Paiements NFC (non accessibles sur GrapheneOS)
              • Certaines applications de paiement autres que Google Wallet peuvent fonctionner (par ex. Paylib)
            • Fonctionnalité « bien être numérique », notamment le fait de passer l’écran en noir & blanc à partir d’une certaine heure pour tenter de limiter le temps devant les écrans. L’application existe dans le Play Store (https://play.google.com/store/apps/details?id=com.google.android.apps.wellbeing&hl=fr&gl=US) mais impossible à retrouver depuis le client Play Store sur le téléphone.
              • Il existe probablement des alternatives

            GrapheneOS

            Installation

            Procédure d’installation web très simple et rassurante. C’est la première fois que je me verrai recommander ce type d’install à un utilisateur non technique (alors que la procédure d’install de LineageOS - à l’époque ou j’ai essayé - est complexe et obscure, avec le risque de se planter à plusieurs étapes).

            Interface

            • Le bureau par défaut est très minimaliste et pas très accueillant (je sais que cela peut paraître peu important, mais le fond noir + icônes en noir & blanc peut rebuter / n’est pas aussi accueillant que le système de base).
            • Le clavier par défaut m’a dérangé (après des années à utiliser le clavier Gboard), surtout pour l’écriture « swipe » (que je pratique souvent quand j’écris un message à une main).

            Applications et « stores »

            Pour le Store Google, il est possible d’installer plusieurs « briques » de l’éco-système :

            • Google Services Framework (GSF), dont dépendent :
              • Google Play services + Google Play Store (interdépendants) On peut donc choisir : rien du tout, GSF pour les applis qui en dépendent, ou les trois.

            Gestion des autorisations

            • Les possibilités sont très fournies = positif (permet de limiter les accès réseau, les accès stockage)
            • Les possibilités sont très fournies = complexe à gérer : il faut se poser des questions / passer du temps à configurer les choses.
              • Exemple : la synchronisation des contacts Google ne se fait pas sans la permission « Contacts » dans l’appli « Google Services Framework ».

            Séparation des usages

            Il existe deux approches possibles de séparation des usages :

            • Utilisation d’un « user profile » : il s’agit d’un profil complètement distinct. On peut passer de l’un à l’autre assez facilement. Les deux profils ne peuvent pas se parler, sauf via les notifications croisées (https://www.youtube.com/watch?v=WjrANjvrSzw)
            • Utilisation d’un « work profile » : ici on utilise un seul profil, mais à l’intérieur duquel on vient activer la fonctionnalité « work profile » d’Android pour séparer les usages (via une application tierce telle que Shelter, https://www.youtube.com/watch?v=20C0FD7mGDY pour une explication détaillée)

            Détail des approches suivies

            1ʳᵉ approche

            • Profil « owner » avec Shelter
              • Profil « Personnel » = pas de services Google
              • Profil « Professionnel » = Services Google avec compte personnel
            • 2ᵉ Profil « Travail » = Services Google avec compte professionnel

            Ce qui bloque : je voulais utiliser la fonctionnalité « work profile » d’Android avec Shelter pour isoler mon compte Google personnel. Hors c’est ce compte qui jusqu’ici synchronise les contacts. Les applications par défaut de GrapheneOS ne gèrent pas cette synchro (autrement que via import/export manuel, ou alors je n’ai pas trouvé comment). Si on veut quelque chose qui s’intègre tout seul il faut passer par les applications Google de Téléphone/Contacts/Calendrier. Hors ces applications ne peuvent pas devenir « applications par défaut » (pour remplacer celles existantes de GrapheneOS) dans le « work profile », c’est le profil personnel qui gère cette configuration.

            2ᵉ approche (test en cours)

            • Profil « owner » (unique, sans Shelter) = Services Google avec compte personnel
            • 2ᵉ Profil « Travail » (unique, sans Shelter) = Services Google avec compte professionnel

            Ce qui bloque : j’utilise le téléphone à la fois pour le pro & perso, sauf que le fait d’avoir deux profils implique de jongler systématiquement entre les deux profils. Trop compliqué au quotidien.

            3ᵉ approche (d’ici une semaine)

            • Profil « owner » avec Shelter
              • Profil « standard » = Services Google avec compte personnel
              • Profil « work » = Services Google avec compte personnel

            Détails : utilisation sans les services Google

            Synchronisation des contacts & agendas

            La première problématique c’est la synchro des contacts et des agendas. Pour se passer de Google sur ce point, il faut mettre en place au préalable un service de partage de contact / agenda :

            Bref c’est un projet en tant que tel, pas forcément à la portée de tous

            Quid des applications non libres hébergées sur le play store

            À ce stade, pour accéder à d’éventuelles applications uniquement présentes sur le Play Store, il est possible de :

            • passer par l’application Aurora
            • passer par apkmirror pour les télécharger une à une

            Cependant, de nombreuses applications du Play Store requièrent l’installation du Google Services Framework (« GSF ») pour fonctionner.

            Me concernant, j’ai la liste suivante d’applications que j’ai pu récupérer par ce biais (et qui fonctionnent sans GSF) :

            • Appli Banque (SG)
            • Paiement NFC via Paylib (pas encore testé « en vrai » mais l’appli s’installe sans broncher)
            • Deezer (musique)
            • Somfy (alarme)
            • NetAtmo (thermostat connecté)
            • Doctolib (Santé)
            • Appli mutuelle (Alan)
            • Freebox connect (utilitaire freebox)
            • Wifiman (utilitaire réseau)

            Certaines applications nécessitent le GSF, c’est le cas notamment de :

            Détails : Utilisation avec les services Google

            Dans un profil séparé

            J’ai mis du temps à comprendre / trouver comment activer la fonctionnalité de profils multiples (alors que c’est simple) : Paramètres > Système > Utilisateurs multiples > Autoriser plusieurs utilisateurs (https://www.youtube.com/watch?v=SZ0PKtiXTSs)

            Le profil séparé à l’avantage d’être comme un « deuxième téléphone ». C’est aussi un inconvénient pour les personnes qui ne sont pas prêtes à faire cet « effort » (passer de l’un à l’autre), même si les notifications « cross profile » aident sur ce point.
            Il faut reproduire sur chacun des profils toutes les « custo » faites (changement de launcher, de clavier, configurations diverses, etc).

            Via la fonction « work profile » d’Android

            La fonction work profile fournit une séparation moins forte, mais c’est aussi plus « pratique » au quotidien car toutes les applications (et les comptes) sont dans un seul profil. J’ai testé via l’application Shelter.

            Avantages :

            • Tout est accessible dans le même profil
            • Dans le tiroir d’application, on retrouve deux « onglets » séparant les applications « perso » et « pro ».

            Inconvénients :

            • Comme pour le profil séparé, il y a une « double maintenance »
              • Ex: en cas d’utilisation de deux profils Google Play (profil perso + pro), il faut faire les mises à jour « des deux côtés »
            • Il faut bien choisir dans quel contexte on souhaite installer chaque application
            • Je n’ai pas trouvé comment faire pour 1. Synchroniser mon compte Google perso dans le « work profile » de Shelter et 2. faire remonter ces informations dans les applications « contacts » et « téléphone » par défaut de GrapheneOS. C’est le profil « Personnel » qui va dicter quelles applications par défaut sont utilisées.

            Conclusion, cas d’usages et « threat model » (modèle de menace)

            J’ai passé beaucoup plus de temps que prévu à comprendre GrapheneOS, tester différentes solutions et configurer les options / trouver des alternatives. Je suis bien conscient que plusieurs « problèmes » remontés pourraient tout simplement être résolus si j’acceptais de faire les choses différemment. Cela me pousse à m’interroger sur le compromis à choisir entre sécurité / respect de la vie privée / facilité d’utilisation ? Cette question dépend bien sur du modèle de menace (« threat model ») de chacun.

            Sécurité

            GrapheneOS répondrait parfaitement à des contraintes de sécurité « forte » pour des personnes étant journaliste / activiste / lanceur d’alerte / député. Dans ce cas d’usage, le coût de la sécurité est accepté.

            Vie privée

            GrapheneOS apporte un choix indéniable permettant à chacun de trouver le meilleur usage possible.

            Facilité d’utilisation

            Dans mon cas d’usage, je trouve que la fonction de profil séparé apporte trop de friction au quotidien, et je suis prêt à tout rassembler au sein du même profil. L’utilisation de deux téléphones différents (un perso / un pro) pourrait être une alternative. De la même manière, je n’ai pas encore passé le pas de me séparer de mon compte Google (pour la synchro des contacts / agendas), donc pour le moment je continue d’utiliser le Play Store. À terme, j’essaierai de ne plus en dépendre.

            Note : l’impact du matériel (« hardware ») sur la vie privée

            • Un casque Bluetooth Bose nécessite l’app « Bose Connect » qui dépend de GSF/Play Store
            • Un casque Bluetooth Samsung Buds2 Pro nécessite l’app Samsung qui demande la création d’un compte cloud chez eux
            • L’application Google Wallet me permet de régler mes courses via paiement NFC, mais donne accès par ce biais à un pan entier de données personnelles

            À chaque fois la question est : est-ce utile ou pas ? Puis-je facilement m’en passer ?

            Commentaires : voir le flux Atom ouvrir dans le navigateur

            • ✇LinuxFr.org : les dépêches
            • Ubix Linux, le datalab de poche
              Ubix Linux est une distribution Linux libre et open-source dérivée de Debian. Le nom « Ubix » est la forme contractée de « Ubics », acronyme issu de l'anglais Universal business intelligence computer system. De fait, le principal objectif d'Ubix Linux est d'offrir une plateforme universelle dédiée à l'informatique décisionnelle et à l'analyse des données. Il s'agit d'une solution verticale, prête à l'emploi, dédiée à la manipulation des données et à la prise de décision. Allégée par conceptio

            Ubix Linux, le datalab de poche

            Ubix Linux est une distribution Linux libre et open-source dérivée de Debian.

            Le nom « Ubix » est la forme contractée de « Ubics », acronyme issu de l'anglais Universal business intelligence computer system. De fait, le principal objectif d'Ubix Linux est d'offrir une plateforme universelle dédiée à l'informatique décisionnelle et à l'analyse des données.

            Il s'agit d'une solution verticale, prête à l'emploi, dédiée à la manipulation des données et à la prise de décision. Allégée par conception, elle n'embarque qu'un jeu limité d'outils spécialisés dans ce domaine. Ceux-ci permettent néanmoins de couvrir tous les besoins dont l'acquisition, la transformation, l'analyse et la présentation des données.

            Ubix Linux - Vue d'ensemble

            Origines de la distribution

            La volonté initiale du concepteur de la distribution était de pouvoir disposer, à tout moment et en toutes circonstances, des outils lui permettant de réaliser des analyses de données et d'en présenter le résultat ad hoc. Ce « couteau suisse » de manipulation des données, devait également lui permettre d'éviter de devoir justifier, rechercher, acquérir et installer l'écosystème logiciel nécessaire chaque fois que ce type de tâches se présentait à lui.

            Son cahier des charges stipulait donc une empreinte disque la plus faible possible sans pour autant faire de concessions au niveau des fonctionnalités. La distribution se devait d'être portable et exécutable immédiatement dans des contextes variés, sans nécessité d'investissement, d'installation ou de droits d'accès particulier.

            De ce fait, Ubix Linux ne se démarque pas par ses aspects « système », mais plutôt par sa destination et ses cas d'usage.

            Au-delà du besoin initial

            À l'heure où de nombreux concepts liés à la manipulation des données tels que le « Big Data », la « Data Science » ou le « Machine Learning » font la une de nombreux médias, ceux-ci restent encore des boîtes noires, affaire de spécialistes et d'organisation disposant des moyens de les mettre en application.

            Si le grand public en intègre de mieux en mieux les grandes lignes, il ne dispose encore que de peu de recul sur la manière dont ses données peuvent être utilisées, ainsi que la richesse des débouchés associés.

            D'un autre côté, de nombreux gisements de données à la portée du plus grand nombre demeurent inexploités, faute de compétences ou de moyens facilement accessibles.

            Il se trouve qu'Ubix Linux peut permettre de surmonter cette difficulté, en offrant à tous les moyens de s'approprier (ou se réapproprier) et tirer parti des données disponibles.

            Philosophie

            Par nécessité, Ubix Linux a été conçue en intégrant uniquement des produits libres et open-source. Bien que cette distribution puisse s'avérer utile à toute personne devant manipuler des données, elle se doit de préserver et défendre une approche pédagogique et universaliste.

            Elle a pour ambition de mettre les sciences de données à la portée de tous. La distribution en elle-même n'est qu'un support technique de base devant favoriser l'apprentissage par la pratique. Il est prévu de l'accompagner d'un tutoriels progressifs.

            Les outils low-code/no-code intégrés dans la distribution permettent de commencer à manipuler des données sans devoir maîtriser au préalable la programmation. Néanmoins, des outils plus avancés permettent ensuite de s'initier aux principes des algorithmes d'apprentissage automatique.

            Synthèse

            Ubix Linux s'inscrit dans la philosophie du logiciel libre et plus particulièrement dans celle des projets GNU et Debian.

            Elle se destine à :

            • demeurer accessible à tous ;
            • pouvoir s'exécuter sur des configurations matérielles relativement modestes, voire n'être installée que sur un périphérique portable USB ;
            • proposer un outil pédagogique pour appréhender de façon pratique la science des données et l'apprentissage machine ;
            • permettre la découverte, l'expérimentation et l'aguerrissement de tout un chacun aux principaux outils de manipulation des données ;
            • offrir une boîte à outils légère et agile, néanmoins complète et utile pour un public professionnel averti.

            Et après…

            Nous sommes à l'écoute de toute suggestion. Toutefois, les moyens étant ce qu'ils sont (au fond du garage), la réactivité à les prendre en compte pourra s'avérer inversement proportionnelle.

            Nous souhaiterions que cet outil pédagogique puisse bénéficier au plus grand nombre : si vous voulez contribuer à la traduction du contenu du site officiel en espagnol, en portugais ou en allemand, vous êtes les bienvenus.

            Commentaires : voir le flux Atom ouvrir dans le navigateur

            • ✇LinuxFr.org : les dépêches
            • Sortie de GIMP 2.99.18 (version de développement)
              Note : cette dépêche est une traduction de l'annonce officielle de la sortie de GIMP 2.99.18 du 21 février 2024 (en anglais). Voici enfin la dernière version de développement avant GIMP 3 ! Bien que la sortie de la version 2.99.18 soit un peu en retard par rapport au planning espéré, celle-ci contient un certain nombre de fonctionnalités et d'améliorations que nous sommes ravis de pouvoir partager avec vous. ⚠️ ☢️ Nous vous rappelons qu'une version de développement sert à présenter les travaux

            Sortie de GIMP 2.99.18 (version de développement)

            Note : cette dépêche est une traduction de l'annonce officielle de la sortie de GIMP 2.99.18 du 21 février 2024 (en anglais).

            Voici enfin la dernière version de développement avant GIMP 3 ! Bien que la sortie de la version 2.99.18 soit un peu en retard par rapport au planning espéré, celle-ci contient un certain nombre de fonctionnalités et d'améliorations que nous sommes ravis de pouvoir partager avec vous.

            ⚠️ ☢️ Nous vous rappelons qu'une version de développement sert à présenter les travaux en cours, mais vous permet aussi de détecter et signaler les problèmes au plus tôt. En d'autres termes, cette version est instable et nous ne recommandons pas son usage en production. Utilisez-là parce que vous voulez aider à améliorer GIMP en signalant des bogues.

            En particulier, cette version 2.99.18 est peut-être l'une des versions les plus instables de la série 2.99 à cause du projet « space invasion » (NDT : « invasion venue de l'espace », un jeu de mots avec l'anglais colorspace signifiant espace de couleurs). Cela est parfaitement attendu et normal. ⚠️ ☢️

              Sommaire

              Cette dépêche présente les changements les plus notables et les plus visibles. En particulier, elle ne contient pas de liste exhaustive des correctifs de bogues ou des améliorations un peu moins importantes. Pour une liste plus complète des changements, nous vous invitons à consulter le fichier NEWS ou à jeter un coup d’œil à l'historique du dépôt Git.

              L'invasion de l'espace (des couleurs) !

              Nous avons travaillé dur sur le projet Space Invasion, qui est — comme vous vous en rappelez peut-être — le nom de code que nous avons donné au projet visant à rendre GIMP plus correct en ce qui concerne les couleurs.

              Ces derniers temps, nous avons réalisé le portage des anciennes structures de couleurs utilisées en interne (GimpRGB, GimpCMYK, GimpHSV…) dont nous nous servions pour stocker les informations de couleurs vers GeglColor. Cet objet générique peut contenir n'importe quelle donnée de couleur, quel que soit le modèle colorimétrique, la précision ou l'espace, du moment que ceux-ci sont pris en charge par babl, notre moteur pour l'encodage des pixels.

              En ce qui concerne la justesse des couleurs, cela signifie que nous ferons maintenant les conversions de couleurs uniquement si cela est nécessaire (conversions à la dernière minute), ce qui permettra de ne pas perdre d'information lorsque cela peut être évité. Par exemple, imaginons que vous utilisiez la pipette à couleurs sur une image : si nous convertissions cette couleur vers un format intermédiaire avant de l'utiliser sur une autre image (qui peut avoir le même format de couleurs ou un format différent), deux conversions auraient lieu. Cela augmente les possibilités de perte de précision. Ce problème est encore plus flagrant si les formats d'entrée et de sortie sont les mêmes (autrement dit, lorsqu'aucune conversion n'est nécessaire). Et cela sera encore plus problématique lorsque le modèle CMJN sera pris en charge nativement (nous voulons éviter à tout prix de faire un aller-retour entre un format intermédiaire et le CMJN, qui n'a pas de relation bijective avec la plupart des autres modèles de couleurs, même en travaillant sans bornes et en ignorant les problèmes de précision).

              Définition d'un espace non borné (ajout par rapport à la dépêche originelle) : lorsque la précision est entière, l'espace est toujours borné (par exemple [0-255] en 8-bit). Par contre, en flottant, où l'espace de travail standard est [0, 1], on peut décider d'accepter les valeurs négatives et supérieures à 1. Cela rend les conversions entre beaucoup d'espaces de couleurs bijectives, aux erreurs de précisions près. Notamment, les conversions entre deux espaces RVB, ou même un espace RVB et divers autres modèles, deviennent bijectives. Ce n'est pas le cas entre RVB et CMJN, même en espace de couleurs infini.

              Nous sommes également en train de migrer le stockage des données de couleur vers ce type d'objet générique. Cela signifie entre autres que les palettes de couleurs pourront comporter des couleurs au format CMJN, CIELAB ou bien encore dans tout autre modèle pris en charge (et pas seulement ces couleurs après une étape de conversion vers le sRVB non borné - « unbounded sRGB »).

              Une conséquence pour la maintenance logicielle est qu'il sera beaucoup plus facile de gérer les conversions de couleurs au sein de notre code, étant donné que cette structure comprend à la fois les données et leur « signification ». Cela rend la gestion des couleurs beaucoup moins susceptible d'introduire des bogues par rapport à l'approche précédente, qui consistait à faire suivre les deux types d'information séparément.

              Finalement, nous travaillons à faire apparaître l'information concernant l'espace de couleurs à plusieurs endroits de l'interface où cela est pertinent, par exemple lorsque des données RVB, CMJN, TSL ou TSV sont affichées ou peuvent être choisies. Les valeurs brutes dans ces modèles de couleurs en l'absence de la connaissance de l'espace de couleurs associé n'ont pratiquement aucun sens. L'affichage dans l'interface de valeurs RVB sans autre précision est un reliquat du passé, lorsque cela signifait le plus souvent sRVB. Cela n'est plus vrai dans un contexte graphique moderne et l'interface devrait être claire à ce sujet.

              La vidéo ci-dessous montre quelques aspects de ce travail sur l'interface, par exemple le fait que les modèles RVB, TSV ou CMJN affichent à tout instant l'espace de couleurs dans lequel les valeurs sont considérées (ce qui très souvent correspond au nom du profil ICC). Cela est déjà fait pour la pipette à couleurs, les échantillons de couleurs, l'ancrable des couleurs de premier/d'arrière plan, la boîte de dialogue « Changer la couleur de premier/d'arrière plan », ainsi qu'à d'autres endroits.

              Non seulement cela, mais lorsque les gens sélectionnent un profil d’épreuve sur écran et activent l'épreuve sur écran (par exemple grâce à la nouvelle bascule de simulation qui a été ajoutée dans GIMP 2.99.12), nous afficherons également non seulement la zone hors gamme de l'espace colorimétrique de l'image, mais également celle de l'espace d’épreuve.

              Invasion de l'espace dans l'interface - GIMP 2.99.18
              Invasion de l'espace dans l'interface - GIMP 2.99.18 (cliquez sur l'image pour voir la vidéo sur le compte Peertube de GIMP)

              Avertissement très important : il s'agit encore une fois d'un portage énorme dans notre base de code, ce qui a impacté littéralement des milliers de lignes de code. Ce travail est inachevé mais il devra être terminé avant la première version candidate. Des instabilités ou des bugs sont à prévoir dans cette mise à jour donc si vous rencontrez un problème, nous recommandons de le rapporter.

              Amélioration des algorithmes de couleur

              Øyvind Kolås a amélioré quelques algorithmes internes :

              • Les pixels achromatiques de l'outil Teinte-Saturation sont désormais un cas spécial afin que les pixels en niveaux de gris (saturation de 0) ne soient modifiés que par le réglage principal, pas par le réglage rouge.
              • Les dégradés en niveaux de gris restent désormais achromatiques même avec "Tramage" coché dans l'outil Dégradé.

              Au fur et à mesure que le projet space invasion avance, obtenir des résultats cohérents devient plus facile dans divers algorithmes liés aux couleurs, nous permettant ainsi de découvrir rapidement les problèmes et de les résoudre.

              Édition non-destructive, première mouture

              Un domaine dans lequel nous sommes « en avance sur le planning » est l'édition non destructive, qui était très demandée ! Les fondations de ces fonctionnalités ont été mises en place par de nombreux développeurs au cours de nombreuses années, depuis l'introduction de GEGL dans GIMP. Bien qu'initialement prévue pour la feuille de route de la version 3.2, une première implémentation a vu le jour en tant que continuation d'un projet Google Summer of Code. Si vous n'êtes pas familier avec ce terme, « édition non destructive » implique notamment que des effets de filtres tels qu'un effet de flou sont stockés séparément des pixels du calque. Cela signifie que si vous désirez plus tard modifier un réglage, réarranger ou même retirer le filtre, vous pouvez le faire très facilement sans affecter le reste de l'image. Jusqu'à présent, GIMP utilisait une procédure d'édition destructive où les effets étaient immédiatement appliqués sur le calque, c'est donc un changement majeur !

              Toute opération GEGL munie d'une interface graphique est désormais appliquée aux calques de manière non destructive. (Les effets non destructifs pour les masques de calques et les canaux sont prévus pour les versions ultérieures.) Cela inclut les greffons GEGL tiers et les opérations personnalisées créées avec notre outil GEGL Graph. Ces effets peuvent être sauvegardés et chargés via les fichiers de projet .xcf, bien que toutes les propriétés GEGL ne soient pas encore prises en charge dans la version actuelle.

              Une fois qu'un filtre a été appliqué, vous pouvez continuer à interagir avec lui en cliquant sur l'icône de filtre dans l'ancrable des calques. Cela ouvrira une boîte de dialogue montrant tous les filtres actuellement appliqués au calque. À partir de là, vous pouvez alterner l'état de visibilité du filtre, modifier ses réglages, réordonner les filtres et retirer les effets un à un. Vous pouvez aussi fusionner tous les filtres et les appliquer à l'image pour retrouver une procédure d'édition destructive.

              Effets non destructifs - GIMP 2.99.18
              Effets non destructifs - GIMP 2.99.18 (cliquez sur l'image pour voir la vidéo sur le compte Peertube de GIMP)

              Notez bien que tout cela est seulement une première implémentation, et beaucoup de travail reste à faire pour disposer d'une édition non destructive complète et riche. Nous allons continuer à affiner les fonctionnalités existantes pour la sortie de la version 3.0 en nous basant sur les tests et les retours des utilisateurs, et nous les développerons davantage par la suite. L'interface elle-même ne correspond pas à notre vision idéale de cette fonctionnalité, et un premier jet de spécifications a été écrit pour définir un processus d'édition bien plus intégré.

              La capture d'écran ci-dessous est une maquette réalisée à partir de ces premières spécifications. Elle montre les effets de calque placés au sein de la liste principale des calques, partageant les mêmes boutons « œil » et « cadenas », mais également avec leurs propres masques faciles à éditer :

              Maquette des spécifications pour l'application non-destructive d'effets de calque

              Maquette des spécifications : les effets de calque sont visibles directement dans la liste des calques, avec leur propres masques

              Néanmoins, l'implémentation de cette nouvelle interface sera un défi en elle-même et nous avons donc décidé de la remettre à après la sortie de GIMP 3 et de proposer cette première mouture en premier lieu.

              N'hésitez pas à partager vos opinions dans les forums de discussion et dans le suivi des incidents !

              Amélioration de la prise en charge des polices de caractères

              Idriss Fekir, un autre étudiant du GSoC 2023, a travaillé avec Liam Quinn, un développeur de longue date, sur l'amélioration de la prise en charge des polices de caractères par GIMP. Une grande partie de ce travail concerne le code interne de GIMP afin d'améliorer sa capacité à gérer les futures mises à jour de polices et de texte. Certains changements plus visibles sont par exemple :

              • GIMP n'a plus besoin que les noms des polices de caractères soient uniques pour pouvoir les distinguer les unes des autres. Cela signifie qu'il n'ajoutera plus « #1 », « #2 » et ainsi de suite, mais gardera à présent les noms originaux dans la liste de sélection des polices. Malgré des noms apparemment identiques, deux polices avec le même nom fonctionneront désormais correctement.
              • GIMP peut maintenant charger des polices avec des styles personnalisés (en contournant l'utilisation de Pango qui n'est pas capable de les charger).
              • Nous pouvons à présent charger davantage de types de polices qu'auparavant. Si jamais nous ne prenons pas encore en charge une police donnée (ou si elle est inexistante), nous sommes mieux à même de le détecter et nous pouvons nous replier sur une police par défaut. Cela permet d'améliorer la prise en charge d'un fichier .xcf créé sur un autre ordinateur avec différentes polices disponibles.
              • Sous Windows, nous forçons le moteur Pango à toujours utiliser l'anticrénelage. Cela augmente la lisibilité du texte des menus sous ce système d'exploitation, en particulier lorsqu'un thème sombre est utilisé.
              • Le code pour la sauvegarde au format XCF stocke désormais les informations concernant les polices de manière bien plus précise, ce qui aide à éviter de charger une police incorrecte lors de la réouverture d'un fichier XCF.
              • L'alignement du texte dans les calques de texte pour les langues écrites de la droite vers la gauche est maintenant plus cohérent avec la manière dont cela fonctionne dans d'autres programmes (par exemple LibreOffice et Scribus).

              Ces changements sont beaucoup moins voyants que certaines autres fonctionnalités et pourraient sembler moins importants, mais ils constituent en fait les fondations qui permettront d'avoir une gestion du texte bien plus fiable dans GIMP. Notre vision pour le futur est d'avoir une édition de texte plus simple tout en étant plus puissante et plus riche en fonctionnalités (en particulier les fonctionnalités OpenType qui sont quelques-unes des améliorations majeures que nous espérons ajouter un jour ou l'autre).

              Expansion automatique des calques

              Le troisième projet GSoC de l'été dernier par l'étudiant Shubham Daule a apporté une fonctionnalité demandée depuis longtemps : l'expansion automatique de calques ! Les outils de peinture ont désormais une option supplémentaire « Étendre les calques ». Lorsque cette case est cochée, peindre au-delà des limites des calques les fera s'étendre automatiquement afin que vous n'ayez pas à gérer vous-même la taille du calque. Si vous souhaitez étendre le calque au-delà de la taille actuelle du canevas, vous devrez également cocher l'option « Afficher tout » dans le menu Affichage.

              Calques à expansion automatique - démonstration de GIMP 2.99.18
              Calques à expansion automatique - GIMP 2.99.18 (cliquez sur l'image pour voir la vidéo sur le compte Peertube de GIMP)

              L'option d'expansion des calques comporte également des paramètres supplémentaires lorsqu'elle est sélectionnée. Vous pouvez décider dans quelle mesure vous souhaitez que les limites du calque s'étendent chaque fois que le pinceau les atteint. Il existe également des options pour spécifier comment les nouvelles zones du calque et du masque de calque doivent être remplies une fois étendues.

              Nouvelles options d'alignement

              Le nouveau contributeur mr. fantastic a développé deux nouvelles options pour aligner les calques sur le canevas. Avec « Snap to Bounding Boxes » (« Aligner sur les boîtes englobantes ») activé, des guides dynamiques s'afficheront désormais pour vous montrer quand le calque que vous déplacez est aligné avec le centre ou les côtés des autres. Le calque actif s'alignera également sur ces bordures pour vous aider à les organiser correctement. La deuxième option, « Snap to Equidistance » (« Aligner à équidistance »), vous permet un alignement entre trois calques équidistants les uns des autres.

              Aligner sur les boîtes englobantes et Aligner à équidistance - démonstration de GIMP 2.99.18
              Nouvelles options d'alignement automatique - GIMP 2.99.18 (cliquez sur l'image pour voir la vidéo sur le compte Peertube de GIMP)

              Thèmes

              Nous avons continué à améliorer l'interface utilisateur et le style de cette version. L’une des améliorations les plus importantes concernait la gestion des « fuites de thèmes système ». Il existe des styles qui n'ont pas été spécifiquement définis dans nos thèmes, donnant ainsi l'opportunité aux règles de style du thème système de "fuiter" de manière conflictuelle dans notre interface. Avec l’aide et les retours de plusieurs contributeurs et utilisateurs, nous avons beaucoup progressé dans la définition de ces styles afin que tous aient une expérience cohérente !

              Récemment, Jehan a travaillé sur la réorganisation et la simplification de notre système de thèmes. Dans les versions de développement précédentes, nous avions cinq thèmes différents : Par Défaut, Gris, Système, Plus Sombre et Compact (chacun avec des options claires et sombres). Ceux-ci ont été simplifiés dans le thème Système et un seul thème par défaut avec trois états possibles : clair, foncé et gris. De même, nos quatre thèmes d'icônes distincts ont été condensés dans l'ensemble Legacy et un thème d'icôns par défaut avec des variantes couleur et symbolique. Nous pensons que ces changements réduiront la confusion des utilisateurs et leur permettront de trouver plus facilement leur apparence d'interface préférée.

              De plus, sous Windows, la barre de titre principale (et la plupart des barres de titre des boîtes de dialogue) s'ajuste désormais au mode clair ou sombre en fonction du thème sélectionné.

              Boîte de dialogue de bienvenue

              La boîte de dialogue de bienvenue a été étendue pour fournir un accès rapide à un certain nombre de fonctionnalités et d'options utiles. Elle comporte ainsi quatre nouvelles sections :

              • Personnaliser : Plusieurs options de personnalisation nécessitent de fouiller dans la boîte de dialogue des Préférences pour être modifiées. À présent, vous pouvez facilement modifier les thèmes de couleurs et d'icônes, la langue et la taille de la police de l'interface utilisateur, ainsi que certains réglages en fonction du système d'exploitation.
              • Créer : Cette section affiche les huit images que vous avez ouvertes en dernier et vous permet de les rouvrir rapidement. Des boutons pour créer une nouvelle image ou pour en charger une existante sont également présents. À l'instar d'autres programmes, vous pouvez demander à ce que cet écran apparaisse automatiquement au démarrage de GIMP pour un accès direct à ces fonctionnalités.
              • Contribuer : Nous avons réuni ici quelques-unes des nombreuses façons dont vous pouvez participer au développement de GIMP. Cette section comporte des liens pour le signalement de bogues, pour écrire du code, pour aider aux traductions ou pour faire un don.
              • Notes de version : Précédemment, le lien vers ces notes étaient affichées dans la moitié inférieure de la boîte de dialogue de bienvenue. À présent, nous avons un onglet entier dédié à ces notes pour une lecture plus aisée.

              Formats de fichiers

              Comme cela était déjà le cas avec les versions précédentes, nous avons amélioré la prise en charge de formats de fichiers déjà existants et nous avons ajouté la prise en charge de l'importation et de l'exportation pour de nouveaux formats.

              DDS

              Stayd, un nouveau contributeur, a travaillé avec notre développeur Jacob Boerema pour apporter de nombreuses améliorations au greffon DDS. Pour commencer, les fonctions d'importation ont été écrites afin d'être plus simples et plus faciles à étendre dans le futur. Les mises à jour supplémentaires incluent également :

              • Le chargement d'images DDS RVBA 16 et 32 bits/canal est maintenant possible.
              • Le filtre cubique Catmull-Rom a été ajouté pour la génération de mipmaps, et tous les calculs pour générer les mipmaps sont effectués avec une précision de 32 bits.
              • Les images DDS aux formats R8G8, R16 et R16G16 peuvent maintenant également être chargées.
              • Une option pour renverser verticalement les images DDS lors de l'importation a été ajoutée pour faire écho à l'option d'exportation correspondante, étant donné que certaines images de jeux stockent leurs données de cette manière.

              GIF

              Par le passé, écraser un fichier GIF à la sauvegarde (plutôt que de l'exporter) le convertissait systématiquement en un fichier avec une seule image. Désormais nous vérifions lors du chargement si le fichier GIF est une animation, de manière à également sauvegarder une animation lors de l'écrasement.

              HEIF et JPEG-XL

              Les deux greffons utilisent maintenant leurs bibliothèques respectives (libheif et libjxl) pour le chargement des métadonnées. Cela nous a permis de retirer notre code maison chargé d'interpréter l'orientation des images et d'utiliser à la place les informations fournies par ces bibliothèques.

              OpenEXR

              Le format OpenEXR permet aux canaux d'avoir des noms personnalisés, outre le type de couleur. Dans ce cas, nous considérons maintenant toute image à un seul canal avec un nom non conventionnel comme étant en niveaux de gris. Lors de l'importation, nous affichons une notification afin que les utilisateurs soient prévenus de cette conversion.

              PDF

              L'option d'exportation « Calques en tant que pages » fonctionne maintenant même s'il y a un seul groupe de calques. Auparavant, cette option n'était pas disponible car le greffon vérifiait seulement s'il y avait plus d'un « calque » sans examiner s'il s'agissait d'un groupe de calques avec de multiples sous-calques.

              PNG

              Les fragments de fichiers PNG qui sont « copiables sans risque » (« safe-to-copy chunks ») sont maintenant préservés lors de l'importation et inclus dans l'image exportée. Un autre souci qui existait lors de l'exportation de PNGs indexés avec transparence (et qui nous avait été souvent signalé) a été résolu. Désormais les couleurs indexées devraient être affichées correctement après exportation.

              PSD

              Jacob Boerema a poursuivi son travail d'amélioration du greffon PSD. En plus d'avoir résolu des bogues, par exemple dans l'ordre des calques lors de l'importation, il a aussi clarifié l'avertissement présenté lors de l'exportation et concernant la compatibilité des modes de calques entre GIMP et Photoshop.

              PSP

              Le greffon Paintshop Pro peut maintenant importer davantage de caractéristiques depuis un fichier projet, comme par exemple le profil de couleurs ICC, les guides, les grilles, et la sélection active lors de la sauvegarde. Les failles de sécurité ZDI-CAN-22096 et ZDI-CAN-22097 ont également été corrigées dans cette version.

              Nouveaux formats d'image pris en charge : Farbfeld, Esm Software PIX, HEJ2

              Nous avons récemment ajouté la prise en charge de l'importation et de l'exportation pour le format Farbfeld, un format d'image sRVB conçu pour être facile à lire, à envoyer dans des pipes et à compresser avec des outils tiers.

              Nous avons aussi ajouté la prise en charge de l'importation seule pour les nouveaux formats suivants :

              • Esm Software PIX : Un format JPEG modifié utilisé exclusivement par l'entreprise Esm Software pour stocker leurs images propres. Cela a été implementé en réponse à un signalement de bogue qui avait confondu ce format avec le format Alias PIX que nous prenions déjà en charge.
              • HEJ2 : Un ajout à notre greffon HEIF déjà existant fourni par Daniel Novomeský qui permet d'importer des images JPEG 2000 compressées.

              Nouveau format de palette pris en charge : Swatchbooker

              Swatchbooker est un programme libre de création et de conversion de palettes de couleurs qui prend en charge de nombreux formats. Bien que le programme lui-même n'ait pas été mis à jour depuis de nombreuses années, son format de palette propre .sbz est le plus complet de tous ceux que nous prenons en charge actuellement. Parmi ses nombreuses fonctionnalités, on peut citer la possibilité de définir des couleurs dans plusieurs modèles de couleurs pour chaque entrée d'une palette, des noms et des descriptions régionalisables, et la prise en charge de profils de couleurs ICC différents pour chaque entrée.

              Via notre travail sur la prise en charge de son importation, nous avons pu fournir des informations qui ont conduit à un correctif de bogue dans la prise en charge de Swatchbooker par Krita. C'est toujours sympa quand des projets peuvent collaborer et s'entraider !

              Interactions avec les pads de tablettes graphiques sous Wayland

              Carlos Garnacho, un contributeur GNOME de longue date, a ajouté la prise en charge de l'interaction directe des boutons de tablettes graphiques (pad) avec GIMP. Quand une tablette est branchée, vous pouvez désormais assigner différentes actions aux contrôles de la tablette depuis la boîte de dialogue « Périphériques d'entrée » dans le menu Édition.

              Assigner des actions aux boutons d'une tablette graphique
              Assigner des actions aux boutons d'une tablette graphique - GIMP 2.99.18

              Ce travail a aussi impliqué le portage de fonctionnalités vers GTK 3, la boîte à outils utilisée par GIMP pour son interface graphique. Notez que cette fonctionnalité est seulement disponible sous Wayland pour le moment.

              Mise à jour de l'API

              L'interface de programmation d'application (API), destinée aux créateurs de greffons, est régulièrement retravaillée dans le cadre de la refonte de GIMP 3. Une partie de ce travail est de migrer l'API vers l'utilisation de GeglColor lorsque les couleurs sont impliquées, ce qui entre dans le cadre plus général du projet Space Invasion. Malgré tout, ce n’est qu’une petite partie de l’ensemble des améliorations de l’API.

              Nous nous orientons également vers plus de classes pour représenter les différentes ressources gérées par GIMP (pinceaux, polices, motifs, etc.) au lieu de les représenter uniquement par des noms (ce qui était une limitation historique alors qu'il est tout à fait possible à 2 créateurs de ressources de choisir le même nom et le fait est que nous voyons de tels cas dans la nature — par exemple, 2 polices créées indépendamment peuvent avoir le même nom).

              Un autre grand pas consiste à remplacer le GimpValueArray représentant les arguments ordonnés d'une procédure d'un greffon par un GimpProcedureConfig qui contient les arguments par nom plutôt que par ordre. Cela permet une utilisation beaucoup plus sémantique des procédures de greffon (surtout lorsqu'elles ont une longue liste d'arguments) et facilitera également l'amélioration des greffons à l'avenir, avec des arguments nouveaux ou réorganisés sans créer de nouvelles procédures, car l'ordre et le nombre des arguments comptent beaucoup moins. Cela signifie que l'ajout de nouveaux arguments dans le futur ne brisera plus les scripts déjà existants qui dépendaient des versions antérieures de ces greffons (les auteurs de greffons devront toujours choisir des valeurs par défaut appropriées pour les nouveaux arguments afin que cela soit vrai, bien sûr).

              En parallèle, nous continuons d'améliorer la capacité de création automatique d'interfaces graphiques offerte aux greffons, rendant la création de boîtes de dialogue plus simple que jamais. Cela inclut (parmi de nombreuses autres améliorations) un nouveau type d'argument de procédure nommé GimpChoice qui est une liste de choix sous forme de chaînes de caractères qui peut être présentée aux créateurs sous forme de widgets de liste déroulante dans la boîte de dialogue de votre greffon.

              Nous prévoyons d'écrire et de publier un didacticiel pour les rédacteurs de greffons dans la section Développement de ressources de notre site Web pour développeur en même temps que la sortie de GIMP 3, ou peu de temps après.

              GEGL et babl

              Cette version de GIMP est accompagnée de nouvelles versions de GEGL et babl, qui contribuent toutes deux au projet (Color) Space Invasion.

              babl 0.1.108 apporte une nouvelle fonction babl_space_is_rgb pour nous aider à confirmer directement qu'un espace colorimétrique est RVB (plutôt que de faire plusieurs tests pour voir s'il n'est pas CMJN ou niveaux de gris). Plusieurs améliorations ont également été apportées au processus de compilation et à l'outil d'interface de ligne de commande de babl.

              GEGL 0.4.48 fournit plusieurs mises à jour de l'objet GeglColor qui prend désormais en charge une grande partie des opérations de couleur de GIMP. Les améliorations spécifiques incluent la possibilité d'obtenir et de définir directement les valeurs de couleur CMJN, ainsi que l'attribution de l'espace colorimétrique lors de la définition des couleurs RVB(A).

              Un crash dans le filtre gegl:voroni existant a été corrigé, et un bogue de longue date avec le filtre gegl:dropshadow qui empêchait l'effet de rétrécir a également été corrigé.

              Enfin, un nouveau filtre gegl:shuffle-search a été ajouté à l'atelier. Il mélange les pixels voisins pour créer un effet de tramage plus optimisé.

              Statistiques de sortie

              Hormis la première version de la série (2.99.2), GIMP 2.99.18 est clairement la plus grosse mise à jour à bien des égards. Depuis la version 2.99.16 :

              • 238 rapports ont été clôturés comme CORRIGÉS.
              • 201 demandes de fusion ont été acceptées.
              • 1358 commits ont été poussés.
              • 26 traductions ont été mises à jour : allemand, basque, biélorusse, portugais brésilien, bulgare, catalan, chinois (Chine), danois, espagnol, espéranto, finnois, géorgien, grec, hongrois, islandais, italien, lituanien, norvégien nynorsk, persan, polonais, russe , slovène, suédois, turc, ukrainien, vietnamien.

              60 personnes ont apporté des modifications ou des correctifs à la base de code de GIMP 2.99.18 (l'ordre est déterminé par le nombre de commits; certaines personnes apparaissent dans plusieurs groupes) :

              • 23 développeurs pour le code principal : Jehan, Alx Sa, Shubham, Jacob Boerema, Idriss Fekir, bootchk, Anders Jonsson, Carlos Garnacho, mr.fantastic, Stanislav Grinkov, lillolollo, Øyvind Kolås, Sabri Ünal, programmer_ceds, Lukas Oberhuber, programmer-ceds, James Golden, Luca Bacci, Massimo Valentini, Niels De Graef, Zander Brown, psykose, sonia.
              • 17 développeurs de greffons ou de modules : Jehan, Alx Sa, Jacob Boerema, bootchk, Anders Jonsson, Stayd, Zander Brown, Bruno Lopes, Daniel Novomeský, Sabri Ünal, programmer_ceds, Kamil Burda, Mark, Michael Schumacher, Stanislav Grinkov, programmer-ceds, sonia.
              • 31 traducteurs : Yuri Chornoivan, Martin, Ekaterine Papava, Luming Zh, Sabri Ünal, Anders Jonsson, Rodrigo Lledó, Jordi Mas, Alan Mortensen, Vasil Pupkin, Asier Sarasua Garmendia, Kolbjørn Stuestøl, Boyuan Yang, Víttor Paulo Vieira da Costa, dimspingos, Alexander Shopov, Alexandre Prokoudine, Aurimas Černius, Balázs Úr, Marco Ciampa, Sveinn í Felli, Danial Behzadi, Ngọc Quân Trần, Jürgen Benvenuti, Piotr Drąg, Timo Jyrinki, Andre Klapper, Kristjan SCHMIDT, MohammadSaleh Kamyab, Rafael Fontenelle, Tim Sabsch.
              • 9 créateurs de ressources (icônes, thèmes, curseurs, splash screen, métadonnées…) : Alx Sa, Jehan, Ferry Jérémie, Stanislav Grinkov, Anders Jonsson, Bruno Lopes, Jacob Boerema, Sabri Ünal, mr.fantastic.
              • 5 contributeurs à la documentation : Jehan, Bruno Lopes, Jacob Boerema, Alx Sa, Anders Jonsson.
              • 14 contributeurs pour la compilation, l'empaquetage ou l'intégration continue : Jehan, Bruno Lopes, bootchk, Alx Sa, Zander Brown, Jacob Boerema, Jacob Boerema, Stayd, Carlos Garnacho, Heiko Becker, mr.fantastic, Daniel Novomeský, U-YGGDRASIL\ender, lillolollo.

              Contributions à d'autres dépôts du GIMPverse (l'ordre est déterminé par le nombre de commits) :

              • babl 0.1.108 est composé de 17 commits par 6 contributeurs : Jehan, Øyvind Kolås, John Marshall, Andre Klapper, John, sid.
              • GEGL 0.4.48 est composé de 77 commits par 20 contributeurs : Øyvind Kolås, Jehan, Anders Jonsson, Jacob Boerema, Yuri Chornoivan, Alan Mortensen, Sabri Ünal, Andre Klapper, Ekaterine Papava, Jan Tojnar, Jordi Mas, Luming Zh, Martin , Piotr Drąg, Víttor Paulo Vieira da Costa, Asier Sarasua Garmendia, Marco Ciampa, Rodrigo Lledó, dimspingos, woob.
              • ctx a eu 308 commits depuis la version 2.99.14 par 1 contributeur : Øyvind Kolås.
              • La version gimp-macos-build (scripts d'empaquetage macOS) est composée de 32 commits par 1 contributeur : Lukas Oberhuber.
              • La version flatpak est composée de 15 commits par 3 contributeurs : Jehan, Daniel Novomeský et Hubert Figuière.
              • Notre site Web principal a eu 31 commits depuis la sortie du 2.10.36 par 6 contributeurs : Jehan, Alx Sa, Sabri Ünal, Anders Jonsson, Bruno Lopes, Jonathan Demeyer.
              • Notre site Web des développeurs a eu 30 commits depuis la version 2.10.36 par 5 contributeurs : Bruno Lopes, Jehan, Alx Sa, bootchk, Robin Swift.
              • Notre documentation 3.0 a enregistré 247 commits depuis la version 2.99.16 par 17 contributeurs : Andre Klapper, Jacob Boerema, Yuri Chornoivan, Alx Sa, Jordi Mas, Alan Mortensen, Dimspingos, Anders Jonsson, Boyuan Yang, Sabri Ünal, Víttor Paulo Vieira da Costa, Juliano de Souza Camargo, Rodrigo Lledó, Kolbjørn Stuestøl, Marco Ciampa, Danial Behzadi, Emin Tufan Çetin.

              N'oublions pas de remercier toutes les personnes qui nous aident à faire le tri dans Gitlab, rapportent des bogues et discutent avec nous d'éventuelles améliorations. Notre communauté est également profondément reconnaissante envers les guerriers d'Internet qui gèrent nos différents canaux de discussion ou comptes de réseaux sociaux tels que Ville Pätsi, Liam Quin, Michael Schumacher et Sevenix !

              Remarque : compte tenu du nombre de pièces qui composent GIMP et son environnement, et de la manière dont nous obtenons des statistiques via des scripts git, des erreurs peuvent se glisser dans ces statistiques. N'hésitez pas à nous dire si nous avons manqué ou mal catégorisé certains contributeurs ou contributions.

              Nouvelles de l'équipe et procédure de sortie

              Les droits d'accès au dépôt git ont été récemment accordés à Bruno Lopes (qui a été très actif dans l'amélioration de notre processus de compilation et de l'empaquetage pour Windows).

              Plusieurs développeurs ou empaqueteurs de longue date ou plus récents qui ont commencé à contribuer au nouveau site Web des développeurs ont également reçu l'accès au dépôt git associé.

              De plus en plus de contributeurs participent désormais activement aux tests des versions et du processus d'empaquetage, et c'est la première dépêche depuis des années (NDT : cela désigne la news originale sur le site de GIMP) que Jehan n'a pas écrite presque entièrement ! Merci beaucoup à Alx Sa (alias Nikc ou CmykStudent) d'avoir entamé la rédaction collaborative de la nouvelle !

              Il est clair que nous consolidons jour après jour une solide équipe de contributeurs et cela se voit dans notre processus de publication, avec de plus en plus de retours à chaque version.

              Nous sommes également particulièrement heureux et fiers que les 4 projets GSoC que nous avons eus, depuis que nous avons recommencé à souscrire à ce programme de mentorat, aient tous été couronnés de succès et ont fini par être fusionnés avec la branche principale du code au plus tard six mois après la fin du stage.

              Autour de GIMP

              Des nouvelles des miroirs

              Depuis la dernière dépêche, un nouveau miroir a été apporté à GIMP par :

              • Sahil Dhiman, à Nuremberg, en Allemagne, comme projet personnel.

              Cela nous amène à un total de 46 miroirs répartis dans le monde.

              Les miroirs sont importants car ils aident le projet en partageant la charge de dizaines de milliers de téléchargements quotidiens. De plus, en disposant de miroirs répartis à travers le monde, nous garantissons que tout le monde puisse avoir un accès rapide au téléchargement de GIMP.

              GIMP sous Windows/ARM

              Depuis notre annonce d'une version expérimentale sur Windows pour l'architecture ARM 64 bits (en anglais), nous avons reçu l'aide de Hernan Martinez, contributeur bien connu du projet MSYS2, qui a hébergé notre tout premier runner pour l'intégration continue (CI) pour Windows sur l'architecture Aarch64. Bien que cela n'ait été qu'une configuration temporaire (littéralement une machine de compilation dans le salon de quelqu'un) en attendant une situation plus stable, nous sommes extrêmement reconnaissants envers Hernan qui nous a aidés à faire notre deuxième pas sur cette plateforme (la première étape a été effectuée par Jernej, qui a créé notre premier installateur expérimental), s'est assuré que notre processus de compilation automatique fonctionne sur cette machine, et plus encore.

              Depuis lors, la situation plus stable est arrivée : Arm Ltd. eux-mêmes se sont mobilisés et ont officiellement contribué trois runners pour notre processus d'intégration continue dans Gitlab ! Arm Ltd. a également sponsorisé un kit de développement Windows pour l'un de nos développeurs.

              Bien que nous considérions toujours cette version comme expérimentale, en raison du manque de tests et du fait que seuls 2 contributeurs disposent actuellement d'une machine capable de l'exécuter, le plus gros facteur bloquant a été supprimé et nous sommes heureux d'annoncer que notre programme d'installation Windows universel pour GIMP 2.99.18 contient GIMP pour les 3 plates-formes (x86 32 et 64 bits, et maintenant ARM 64 bits) !

              Télécharger GIMP 2.99.18

              Vous trouverez toutes nos versions officielles sur le site officiel de GIMP (gimp.org) :

              • Flatpaks Linux pour x86 et ARM (64 bits)
              • Installateur Windows universel pour x86 (32 et 64 bits) et pour ARM (64 bits)
              • Paquets macOS DMG pour le matériel Intel
              • Paquets macOS DMG pour le matériel Apple Silicon

              D'autres paquets réalisés par des tiers devraient évidemment suivre (paquets des distributions Linux ou *BSD, etc.).

              Et ensuite ?

              Alors que nous sommes maintenant entrés dans un gel des fonctionnalités, notre attention s'est déplacée vers la correction des bogues, le nettoyage et la préparation de la première version candidate 3.0.

              Nous pensons en effet qu'il s'agit de la dernière version de développement puisqu'aucune nouvelle fonctionnalité ne sera introduite désormais, du moins au niveau de l'interface utilisateur (l'API est encore en évolution jusqu'à la première version candidate). Donc, ce que vous voyez maintenant est essentiellement ce que vous devriez obtenir dans GIMP 3.0.0, en termes de fonctionnalités.

              C'est pourquoi nous avons sorti cette version même si nous savons qu'elle est assez instable. C'est l'heure des commentaires de dernière minute ! C'est aussi le moment de signaler et de corriger les bogues comme si demain n'existait pas. Nous espérons pouvoir bientôt livrer une RC1 et elle devrait être aussi dépourvue de bogue que possible.

              Nous espérons actuellement pouvoir publier GIMP pour le prochain Libre Graphics Meeting du 9 au 12 mai. Pour être honnête, ce n’est pas un objectif facile et nous ne sommes donc pas sûrs de pouvoir l’atteindre. Ce qui est sûr, c'est que même si nous n'y parvenons pas à temps, cela ne devrait pas arriver trop longtemps après. En particulier, nous ne publierons pas simplement parce que nous avons fixé une date limite. Nous voulons offrir la meilleure expérience possible, ce qui signifie que si nous découvrons des bogues bloquants de dernière minute, nous retarderons la sortie jusqu'à ce qu'ils soient corrigés.

              N'oubliez pas que vous pouvez faire un don et financer personnellement les développeurs de GIMP, c'est un moyen de donner en retour et d'accélérer le développement de GIMP. L’engagement communautaire permet au projet de se renforcer ! 💪🥳

              Commentaires : voir le flux Atom ouvrir dans le navigateur

              • ✇LinuxFr.org : les dépêches
              • Revue de presse de l’April pour la semaine 9 de l’année 2024
                Cette revue de presse sur Internet fait partie du travail de veille mené par l’April dans le cadre de son action de défense et de promotion du logiciel libre. Les positions exposées dans les articles sont celles de leurs auteurs et ne rejoignent pas forcément celles de l’April. [01net.] Pourquoi AMD s'arrache les cheveux sur le HDMI 2.1? [Silicon] L'utilisation de logiciels en open-source comporte-t-elle plus de risques que d'avantages? [ZDNet France] Education nationale: des logiciels libres p

              Revue de presse de l’April pour la semaine 9 de l’année 2024

              Cette revue de presse sur Internet fait partie du travail de veille mené par l’April dans le cadre de son action de défense et de promotion du logiciel libre. Les positions exposées dans les articles sont celles de leurs auteurs et ne rejoignent pas forcément celles de l’April.

              [01net.] Pourquoi AMD s'arrache les cheveux sur le HDMI 2.1?

              ✍ Mickaël Bazoge, le vendredi 1 mars 2024.

              AMD aimerait vraiment beaucoup être en mesure d’utiliser le HDMI 2.1 pour diffuser des contenus très haute définition à des fréquences d’affichage très élevées. Malheureusement, ça coince avec le HDMI Forum, qui a opposé une fin de non recevoir.

              [Silicon] L'utilisation de logiciels en open-source comporte-t-elle plus de risques que d'avantages?

              ✍ Eddy Sifflet, le jeudi 29 février 2024.

              L’open-source favorise l’innovation et la flexibilité en incitant la communauté à collaborer et à évoluer. C’est une opportunité à ne pas manquer pour les entreprises qui souhaitent rester compétitives dans ce paysage numérique en perpétuelle évolution.

              [ZDNet France] Education nationale: des logiciels libres pour de nombreux usages, offerts aux enseignants

              ✍ Thierry Noisette, le mercredi 28 février 2024.

              Partage de fichiers, de vidéos, édition collaborative, création et partage de parcours pédagogiques… Les enseignants peuvent utiliser beaucoup d’alternatives aux Gafam. Le 29 mars, ces nombreux services seront parmi les programmes exposés à la Journée du Libre Educatif à Créteil

              Et aussi:

              [La Tribune] L'alliance entre Mistral et Microsoft met fin à l'illusion de l'indépendance technologique européenne

              ✍ François Manens, le mercredi 28 février 2024.

              Alors qu’il défendait mordicus l’open source comme valeur cardinale pour s’imposer face aux géants américains, le champion français de l’intelligence artificielle, Mistral AI, a développé son plus puissant modèle de langage de manière fermée, et a conclu un partenariat pour l’heure exclusif avec Microsoft pour sa distribution, laissant même l’Américain entrer symboliquement à son capital. Si ce virage stratégique aux allures de séisme fait sens d’un point de vue économique et bénéficie du soutien de la France, il rend furieux à Bruxelles et parmi les défenseurs de l’IA européenne. Par ricochet, l’entrée de Mistral, comme OpenAI avant lui, dans le giron du géant Microsoft, est une claque pour la souveraineté numérique européenne, et acte la position déjà dominante des Américains dans la course à l’intelligence artificielle.

              Et aussi:

              [Banque des Territoires] La justice rappelle les obligations associées aux logiciels libres

              ✍ Olivier Devillers, le mercredi 28 février 2024.

              Localtis: L’usage des logiciels libres est assorti d’obligations telles que le reversement des développements informatiques à la communauté. C’est ce que vient de rappeler un jugement de la cour d’appel de Paris du 24 février 2024 opposant la coopérative Entr’ouvert à Orange business services.

              Gafam: "C'est la corruption de la presse qui fait qu'il y a le silence"

              Le vendredi 23 février 2024.

              Cinq petites lettres qui régissent en partie notre consommation de l’information: Gafam. Google, Amazon, Facebook, Apple et Microsoft. Ajoutons à la liste le nouveau X de Twitter et le T de Tiktok pour un panel complet.

              [Silicon] Open source: que se passe-t-il avec Linkerd?

              ✍ Clément Bohic, le jeudi 22 février 2024.

              L’entreprise porteuse de Linkerd n’en distribuera plus de versions stables en source ouverte et soumettra ses rétroportages à un paywall.

              Commentaires : voir le flux Atom ouvrir dans le navigateur

              ❌
              ❌