Linux Embedded

Le blog des technologies libres et embarquées

Les secrets du traceur eBPF

Introduction Le traçage permet d’instrumenter un noyau pour capturer les événements bas niveau (allocation mémoire, changement de contexte, réception d’un paquet réseau, …,etc). Le traçage a fait l’objet des deux articles précédents, nous avons présenté des outils tels que Ftrace, Perf et Lttng. Dans cet article, nous allons décrire eBPF, le traceur le plus performant sous Linux. Quelques généralités sur…

Les traceurs sous linux (2/2)

Introduction Les applications et les systèmes d’exploitation sont devenus très complexes, de nombreux outils de traçage sont apparus au cours de la dernière décennie. Leur but est d’instrumenter et optimiser la qualité des programmes en termes de performances et de robustesse. Après l’article précédent sur Ftrace, nous allons apprendre a utiliser les traceurs Perf et LTTng. Perf Perf est un…

Les traceurs sous linux (1/2)

Introduction L’analyse des performances est essentiel pour tout processus de développement d’une application logicielle. En plus du débogage, il est nécessaire d’utiliser des pratiques d’instrumentation pour garantir les performances attendues d’une application (ou même d’un noyau). L’instrumentation consiste essentiellement à surveiller et à mesurer les performances, à diagnostiquer les erreurs et à écrire des informations de suivi dans les environnements…

Survol des outils de debug

Introduction Dans le développement de logiciels, le débogage consiste à localiser et à corriger les erreurs de code dans un programme informatique. Le débogage fait partie du processus de test logiciel et fait partie intégrante du cycle de vie du développement. Le débogage est souvent difficile pour les programmeurs, Norman Matloff et Peter Jay Salzman disent: Déboguer, c’est chercher une…

kernel, udev et systemd : la gestion du hotplug

La gestion des événements hardware est un domaine un peu mystérieux sous linux. Le noyau voit des événements, udev réagit, et il se passe des choses. Cet article va essayer de démystifier cet aspect des systèmes linux en implémentant quelque chose de simple : changer automatiquement la luminosité de l’écran lorsque l’alimentation d’un ordinateur portable est branchée. Pour cela nous…

Secure Boot et UEFI

Introduction Le boot sécurisé, ou Secure Boot, est arrivé avec les EFI et permet de restreindre le lancement de certaines applications seulement au démarrage de la machine. Une application UEFI est un binaire au format Portable Executable, au même titre que les .exe de Windows, dont l’extension est .EFI. Le boot sécurisé permet donc de contrôler l’exécution de ces fichiers binaires en…

Sortie du noyau 3.19

Linus Torvalds vient d’annoncer la dernière mouture du noyau Linux et voici un petit inventaires des nouveautés. La version 3.19 du noyau Linux voit l’ajout de la gestion des « device-tree overlays », une fonctionnalité qui va être particulièrement utile pour le monde de l’embarqué. Pour rappel, les device-tree sont des fichiers permettant de décrire une architecture matérielle de façon indépendante de…

Modification du noyau Linux AOSP

Introduction Dans les précédents articles, nous avons vu comment produire une image AOSP utilisable dans l’émulateur Android. Nous avons également décrit les principales fonctions de l’outil ADB (Android Debug Bridge) indispensable au développement Android « système ». Dans cet article nous allons décrire la procédure de mise à jour du noyau Linux utilisé par l’émulateur Android. En effet, le noyau utilisé jusqu’à…

Utilisation du DMA dans un driver RTDM

Cet article porte sur l’utilisation des DMA dans un driver RTDM Xenomai. Il présentera des principes généraux sans se reposer sur un matériel en particulier. Une première partie expliquera tout d’abord ce qu’est un driver RTDM, le fonctionnement des DMA puis nous verrons dans quelle mesure l’utilisation des DMA peut être pertinente pour des applications temps réel. Une deuxième partie…

Sortie du kernel 3.14

Le kernel version 3.14 est sorti le 30 mars dernier ! Cette version apporte son lot de nouveautés, nous soulignons ici celles qui concernent plus particulièrement l’embarqué : Une nouvelle politique d’ordonnancement est disponible : le Deadline scheduler. Cela permet à un processus d’annoncer la quantité de ressources processeur requis pour sa complétion, éventuellement une fréquence pour les tâches périodiques,…