On Linux systems (including real time ones with PREEMPT-RT), C programs allocates memory using the system libc, usually using malloc(). On modern systems, the dynamic memory allocation uses the principle of overcommit. This is based on MMU…
Tag : Linux
Storing crash data of the Linux kernel for post-crash debugging
Logging problems are key features of any complex system in order to detect and locate any unexpected behavior. On Linux system, there are lots of solutions to generate debugging information for an unexpected behavior of a userspace application (log…
Gestion de versions des bibliothèques partagées
Tout code est susceptible au changement, avec pour objectif d'ajouter des fonctionnalités, de résoudre des BUGS ou même d'aller jusqu'a modifier les interfaces (altérer les prototypes des fonctions). Généralement plus un code est utilisé par la…
FlameGraph
Introduction Les outils de profilage permettent lors de l'exécution d'un logiciel de contrôler la liste des fonctions appelées, le temps passé dans chacune d'elle, l’utilisation des ressources processeur ou l'utilisation mémoire par exemple. Sous…
Le Temps Reel sous Linux
Dans cet article, nous allons discuter de l'intérêt ainsi que des avantages et inconvénients d’utiliser un noyau Linux temps réel. L'objectif de cet article n’est pas de décrire ce qu’est le temps réel mais pourquoi et comment l’utiliser. Aux…
My first Linux kernel built with Clang compiler!
Following his internship at Smile in 2018 on LLVM/Clang integration into Buildroot [1], Valentin Korenblit still maintains these packages on his spare time (thanks to him!), up to the latest current version llvm/Clang 8.0.0. At the same time the…
Génération et configuration d'Initramfs sous Yocto
Bonjour. Dans cet article nous discuterons de l'intérêt d'utiliser un initramfs et des modalités de sa mise en place dans un environnement Yocto. Le but n'est pas ici de revenir aux principes fondateurs du projet Yocto, pour lesquels je vous…
BCC integration into buildroot
Introduction After the rise of eBPF as the newly most powerful Linux tracer (available since Linux 3.15), multiple front end tools have been built on top of it. Amongst all of them, BCC (BPF Compiler Collection) is the most prominent one as it makes…
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…
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…