Embedded Linux | What are BootLoader, Linux Kernel, and File System?

Embedded Linux | What are BootLoader, Linux Kernel, and File System?

01 What is a BootLoader? It is a boot program, which is the first program to execute after hardware reset. Its main job is to initialize the environment for the operating system to run, such as memory, timers, buffers, etc. Once this is done, it loads the operating system’s code into memory, and then the … Read more

Introduction to the Platform Device Driver Model

Introduction to the Platform Device Driver Model

In the Linux kernel, the <span>platform</span> device driver model is used to manage devices that are not directly mounted on physical buses (such as PCI or USB), for example, hardware modules (such as GPIO controllers, timers, etc.) within a System on Chip (SoC). This model associates devices (<span>platform_device</span>) and drivers (<span>platform_driver</span>) through a virtual <span>platform_bus_type</span> … Read more

The Future of Rust Code in the Linux Kernel: Progress Amid Controversy

The Future of Rust Code in the Linux Kernel: Progress Amid Controversy

The Future of Rust Code in the Linux Kernel: Progress Amid Controversy Introduction Since the first integration of Rust code into the Linux kernel in 2022, the controversy surrounding its introduction has never ceased. The Rust language is praised for its excellent memory safety features and is seen by many governments and security experts as … Read more

What is the Difference Between the Linux Kernel and the Linux System? You’ll Understand After Reading This!

What is the Difference Between the Linux Kernel and the Linux System? You'll Understand After Reading This!

Introduction: Why Can Your Computer Run? When you write code on Ubuntu, browse the web on Fedora, or come across news about the “HarmonyOS computer coming soon” on your phone, have you ever wondered how these systems actually work behind the scenes? The key to the answer lies in the relationship between the Linux kernel … Read more

Linux Kernel Synchronization Mechanisms: Unlocking the Secrets of Concurrent Programming

Linux Kernel Synchronization Mechanisms: Unlocking the Secrets of Concurrent Programming

In today’s digital age, multi-core processors have become standard in computer systems, from our everyday office computers to the massive server clusters in data centers. This hardware advancement allows computer systems to handle multiple tasks simultaneously, greatly enhancing computational efficiency. Just like a busy traffic hub with multiple lanes, vehicles move back and forth, seemingly … Read more

Detailed Explanation of ARM GIC Interrupts – IPI Interrupts

Detailed Explanation of ARM GIC Interrupts – IPI Interrupts

1. Introduction to IPI Interrupts IPI interrupts, or Inter-Processor Interrupts, are essentially the SGI interrupts (Software Generated Interrupts) defined in the ARM GIC architecture. In the GICv3 architecture, there are a total of 16 SGI interrupts (excluding extensions), with interrupt numbers ranging from 0 to 15, as shown in the figure below. Inter-Processor Interrupts are … Read more

Six Steps to Get Started with Embedded Linux

Six Steps to Get Started with Embedded Linux

Many people often ask this question, so here is a summary for everyone’s reference. It must be stated that the following steps are targeted at Linux systems and do not focus on WinCE. You may notice that among those engaged in embedded systems, there are far more people researching Linux than those working with WinCE. … Read more

Asynchronous Rust Practice: Performance, Pitfalls, Analysis

Asynchronous Rust Practice: Performance, Pitfalls, Analysis

Rust Code Updates in the Linux Kernel Introduce More Features Miguel Ojeda has released the latest patch series that implements the foundational infrastructure for the Rust programming language in the Linux kernel, along with initial sample code. The v8 version with Rust support has been released today, adding support for using the Rust programming language … Read more

Does ARM Architecture Support Interrupt Nesting?

Does ARM Architecture Support Interrupt Nesting?

Click the blue "Arm Selected" in the upper left corner and select "Set as Star" Note: This article primarily discusses the ARMV8-aarch64 architecture, gicv3, and Linux kernel 5.14 by default. Consideration: Have you ever thought about a scenario where a high-priority interrupt preempts another interrupt that is currently being processed? This is known as interrupt … Read more

Adding a Syscall to Android 12 Kernel from Source Code

Adding a Syscall to Android 12 Kernel from Source Code

This article is an excellent piece from the Kanxue Forum. Kanxue Forum Author ID: xxxlion Adding a syscall to Android 12 involves quite a bit, and the information available online is often outdated (especially regarding bionic). I encountered many pitfalls along the way. I decided to write this article to document how to add a … Read more