Blog

Linux kernel GPIO user space interface

Since version 4.8 the Linux kernel has a new interface based on character devices for accessing and managing GPIO lines in user space. Linux kernel GPIO interface GPIO stands for General-Purpose Input/Output and is one of the most commonly used peripherals in an embedded Linux system. Internally, the Linux kernel implements the access to GPIOs […]

Blog

Introduction to Linux containers

Container technology in general and Linux containers, in particular, have become increasingly popular in recent years. The use of containers in data centers and cloud computing environments is growing every year and tools like Docker and Kubernetes have become quite popular. And it’s no different in the world of embedded Linux since some container-based Linux […]

Blog

Linux core dump analysis

One of the most effective ways to identify problems in applications that crash is through core dump analysis. Core dump is a disk file that contains an image of a process’s memory at the moment of its termination, generated by the Linux kernel when processing some signals like SIGQUIT, SIGILL, SIGABRT, SIGFPE and SIGSEGV. For […]

Blog

Tracing the Linux kernel with ftrace

Tracing is a useful technique to find bugs in software, and ftrace is the tracing framework built into the Linux kernel. But before we start talking about ftrace, let’s define what tracing is. What is tracing? Tracing is the specialized use of logging to record information about a program’s flow of execution. You know when […]

Blog

Finding memory bugs with AddressSanitizer

AddressSanitizer (ASan) is an instrumentation tool created by Google security researchers to identify memory access problems in C and C++ programs. When the source code of a C/C++ application is compiled with AddressSanitizer enabled, the program will be instrumented at runtime to identify and report memory access errors. But what are memory access errors and […]