An Overview of Makefile, Kconfig, and .config in Linux Kernel Source

An Overview of Makefile, Kconfig, and .config in Linux Kernel Source

The Linux kernel source code contains numerous files, and understanding the relationships between Makefile, Kconfig, and .config is crucial for navigating the kernel compilation system. Issues arise when trying to compile and modify the kernel, integrate your own drivers, or configure the kernel. All of these problems relate to Makefile, Kconfig, and .config. Below, I … Read more

Overview of Linux Kernel Configuration, Compilation, and Makefile

Overview of Linux Kernel Configuration, Compilation, and Makefile

Recently, I have been learning about the configuration, compilation, and Makefile for the Linux kernel. Today, I would like to summarize my learning results and share them with everyone. 1. Unpacking and Patching First, you need to unpack the Linux kernel you obtained. Here I am using version linux.2.22.6. In the Linux command line, you … Read more

Understanding Makefile, Kconfig, and .config in Linux Kernel

Understanding Makefile, Kconfig, and .config in Linux Kernel

When compiling the Linux kernel, we often execute some commands in the top-level directory of the Linux kernel. Taking RK3288 as an example, commands include: make firefly-rk3288-linux_defconfig, make menuconfig, make firefly-rk3288.img, make zImage, etc. Without delving into the specific meanings yet, I would like to raise a few questions. (1) The Linux kernel is so … Read more

Understanding the Relationship Between Makefile, Kconfig, and .config in Linux Kernel

Understanding the Relationship Between Makefile, Kconfig, and .config in Linux Kernel

Source: Baiwen Technology ❞The Linux kernel source code files are numerous, and it’s hard to understand the relationship between Makefile, Kconfig, and .config. Without understanding the kernel compilation system, it can be difficult to compile and modify the kernel, integrate your own drivers, or configure the kernel. These issues are all related to Makefile, Kconfig, … Read more

Driver Development Under Linux Device Tree

Driver Development Under Linux Device Tree

Overview This article introduces the development process and methods of device drivers under the platform framework, mainly including the development of device trees, drivers, and applications. Taking the random number driver as an example, it implements the process of the application calling the library function, entering the kernel through a system call, and finally executing … Read more

The ‘Bridge’ Between Linux Devices and Drivers | Bus

The 'Bridge' Between Linux Devices and Drivers | Bus

1. Introduction In the Linux device driver model, a bus is an abstract concept, a special type of device. In the implementation of the device model, the kernel specifies that each device in the system must be connected to a bus, which can be an internal Bus, a virtual Bus, or a Platform bus. The … Read more

Linux Workshop Adventure: Exploring Buses, Devices, and Drivers

Linux Workshop Adventure: Exploring Buses, Devices, and Drivers

Click the blue text above to follow me and read beautiful articles. The Linux operating system’s kernel manages various hardware devices in the system, including buses, devices, and drivers. This article will introduce the basic concepts of buses, devices, and drivers in the Linux system, as well as their relationships. By combining relevant /sys directory … Read more

Understanding the EEVDF Scheduler in Linux Kernel

Understanding the EEVDF Scheduler in Linux Kernel

Linux 6.6 uses the EEVDF (Earliest Eligible Virtual Deadline First) scheduler to replace the CFS (Completely Fair Scheduler). Linux 6.12 completes the EEVDF scheduler by improving the handling of sleep process latency and supporting process time slice settings. The EEVDF scheduler considers schedule latency as one of the factors in process scheduling, ensuring fair allocation … Read more

Zephyr Kernel Data Structures – Red-Black Tree

Zephyr Kernel Data Structures - Red-Black Tree

Overview The search time complexity of a linked list is O(N). As the number of members managed by the linked list increases, the algorithmic cost of searching increases. To address this, Zephyr provides an implementation of a red-black tree, where the time complexity for search and delete operations is O(log2(N)) for a tree of size … Read more

Investigating Coredump File Truncation Issues

Investigating Coredump File Truncation Issues

This article is excerpted from the “ByteDance Infrastructure Practice” series. The “ByteDance Infrastructure Practice” series is a collection of technical content created by various technical teams and experts from ByteDance’s infrastructure department, sharing the team’s practical experiences and lessons learned during the development and evolution of infrastructure, and engaging in discussions with fellow technical colleagues. … Read more