inflearn logo

Structure and Principles of the Linux Kernel: Interrupt Bottom Halves [Author's Lecture Part 1-6]

The author of "Learning the Structure and Principles of the Linux Kernel Through Debugging" provides a proper explanation of the core concepts of 'Interrupt Bottom Halves' in the latest Linux kernel (v6.1), which is most widely used in system software.

(5.0) 3 reviews

210 learners

Level Basic

Course period Unlimited

Operating System
Operating System
Linux
Linux
linux-kernel
linux-kernel
ARM Architecture
ARM Architecture
interrupt
interrupt
Operating System
Operating System
Linux
Linux
linux-kernel
linux-kernel
ARM Architecture
ARM Architecture
interrupt
interrupt

What you will gain after the course

  • Basic concepts and operating mechanisms of the bottom half of an interrupt

  • Interrupt bottom-half processing methods from a device driver perspective

  • A method of processing the bottom half of an interrupt using the threaded IRQ feature

  • Softirq processing methods and tasklets

<Notice>

1. Issuing a 30% discount coupon to celebrate surpassing 500 students🙏

To celebrate surpassing 500 students for the Linux Kernel course, we are issuing a 30% discount coupon. Thank you. Limited to the first 100 people.

2. Roadmap Guide 🎯

This lecture, 'Linux kernel for system software developers - basic course', is included in the roadmap <Structure and Principles of the Linux Kernel: Interrupts [Author's Lecture Part 1-5]>.

If you are a system software developer in fields such as system semiconductors or automotive,

Linux Kernel Essentials You Must Know

What is the most widely used operating system in all IT devices? It is the Linux operating system. It is used in smartphones, digital TVs, in-flight entertainment systems, and servers. System semiconductor companies use Linux (Linux device drivers) to control the hardware they design. Furthermore, Linux is extensively utilized in various components of electric vehicles (Automotive), such as infotainment, autonomous driving, and telematics.

The core of the Linux operating system is the Linux kernel. Along with the Armv8-A architecture, the Linux kernel can be seen as the area requiring the most essential foundational knowledge currently in demand within the system software industry.

Attention Linux system software developers and Linux embedded system (BSP) programmers!

Junior developers in the Linux system software field, including system semiconductors and electric vehicles (autonomous driving, infotainment)

Job seekers who want to work in Linux system software development fields such as system semiconductors and electric vehicles

Aspiring graduate students in the field of Linux system software (memory, file systems, operating systems)

Developers from other fields who want to switch their career to the Linux system software field

However, the Linux kernel is like a massive barrier for beginners in the field of system software. Beginners have likely experienced giving up several times while trying to learn the Linux kernel. As the versions of the already difficult Linux kernel upgrade, it is evolving to become increasingly complex. Since 2024, Linux kernel versions have been upgrading to v6.6 and above, and the barrier to entry is rising even higher.

Linux system software developers in various fields, including system semiconductors and electric vehicles, know that they must understand the Linux kernel well to enhance their development capabilities. However, it is difficult to get a sense of how to learn the Linux kernel and, above all, what specific content is essential to know for practical work.

The core of the core in Linux device driver development: Interrupt Bottom Halves

When you start your career as a Linux system software developer, you will mostly develop Linux device drivers. During this process, one of the elements you must implement and optimize is interrupts. Interrupt bottom halves are essential topics you must understand along with interrupts. To name a few reasons:

  • Most interrupt handlers are used in conjunction with interrupt bottom-half techniques.

  • Major issues with peripheral devices controlled via interrupts are identified in routines related to the bottom half of the interrupt—along with the interrupt handler.

Therefore, in Chapter 6 of my book, 'Structure and Principles of the Linux Kernel,' I explain the following 'interrupt bottom-half techniques.'

  • threaded IRQ (IRQ thread)

  • Softirq

  • Tasklet

I have structured the content so that readers can learn bottom-half interrupt handling techniques through various ftrace debugging exercises.

Key Differentiating Points of the Lecture

This course consists of content that has never been covered on YouTube or any other lecture platform before! You will debug data structures related to the Linux kernel's interrupt bottom-half techniques, as well as various data structures that make up the Linux kernel (task_struct, thread_info structures), through Linux kernel memory dumps. Those who take this course can download the educational program (TRACE32) and practice directly.

1. TRACE32 Simulator Program (Educational) and Linux Kernel Dump Provided

TRACE32 debuggers and related programs are widely used throughout Linux system software development. The TRACE32 program requires a license to run. By taking this course, you can download the educational TRACE32 simulator program from 'Inflearn Course Materials' and use the TRACE32 simulator program yourself to debug memory dumps. Additionally, you can download and practice with six kernel memory dumps that allow you to debug various operations of interrupt bottom-half techniques (threaded IRQ, Softirq).

2. Explaining the basic concepts of interrupt bottom-half mechanisms easily and in detail

When learning the Linux kernel, you analyze the kernel source code. However, you encounter many obstacles during this process. It is difficult to determine the flow in which a specific function is called or to verify the actual values within the data structures of the routine you are analyzing. This lecture breaks down all of these obstacles.

We analyze the Linux kernel source code related to interrupt bottom-half techniques along with TRACE32 program call stacks and detailed data structures. You can learn interrupt bottom-half techniques much more efficiently than studying the Linux kernel alone. Furthermore, by analyzing ftrace messages extracted from memory dumps, you can gain a multi-dimensional and detailed understanding of how interrupt bottom-half mechanisms operate.

3. Introduction to debugging methods used by Linux kernel BSP developers at global system semiconductor companies

The system semiconductor industry has been rising recently. How do Linux kernel system developers at global system semiconductor companies debug Linux kernel drivers?

This lecture covers the following content. We will debug kernel data structures related to processes using the TRACE32 simulator with Linux kernel memory dumps, and analyze key kernel operations by loading memory dumps with the crash-utility.

What you will learn

It explains the overall flow of interrupt processing and why bottom-half interrupt handling techniques are necessary.

It introduces the threaded IRQ method, which is widely used as an interrupt bottom-half technique, and explains its core functions.

It explains the execution flow of the threaded IRQ technique from a big-picture perspective and provides a detailed explanation of the source code.

Introduces patches related to threaded IRQs and explains how to configure ftrace. It provides a detailed explanation of the ftrace messages alongside the execution flow of the threaded IRQ mechanism.

We analyze the data structures related to the threaded IRQ method in detail using TRACE32 and the Crash Utility program.

Introduces Softirq and explains the reasons why it is important to have a good understanding of it.

It explains in detail the types of Softirq services, which are the core of Softirq, and the step-by-step execution flow.

It explains the operation of requesting and executing Softirq services in detail—through the overall execution flow and source code analysis.

Explains the ksoftirqd/[n] kernel thread, which is the daemon that executes Softirq services, and provides a detailed analysis of tasklets.

Explains the ftrace tracepoints related to Softirq and provides a detailed analysis of the ftrace messages.

Provides educational TRACE32 (simulator) program and 6 Linux kernel memory dumps

In this lecture, we will explain the data structures and call stacks that constitute the bottom-half interrupt handling techniques while debugging Linux kernel memory dumps, which is the most advanced debugging method in the Linux system software industry.

It provides advanced debugging methods to debug Linux kernel memory using debugging programs such as TRACE32 and the Crash utility.

✅ You can download the educational TRACE32 program (simulator version) from the course curriculum. Students can use the TRACE32 program to load the kernel memory dumps provided in this course and follow along with the debugging process.

✅ You can directly download the Crash Utility, which is operated as an open-source project, and debug by loading kernel memory dumps. By utilizing various functions supported by the Crash Utility, you can directly debug kernel data structures or call stacks.

Based on my book writing and lecturing experience,
deeper and more detailed than anyone else!


Global Author & Linux System Software Developer (Arm, RISC-V Architecture)

In the domestic system software field, I am an unprecedented author who has written books on both 'Arm Architecture (Armv8-A, Armv7-A)' and the 'Linux Kernel' (both books were selected as Excellent Academic Books by the National Academy of Sciences, Republic of Korea), and a global author who wrote the English book "Reverse Engineering Armv8-A Systems" through a foreign publisher (Packt) for the first time in Korea. Above all, I am an active developer who is most well-versed in the latest system software trends (Electric Vehicles, System Semiconductors - System Software). I am also an educator who is most actively engaged in spreading knowledge in the field of system software.

  • Author of the book (English) 'Reverse Engineering Armv8-A Systems: A practical guide to Kernel, Firmware, and TrustZone analysis', (Packt Publishing)

  • 'Structure and Principles of the Linux Kernel Learned Through Debugging' (2021, National Academy of Sciences Outstanding Scholarly Book Award) Author

  • Author of 'Structure and Principles of Arm Architecture for System Software Development' (2024, National Academy of Sciences Outstanding Scholarly Book Award)

  • 'Programmers Dev Course: Linux System and Kernel Expert' Main Instructor (1st~2nd cohorts)

  • June 2022, Korea Computer Congress (KCC2022) - Tutorial Presentation [Conquering the Linux Kernel Using ftrace]

  • LG Electronics 'Linux Kernel' and 'Armv8 Architecture' In-house Instructor (including domestic and overseas developers) - (2020–2024)


I can confidently say that I am an educator who can explain the core functions of the Linux kernel better than anyone else in Korea.

Notes before taking the course

Precautions when using the TRACE32 program

  • The TRACE32 educational program can only be practiced in a Windows environment.

  • The TRACE32 educational program can only be used for &#39;educational purposes&#39; and may not be modified or distributed for commercial use.

  • If you have any questions while using the TRACE32 educational program in this lecture, be sure to ask the instructor.

Practice Environment and Provided Lecture Materials

  • Operating System and Version (OS): Raspberry Pi (Raspbian), Linux Kernel v6.1

  • TRACE32 Educational Program and Installation Guide Document (Lecture)

  • 6 Linux kernel memory dumps (vmcore)

Prerequisite Knowledge and Precautions

  • It is good to have a rough understanding of how Linux operates.

  • It is recommended that you first take the course 'Structure and Principles of the Linux Kernel: Debugging - Basic [Author's Lecture Part 1-2]' if possible.

  • You will be able to follow the class more comfortably if you have knowledge of operating systems or computer architecture.

  • In-depth prior knowledge of the Linux kernel is not required.

Recommended for
these people

Who is this course right for?

  • A junior developer who wants to build expertise in system software, including system semiconductors and the electric vehicle sector (autonomous driving, infotainment).

  • A job seeker who wants to develop system software in fields such as system semiconductors and electric vehicles

  • An undergraduate student aiming to pursue graduate studies in the field of system software (memory, file systems, operating systems).

  • A developer from another field seeking to transition their career into system software.

Need to know before starting?

  • C Language

  • Computer Architecture

  • Operating System

Hello
This is austinkim

6,316

Learners

241

Reviews

96

Answers

4.9

Rating

22

Courses

Global Author & Linux System Software Developer (Arm, RISC-V Architecture)

A global author who has written unprecedented books on 'Arm Architecture (Armv8-A, Armv7-A)' and the 'Linux Kernel' in the domestic system software field (both books were selected as Excellent Academic Books by the National Academy of Sciences of the Republic of Korea), and is the first in Korea to author the book (in English) "Reverse Engineering Armv8-A Systems" through an international publisher (Packt). Above all, he is an active developer who is most well-versed in the latest system software trends (electric vehicles, system semiconductors-system software). He is also an educator who is most actively engaged in spreading knowledge within the system software field.

  • Author of the book (English) 'Reverse Engineering Armv8-A Systems: A practical guide to Kernel, Firmware, and TrustZone analysis', (Packt Publishing)

  • Author of 'Structure and Principles of Arm Architecture for System Software Development' (2024 National Academy of Sciences Outstanding Book Award)

  • Author of 'Structure and Principles of the Linux Kernel Learned Through Debugging' (2021, National Academy of Sciences Outstanding Scholarly Book Award)

  • Main Instructor for 'Programmers Dev Course: Linux System and Kernel Expert'

  • June 2022, Korea Computer Congress (KCC2022) - Tutorial Presentation [Conquering the Linux Kernel Using ftrace]

  • LG Electronics 'Linux Kernel' and 'Armv8 Architecture' internal instructor (including domestic and overseas developers) - (2020–Present)

I can confidently say that I am an educator who can explain the Linux kernel and Arm architecture (Armv8-A, Armv7-A) better than anyone else in Korea.

Lecture Inquiries: austindh.kim@gmail.com

Main Roadmap 🎯

'Arm for System Software Developers - basic course'

'Arm for System Software Developers - advanced course'

Linux kernel for system software developers - basic course

More

Curriculum

All

85 lectures ∙ (10hr 12min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

3 reviews

5.0

3 reviews

  • heecheolsong님의 프로필 이미지
    heecheolsong

    Reviews 21

    Average Rating 5.0

    5

    100% enrolled

    • dlrbcnvk님의 프로필 이미지
      dlrbcnvk

      Reviews 19

      Average Rating 4.9

      5

      61% enrolled

      • aceoftop1975님의 프로필 이미지
        aceoftop1975

        Reviews 121

        Average Rating 5.0

        5

        100% enrolled

        2024/07/20/Sat 10:53 I listened to the lecture well. While listening to the lecture, I learned a lot about Linux. If you make other lectures, I will listen to them carefully. Thank you.

        austinkim's other courses

        Check out other courses by the instructor!

        Similar courses

        Explore other courses in the same field!

        $42.90