Vue normale

Reçu aujourd’hui — 18 mai 2025

Nouvelles de Haiku - 1er trimestre 2025

Il est temps de s'intéresser à nouveau aux nouveautés de Haiku pour ce dernier trimestre.

Les gros changements sont:

  • Un nouvel allocateur mémoire qui permet enfin d'allouer plus de 3GiB par application (un reste de l'historique de Haiku sur les systèmes 32 bits), tout en étant plus rapide et moins gourmand en mémoire,
  • Des raccourcis claviers sans touches modificatrices,
  • De grosses mises à jour dans la bibliothèque C,
  • La poursuite du nettoyage de code et de l'optimisation du navigateur de fichiers Tracker,
  • La reprise du travail sur le pilote NFS4 pour les systèmes de fichiers en réseau,
  • Et bien sûr, de très nombreuses corrections de bugs et petites améliorations un peu partout dans le système.

Sommaire

Google Summer of Code

Le Google Summer of Code est un programme organisé par Google pour encourager de nouveaux développeurs à se lancer dans la contribution aux logiciels libres. Il prend la forme d'un stage, où un projet de logiciel libre fournit un sujet et une équipe d'encadrement, et Google se charge de financer le nouveau contributeur pour quelques semaines.

Cette année, la candidature de Haiku a été rejetée, la préférence étant donnée à des projets engagés dans l'intelligence artificielle et dans la cybersécurité (deux domaines beaucoup demandés par les personnes souhaitant participer au programme). Ce n'est finalement peut-être pas une mauvaise chose pour Haiku: les développeurs d'autres projets se sont plaints d'avoir reçu des centaines de candidatures visiblement générées par des LLM sans aucun travail de préparation, ce qui leur demande donc beaucoup de temps pour faire le tri dans les candidatures. Les développeurs de Haiku vont cette année pouvoir se consacrer à d'autres tâches.

Applications

Tracker

Le travail de refonte du Tracker se poursuit. Les changements intégrés en début d'année ont provoqué un certain nombre de régressions qui sont corrigées petit à petit:

  • Il est à nouveau possible d'ouvrir le dossier contenant un résultat de requête en double cliquant la colonne "emplacement" dans les résultats.
  • Correction d'un crash et de problèmes de gestion de la mémoire et de problèmes de synchronisation entre threads.
  • Ré-optimisation de la gestion des menus dynamiques pour éviter de les reconstruire à chaque clic de souris, mise en cache de certaines parties du menu dont la construction nécessite des accès disque (liste de patrons pour le menu "nouveau document", liste d'add-ons)

Toujours beaucoup de nettoyage de code à faire dans le Tracker:

  • correction de dimensions en dur dans les menus spéciaux du Tracker,
  • nettoyage du glisser-déposer,
  • refactorisation de la logique de dessin,
  • amélioraiton du chargement des add-ons,

Optimisation de la méthode de surveillance des dossiers, utilisation d'un "node monitor" (équivalent de inotify sous Linux) récursif pour surveiller un dossier et tous ses sous-dossiers au lieu de créer un monitor pour chaque dossier. Cela a nécessité des changements au niveau du noyau avec l'ajout du flag B_QUERY_WATCH_ALL pour couvrir ce cas d'usage.

Par jscipione, waddlesplash

MediaPlayer

L'infobulle sur le "scrubber" (barre de navigation temporelle dans le fichier) s'affiche dès que la souris est au-dessus de la barre. Elle contient le marqueur de temps correspondant à la position de la souris, permettant de naviguer avec précision dans le fichier. Ceci a nécessité des évolutions dans BToolTip, la classe responsable des infobulles, qui n'était pas prévue pour faire des infobulles persistantes poursuivant le déplacement de la souris.

Ajout d'une option pour afficher une vidéo à 25% de sa taille originale (les contenus en 4K ou plus se faisant plus courants).

Par AkashKumar7902, x512, waddlesplash

WebPositive

WebPositive ne prétend plus savoir traiter les liens utilsant le protocole gopher. Ces liens ne fonctionnaient plus depuis le retour à l'utilisation de cURL pour la couche réseau de WebKit au lieu d'essayer de réimplémenter un client HTTP maison.

Amélioration de la gestion des sessions : sauvegarde du workspace utilisé pour chaque fenêtre, restauration de la session complète lorsque le navigateur est démarré en cliquant sur un lien, avec ouverture du lien dans une fenêtre du workspace courant s'il y en a déjà une, et dans une nouvelle fenêtre sinon.

Par nephele, ilzu

HaikuDepot

Amélioration de performances, en particulier lors de l'affichage des résultats de recherche, qui étaient très très lents sur les machines un peu anciennes.

Par apl, oco, waddlesplash

ProcessController

Affichage de "system resources" avant "caches" afin de rendre les statistiques d'utilisation mémoire plus claires et plus lisibles.

Correction de problèmes dans la mesure d'utilisation de resources par le noyau.

Par OscarL, waddlesplash

Terminal

Correction d'un bug d'initialisation de la couleur du curseur, visible principalement lorsque le terminal est utilisé comme réplicant dans une autre application. Cette possibilité est utilisée dans l'IDE Genio par exemple.

Par jackburton

StyledEdit

Interdiction d'entrer des caractères de contrôle ASCII dans un fichier texte (via les raccourcis clavier control+une lettre).

Par OscarL

Screenshot

Ajout de la possibilité de sélectionner un rectangle à capturer (en plus des possibilités existantes de capturer tout l'écran ou la fenêtre active).

Préférences

Nettoyage de code inutile dans les préférences d'affichage

Amélioration de la gestion des erreurs dans les préférences de sons si le dossier où devraient se trouver les fichiers son n'existe pas.

Par captain0xff, humdinger

Outils en ligne de commande

strace: Décodage des arguments passés à rlimit ainsi que de l'argument "type" pour mmap, affichage correct des valeurs de type ssize_t ne pouvant pas être représentées sur 32 bits.

Fusion des outils query et filteredquery. Ces deux outils permettent de rechercher des fichiers à partir de leurs attributs (xattrs) qui sont indexés par le système de fichier. Cette méthode de recherche retourne tous les résultats, le filtrage pour limiter à certains dossiers doit donc être fait par l'outil après avoir récupéré les résultats de la recherche. Cette fonction étant très utile, il n'y a pas de raison de l'implémenter comme un outil séparé.

keymap: l'option -h affiche l'aide, en conformité avec les bonnes pratiques d'interface utilisateur. L'option pour afficher un header est donc réaffectée et devient -H.

leakanalyzer (outil d'analyse des fuites mémoire): ignore la mémoire allouée en interne par le "locale kit" pour le support des locales dans la librairie C, cette mémoire ne peut pas être libérée.

listusb: correction de l'alignement vertical du statut des ports qui n'était pas en face des autres informations affichées.

waitfor (petite application permettant d'attendre différents évènements, très utile dans certains scripts) peut maintenant attendre la disponibilité d'une connexion réseau.

Par humdinger, jmairboeck, korli, OscarL, waddlesplash

Kits

Interface Kit

Les raccourcis claviers pour les menus peuvent maintenant ne pas utiliser la touche "Commande" du clavier. Cela permet de définir des raccourcis sans touches modificatrices ou avec des touches non-standard. L'utilisation de ce type de raccourcis est relativement rare, mais nécessaire dans quelques cas particuliers. Par exemple, la touche "Supprimer" peut être utilisée pour supprimer un fichier ou un élément de liste de lecture, la touche "F2" pour renommer un fichier dans le Tracker, …

Correction de la gestion des raccourcis claviers dans BPopUpMenu qui pouvaient être associés à la mauvaise fenêtre.

Amélioration du mode sombre: meilleure méthode de choix de la couleur de fond dans BTextView, utilisation d'une combinaison de couleurs cohérentes pour les boutons des barres de défilement.

Ajout de définitions et de documentation pour tous les côdes de contrôle ASCII dans InterfaceDefs.h. Certains d'entre eux n'étaient pas documentés, ce qui pouvait laisser penser qu'il restait de la place libre utilisable pour coder d'autres choses.

Ajout de vérifications dans BMenuField::SetLabel pour traiter correctement les labels NULL.

Optimisations de BScrollView et BColumnListView pour limiter les rafraîchissements inutiles de l'affichage (dans le cadre des améliorations de performances pour HaikuDepot). Dans BColumnListView, ajout d'APIs pour ajouter et supprimer un ensemble d'éléments d'un seul coup, ce qui est beaucoup plus rapide que de les traiter un par un.

Meilleure gestion du sémaphore de synchronisation des menus dans BWindow. Tous les menus dans Haiku sont implémentés comme des fenêtres, ce qui signifie que chaque menu s'exécute dans un thread dédié avec sa propre boucle d'évènements. La synchronisation peut donc être particulièrement complexe.

Correction d'un use-after-free (utilisation de mémoire libérée qui ne devrait logiquement plus être accédée) dans BSlider.

BDecimalSpinner (un contrôle pour changer une valeur numérique au clavier ou avec des boutons '+' et '-') utilise BNumberFormat et affiche donc le nombre en fonction des préférences de localisation.

Par apl, bitigchi, jscipione, korli, nipos, nephele, PulkoMandy, waddlesplash, x512

Support Kit

Modification de BObjectList pour passer l'argument "owning" en paramètre de template plutôt qu'en paramètre du constructeur. Cela améliore les résultats d'analyse statique qui détectaient de nombreux faux positifs "double free" ou "use after free", et rend également plus difficile de faire des erreurs sur la gestion de la mémoire avec ces listes.

Certaines utilisations de BObjectList<BString> ont été remplacées par la classe dédiée BStringList, plus simple à utiliser pour ce cas particulier.

Amélioration de performances dans BList, BMessage et certaines parties du code les utilisant beaucoup pour réduire la quantité d'allocations mémoire dynamiques, en utilisant la pile comme stockage temporaire ou simplement en retardant au maximum les allocations. Par exemple, plutôt que de pré-allouer de la mémoire pour une liste dès la création de cette dernière, on attend l'insertion du premier élément dans la liste. On élimine ainsi des allocations dans les cas où du code crée une liste, mais n'insère finalement jamais rien dedans.

Amélioration des erreurs remontées par les classes de traitement de fichiers JSON.

Ajout de vérifications de pointeurs NULL manquantes dans BString pour corriger des crashs quand il n'y a plus de mémoire et qu'une allocation échoue.

Par ilzu, waddlesplash

Storage Kit

Amélioration de BFilePanel pour mieux réagir lorsque le dossier de destination n'existe pas.

Inhibition de BBlockCache lors de l'utilisation d'un allocateur mémoire de debug ou avec des gardes pour détecter les mauvaises utilisations mémoire. Dans ce cas, il vaut mieux se dispenser des gains de performance de la mise en cache mais détecter correctement l'utilisation de mémoire après sa remise à disposition dans le cache.

Ajout d'un type MIME pour les BMessage serialisés sur disque (souvent utilisés pour sauvegarder les préférences d'applications par exemple).

Par augiedoggie, nephele, waddlesplash

Serveurs

input server

Amélioration du clavier virtuel pour se mettre à jour automatiquement lors des changements de résolution d'écran et de disposition du clavier. Ce clavier virtuel n'est pas inclus par défaut dans l'installation de Haiku, il est réservé aux personnes aventureuses qui utilisent Haiku sur une tablette ou qui débugguent un pilote de clavier en ne disposant que d'un écran tactile comme périphérique d'entrée.

Correction du traitement des appels systèmes interrompus (SIGINT), ce qui permet à input server de s'arrêter (et de se redémarrer) lorsqu'on le lui demande. Cela est principalement utile pour tester les pilotes de périphériques d'entrée.

screen blanker

L'écran de veille utilise le mot de passe "système" (configuré dans /etc/passwd) au lieu d'implémenter son propre système de mot de passe. La commande screen_blanker permet de lancer l'écran de veille immédiatement, et peut être configurée comme un raccourci clavier pour implémenter un verrouillage simple de la session (note: ne faites pas confiance à l'écran de veille pour sécuriser votre session, actuellement il est assez facile à contourner par exemple à l'aide du debugger noyau).

launch daemon

Améliorations sur le launch_daemon: correction du traitement des conditions échouées pour lancer un service, ajout de la possibilité de définir une condition sur le contenu d'un fichier au format "driver settings" (format similaire aux fichiers ini) en plus des fichiers BMessage (format binaire), correction de l'arrêt des services.

app server

Remise en route du test_app_server (outil de test permettant de lancer un deuxième app_server dans une fenêtre, et donc de tester des changements sur le serveur graphique sans avoir besoin de redémarrer tout le système).

Correction de bugs dans app_server pour l'affichage de texte: retrait de code dupliqué, ajout de nouveaux cas de test, meilleure gestion du clipping et des "bounding boxes" des glyphes, correction de problèmes sur les lignes de "décoration" (texte souligné, barré) utilisées en combinaison avec une transformation (rotation, déformation).

Par augiedoggie, korli, nipos, madmax

Pilotes

Le pilote i2c prend en charge les plateformes AMD en plus des machines PCH Intel. Le module i2c utilisé (conçu par Designware) est le même pour les deux fabricants à quelques petits détails près.

Amélioration de la détection du pointeur racine ACPI: ce pointeur était fourni par le bootloader sur les machines EFI, mais détecté par l'OS après démarrage sur les machines BIOS. C'est désormais la seule responsabilité du bootloader dans les deux cas, ce qui simplifie le code.

Correction d'un crash sur certaines machines dans le pilote des batteries ACPI.

Ajout de vérifications supplémentaires et corrections du traitement de quelques cas particuliers dans la pile XHCI (USB3).

La gestion des "révisions" des périphériques virtio a été mise en conformité avec la spécification virtio. Pour les anciennes versions de virtio, ce champ de la configuration PCI indiquait la version du protocole virtio à utiliser. Mais cela implique qu'un seul pilote virtio (identifiant les périphériques par leur ID PCI uniquement) doit implémenter toutes les versions de virtio. Pour les nouvelles spécifications, ce sera donc le "device ID" qui va changer, et il sera beaucoup plus simple de développer des pilotes spécifiques "virtio v1", "virtio v2", etc pour chaque version majeure.

Mise à jour des pilotes wifi iaxwifi200 (nommé iwx chez BSD) et ethernet atheros813x pour supporter de nouvelles générations de matériel. Import du nouveau pilote FreeBSD pour les cartes MT7601U, mais il n'y a pas encore de confirmation de son bon fonctionnement sous Haiku.

Nettoyage de code dans les pilotes SCSI et ralinkwifi.

Dans le pilote NVMe, activation de l'option de mise en veille automatique qui permet de réduire la consommation électrique lorsque le disque n'est pas sollicité (réduction de 1W constatée sur certaines machines).

Correction de problèmes dans les pilotes d'entrée (clavier, souris) qui empêchent de redémarrer l'input_server et de retrouver l'usage de ces périphériques.

Ajout de la tablette graphique Cintiq13HD dans le pilote Wacom.

Correction du pilote framebuffer pour ne mapper en mémoire que la zone utilisée pour le framebuffer, et pas toute la mémoire de la carte graphique. Non seulement cela réduit la consommation mémoire reportée, mais surtout, le reste de la mémoire peut ainsi être configuré pour autre chose (par exemple, de l'accélération 3D).

Ajout des cartes Polaris 10 et correction de quelques erreurs de versions du chipset pour d'autres cartes dans le pilote Radeon HD. Ces cartes récentes sont toujours désactivées dans le pilote, le support reste expérimental et peut conduire à un écran noir. Il vaut mieux donc utiliser les pilotes VESA ou framebuffer pour l'instant.

Par ilzu, korli, Lt-Henry, waddlesplash

Systèmes de fichiers

Poursuite d'investigations pour améliorer le temps d'exécution de "git status" qui est anormalement lent par rapport à la même opération sous Linux. Amélioration de l'itération sur les arbres B+ dans BFS, qui faisaient plusieurs "get" et "put" du même bloc disque successif (les opérations "get" et "put" permettent d'obtenir l'accès exclusif à un bloc disque, puis de le libérer, le cache de blocs se chargeant de lire les blocs depuis le disque, puis de les réécrire lorsque c'est nécessaire).

Amélioration également des verrous de parallélisme dans BFS, ce qui devrait corriger quelques kernel panic.

Correction d'un blocage de ramfs lors de l'utilisation de "trim" pour libérer de la mémoire.

Ajout d'un contrôle du flag O_DIRECTORY dans plusieurs systèmes de fichiers lors de l'ouverture d'un fichier. En particulier cela permet d'écrire une image disque sur un disque à l'aide de la commande cp fichier.image /dev/disk/.../raw.

Plusieurs corrections sur le pilote NFS4 qui était délaissé depuis quelque temps: gestion des inodes "périmés" (fichier présent dans un cache local, mais supprimé par une autre machine sur le serveur), et correction d'autres problèmes rendant le pilote instable. Ajout également de divers outils de debug pour investiguer l'état du pilote.

Le serveur userlandfs peut être lancé plusieurs fois (B_MULTIPLE_LAUNCH), ce qui permet d'utiliser plusieurs systèmes de fichiers FUSE ou userlandfs en même temps.

Par augiedoggie, Jim906, waddlesplash, x512

libroot

Bibliothèque C standard

dlsym(RTLD_NEXT) et d'autres fonctions similaires du runtime_loader recherchent maintenant les symboles dans toutes les régions ELF chargées, et pas seulement dans la première.

Ajout de RTLD_NOLOAD dans la fonction dlopen, ce qui permet d'accéder à des symboles déjà présents dans l'exécutable sans charger un fichier de librairie à nouveau. Il ne s'agit pas d'une fonction standard C ou POSIX, mais d'une extension proposée par GNU et la glibc.

Ajout de la fonction getloadavg qui permet d'obtenir une mesure de la charge du système. Cela peut être simplement informatif (dans des outils comme htop) ou utilisé pour allouer au mieux les ressources CPU (l'outil de build ninja peut par exemple utiliser cette valeur pour décider combien de jobs lancer en parallèle)

Mise en conformité de l'ordre d'appel des destructeurs de pthread_key (il faut potentiellement appeler les destructeurs plusieurs fois, jusqu'à PTHREAD_DESTRUCTOR_ITERATIONS, pour contourner les problèmes d'interdépendances). Correction de l'ordre d'appel des destructeurs lors de l'arrêt d'une application: les destructeurs globaux C++ doivent être appelés avant les destructeurs de threads (il existe plusieurs méthodes pour enregistrer des fonctions à exécuter à l'arrêt d'un thread ou d'un programme, et c'est assez compliqué de toutes les séquencer correctement).

Une petite optimisation de pthread_cond_signal pour éviter un appel système dans certains cas.

Poursuite du remplacement de fonctions de la libroot par les versions provenant de musl: memmove, strlen, strlcat, ainsi que toutes les fonctions de conversions entre chaînes de caractères et nombres flottants.

Synchronisation de l'implémentation de glob avec FreeBSD.

Optimisation de la famille de fonctions memcmp, strcmp, strncmp: utilisation de comparaisons sur 64 bits lorsque c'est pertinent, retrait de calculs inutiles.

Réécriture et optimisation des fonctions génériques memcpy et memset (utilisées pour les machines qui n'ont pas une version optimisée manuellement en assembleur). Utilisation de la version optimisée de NetBSD pour les machines x86 32 bits. Pour la version 64 bits, le code utilisé par Haiku est meilleur que celui des autres systèmes, et reste donc en place. Le bootloader utilise uniquement la version générique pour simplifier les choses (il n'a pas besoin de fonctions de très haute performance).

Correction de la fonction write() avec une taille supèrieure à 2Gio sur les systèmes 64 bits (la taille était accidentellement tronquée à 32 bits).

Mise en conformité POSIX de la fonction dup3: retour de EINVAL si l'ancien et le nouveau descripteur de fichier sont identiques.

Déplacement de la fonction qsort_r de la libgnu vers la libroot (elle a été standardisée dans POSIX Issue 8). Il s'agit d'une version de qsort permettant de passer un paramètre supplémentaire à la fonction de comparaison contenant un contexte réservé à l'utilisateur de la fonction.

Nettoyage du code restant dans la libroot qui provient de la glibc: retrait de déclarations internes présentes dans les en-têtes publics, retrait de fonctions qui ont déjà été remplacées, suppression de fichiers non utilisés, remplacement d'un maximum de fonctions par les versions de musl ou de BSD, ajout des fonctions stdio_ext de musl en remplacement des fonctions privées supprimées, retrait d'une partie des fonctions mathématiques au profit de celles de musl, retrait d'une couche d'abstraction pour l'interfaçage entre la glibc et le support des locales dans Haiku. Certaines parties de la glibc continuent d'être utilisées pour assurer la compatibilité avec BeOS, mais l'objectif est de minimiser cette partie et d'utiliser les fonctions de BSD ou de musl, qui sont souvent beaucoup plus simples. La raison est que la glibc est conçue pour pouvoir être utilisée comme librairie C alternative sur de nombreux systèmes, et doit donc avoir un comportement très proche de la librairie C originale. Par exemple, le format des nombres "long double" peut être différent d'une architecture et d'un système à l'autre, et la glibc implémente de nombreux formats spécifiques, là où musl se contente des formats les plus classiques.

Mise à jour de getopt, printf et scanf avec la verson de la glibc 2.41. Pour l'instant ces fonctions continuent d'utiliser la version de la glibc, afin de préserver la compatibilité avec les applications existantes (notamment les applications pour BeOS). En effet, des structures internes sont exposées dans l'ABI et ne peuvent pas être facilement remplacées par une autre implémentation.

Tous ces changements sur la librairie C standard sont faits également en collaboration avec un développeur de la gnulib, dont la suite de tests permet de repérer de nombreux comportements incorrects ou non standards.

Gestion de la mémoire

Finalisation d'un gros chantier de refonte de la gestion de la mémoire, avec en particulier la possibilité de fusionner des zones de mémoire adjacentes lorsqu'elles sont redimensionnées. Suite à ces changements, l'allocateur mémoire hoard2 a pu être remplacé par une nouvelle implémentation basée sur celle de OpenBSD, avec quelques adaptations et améliorations spécifiques à Haiku, dont en particulier un cache d'allocation global pour chaque application. Le nouvel allocateur est légèrement plus rapide en général, et plusieurs ordres de grandeur plus rapide sur certains cas particuliers (par exemple: gcc avec les options de link-time-optimization, ou le compilateur SDCC, ou un test de compilation passe de plusieurs heures à une ou deux minutes). Ce nouvel allocateur est également moins consommateur de mémoire et permet aux applications d'allouer plus de mémoire (hoard2 limitait les allocations à environ 3Go y compris sur les systèms 64 bits).

Amélioration des messsages d'erreur de la "guarded heap" (allocateur mémoire de débug) pour afficher des messages d'erreurs plus spécifiques au lieu de "generic segfault".

Autres changements

Ajout de macros manquantes dans le fichier elf.h ainsi que de la constante MAP_FILE (inutile mais présente sur Linux et tous les systèmes BSD) pour faciliter le portage de WebKit.

Interdiction de l'appel de create_sem avec un compteur négatif. Cela était interdit par BeOS mais autorisé par Haiku et il n'y a pas vraiment de raison de le faire.

Modification du code assembleur d'appel des appels systèmes pour inclure des informations de debug sur la pile d'appels. D'autre part, dladdr a été modifié pour pouvoir accéder aux informations sur ces symboles, qui sont chargés dans la commpage (une zone de mémoire partagée entre le noyau et les processus utilisateurs, qui n'est pas à proprement parler une section de code classique en mémoire). Cela permet à libunwind d'analyser une stacktrace comprenant un appel système.

Par korli, PulkoMandy, trungnt2910, waddlesplash, zeldakatze

Noyau

Désactivation des états de veille C5 et C6 sur les machines Intel "Skylake", car elles empêchent ces machines de démarrer correctement pour l'instant.

Réparation du cache d'objets "guarded heap" qui permet de détecter et d'investiguer certains problèmes d'allocation mémoire dans le noyau.

Traitement d'un cas d'erreur dans le cache de fichiers, si la taille d'un fichier est devenue plus petite que son cache entre le moment ou une application demande un accès et le moment où l'accès va effectivement être réalisé.

Protection de l'accès à certains "spinlock" par des mutex. L'accès aux spinlocks doit être rapide, puisque l'attente est faite de façon active et monopolise un coeur de CPU. Il faut donc s'assurer que le spinlock pourra être rapidement disponible. En particulier, l'affichage de logs à l'écran lors du démarrage pouvait considérablement ralentir les choses (l'affichage se fait page à page et le processus de démarrage est mis en pause en attendant que l'utilisateur appuie sur une touche).

Déplacement de la calibration du timer APIc x86 dans le noyau au lieu du bootloader. Amélioration de la précision de la mesure et utilisation de la calibration fournie via les registres CPUID si elle est disponible (c'est le cas pour certains hyperviseurs par exemple, sur lesquels le système virtualisé peut difficilement faire lui-même une mesure fiable).

Correction du traitement d'un cas particulier par mprotect, qui se manifestait par un kernel panic lors de l'utilisation du navigateur Iceweasel.

Ajout d'un timeout sur l'envoi d'infos sur le port série sur les machines x86. Par exemple sur le Steam Deck, le port série n'est pas du tout présent et cela empêchait le démarrage du système.

Réécriture de la fonction x86_{read|write}_msr pour les machines 32 bit en tant que fonction inline (c'était déjà le cas pour les machines 64 bits).

Correction de problèmes trouvés en essayant de démarrer Haiku sur un laptop très récent: ajout du support de X2APIC dans le bootloader EFI, allocation de la page "PML4" avec une adresse physique < 4Go pouvant être codée sur 32 bits, et à l'inverse traitement correct de la table GDT lorsqu'elle se trouve au-delà de cette limite de 4Go.

Déplacement de code de bfs vers le VMCache générique pour traiter le cas particulier du mmap sur un fichier dont la taille n'est pas un multiple de la taille de pages du système. La dernière page doit alors être remplie avec des 0. Cela avait été corrigé pour bfs, mais le problème était également présent pour d'autres systèmes de fichiers dont en particulier ramfs.

Réécriture des FIFOs noyaux (utilisés pour implémenter pipe(2)). Le benchmark stress-ng --pipe 1 passe de 230 Mo/s à 2.5Go/s (dans une machine virtuelle).

Ajout d'une option syslog_max_history pour pouvoir conserver plus que 2 fichiers de syslog (ce qui reste l'option par défaut).

Nettoyage et optimisation de la structure Thread utilisée dans le noyau pour représenter les threads: utilisation d'une liste doublement chaînée pour accélérer les manipulations de la liste, correction du décomptage du temps CPU utilisé par les processus, correction d'une fuite mémoire, et correction d'un problème dans la fonction get_next_thread_info si les identifiants de threads bouclent (c'est-à dire que plus de 4 milliards de threads ont été créés et que des identifiants de threads ont donc dû être recyclés).

Le kernel panic se produisant si un thread tente de libérer un mutex qui ne lui appartient pas affiche automatiquement la stacktrace du thread qui est propriétaire du mutex.

Ajout d'un appel à cpu_pause dans le code des conditions variables pour réduire la consommation électrique inutile lors d'une attente active.

Correction de plusieurs problèmes de sauvegarde du contexte de la FPU pour l'architecture x86_64:

  • Remise à 0 de l'état de la FPU lors des changements de threads,
  • Stockage de l'état de la FPU dans la structure d'info sur le thread au lieu de la stocker sur la pile,
  • Envoi des bons codes d'exception FPE_* lors des exceptions SIGFPE,
  • Gestion des "control words" lors des changements de contexte.

Cela corrige des crashs d'application et même des kernel panic dans certains cas.

Les drapeaux de protection des zones de mémoire du noyau ne sont plus visibles par les utilisateurs non privilégiés. L'utilisateur "user" principal peut toujours y accéder, cela est utilisé par exemple par ProcessController. Correction d'un flag mal positionné pour les zones mémoire de l'allocateur "slab", qui n'étaient pas indiquées comme accessibles en écriture.

Renommage des fonctions concernant la gestion des interruptions pour éviter l'abbréviation "int" qui pouvait prêter à confusion avec "integer" dans certains cas. Utilisation du mot complet "interrupt" lorsque c'est possible, ou à défaut de "intr".

Correction d'une fuite de mémoire dans la gestion de la mémoire physique avec du paging à 5 niveaux (LA57).

Correction d'un interblocage dans le cache du système de fichier identifié à l'aide des tests de gVisor.

Correction d'un bug dans la fonction vsnprintf du noyau qui n'affichait pas correctement les nombres inférieurs à 0.1 (les 0 après le point étaient perdus, et donc 0.01, 0.001. 0.0001, … étaient tous affichés comme 0.1).

L'appel système create_dir retourne EEXIST si un fichier ou un dossier existe déjà à l'endroit demandé, et ce, même si le système de fichier est en lecture seule. Auparavant, l'appel système retournait EROFS, ce qui perturbe certaines applications.

Amélioration du traitement des "doubles fautes" (lorsque le traitement d'une exception matérielle déclenche une autre exception matérielle) sur x86. Le registre GS était corrompu, ce qui empêchait l'utilisation du debugger dans ce cas, et plusieurs autres problèmes conduisaient vraissemblablement à une "triple faute" (une exception dans le traitement de l'exception dans le traitement de… bon vous voyez le principe), et à un redémarrage de la machine car à ce stade il est peu probable qu'aucune autre opération ne remette le système dans un état cohérent.

Bootloader

Amélioration du bootloader PXE pour afficher clairement "Network" dans la méthode de démarrage, ainsi que l'adresse IP du serveur de disque fournissant le rootfs.

Remise en route du développement sur la console graphique utilisée pour simuler un mode texte pour le menu de démarrage, lorsque la machine ne fournit pas un mode texte matériel ou au niveau de son BIOS (c'est le cas par exemple sur certains Chromebooks avec SeaBIOS). Pour l'instant, cela nécessite une version du bootloader compilée spécifiquement pour ce cas de figure, car on ne sait pas encore détecter de façon fiable si le mode texte du BIOS est disponible.

Par Anarchos, augiedoggie, korli, phcoder, waddleslplash

Scripts de compilation

Poursuite du travail pour corriger tous les warnings détectés par le compilateur, ainsi que quelques problèmes détectés par les sanitizers de gcc (libasan et libubsan) qui sont maintenant compatibles avec Haiku.

Correction de problèmes empêchant de cross-compiler Haiku depuis FreeBSD ou un système Linux utilisant la libc musl. Correction également de problèmes pour le build depuis macOS.

Suppression de fichiers inutiles dans la version de unzip intégrée dans le build de Haiku.

Généralisation des options permettant d'activer la "stack protection" à plus de parties du système.

Remplacement de la commande which par command -v. Cette dernière est un builtin de la plupart des shells, elle est donc plus rapide à exécuter et ne nécessite pas une dépendance supplémentaire.

Migration de Python 2 à Python 3 pour le script générant les fichiers "libroot stubs" (utilisé uniquement lors du bootstrapping de Haiku pour une nouvelle architecture).

Mise à jour de la version de m4 utilisée pour le bootstrap de Haiku (compilation de tous les paquets à partir des sources, utile en particulier pour le portage sur une nouvelle architecture).

Ajout des modules PCI manquants dans l'image de bootstrap.

Par korli, PulkoMandy, waddlesplash

Documentation

Ce trimestre, il y a principalement du travail sur la documentation interne. Il s'agit d'un document destiné aux développeurs de Haiku, par opposition aux développeurs d'applications pour Haiku, qui se tourneront plutôt vers le Haiku book pour les informations sur les interfaces publiques du système.

Mise à jour de la documentation sur la procédure à suivre pour synchroniser du code avec d'autres systèmes. Haiku réutilise du code de FreeBSD, NetBSD, OpenBSD, musl et quelques autres, et maintient également deux copies de gcc et des binutils. Il est important d'avoir une procédure bien définie pour tracer ce qui a été importé, depuis quelle version, et quels changements ont été effectués. Plusieurs documentations existaient avec différentes fçons de faire, dont certaines étaient obsolètes.

Dans la documentation du device manager, ajout d'une image montrant un exemple de device tree, pour mieux visualiser ce qui est expliqué dans la page.

Déplacement d'articles sur l'implémentation des appels systèmes du site web principal vers la documentation interne (dans le cadre d'un très long projet pour réorganiser la documentation et libérer le site principal de nombreux articles techniques pour en faire une vitrine plus orientée vers les utilisateurs).

Ajout dans la documentation interne d'un article sur le profilage et l'analyse de performance des applications.

Correction de liens internes morts dans la documentation interne sur la gestion des paquets, suite à des erreurs de formatage.

Mise à jour de la documentation interne sur le processus de bootstrap.

Par kuku929, oco, PulkoMandy, waddlesplash

Commentaires : voir le flux Atom ouvrir dans le navigateur

Actualité : Écran OLED et mat : Acer l'a fait sur ce PC portable de moins d'un kilogramme et on l'a pris en main

18 mai 2025 à 12:07
Acer pourrait avoir fabriqué le PC portable pour les utilisateurs nomades qui travaillent en extérieur ou simplement pour ceux qui veulent profiter d’une terrasse tout en réseautant.Une dalle OLED tactile et surtout mateLe Swift Edge 14 AI d’Acer embarque une dalle tactile OLED de 14 pouces affichant 2880x1800 pixels, des caractéristiques pour le moi...

Reçu avant avant-hier

LXQt 2.2.0

Le bureau LXQt est sorti le 17 avril 2025 en version 2.2.0. Comme prévu depuis la version 2.0, le développement est centré sur le confort : améliorations du support Wayland et ergonomie.
Pour mémoire, LXQt est un environnement de bureau fondé sur Qt, issu du rapprochement de deux projets, Razor-qt et LXDE, et publié sous licence GPL.

Le support de Wayland est encore meilleur, particulièrement en multi-écrans où on utilise des noms d’écrans plutôt que des nombres (appelez vos écrans mieux ça fera sourire Miou-Miou). En outre vous pourrez utiliser les dernières versions stables des compositeurs Wayland.

Niveau ergonomie, le gestionnaire de fichiers PCManFM-Qt accepte les terminaux personnalisés, le terminal QTerminal est encore plus lisible et tous les deux améliorent plein de petits trucs puisque c’est dans les détails que ça se cache. Dernier point notable, les utilisateurs de portables peuvent créer des profils d’énergie pour mieux gérer la batterie.

Pendant ce temps-là LXDE est abandonné.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Actualité : Fuites d'eau : le petit boîtier connecté Konyks Osafe veut vous éviter de gros dégâts

15 mai 2025 à 07:27
La marque Konyks, spécialisée dans la domotique et que l'on connaît déjà pour ses prises connectées ou ses détecteurs de fumée, vient de d'annoncer la mise en vente de son boîtier Osafe, un détecteur connecté de fuites d'eau et d'inondations. Le but est de proposer un appareil permettant de prévenir les dégâts domestiques liés à l'eau, qu'il s'agisse...

Test Lenovo IdeaPad Slim 5 : un PC portable abordable qui cache bien son jeu

14 mai 2025 à 10:00
L’IdeaPad Slim 5 de Lenovo est un PC portable à usage bureautique, qui embarque une puce Qualcomm Snapdragon X Plus dans un châssis de 14 pouces. Petit plus, il est équipé d’une dalle Oled pour profiter de vos contenus vidéo, le tout pour un prix inférieur à 1000 €. ## PrésentationEn provenance de Lenovo, nous avons l’habitude de tester les modèles Y...

AYANEO 3

5 mai 2025 à 12:03
Qu’il s’agisse de la SLIDE avec clavier intégré ou de la KUN avec son énorme écran 8,4 pouces, la start-up chinoise AYANEO cherche toujours à se distinguer de la concurrence. Aujourd’hui, elle est l’une des premières à emboîter le pas de Valve en distribuant une console-PC portable à base d’écran OLED, mais puisque AYANEO ne fait rien comme tout le monde, elle intègre aussi la plus récente puce d’AMD – le Ryzen AI 9 HX 370 – et des contrôles modulaires interchangeables.

Logiciels libres pour la comptabilité d'entreprise

Où l’on s’essaie à dresser un panorama des logiciels comptables libres. À l’origine de cette dépêche, une recherche d’un logiciel de paye libre où il a semblé que cela pouvait être utile.

Il s’agit bien de logiciels de comptabilité pour un usage professionnel ou associatif, pas de gestion de finances personnelles qui ont fait l’objet d’une autre dépêche il y a quelque temps. Évidemment, il n’y a aucune prétention à l’exhaustivité, mais plus à donner un panel de logiciels avec quelques idées pour choisir le vôtre, le cas échéant. N’hésitez pas à les essayer quand c’est possible et à croiser les informations pour vous faire votre opinion. Les fiches sont succinctes, mais c’est l’occasion pour vous d’écrire plein de nouvelles dépêches puisque la plupart de ces logiciels n’ont pas eu de présentations récentes sur LinuxFr.org.
Image d’illustration

    Sommaire

    Entrons tout de suite dans le vif du sujet. Voici des courtes présentations avec des points forts et des points faibles qui se dégagent des expériences des rédacteurs et rédactrices. Pour vous aider à faire un choix, cette liste est suivie d’explications plus générales.

    Compta.libremen.com

    logo compta libremen
    Compta libremen com est un logiciel de compta en partie double, simple et efficace. Il utilise une interface web sans fioritures. Le logiciel est écrit en Perl et s’appuie sur Postgresql et mod_Perl, avec un serveur Apache. Un fork amical fournit une image Docker et quelques améliorations. Libremen propose une offre en ligne.
    Commentaires de l’auteur recueillis par courriel : on a un peu d’aide à la saisie, il y a les raccourcis claviers (calcul du numéro de pièce, recopie de la ligne précédente) et aussi les fenêtres déroulantes pour les numéros de compte, plus le fait que le navigateur enregistre les dernières saisies ; je crois avoir documenté toutes les fonctions, la documentation est dite “minimum”, le logiciel est minimaliste par essence, donc la doc aussi :-)

    Interface web
    Aide à la saisie oui
    Saisie au km oui
    Intègre documents TVA, export FEC
    Comptabilité en partie double
    Comptabilité analytique oui, champ “Libre”
    Imports écritures en CSV
    Exports écritures en CSV
    Transmission automatisée non
    En réseau oui, et aussi sur Internet
    Documentation oui, minimum
    Forum non

    Diacamma

    logo Diacamma
    Le logiciel existe en deux versions, Diacamma Asso pour les associations et Diacamma Syndic pour les copropriétés. Diacamma utilise une interface web, avec un serveur intégré. Un installeur est fourni pour Windows, macOSX et Linux (Debian conseillée). Le CHATONS Sleto propose une offre en ligne.

    Interface web
    Aide à la saisie oui
    Saisie au km non
    Intègre achats, ventes, factures, adhérents, documents et +
    Comptabilité en partie double
    Comptabilité analytique oui, simplifiée
    Imports écritures comptables, articles, contacts
    Exports écritures en CSV
    Transmission automatisée non
    En réseau oui, et aussi sur Internet
    Documentation oui, complète
    Forum restreint aux connectés, gratuit
    • Points forts : le facturier qui permet aussi de faire des statistiques des ventes et d’éditer des factures et des reçus, le récapitulatif à gauche de l’écran, une vision comptable par « journaux auxiliaires ».
    • Points faibles : les fenêtres modales pour les écritures, la saisie par « journal auxiliaire » qui alourdit le processus, le vocabulaire pas très adapté au secteur.
    • Licence : GNU General Public License 3
    • Site : https://www.diacamma.org/

    Dolibarr

    logo Dolibarr
    Dolibarr est un puissant ERP pour tous types d’entreprises et d’associations. Il existe des pré-sélections des modules nécessaires à votre activité. Dolibarr utilise une interface web avec des serveurs web et SQL. Un installeur est fourni pour Windows et des paquets pour plusieurs distributions Linux. Beaucoup d’offres d’hébergement existent. Il réunit une forte communauté, surtout francophone. Le développement est très actif.
    Notez qu’on parle souvent de Dolibarr sur LinuxFr.org et qu’un journal sur une migration d’ERP a produit des interventions de haut niveau.

    Interface web
    Aide à la saisie oui
    Saisie au km
    Intègre achats, ventes, factures, adhérents, documents, stock, et plein d’autres
    Comptabilité simplifiée ou en partie double
    Comptabilité analytique oui
    Imports écritures comptables
    Exports des journaux, du Grand Livre, et des écritures sous différents formats
    Transmission automatisée
    En réseau oui, et aussi sur Internet
    Documentation oui, complète
    Forum oui
    • Points forts : il est possible d’ajouter des extensions avec le magasin d’application, le dolistore. Dolibarr est également disponible chez certains hébergeurs à travers Softaculous. Une gestion fine des droits par groupe d’utilisateurs et par utilisateurs. Avec certains droits réservés aux utilisateurs internes c’est-à-dire ceux qui ne sont ni client ni fournisseur.
    • Points faibles : l’aspect « usine à gaz » de Dolibarr et sa prise en main qui peut être ardue.
    • Licence : GNU GPL V3 et plus
    • Site : http://www.dolibarr.org
    • Dolibarr sur LinuxFr.org.

    Ekyagri

    logo Ekyagri
    Une solution en ligne de gestion d’exploitation agricole.

    Interface web
    Aide à la saisie oui
    Saisie au km
    Intègre achats, ventes, factures,
    Comptabilité en partie double
    Comptabilité analytique oui
    Imports écritures comptables
    Exports
    Transmission automatisée
    En réseau oui, et aussi sur Internet
    Documentation oui, complète
    Forum oui
    • Points forts : la facilité de la saisie des écritures, la gestion des immobilisations, sa conception bien pensée pour le secteur. L’aide est bien faite, elle indique notamment des niveaux de difficultés des tâches. On peut la télécharger au format PDF.
    • Points faibles : le site n’est pas très clair sur la récupération des données. On n’a pas de module de recherche sur l’aide en ligne et rien n’est indiqué sur les sauvegardes.
    • Licence : AGPL v3
    • Site : https://ekylibre.com/ekyagri/

    ENDI

    logo endi

    Interface web
    Aide à la saisie oui
    Saisie au km
    Intègre achats, ventes, factures,
    Comptabilité en partie double
    Comptabilité analytique oui
    Imports écritures comptables
    Exports
    Transmission automatisée
    En réseau oui, et aussi sur Internet
    Documentation oui, complète
    Forum oui

    ERPNext / Dokos

    Titre de l’image
    Un puissant ERP créé en Inde, le fork Dokos est la version française. Écrit en Python et JavaScript au-dessus d’une base Postgresql. Modulaire, il se positionne comme Odoo (voir ci-dessous). Comparons-les : l’interface est plus austère, la renommée moindre entraîne peu de contributeurs tiers à proposer des modules, l’équipe est plus petite, mais tout aussi dynamique, ERPNext évolue vite, il est basé sur le framework FRAPPÉ qui est stable et permet d’extraire les applications de l’ERP, l’ensemble est intégralement libre.

    Interface web
    Aide à la saisie oui
    Saisie au km
    Intègre achats, ventes, factures, documents, stock et plein d’autres modules
    Comptabilité en partie double
    Comptabilité analytique oui
    Imports écritures comptables
    Exports écritures en CSV
    Transmission automatisée
    En réseau oui, et aussi sur Internet
    Documentation oui, complète
    Forum oui

    Frappebook

    Logo FrappeBook
    Même équipe qu’ERPNext. C’est juste le morceau comptable d’ERPNext, refait en application de bureau et portable par dessus SQLite. Pour les petites entreprises.

    • Points forts : Application portable, on peut l’emmener sur sa clef USB. L’interface est sobre et bien finie.
    • Points faibles : au lancement on se retrouve dans une compta anglo-saxonne, il faut paramétrer pour avoir une compta “européenne”.
    • Licence : GNU General Public Licence version 3
    • Site : https://frappebooks.com/
    • Code source : https://github.com/frappe/books

    Galette

    Titre de l’image
    Sous le nom sympathique et tarabiscoté de Galette (Gestionnaire d’Adhérents en Ligne Extrêmement Tarabiscoté mais Tellement Efficace) se cache un logiciel à destination des associations.

    Interface web
    Aide à la saisie oui
    Saisie au km
    Intègre achats, ventes, factures, adhérents
    Comptabilité simplifiée ou en partie double
    Comptabilité analytique oui
    Imports écritures comptables
    Exports
    Transmission automatisée
    En réseau oui, et aussi sur Internet
    Documentation oui, complète
    Forum oui
    • Points forts : Il est très facile à prendre en main, en comptabilité simple ou double. Il y a une aide en ligne copieuse ainsi qu’une liste d’entraide. Le logiciel propose plusieurs plans comptables (Au moins deux pour les plans comptables français et d’autres pour la plupart des pays européens). On peut aussi ajouter son propre plan comptable. Il offre des fonctionnalités de comptabilité analytique. On peut utiliser sa propre instance, récupérer la base de données ou exporter la comptabilité sous divers formats (CSV, FEC, ODS et XLSX). Il est possible d’importer une comptabilité dans ces formats. Le logiciel est en constante évolution, avec un développeur très réactif. Des modules permettent de gérer aussi les paiements en ligne (puisque c’est aussi un logiciel de gestion de facturations et de clients). Il y a un module PdV (point de vente, caisse).
    • Points faibles :
    • Licence : GNU General Public Licence version 3
    • Site : https://galette.eu/site/fr/
    • Code source : https://github.com/galette/galette
    • Galette sur linuxFr.org.

    GnuCash

    logo GnuCash
    GnuCash figure dans la bibliothèque logicielle de la plupart des distributions Linux. C’est un logiciel qui fait aussi bien la comptabilité personnelle que la comptabilité professionnelle. Il propose des fonctionnalités de CRM de base : gestion des adresses des clients et des fournisseurs.

    Interface Bureau (Gtk)
    Aide à la saisie oui
    Saisie au km
    Intègre
    Comptabilité en partie double
    Comptabilité analytique oui
    Imports écritures comptables
    Exports
    Transmission automatisée
    En réseau
    Documentation oui, complète
    Forum oui
    • Points forts : on peut paramétrer des écritures répétitives (paiements mensuels par exemple) et le logiciel vous le rappelle dans des délais fixés par vous à l’ouverture. Sa bibliothèque de rapports (ou états) est riche : bilan, comptes de résultat, portefeuille d’action, facture, quittance, graphiques. Et c’est personnalisable souvent. Les rapprochements bancaires se font avec pré-affectation des comptes grâce à de l’inférence bayésienne.
    • Points faibles : Il n’y a pas de plan comptable intégré, il faut l’ajouter. Ni de fonctionnalité d’import d’un plan comptable (ou alors, je n’ai pas trouvé), pas de comptabilité analytique, non plus. Il n’est pas complètement traduit en français et la traduction est un peu étonnante parfois. La prise en main n’est pas évidente.
    • Systèmes d’exploitation : Windows, MacOS, GNU/Linux, Unixes
    • Interface : graphique
    • Licence : GNU General Public License Version 2 ou Version 3
    • Site : https://gnucash.org/
    • Code source : https://sourceforge.net/projects/gnucash/
    • GnuCash sur linuxFr.org (dépêches anciennes).

    Grisbi

    logo Grisbi
    Un logiciel qui fonctionne tout seul et qui est souvent fourni dans les distributions Linux. Il est surtout utilisable pour les finances personnelles, mais il propose un mode comptabilité libérale et peut être utilisé par des micro-entreprises.

    Interface Bureau (GTK-3)
    Aide à la saisie oui
    Saisie au km
    Intègre achats, ventes, factures,
    Comptabilité en partie double
    Comptabilité analytique oui
    Imports écritures comptables
    Exports
    Transmission automatisée
    En réseau oui, et aussi sur Internet
    Documentation oui, complète
    Forum oui
    • Points forts : il n’est pas compliqué à installer, on peut importer des fichiers au format CSV (évidemment) mais aussi aux formats QIF, OFX et Gnucash. Pour les rapprochements bancaires, soit dit en passant, choisir le format QIF c’est encore celui qui fait le mieux le travail. Et on peut l’exporter au format QIF ou CSV. Deux formats souvent utilisés par les logiciels de comptabilité. Il propose un pratique simulateur de crédit. Il est assez facile à prendre en main. Quand on fait un rapprochement bancaire, pour une comptabilité personnelle, en bout de course, on a une bonne partie des écritures comptables qui sont saisies.
    • Points faibles : pas de comptabilité analytique, pas de compte de résultat ni de bilan et, évidemment, il n’est pas possible d’éditer des factures. L’interface GTK avait quelques bugs sous Windows (il y a plusieurs années, peut-être corrigés depuis), comme des menus déroulants qui empêchent de valider un formulaire tant qu’on a pas cliqué à côté pour les fermer.
    • Logiciel inspiré de l’ex MsMoney (qui n’est plus vendu par Microsoft)
    • Licence : GNU General Public License Version 2
    • Site : https://fr.grisbi.org/
    • Code source : https://github.com/grisbi/grisbi
    • Grisbi sur LinuxFr.org.

    Laurux

    logo Laurux

    Laurux intègre les outils classiques de gestion d’entreprise : comptabilité, facturation, gestion de stock et tous les composants nécessaires aux prises de décisions cohérentes. Développé en Gambas avec Qt à destination des PME, son auteur a aussi voulu créer un logiciel simple d’installation et d’utilisation livré avec toute la documentation utile. L’auteur fournit une attestation individuelle de conformité, obligatoire dans la loi française. Son forum communautaire est accueillant.

    Interface Bureau (Qt)
    Aide à la saisie oui
    Saisie au km
    Intègre achats, ventes, factures, point de vente
    Comptabilité en partie double
    Comptabilité analytique oui
    Imports écritures comptables
    Exports plein de formats
    Transmission automatisée
    En réseau oui, et aussi sur Internet
    Documentation oui, complète
    Forum oui
    • Points forts : Logiciel multiposte performant et fiable. Gestion de la compta, des stocks et achats/devis/factures très simples. Se prend en mains sans trop de complication. Et des développeurs présents, c’est hyper important de souligner le travail de Patrick et Damscot. Pour être plus large, j’ai, par le passé, utilisé Adicom, EBP, l’AS400 (une usine à gaz de fou ce logiciel), et un autre système dans le négoce également. Avec Laurux, je retrouve les avantages de l’AS400 sans avoir les complications d’utilisation.
    • Points faibles :
    • Licence : GNU General Public Licence version 3
    • Site : https://www.laurux.fr/
    • Code source :
    • Laurux sur LinuxFr.org.

    Ledger

    Avatar de Ledger
    Ledger est un outil en ligne de commande, qu’on nourrit avec de simples fichiers textes. La puissance de la ligne de commande en fait tout l’intérêt. Développé en C++ il a été porté sur de nombreux autres langages. Ledger ne fait que la comptabilité en partie double. Plusieurs extensions facilitent son utilisation, sans entraver la rapidité de saisie.

    Interface Console (terminal)
    Aide à la saisie oui
    Saisie au km
    Intègre
    Comptabilité en partie double
    Comptabilité analytique oui
    Imports écritures comptables
    Exports
    Transmission automatisée
    En réseau oui, et aussi sur Internet
    Documentation oui, complète
    Forum oui
    • Points forts : Adapté pour les compte-rendus, donc en complément d’un autre logiciel. Il est super puissant car facilement scriptable.
    • Points faibles : Par contre, il a très peu de garde-fous. On peut mettre n’importe quelle transaction, il ne dira rien. J’avais dans l’idée de faire des scripts pour automatiser/sécuriser des transactions classiques (dépenses sur une clef, vente d’un lot, etc.) mais j’ai arrêté d’être syndic bénévole avant de le faire (marre de courir après les impayés d’un copropriétaire)
    • Licence : BSD
    • Site : https://www.ledger-cli.org/
    • Code source : https://github.com/ledger/ledger

    Noalyss (autrefois PHPCompta)

    logo Noalyss
    Au départ centré sur la compta, Noalyss est devenu un logiciel de gestion d’entreprise très complet. Noalyss utilise une interface web avec des serveurs web et Postgresql. Des paquets et une procédure d’installation existent pour Linux, Windows et MacOSX. Activement développé en Belgique, sa communauté importante est conviviale.

    Interface web
    Aide à la saisie oui
    Saisie au km ?
    Intègre achats, ventes, factures, stock, documents, etc.
    Comptabilité en partie double
    Comptabilité analytique oui
    Imports écritures comptables
    Exports
    Transmission automatisée ?
    En réseau oui, et aussi sur Internet
    Aide docu, wiki, tutos
    Communauté forum, liste

    Odoo

    logo Odoo

    Odoo est un puissant ERP, modulaire, utilisé par des micro-entreprises comme des multinationales. L’entreprise Odoo connaît une croissance rapide depuis vingt ans, et emploie plus de 2000 personnes dans le monde. Le fondateur d’Odoo poste régulièrement des dépêches annonçant les nouvelles versions d’Odoo sur LinuxFr.org, et un journal sur une migration d’ERP a produit des interventions de haut niveau. Odoo est écrit en Python et utilise Postgresql, son interface est écrite en XML et Javascript. Il est facile à installer.

    Interface web
    Aide à la saisie oui
    Saisie au km
    Intègre achats, ventes, factures, stocks, documents et plein d’autres modules
    Comptabilité en partie double
    Comptabilité analytique oui
    Imports écritures comptables
    Exports
    Transmission automatisée
    En réseau oui, et aussi sur Internet
    Documentation oui, complète
    Forum oui
    • Points forts : L’interface est uniformisée, ergonomique et soignée. Le développement est intense depuis plus de vingt ans, appuyé sur l’entreprise Odoo et une large communauté d’intervenants et d’utilisateurs. Des milliers de modules sont disponibles. Documentation facile à lire, complétée par un forum et un grand nombre de sites, vidéos et livres. Énormément d’intégrations à des services d’État ou privés. La communauté s’est regroupée dans l’OCA Odoo Community Association qui maintient les anciennes versions et développe des centaines de modules libres de haute qualité. L’OCA propose aussi un outil de montée de versions.
    • Points faibles : L’Apps Store Odoo est de qualité très diverse, certains modules ne sont pas libres, pour installer la comptabilité libre française, il faut s’y retrouver entre plusieurs modules. C’est plus simple pour les pays anglo-saxons.
    • Licence : GNU General Public Licence version 3 et propriétaire
    • Site : https://www.odoo.com
    • Code source : https://github.com/odoo/odoo
    • Odoo sur LinuxFr.org.

    OpenConcerto

    logo OpenConcerto
    OpenConcerto est un progiciel de gestion intégrée (PGI ou ERP). Sa cible : les entreprises, grandes ou petites. C’est une application java à installer sur chaque poste utilisateur. Guillaume Maillard, son auteur, est un vieil habitué de LinuxFr.org.

    Interface Bureau (version Web prévue en 2023)
    Aide à la saisie oui
    Saisie au km oui
    Intègre achats, ventes, factures, stock, paye, documents
    Comptabilité en partie double
    Comptabilité analytique oui
    Imports écritures comptables
    Exports FEC (DGFIP), EBP, Sage, Relation experts (Coala), Quadratus, Cegid CCMX
    Transmission automatisée SEPA
    En réseau oui, et aussi sur Internet
    Documentation oui, complète
    Forum oui
    • Points forts : la comptabilité est facile à prendre en main. Il y a une version pour macOS (ce qui est à relever compte tenu de la rareté des logiciels comptables pour ce système d’exploitation). S’agissant d’un progiciel de gestion intégrée : il y a aussi des fonctionnalités de gestion commerciale, de suivi des stocks et de préparation des commandes. Plusieurs modules complémentaires existent comme un module d’OCR qui permet, à partir d’une facture numérisée, de la saisir automatiquement dans le logiciel, ou bien un module de paye (seul module payant) : fiches de paye, journaux de paye et déclarations.
    • Points faibles : c’est très complet et donc un peu complexe pour une micro-entreprise. Certaines fonctionnalités manquent de clarté et d’exemples d’utilisation. La lecture du guide de démarrage ou du manuel (79€) est conseillée. L’équipe de développement manque de temps pour discuter sur les évolutions mais répond généralement aux questions qu’on lui pose sur le forum. Les données ne sont pas stockées de la même manière entre la version monoposte (un fichier H2) et multiposte (Postgresql). Bien choisir au début, sinon il sera difficile de changer.
    • Licence : GNU General Public Licence version 3
    • Site : https://www.openconcerto.org
    • Code source : https://code.openconcerto.org/listing.php?repname=OpenConcerto
    • OpenConcerto sur LinuxFr.org.

    Paheko (ex Garradin)

    Logo de Paheko

    Un logiciel principalement destiné aux associations, qui peut aussi être utilisé par des micro-entreprises. On l’utilise via un navigateur, il y a même une application pour mobile. C’est un logiciel complet de gestion d’association : membres, cotisation, comptabilité, communication.

    Interface web
    Aide à la saisie oui
    Saisie au km
    Intègre achats, ventes, factures,
    Comptabilité en partie double
    Comptabilité analytique oui
    Imports écritures comptables
    Exports
    Transmission automatisée
    En réseau oui, et aussi sur Internet
    Documentation oui, complète
    Forum oui
    • Points forts : il est très facile à prendre en main, il y a une aide en ligne copieuse ainsi qu’une liste d’entraide. Le logiciel propose cinq plans comptables (associatif 1999 et 2018, Plan Comptable Général (PCG), Comités Sociaux et Économiques, copropriétés et plan comptable belge). On peut aussi ajouter son propre plan comptable. Il offre des fonctionnalités de comptabilité analytique. On peut utiliser sa propre instance, récupérer la base de données ou exporter la comptabilité sous divers formats (CSV, FEC, ODS et XLSX). Il est possible d’importer une comptabilité dans ces formats. Et, il est en constante évolution avec un développeur très réactif.
    • Points faibles : pas de lettrage, pas de gestion directe des écritures périodiques.
    • Licence : GNU Alfredo General Public Licence version 3
    • Site : https://paheko.cloud
    • Code source : https://fossil.kd2.org/paheko/doc/trunk/doc/index.md
    • Paheko sur LinuxFr.org, cherchez aussi à Garradin.

    Tryton

    logo Tryton
    Tryton est un puissant ERP pour entreprises de toutes tailles. Il est accessible via un client Web, une application native ou bien une ligne de commande en Python. L’application cliente est dispo pour Windows, Mac et Linux, le serveur est empaqueté pour plusieurs distributions Linux. Comme Odoo dont il est un fork, Tryton est basé sur une architecture trois tiers écrite en Python (et un peu de ECMAScript version 6) avec PostgreSQL comme base de données. Les auteurs nous parlent régulièrement de Tryton sur LinuxFr.org.

    Interface Bureau, Web, Console
    Aide à la saisie oui
    Saisie au km oui
    Intègre achats, ventes, factures, stock, projet, etc.
    Comptabilité en partie double
    Comptabilité analytique oui
    Imports CSV, AEB43, CODA, OFX ou CAMT.053
    Exports FEC ou CSV
    Transmission automatisée Chorus, SEPA
    En réseau oui, et aussi sur Internet
    Documentation oui
    Forum oui
    • Points forts : L’interface est uniformisée, une fois comprise on s’y retrouve quel que soit le module. Un grand choix de modules permet de couvrir tout type d’activité. On peut tout paramétrer, ajouter des champs, en masquer, adapter des modules… Le développement est très actif, la fondation Tryton rassemble beaucoup d’entreprises et de projets, dont GNU Health. Les montées de version sont prises en charge automatiquement.
    • Points faibles : L’interface est austère, il y a un très grand nombre d’options. C’est difficile à prendre en main sans être accompagné (mais c’est normal).
    • Licence : GNU General Public Licence version 3
    • Site : https://www.tryton.org/
    • Code source : https://www.tryton.org/download#source
    • Tryton sur LinuxFr.org.

    D’autres listes, d’autres articles

    Bien entendu, il manque plein de logiciels. On s’est limité à ceux qu’on a pu tester. Si ce petit résumé ne vous suffit pas ou n’est plus à jour, voici des sites avec des listes complémentaires (merci d’indiquer en commentaire si vous en connaissez d’autres).

    Alors, un logiciel de comptabilité pour quoi faire ?

    Avant tout pour faciliter la saisie comptable, fastidieuse quand elle est faite sur du papier (ou des tablettes de cire à l’origine !). Toutes les formes de comptabilité demandent une rigueur, des connaissances, du calcul et du temps — c’est un métier. Le logiciel comptable facilite tout ça.
    Mais aussi pour l’automatisation du suivi comptable, c’est-à-dire la production automatique de synthèses lisibles et compréhensibles. Vous pensez peut-être au bilan, mais on a couramment besoin de consulter toutes les dépenses électriques ou toutes les recettes de pub sur LinuxFr.org. On a aussi besoin d’envoyer périodiquement ces synthèses à l’administration, comme la transmission des recettes de TVA.
    Enfin, la comptabilité enregistre toutes sortes d’opérations, produites par d’autres logiciels spécialisés (salaires, fabrication, factures, etc.). Intégrer tout cela dans un même outil permet de gagner du temps et d’éviter les fautes de frappe (une facture génère automatiquement les écritures comptables correspondantes). Ça donne des logiciels plus ou moins touffus, certains intégrant toute la gestion d’entreprise, voire tous les outils de travail de l’entreprise — on les nomme ERP (ou PGI en français).

    Note sur les ERP ou PGI

    Quand SAP et les AS400 régnaient en maître sur ce domaine, les ERP étaient exclusivement de très gros logiciels intégrant non seulement la gestion et la comptabilité, mais aussi la production, la vente, le décisionnel, etc. La forte adaptation aux processus de l’entreprise via un paramétrage puissant, était leur gros atout et justifiait un coût d’installation très élevé. On en est même venu à appeler «SAP» ce type de logiciels.
    La langue évoluant sans cesse, de nos jours on appelle ERP tout logiciel intégrant la gestion, le point de vente, la compta et deux trois outils de moindre importance, tandis qu’on les nommait autrefois «logiciels de gestion». Mais la puissance n’est pas la même (le besoin de formation non plus !). On a donc essayé de distinguer dans la liste un puissant ERP paramétrable et adaptable aux processus de l’entreprise, d’un logiciel intégrant les outils de gestion.

    Quel logiciel de comptabilité adopter ?

    Comme on va le voir, il y a beaucoup de critères, des vérifications, des questions à se poser. Les articles déjà mentionnés de LWN.net montrent assez bien les implications de vos choix. Si vous avez de quoi faire adapter l’outil à vos besoins, choisissez un ERP, puissant ou non.

    Quel logiciel sélectionner pour sa comptabilité ? Ça dépend.

    Ça dépend de votre statut fiscal, lequel est déterminé par votre chiffre d’affaires sauf dans certains cas précisés par la loi, et ça dépend si vous voyez la comptabilité comme un outil de gestion ou une obligation fiscale. Vous pouvez donc tenir une comptabilité pour des raisons fiscales, pour des raisons légales ou pour des raisons pratiques (ou les trois). Mais pour les mêmes raisons, vous pouvez tenir différentes formes de comptabilité :

    1. une comptabilité dite recettes-dépenses, semblable à votre budget familial, très courante dans les associations regroupant des bénévoles et ne vendant rien (un cahier suffit) ;
    2. une comptabilité simplifiée, dite de trésorerie, à peu près semblable à la première : vous classez les opérations bancaires, et vous rentrez les factures de vos fournisseurs, elle est classiquement permise par l’administration pour de faibles chiffres d’affaires ;
    3. une comptabilité en partie double, fiable et difficile, inventée par les marchands il y a quelques millénaires pour mieux gérer leurs entreprises ;
    4. une comptabilité analytique, qui complique les deux précédentes, mais permet de suivre très précisément les dépenses et recettes affectées à une opération, et perfectionne donc la gestion.

    Sauf la première, ces comptabilités s’appuient sur une classification conventionnelle des opérations qu’on appelle le [plan comptable]]. Celui-ci varie selon les pays et votre statut juridique. L’utilisation du Plan comptable permet de produire les synthèses mentionnées plus haut — du calcul de la TVA au Bilan d’exercice.
    Il y a des plans comptables tout prêts, adaptés à des activités particulières (comme les associations), mais tous dérivent d’un Plan comptable plus général. Votre logiciel doit permettre d’importer ou de créer le Plan comptable souhaité.

    En passant, sachez qu’il y a des types de comptabilité, et que leur choix ne permet pas de suivre les mêmes choses. Par exemple, le monde anglo-saxon suit plutôt les finances tandis que le Vieux Continent suit plutôt les biens. Mais là, on rentre dans des débats de professionnels qu’il n’est pas nécessaire d’aborder, d’autant que les frontières (comptables) bougent en ce moment. Vérifiez ce qui est permis auprès de l’administration. Reposons notre question préalable en y répondant du point de vue pratique :

    Quel logiciel sélectionner pour sa comptabilité ? Ça dépend. Bis.

    Rappelons que beaucoup de logiciels ne se limitent pas à la comptabilité pure, mais intègrent d’autres outils utiles à la gestion (graphiques des recettes, gestion de cotisations, édition de factures, transmission automatisée aux administrations, etc.). Et attention, les écrans de saisie proposés dans les logiciels sont des aides dont un utilisateur expérimenté se passe très bien.

    La comptabilité est une obligation, c’est peut-être obscur, fastidieux, vous la faites à reculons, mais la vie est ce qu’elle est, nous sommes dans le système, il faut donc y passer, chaque jour, semaine, année… Alors le meilleur choix, passe aussi par la facilité d’installation, les couleurs, la facilité de prise en main, etc.

    Tout dépend donc surtout de vous :

    • si vous avez besoin d’aides à la saisie ou non,
    • si vous préférez des outils intégrés,
    • si un outil intégré dédié à votre activité est un plus pour vous,
    • si votre statut fiscal impose une compta en partie double,
    • si vous la faites régulièrement pour la gestion de votre structure,
    • si vous avez besoin d’exporter les données pour votre expert-comptable (vérifiez les formats possibles avec lui),
    • si vous voulez un outil en réseau, voire en ligne sur internet,
    • si vous avez déjà utilisé un logiciel et que vous vous y retrouvez.

    NB Si qui peut le plus, peut le moins, sachez toutefois rester modestes si vous manquez de temps et de compétences, parce que les outils intégrés demandent une certaine maîtrise. Eh oui ! plus vous intégrez de trucs, plus il faut remplir et paramétrer les trucs avant d’utiliser la partie comptable. Par exemple, sur le cas simple d’une vente, avec un outil intégré il faudra avoir créé les produits, leurs taxes, le client, son bon de commande et les moyens de paiements avant d’attaquer la partie comptable.

    Attention aux obligations fiscales françaises (utilisées lors d’un contrôle fiscal)

    En application du 3° bis du I de l'article 286 du Code général des impôts (CGI), toute personne assujettie à la taxe sur la valeur ajoutée (TVA) qui effectue des livraisons de biens et des prestations de services à destination de clients particuliers et qui enregistre les règlements reçus en contrepartie au moyen d’un logiciel ou d’un système de caisse, est tenue d’utiliser un logiciel ou un système qui satisfasse aux conditions d’inaltérabilité, de sécurisation, de conservation et d’archivage des données en vue du contrôle de l’administration fiscale.

    Tous les détails dans l’article du Bulletin Officiel des Finances Publiques - Impôts (BOFIP) TVA - Régimes d’imposition et obligations déclaratives et comptables - Obligations d’ordre comptable - Obligation d’utilisation de logiciels ou systèmes de caisse sécurisés

    Format Fichier des Écritures Comptables (FEC)

    Fichier texte tabulaire de 18 champs délimités par barres verticales ou par tabulations, ayant un nommage et un encodage précis ou éventuellement au format XML. Ce format est utilisé par la DGFiP pour pouvoir faire un contrôle automatisable de la comptabilité. Elle fournit un utilitaire de validation de format pour Windows.

    Les points de vente

    En France, la loi « anti-fraude » de 2016 et l’article 286 du Code des impôts imposent une certification des logiciels de caisse (c’est-à-dire des points de vente qui collectent des espèces) pour éviter les trucages de la comptabilité via modifications du code-source. Ah ben alors fini le libre ? Mais non mon bon, les logiciels libres sont autorisés, on en a beaucoup parlé sur LinuxFr.org. Toutes les structures n’y sont pas tenues, typiquement il faut être assujetti à la TVA.
    NB Depuis la loi de finance 2018, article 105, les logiciels de comptabilité n’ont pas à être certifiés.

    Si vous avez encore des doutes, consultez la FAQ en français facile écrite par l’équipe de Dolibarr.

    La gestion de la paie

    On n’en a pas beaucoup parlé alors que cette dépêche a commencé avec la recherche d’un logiciel de paie libre. Disons tout de suite qu’il est préférable de s’appuyer sur des professionnels, en effet la gestion de la paye repose sur trois piliers :

    1. la fiche de paie et les déclarations afférentes
    2. l’émission et la conservation sécurisée de la fiche de paie
    3. la saisie comptable

    Certains logiciels ont des modules de gestion des payes (OpenConcerto pour la paie française, Odoo pour plusieurs pays…). L’avantage est de faciliter les écritures comptables. Mais attention, la gestion de la paye impose un suivi juridique et un suivi des taux des cotisations, car le cadre légal varie selon les professions, les salaires et varie aussi dans le temps. Cette actualisation permanente est faite par les professionnels (comptables et experts comptables). Sauf à bien connaître votre profession ou à être dans un cadre relativement simple (par exemple celui des intermittents du spectacle en France), vous gagnerez du temps, de l’argent et de la « légalité » en passant par des professionnels. Les options les plus courantes sont de choisir un cabinet d’expertise comptable ou un service en ligne (nettement moins cher). Lisez ou relisez les commentaires du forum.

    S’agissant de la saisie et du traitement comptable de la paie, n’importe quel logiciel de comptabilité peut le faire, les logiciels de paye étant souvent susceptibles de mâcher le travail à ce niveau-là.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Raspberry Pi 5, évolution ou révolution ?

    Les méandres de l'espace de rédaction sont parfois mystérieux. La rédaction de certaines dépêches s'étalent parfois sur de long mois, parfois sans même comprendre pourquoi la dépêche ne part pas vers le stade de la publication. C'est ce qui est arrivé à cette dépêche qui ne suit donc pas autant qu'elle aurait pu l'actualité de la sortie de la nouvelle mouture de la microcarte de la Fondation Raspberry Pi, qui porte le nom très original de Raspberry Pi 5. Cette dépêche - qui nous offre une comparaison de cette nouvelle édition avec son illustre ancêtre ainsi qu'une investigation de ses nouveautés - reste substantielle et il nous a semblé qu'il valait mieux la publier même tardivement plutôt que de la plonger dans l'oubli éternel.

      Sommaire

      Cette dépêche ne traitera pas de l’ensemble de ce que l’on peut faire, la précédente dépêche sur les SoC faite pour la sortie de la Raspberry Pi 4 est toujours d’actualité en ce qui concerne ces sujets.

      Comparaison entre Raspberry Pi 4 et Raspberry Pi 5

      Sorti en 2019, le RPi4 avait fait forte impression—mais quasiment en constante pénurie entre 2020 et 2023, il commençait par accuser le coup par rapport à la concurrence du Rockchip RK3588 (Quad-core Cortex-A76 + Quad-core Cortex-A55).

      Aussi, la Raspberry Pi 5 introduit des avancées significatives par rapport à la Raspberry Pi 4, dont le Tableau 1 présente une synthèse des différences.

      Composants Raspberry Pi 4 Raspberry Pi 5
      SoC Broadcom BCM2711 Broadcom BCM2712
      CPU Quad-core Cortex-A72 (1.8 GHz) Quad-core Cortex-A76 (2.4 GHz)
      GPU VideoCore VI (500 MHz) VideoCore VII (800 MHz)
      Mémoire 1, 2, 4, 8 GB LPDDR4-3200 SDRAM 4, 8 GB LPDDR4X-4267 SDRAM
      Wi-Fi Dual-band 802.11ac Dual-band 802.11ac
      Bluetooth 5.0, BLE 5.0, BLE
      USB 2 USB 3.0, 2 USB 2.0, 1 Type-C port 2 USB 3.0, 2 USB 2.0, 1 Type-C port
      Stockage MicroSD MicroSD (SDR104⟹R/W↗ˣ²) + ligne PCIe pour NVME M.2 SSD
      Ethernet Gigabit Ethernet Gigabit Ethernet
      Puissance Jusqu’à 7.5 W 2 modes : jusqu’à 15 W et jusqu’à 25 W
      Gestion HDMI 2 HDMI 2.0 (1 gérant 4k@60 Hz) 2 HDMI 2.0 (tous les deux gérant 4k@60 Hz)
      Format vidéo H.264 (AVC) H.265 (HEVC)
      PCIe Non 1 lane PCIe pour périphériques haute performance
      Bouton d’alimentation Non Oui

      Tableau 1 : comparatif des Raspberry Pi 4 et 5

      Détail des améliorations de la Raspberry Pi 5

      La Raspberry Pi 5 introduit des avancées significatives par rapport à la Raspberry Pi 4, en particulier avec l’introduction du southbridge RP1. Voici une comparaison détaillée mettant en évidence les principales différences et l’impact du RP1 :

      • Processeur : La Raspberry Pi 5 est équipée d’un CPU ARM Cortex-A76, une amélioration substantielle par rapport au Cortex-A72 trouvé dans la Raspberry Pi 4. Cette mise à niveau fait que la Pi 5 est deux à trois fois plus rapide que son prédécesseur.
      • RAM : La Raspberry Pi 5 utilise de la LPDDR4X-4267 SDRAM, nettement plus rapide que la LPDDR4-3200 SDRAM utilisée dans la Pi 4. Cette amélioration offre plus de bande passante, contribuant à des performances globalement plus rapides.
      • Puissance graphique : La Raspberry Pi 5 dispose d’un GPU VideoCore VII plus puissant, cadencé à 800 MHz et prenant en charge OpenGL ES 3.1 et Vulkan 1.2. C’est une avancée par rapport au GPU VideoCore VI de la Raspberry Pi 4, qui prend en charge OpenGL ES 3.1 et Vulkan 1.0. Le GPU de la Pi 5 comprend également un nouveau processeur de signal d’image pour la gestion des données des caméras.
      • Chip RP1 Southbridge : La puce RP1 est une innovation majeure dans la Raspberry Pi 5. Elle agit comme un southbridge, gérant la plupart des fonctions I/O (entrée/sortie), réduisant ainsi la charge sur le CPU. Cela permet une augmentation de la bande passante I/O, bénéficiant aux dispositifs de stockage, USB et autres périphériques.
      • Vitesse des cartes MicroSD : Le port microSD de la Pi 5 prend en charge le mode haute vitesse HDR 104 avec les cartes microSD UHS-1, offrant des vitesses de lecture de 80-90 Mbps, soit le double de la vitesse de 40-50 Mbps de la Pi 4.
      • Ports USB : Dans la Raspberry Pi 5, chacun des deux ports USB 3.0 dispose d’une bande passante dédiée de 5 Gbps, grâce à la puce RP1. C’est une amélioration par rapport à la Pi 4, où les deux ports USB 3.0 partageaient la bande passante de 5 Gbps.
      • Connecteur PCIe : La Pi 5 inclut un connecteur PCIe (PCI Express), une nouvelle addition répondant à la demande pour des interfaces plus rapides. Cependant, l’interface PCIe de la Pi 5 n’est pas un connecteur M.2 standard ; elle nécessite un câble ruban pour se connecter à un HAT, et le dispositif M.2 se connectera au HAT. Caractéristiques
      • Un bouton marche/arrêt : Eh oui, on est quand même dans le 3ᵉ millénaire ;-)
      • Alimentation : Tout comme la Raspberry Pi 4, la Raspberry Pi 5 utilise un connecteur d’alimentation au format USB Type-C. En revanche, doublement de la puissance oblige, la puissance nécessaire à son fonctionnement passe de 7.5 W à 15 W, il faudra donc une alimentation en 3A minimum pour être tranquille. À noter que si vous souhaitez utiliser des périphériques externes qui consomment beaucoup comme des disques durs ou SSD, il est conseillé d’avoir une alimentation de 25 W (5A). La Raspberry Pi détecte si l’alimentation fournit plus de puissance et passe la limite de consommation USB à 1,6A au lieu de 1,2A.

      Raspberry Pi 5 : Nouveau South Bridge RP1 vs Raspberry Pi 4

      Le RP1 est un contrôleur d’entrée/sortie (I/O) conçu pour le Raspberry Pi 5, représentant le programme d’ingénierie le plus complexe et coûteux entrepris par Raspberry Pi, avec un développement s’étendant sur plus de sept ans et ayant coûté environ 25 millions de dollars. Ce contrôleur est le premier produit phare de Raspberry Pi à utiliser une puce conçue en interne​.

      Architecture du South Bridge RP1

      — Description : Le RP1 est un southbridge de 12×12 mm avec un pas de 0.65 mm en BGA (Ball Grid Array), fournissant la majorité des capacités d’E/S pour la Raspberry Pi 5.
      — Caractéristiques : Il comprend un point de terminaison PCIe 2.0 à 4 voies, un contrôleur Ethernet MAC Gigabit et deux contrôleurs hôtes USB 3.
      — Améliorations : Plus du double de la bande passante USB utilisable par rapport à la Raspberry Pi 4.
      — Documentation RP1 : RP1 Datasheet

      Sources des informations sur le RP1

      — L’article d’Eben Upton pour annoncer le RP1 : RP1 : the silicon controlling Raspberry Pi 5 (ce court article est accompagné d’une vidéo YT de 35 minutes à ce sujet, mais dont le contenu est reproduit textuellement en suivant un lien)
      — Lien direct vers la vidéo YT : RP1 : the silicon controlling Raspberry Pi 5

      Impacts du RP1

      Le RP1 constitue une avancée importante, puisque les GPIOs “physiques” de la carte ne sont plus directement reliées aux GPIOs du microprocesseur et de leurs fonctions possibles (SPI/I2C/UART/I2S) attribuées par le fondeur dans le silicium.

      1. Connectivité principale : Le RP1 se connecte à un processeur d’application (AP) via un bus PCIe 2.0 x4, consolidant de nombreux contrôleurs numériques et PHYs analogiques pour les interfaces externes du Raspberry Pi 5​​.
      2. Contrôle du trafic : Le tissu interne du RP1 permet de prioriser le trafic en temps réel de la caméra et de l’affichage sur le trafic non en temps réel de l’USB et de l’Ethernet. Des signaux de qualité de service (QoS) sur le lien PCI Express soutiennent la priorisation dynamique entre le trafic provenant du RP1 et le trafic des maîtres de bus en temps réel et non en temps réel au sein de l’AP​​.
      3. Fonctionnalités supplémentaires : Pour une flexibilité maximale des cas d’utilisation, le RP1 dispose de plusieurs fonctionnalités telles qu’un contrôleur DMA à huit canaux pour les périphériques à basse vitesse, trois PLL intégrées pour la génération d’horloges vidéo et audio indépendantes, un convertisseur analogique-numérique à cinq entrées, 64kB de SRAM partagée, et des générateurs de base temporelle pour le rythme de la DMA ou pour le debouncing des événements GPIO​​​​.
      4. Gestion des contrôleurs de bus : Les modules de régulation intégrés à chaque port de contrôleur de bus permettent de surveiller ou de limiter leur comportement. Ces modules régulent le flux de données selon le nombre de transactions en attente, assurent le respect des limites d’adresses AXI et PCIe, et disposent de compteurs statistiques pour évaluer la qualité de service ou les performances.
      5. Interfaces clés externes : Le RP1 fournit des interfaces externes clés telles que deux contrôleurs XHCI indépendants connectés à un seul PHY USB 3.0 et un seul PHY USB 2.0, deux contrôleurs de caméra MIPI CSI-2 et deux contrôleurs d’affichage MIPI DSI connectés à deux PHY transceivers MIPI DPHY à 4 voies partagées, et un contrôleur d’accès média (MAC) intégré pour l’Ethernet Gigabit​​​​.
      6. Compatibilité et évolution : Le RP1 maintient la compatibilité avec la gamme de fonctions offerte sur le Raspberry Pi 4 Model B, tout en permettant une évolution vers des processus de géométrie réduite, sans avoir à reproduire tous les éléments analogiques du système. Cela pourrait permettre à changer plus facilement de fournisseur de SoC.

      Évolution des performances

      Afin de permettre de mieux visualiser les évolutions des performances Alasdair Allan a fait un benchmark complet dont certains éléments sont repris ici.

      Tout d’abord une analyse des performances du CPU avec geekbench. Les Figures 1 et 2 montrent une augmentation des performances en single core d’approximativement 2.2x,
      performances single core

      Figure 1. : Comparaison des performances single core entre RPi4 et 5
      performances multi core

      Figure 2. : Comparaison des performances multi core entre RPi4 et 5

      Compilation de différents benchmarks entre RPi 4 et 5

      Benchmark Unités Raspberry Pi 4 Raspberry Pi 5 Augmentation de Performance
      Sysbench Mono-Thread MBps 699 1041 x1,49
      Sysbench Multi-Thread MBps 2794 4165 x1,49
      Stress-ng Mono-Thread op/s 104,78 182,68 x1,74
      Stress-ng Multi-Thread op/s 413,12 737,21 x1,78
      Bzip Mono-Thread secondes 44,98 20,53 x2,19
      Bzip Multi-Thread secondes 28,59 14,36 x1,99
      Gimp Redimensionner secondes 67,01 29,95 x2,24
      Gimp Rotation secondes 77,24 32,77 x2,36
      Gimp Niveaux Auto secondes 80,52 34,64 x2,32
      Gimp Masque Flou secondes 115,16 49,71 x2,32
      Speedometer 2.1 score 20,5 62,5 x3,05
      Glmark2 score 97 202 x2,08
      Openarena Timedemo FPS 8,77 27,05 x3,08
      RAMspeed Écriture MBps 4391 29355 x6,69
      RAMspeed Lecture MBps 5902 27931 x4,73
      HDparm Lecture MBps 43,81 90,05 x2,06
      dd Écriture MBps 34,49 61,23 x1,78
      Iozone 4 K Écriture RAND MBps 9,38 15,22 x1,62
      Iozone 4 K Lecture RAND MBps 4,71 4,6 x0,98
      Temps de démarrage secondes 33,4 19,1 x1,74

      performances des I/O

      La Figure 3. issue du travail d’Adafruit permet de mettre à jour le graphique sur la vitesse performance de la commutation des I/O proposé dans la dépêche sur la RPi4. La Figure 4. quant à elle montre une légère amélioration de la performance par Watt sur le nouveau modèle.

      Titre de l’image
      Figure 3. Évolution de la vitesse de commutation d’une sortie numérique

      Titre de l’image
      Figure 4. Évolution de la performance en fonction de la puissance électrique

      Interfaces USB et Ethernet

      — Interfaces: Le RP1 fournit deux interfaces USB 3.0 et deux interfaces USB 2.0, ainsi qu’un contrôleur Ethernet Gigabit.
      — Source: Circuit Digest – The New Raspberry Pi 5 is here

      Le Gigabit Ethernet fourni par le RP1 est en tout point semblable à celui du RBPi4 (voir : RP1 : the silicon controlling Raspberry Pi 5:

      Liam 13:21: So we’ve got the Ethernet MAC but not the PHY. So the Ethernet’s brought out to an RGMII interface, which then connects to an on-board Ethernet PHY.

      Eben 13:35: And this is a fairly similar architecture to Raspberry Pi 4, except that in that case, the MAC was in the Broadcom device, but there was still an external – in fact exactly the same external – PHY, [BCM]54213. Cool. So that’s the overall structure of the design.

      Interfaces MIPI CSI/DSI

      Ces interfaces d’entrée/sortie vidéo peuvent être qualifiées d’historiques dans l’écosystème RaspberryPi puisqu’elles sont présentes depuis la version 1. Le RBPi5 apporte toutefois une nouveauté assez remarquable par rapport à ses prédécesseurs : au lieu d’avoir un port CSI (pour une caméra) et un port DSI (pour un écran), les ports du RBPi5 peuvent être configurés pour l’une ou l’autre fonction. Malheureusement, cela s’est traduit par des changements notables au niveau de la disposition des composants sur la carte, qui ne sont pas sans susciter quelques grincements de dents parmi les utilisateurs.

      Les points discutables/discutés

      Le réarrangement de la carte

      — Le port audio a disparu, pour laisser sa place au port MIPI DSI (qui peut faire CSI à présent), lui-même remplacé, au-dessus du lecteur de carte microSD, par un connecteur FPC exposant les lignes PCIe.
      — le port DSI est passé de 15 pins à 22 pins (comme sur la carte CMIo4)
      — Et, encore une fois, les ports Ethernet et USB ont été inversés.

      Si cela ne pose pas de problèmes particuliers pour un utilisateur lambda, de nombreux projets basés sur les cartes RasperryPi à la recherche de performance de calcul (et donc potentiellement intéressés par ce nouveau RBPi5) doivent entièrement revoir la conception de leur matériel.

      Le non réarrangement de la carte

      C’est un reproche que l’on peut trouver dans de nombreux témoignages : mettre un HAT (carte d’extension) sur un RBPi, juste au dessus du CPU, c’est un non-sens en termes de refroidissement (et ce, quelle que soit la version du RBPi).
      Mais, pour relativiser, on peut dire la même chose de quasiment toutes les autres solutions alternatives au RBPi.

      Les limites du format carte de crédit

      Ce format (86x56 mm) est devenu une référence pour presque tous les acteurs du monde des SBC. Et donc, il s’agit là aussi d’un constat plus général, non spécifiquement adressé à RaspberryPi. Mais sachant que ce sont les locomotives du marché, peut être pourraient-ils initier une nouvelle approche…
      Certes, ce format permet d’élaborer des solutions compactes, mais l’on peut constater :

      — qu’augmenter la puissance et les fonctionnalités des puces embarquées tout en restant sur ce format conduit à un gaspillage inutile de ressources : il est en effet impossible d’implémenter toutes les fonctionnalités matérielles proposées par les puces sur une si petite surface, et par ailleurs il devient difficile de refroidir efficacement le système.
      — pour exposer le port PCIe, RaspberryPi a supprimé le port audio, déplacé le port DSI ; mais pour alimenter le bouzin, il vous faut du 5V 4A. Ensuite un peu tout le monde se trouve planté là : débrouillez-vous.

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      Information couleur du jour pour contrats électricité Tempo

      9 avril 2025 à 17:44

      Suite à une question posée en 2023, cette dépêche propose un état des lieux des sources librement accessibles (sans imposer un jeton pour accéder aux API pour obtenir de manière structurée l’information) permettant de suivre les jours en tensions pris en compte dans l’option tarifaire TEMPO chez EDF. Cette option tarifaire consiste à payer moins cher l’électricité à condition de la payer 3 fois plus cher 22 jours dans l’année : les jours en tensions, généralement durant l’hiver.

      Cette option permet de lisser la charge sur le réseau de transport de l’électricité. Pour faire bon usage de cette option, il faut surveiller la couleur du jour pour déterminer s’il vaut mieux réduire le chauffage électrique et les autres sources de consommations électriques. L’information est affichée le jour même sur le compteur électrique, mais il peut être utile d’être prévenu. On peut consulter le site de EDF, mais il peut être plus intéressant de disposer d’une API pour récupérer cette information, et ainsi pouvoir l’intégrer dans un système domotique, par exemple.

        Sommaire

        Les anciennes APIs ne fonctionnent plus

        En effet, les forums domotiques attestent que c’était pourtant très utilisé, depuis le 29/08/2024 (avant-veille du changement de saison Tempo) les URL concernées (resp. couleur du jour+lendemain et compteurs saison en cours) répondent en erreur:

        Couleurs jour/lendemain
        Totaux en cours

        À la recherche d’une solution de remplacement

        On voit une autre URL apparaître ces derniers jours sur les forums, mais elle ne donne pas spécifiquement les couleurs jour/lendemain mais des compteurs: nombre de jours bleus, rouges et blancs depuis le début de l’année. Il faudrait donc déduire la couleur du jour en fonction de ce qui change d’un jour à l’autre! On a vu plus simple, mais comme ça marche pas on ne risque pas de l’utiliser:
        URL nouvelle

        {
            “errors”: [],
            “content”: [
                {
                    “typeJourEff”: « TEMPO_BLANC »,
                    “libelle”: « TEMPO BLANC 2024 2025 »,
                    “nombreJours”: 43,
                    “premierJour”: « 2024-09-01 »,
                    “dernierJour”: « 2025-08-31 »,
                    “premierJourExclu”: null,
                    “dernierJourExclu”: null,
                    “nombreJoursTires”: 0,
                    “etat”: “OUVERTE”
                },
                {
                    “typeJourEff”: « TEMPO_BLEU »,
                    “libelle”: « TEMPO BLEU 2024 2025 »,
                    “nombreJours”: 300,
                    “premierJour”: « 2024-09-01 »,
                    “dernierJour”: « 2025-08-31 »,
                    “premierJourExclu”: null,
                    “dernierJourExclu”: null,
                    “nombreJoursTires”: 12,
                    “etat”: “OUVERTE”
                },
                {
                    “typeJourEff”: « TEMPO_ROUGE »,
                    “libelle”: « TEMPO ROUGE 2024 2025 »,
                    “nombreJours”: 22,
                    “premierJour”: « 2024-11-01 »,
                    “dernierJour”: « 2025-03-31 »,
                    “premierJourExclu”: null,
                    “dernierJourExclu”: null,
                    “nombreJoursTires”: 0,
                    “etat”: « NON_COMMENCEE »
                }
            ]
        }

        Le site d’EDF utilise une API interne indiquant la couleur, jour par jour, pour une plage de dates donnée. Il faut remplir quelques en-têtes HTTP pour que la requête soit acceptée :

        curl \
            'https://api-commerce.edf.fr/commerce/activet/v1/calendrier-jours-effacement?option=TEMPO&dateApplicationBorneInf=2023-9-12&dateApplicationBorneSup=2023-9-15&identifiantConsommateur=src' \
            -H 'accept: application/json, text/plain, */*' \
            -H 'cache-control: no-cache' \
            -H 'content-type: application/json'

        Exemple de réponse:

        {
            “errors”: [],
            “content”: {
                “dateApplicationBorneInf”: « 2023-09-12 »,
                “dateApplicationBorneSup”: « 2023-09-16 »,
                “dateHeureTraitementActivET”: « 2024-09-11T11:19:26Z »,
                “options”: [
                    {
                        “option”: “TEMPO”,
                        “calendrier”: [
                            {
                                “dateApplication”: « 2023-09-12 »,
                                “statut”: « TEMPO_BLEU »
                            },
                            {
                                “dateApplication”: « 2023-09-13 »,
                                “statut”: « TEMPO_BLEU »
                            },
                            {
                                “dateApplication”: « 2023-09-14 »,
                                “statut”: « TEMPO_BLEU »
                            },
                            {
                                “dateApplication”: « 2023-09-15 »,
                                “statut”: « TEMPO_BLEU »
                            }
                        ]
                    }
                ]
            }
        }

        Ces APIs semblent répondre en erreur « La syntaxe de la requête est erronée » aléatoirement lorsqu’on y accède avec curl. Une requête peut fonctionner une fois puis subitement cesser de répondre. S’agit-il d’une limitation du nombre de requêtes venant de la même IP? D’une authentification à effectuer pour avoir le droit de faire des requêtes? Ou juste d’un système complètement buggé qui plante une fois sur 10?

        Pour ceux, que j’imagine nombreux, a qui cela va poser problème et qui ne veulent (ou peuvent) obtenir l’info via un module téléinfo à monter sur son compteur, il y a une URL dont je n’ai pas trouvé référence sur le site de RTE (qui ne propose que des API à jetons) qui se trouve en regardant le github source d’un site tiers donnant également l’info:
        Source tierce

        L’info délivrée par le compteur arrive en prime bien plus tardivement: En début de soirée au lieu de fin de matinée. C’est parce qu’elle transite par Enedis, une autre entreprise qui se charge de la distribution de l’électricité (les lignes à basse tension et les compteurs électriques).

        On peut donc utiliser cette indirection ou regarder les sources afin de trouver l’URL en question, pour laquelle on a une info hélas bien plus verbeuse où il faut faire son marché : on récupère un JSON de tous les jours écoulés depuis le début de la saison en cours, et il faut :

        — extraire l’info aux bonnes dates,
        — refaire ses compteurs de jours bleu/blanc/rouge pour savoir s’il reste des jours rouges ou blancs prévus avant la fin de l’hiver,
        — traiter le flag “fallback” qui, selon la documentation, indique un mode dégradé, mais ce flag ne semble jamais être mis à “true” dans l’historique des données disponibles, et son rôle exact n’est pas clair.

        Conclusion

        Il est au final navrant qu’EDF remplace un truc simple qui marchait très bien par un machin alambiqué qui tombe en marche une fois sur 10…

        Je ne donne pas l’URL librement accessible, mais non documentée, de RTE car je n’aimerais pas qu’elle croule sous les demandes: Ceux qui sont capables de l’utiliser de manière raisonnée sans exploser des quotas sauront bien la trouver avec les infos données!

        (RTE, Réseau de Transport de l’Électricité est l’entreprise qui s’occupe du réseau électrique à haute tension en France. Ce sont eux qui déterminent les jours où le réseau va être très chargé, et c’est ça qui détermine le prix de l’électricité).

        Un avantage à l’utiliser, c’est que l’info est disponible encore plus tôt qu’elle ne l’était chez EDF (c’était généralement MAJ peu après 11h00), permettant d’anticiper encore un peu plus un jour rouge, sachant qu’ils sont souvent en série, si on a quelques lessives à lancer…

        S’il y a des suggestions d’alternatives (sans jetons d’API) non citées, merci de les indiquer en commentaires.

        Commentaires : voir le flux Atom ouvrir dans le navigateur

        Sur les traces de la flotte fantôme russe

        Début 2025, les États-Unis et l'Europe ont pris de nouvelles sanctions contre les exportations de pétrole russe qui ciblent notamment des tankers. Depuis la mise en place du blocus économique occidental contre Moscou en 2022, une toile d'entrepreneurs de l'ombre aide la Russie à écouler ses (...) / , , , - 2025/03

        À Santiago du Chili, avec les galériens des transports

        20 février 2025 à 18:19
        Après l'embrasement, il est parfois difficile d'expliquer le départ de feu. Au Chili, cela pourrait être l'augmentation soudaine du prix du ticket de métro à Santiago, la capitale. Elle a provoqué une immense vague de protestations en 2019. Avant d'engendrer des transformations inimaginables quelques (...) / , , , , , , , - 2023/03

        Le Benghazi Medical Center, l'autre affaire libyenne de Nicolas Sarkozy

        7 février 2025 à 15:49

        30 millions d'euros et la mort d'un français sur fond de soupçons de corruption

        En plein procès du financement libyen de la campagne 2007, Reflets rouvre une enquête sur une histoire méconnue : 30 millions d'euros versés sur ordre de l'Elysée pour équiper l'hôpital de Benghazi. Et dans cette affaire, il y a eu mort d'homme. Depuis nos révélations en 2015, le Parquet national financier s'est saisi du volet corruption de ce dossier. Une audience est prévue en juin prochain.

        Vue de l'hôpital de Benghazi - D.R.

        « M. Guéant a dit : il faut qu'on s'occupe de l'hôpital de Benghazi. On s'en est occupés. » Cette phrase anodine, jetée en pleine séance du tribunal ce lundi 20 janvier par Nicolas Sarkozy, a eu l’effet d’un coup de tonnerre sur les connaisseurs du dossier. À peine prononcée, elle a fait resurgir tout un pan du passé trouble de la France en Libye, où la libération des infirmières bulgares sert de sordide toile de fond à des intrigues franco-libyennes. Or ces intrigues où l'argent de la France a coulé à flots ont coûté la vie à un Français, Patrice Réal, le soir du 2 mars 2014 à Benghazi. Qui s’en souvient ?

        Ce responsable de la sécurité du fameux Benghazi Medical Center, 49 ans, employé par un prestataire de la très controversée société française Ideal Medical Product Engineering (IMPE) est mort criblé de balles, alors qu’il était passager d’un minibus, de retour du souk de Benghazi. L’enquête -classée sans suite- n’a jamais permis de savoir qui étaient les tueurs et surtout pourquoi cet homme apparemment sans histoire a été visé. Sa mort a fait l’objet de quelques échos dans la presse, mais en 2014, personne ne s’était jamais inquiété de savoir qui il était, ni d’où il venait. Des rumeurs jamais confirmées évoquaient un agent secret français. En 2015, avec Jacques Duplessy (nous sommes deux journalistes travaillant aujourd’hui pour Reflets), nous avions dénoué les premiers fils de l’énigme, avec la conviction que le Benghazi Medical Center n...

        Vos batteries vont-elles exploser ?

        La faillite du suédois Northvolt douche les espoirs d'une filière européenne des batteries. Elle interroge aussi la priorité accordée aux véhicules particuliers, alors que l'électrification ne présente des bénéfices environnementaux que pour les transports en commun, alimentés en continu par le réseau. (...) / , , - 2025/02
        ❌