Overview and Core Concepts of Linux Workqueue

Overview and Core Concepts of Linux Workqueue

Overview and Core Concepts of Linux Workqueue Part 1: Overview and Core Concepts of Workqueue 1.1 What is Workqueue? Imagine you are a busy restaurant manager. When customers place their orders, some tasks need to be completed immediately (like pouring water for the guests), similar to the interrupt handling in the Linux kernel, which requires … Read more

In-Depth Analysis of DMA-BUF: Zero-Copy Buffer Sharing Architecture in the Linux Kernel

Introduction: Why is DMA-BUF Needed? In modern heterogeneous computing systems, multiple processing units (CPU, GPU, ISP, video codecs, etc.) need to share data efficiently. Traditional data sharing methods involve frequent memory copies, which can incur significant performance overhead in scenarios such as high-resolution video processing and complex graphics rendering. DMA-BUF was developed to provide a … Read more

Embedded Reading Notes – 3: Detailed Explanation of Linux Device Driver Development

Concurrency Control in Linux Device Drivers (Part 1) Note: The content of this article is excerpted from “Detailed Explanation of Linux Device Driver Development – Based on the Latest Linux 4.0 Kernel”. This series will record the key points of knowledge focused on while reading the book. Interested readers are recommended to read the original … Read more

Linux eBPF – The JavaScript of the Linux Kernel

Linux kernel programming is a skill that most developers have either never encountered or are intimidated by. Just thinking about it can be daunting; what if the kernel crashes? The eBPF technology alleviates concerns about kernel programming, providing an impulse to give it a try. eBPF (extended Berkeley Packet Filter) is a revolutionary technology in … Read more

Understanding Linux Kernel Timers (Part 10) – Kernel Timers

1.Principles of Linux Kernel Timers 1.1Kernel Time Management 1.The Cortex-M kernel uses systick as the system timer. 2.Hardware timers and software timers rely on the system timer for operation. 3.The frequency of the Linux kernel can be configured through a graphical interface. By opening the .config file in the root directory of the Linux kernel … Read more

The Era of Differentiation in Linux Kernel Development May Be Over; What Matters Now is Leadership

Today, the development and optimization of the Linux kernel has entered an era of “complete transparency.” New hardware demands, new application pain points, and kernel shortcomings are well understood by almost all companies. It is merely a matter of time before someone completes these optimizations. Stronger companies can accomplish this more efficiently and elegantly, leading … Read more

Understanding the Linux Kernel’s proc File System

/proc is a special virtual file system. It does not exist on a physical disk but is dynamically generated by the kernel in memory. Its main purpose is to serve as an interface that allows user-space programs (such as ps, top, htop, etc.) to easily obtain runtime information about the kernel and processes, and in … Read more

In-Depth Analysis and Technical Practice of the Linux SDIO Driver Framework

In-Depth Analysis and Technical Practice of the Linux SDIO Driver Framework 1 Overview of SDIO Technology and Linux Subsystem Architecture 1.1 Basic Concepts and Technical Background of SDIO SDIO (Secure Digital Input Output) is an input/output interface standard based on the SD (Secure Digital) memory card standard extension. It is physically and electrically compatible with … Read more

Analysis of the I2C Subsystem in Embedded Linux Driver Development (Part 4) – Source Code Analysis

1. I2C Bus Driver / I2C Adapter Driver This section focuses on the structures: i2c_adapter and i2c_algorithm, which are defined in include/linux/i2c.h. The Linux kernel abstracts the SOC’s I2C controller (adapter) as i2c_adapter; i2c_algorithm defines the methods for communication between the I2C controller and IIC devices. The main task of the I2C bus driver, or … Read more