inflearn logo

Structure and Principles of the Linux Kernel: Interrupts [Author's Lecture Part 1-5]

The author of "Learning the Structure and Principles of the Linux Kernel Through Debugging" provides a thorough explanation of the core interrupt concepts of the latest Linux kernel (v6.1), which are most widely used in system software.

(5.0) 6 reviews

258 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 interrupts

  • Interrupt handling methods from a device driver perspective

  • Interrupt handling from the perspective of the Arm architecture

  • Data structure for managing interrupts

<Notice>

1. Issuing 30% discount coupons to celebrate reaching 500 students🙏

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

-30% discount coupon link: https://inf.run/i3zsz  

2. Roadmap Guide 🎯

This lecture, 'Linux kernel - basic course for system software developers', is included in the roadmap <linux kernel structure and principles: interrupts [author's lecture part 1-5]>.</linux>

If you want to learn the key functions that make up the Linux kernel systematically, it is recommended to use the roadmap (30% discount on all courses).

System semiconductors, the automotive sector, etc.

Linux Kernel: A Must-Know for System Software Developers


What is the most widely used operating system across 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 (infotainment, autonomous driving, telematics) that make up electric vehicles (Automotive).

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. Many beginners have likely experienced giving up multiple times while trying to learn the Linux kernel. As versions of the already difficult Linux kernel are upgraded, it is evolving to become increasingly complex. Since 2024, the Linux kernel version has been upgrading to v6.6 or higher, and the barrier to entry is rising even further.

Linux system software developers in various fields, including system semiconductors and electric vehicles, know that they need a deep understanding of the Linux kernel to enhance their development capabilities. However, it is difficult to get a sense of how to learn the Linux kernel and, more importantly, which specific aspects are most critical to master for practical work.

Interrupts, the core of Linux device driver development

What do you do when you first start as a Linux system software developer? It depends on the nature and mission of the project, but most develop Linux device drivers. One of the elements that must be implemented and optimized when developing a Linux device driver is the interrupt. Furthermore, interrupts are closely related to the major functions that make up the Linux kernel. They are deeply connected to interrupt bottom-half techniques, dynamic timers, preemptive scheduling, and signal operations.

That is why I explain interrupts in Chapter 5 of my book, 'Structure and Principles of the Linux Kernel.' I have designed it so that readers can learn about interrupts 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! We will debug interrupt operation mechanisms and related data structures through Linux kernel memory dumps. Those taking this course can download the educational program (TRACE32) and practice directly.

1. TRACE32 simulator program (for educational use) and 6 Linux kernel dumps provided

The TRACE32 debugger and its software 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 the 'Inflearn Course Materials' and use it to debug memory dumps yourself. Additionally, you can download and practice with six kernel memory dumps that allow you to debug various interrupt behaviors (interrupt handler calls, preemption).

2. Explaining the basic concepts of interrupts 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 of the data structures in the routine you are analyzing. This lecture breaks down all of these obstacles.

We analyze the Linux kernel source code related to interrupts alongside TRACE32 program call stacks and detailed data structures. You can learn about interrupts much more efficiently than studying the Linux kernel on your own. Furthermore, by analyzing ftrace messages extracted from memory dumps, you can gain a multi-dimensional and granular understanding of how interrupts 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 BSP developers at Qualcomm, which possesses the best technological prowess among global system semiconductor companies, debug Linux kernel drivers?

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

What you will learn

First, it explains the method of handling interrupts and describes the flow of interrupt processing from various perspectives.

It explains in detail the overall execution flow when an interrupt is triggered in the Linux kernel and user applications from the perspective of the Armv8 architecture.

Analyze the Armv8 exception vector table when an interrupt is triggered in the Linux kernel. Subsequently, perform a detailed analysis of the exception handler routines that are processed.

Analyze the Armv8 exception vector table when an interrupt is triggered from a user application. Subsequently, analyze the exception handler routine that follows in detail, down to the assembly instruction level.

We analyze the overall flow of interrupt processing and provide a detailed explanation of the functions executed within the IRQ subsystem (which is independent of the Arm architecture).

Analyze interrupt-related data structures using TRACE32 and the Crash-utility debugging programs.

Debug the interrupt handler function bcm2835_mmc_irq() using TRACE32. Analyze the interrupt handler source code in detail along with the call stack and related data structures.

Introduces the interrupt context and explains example code that can be used to verify the interrupt context.

We analyze the kernel source code that activates the interrupt context. We explain why kernel functions that enter a sleep state must not be called within the interrupt context and introduce exception handling code for when acquiring a mutex as an example.

It explains in detail the operation of preemption, which is processed after the execution of the interrupt service routine is completed. Additionally, it provides a detailed debugging of the preemption behavior using the TRACE32 debugging program.

We introduce how to configure ftrace events that trace the behavior of interrupts. By analyzing ftrace messages in detail, we explain the execution flow of interrupt handlers and the conditions of the interrupt context.

We will conduct a detailed analysis of the kernel source code that outputs ftrace messages for tracing interrupt operations.

Educational TRACE32 program and 6 Linux kernel memory dumps provided

In this lecture, we introduce the most advanced debugging method in the Linux system software industry—the way Qualcomm Linux kernel developers, at a world-class system semiconductor company, perform debugging—which is how to debug Linux kernel memory dumps. You can debug the main data structures of interrupts by utilizing 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 dump provided in this lecture 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 the various functions supported by the Crash Utility, you can directly debug the kernel's data structures or call stacks.

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

I am the author of the unprecedented! 'Linux Kernel' and 'Arm Architecture (Armv8-A, Armv7-A)' books in the domestic system software field. I am also an active developer who is most well-versed in the latest system software trends (electric vehicles, system semiconductors-system software), and an educator who is most actively engaged in spreading knowledge within the system software field.

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

  • Author of 'The Structure and Principles of Arm Architecture for System Software Development' (2024, National Academy of Sciences Outstanding 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–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&#39; purposes and cannot be modified or distributed for commercial use.

  • If you have any questions while using the TRACE32 educational program for 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 helpful 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.

  • It will be easier to follow the class 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 the system software field, including system semiconductors and electric vehicles (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

56 lectures ∙ (6hr 13min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

6 reviews

5.0

6 reviews

  • ioniakim2638님의 프로필 이미지
    ioniakim2638

    Reviews 9

    Average Rating 4.9

    5

    100% enrolled

    • lord8465님의 프로필 이미지
      lord8465

      Reviews 2

      Average Rating 5.0

      5

      31% enrolled

      • aceoftop1975님의 프로필 이미지
        aceoftop1975

        Reviews 121

        Average Rating 5.0

        5

        100% enrolled

        2024/07/14/Sun 15:27 I really enjoyed the lecture. Thank you.

        • heecheolsong님의 프로필 이미지
          heecheolsong

          Reviews 21

          Average Rating 5.0

          5

          30% enrolled

          • dlrbcnvk님의 프로필 이미지
            dlrbcnvk

            Reviews 19

            Average Rating 4.9

            5

            60% enrolled

            austinkim's other courses

            Check out other courses by the instructor!

            Similar courses

            Explore other courses in the same field!

            $42.90