강의

멘토링

로드맵

Hardware

/

Embedded IoT

Linux Kernel Structure and Principles: Interrupt Bottom Half [Author's Direct Lecture Part 1-6]

The author of 'Linux Kernel Structure and Principles Learned Through Debugging' properly explains the core concept of the 'interrupt bottom half' in the latest Linux kernel (v6.1), most used in system software.

(5.0) 2 reviews

183 learners

  • austinkim
저자 직강
임베디드리눅스
리눅스커널
인터럽트
Operating System
Linux
linux-kernel
ARM Architecture
interrupt

What you will learn!

  • Interrupt's Latter Half: Concepts & Operation

  • Device Driver View: Interrupt Bottom Half Handling

  • Interrupt bottom half handling via threaded IRQ feature

  • Softirq Processing Method and Tasklet

1. 30% discount coupon issued for breaking 500 members🙏

To commemorate breaking 500 students in the Linux kernel course, we are issuing a 30% discount coupon. Thank you. First come, first served for 100 people.

2. Roadmap Guide 🎯

This lecture is a roadmap'Linux kernel - basic course for system software developers'is included in the course.

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

Essential Linux Kernel Knowledge

What is the most widely used operating system across all IT devices? It's the Linux operating system. It is used in smartphones, digital TVs, aviation entertainment systems, and servers. System semiconductor companies utilize Linux (Linux device drivers) to control the hardware they design. Additionally, Linux is extensively used 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 considered the content that requires the most essential foundational knowledge currently needed in the system software industry.

Linux system software developers and Linux embedded system (BSP) programmers, pay attention!

Junior developer in Linux system software fields including system semiconductors and electric vehicle sectors (autonomous driving, infotainment)

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

Graduate school applicants in the field of Linux system software (memory, file systems, operating systems)

Developers from other fields who want to transition their career to Linux system software

However, the Linux kernel is like a massive barrier for beginners in the field of system software. Beginners likely have experienced giving up on learning the Linux kernel multiple times. That difficult Linux kernel is becoming increasingly complex as it evolves through version upgrades.After 2024, the Linux kernel version will be upgraded to v6.6 or higher andHowever, the barriers to entry are becoming higher.

Linux system software developers positioned across various fields including system semiconductors and electric vehicles know that they need to understand the Linux kernel well to enhance their development capabilities. However, it's difficult to get a sense of how to learn the Linux kernel and, more importantly, what content they should know well for practical work.

The Core of the Core in Linux Device Driver Development: Interrupt Bottom Half

When entering as a Linux system software developer, most people develop Linux device drivers, and one of the elements that must be implemented and optimized in this process is interrupts. Interrupt bottom halfis essential content that must be understood along with interruptsHere are a few reasons:

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

  • The main issue with peripheral devices controlled through interrupts is identified in the routines related to the interrupt bottom half - along with the interrupt handler.

So 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

  • Taskrit

I've structured it so that readers can learn interrupt bottom-half techniques through ftrace debugging practice in various ways.

Differentiation Points of the Course

This lecture consists of content that has never been covered on YouTube or any other lecture platform before! We debug the data structures related to Linux kernel interrupt bottom-half techniques and various data structures that make up the Linux kernel (task_struct, thread_info structures) through Linux kernel memory dumps. Students taking this lecture can download an educational program (TRACE32) and practice hands-on.

1. TRACE32 simulator program (educational) and Linux kernel dump provided

Linux system software development extensively uses TRACE32 debugger and related programs. TRACE32 programs require a license to run. If you take this courseEducational TRACE32 simulator program as 'Inflearn course materials'You can download and use the TRACE32 simulator program directly to debug memory dumps. Additionally, you can download and practice with 6 kernel memory dumps that allow you to debug various operations of interrupt bottom-half techniques (threaded IRQ, Softirq).

2. Easy and detailed explanation of the basic concepts of interrupt second-half techniques

When learning the Linux kernel, we analyze kernel source code. However, we encounter many obstacles in the process of analyzing kernel source code. It's difficult to confirm what flow a particular function is called in, and what actual values the data structures of the routines being analyzed have. This lecture dismantles all these obstacles.

We analyze Linux kernel source code related to interrupt bottom-half techniques along with TRACE32 program's call stack and detailed data structures. You can learn interrupt bottom-half techniques much more efficiently than when studying the Linux kernel alone. Additionally, since we analyze ftrace messages extracted from memory dumps, you can understand the operating principles of interrupt bottom-half techniques in detail from a three-dimensional perspective.

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

Recently, the system semiconductor industry has been emerging. 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 crash-utility.

You'll learn this content

Explains the overall flow of interrupt processing and why interrupt bottom-half techniques are necessary.

This introduces the threaded IRQ method, which is widely used as a bottom-half interrupt technique, and explains its core functionality.

Explains the execution flow of the threaded IRQ technique from a big picture perspective and provides detailed explanations of the source code.

This introduces patches related to threaded IRQ and explains how to configure ftrace. It provides detailed explanations of ftrace messages and the execution flow of threaded IRQ techniques.

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

This introduces Softirq and explains why you need to understand Softirq well.

This provides a detailed explanation of the types of Softirq services, which are the core of Softirq, and the step-by-step execution flow.

Softirq service request and execution operations are explained in detail through overall execution flow and source code analysis.

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

This explains Softirq-related ftrace tracepoints and provides detailed analysis of ftrace messages.

Educational TRACE32 (Simulator) program and 6 Linux kernel memory dumps provided

In this lecture, we will explain the data structures and call stack that comprise interrupt bottom-half 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 that can debug 'Linux kernel memory' using debugging programs such as TRACE32 and Crash utility.

You can download the educational TRACE32 program (simulator version) from the course curriculum.Students can debug by loading the kernel memory dump provided in this lecture using the TRACE32 program and following along.

You can directly download the Crash Utility, which is operated as an open source project, to load kernel memory dumps for debugging. By utilizing the various features supported by Crash Utility, you can analyze kernel data structures and call stacks.Direct debuggingYou can do it.

Based on book writing/teaching experience
Deeper and more detailed than anyone else!


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

In the field of domestic system software, this is an unprecedented! author who wrote books on 'Arm Architecture (Armv8-A, Armv7-A)' and 'Linux Kernel' (both books were selected as excellent books by the Korean Academy), and is a global author who was the first in Korea to write the book "Reverse Engineering Armv8-A Systems" (in English) through an overseas publisher (Packt). Above all, they are a working developer who has the best understanding of the latest system software trends (electric vehicles, system semiconductors - system software). They are also an educator who is most actively engaged in knowledge dissemination activities in the field of system software.

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

  • 'Learning Linux Kernel Structure and Principles Through Debugging' (2021 Korea Academy Outstanding Book Award) Author

  • Author of 'Structure and Principles of Arm Architecture for System Software Development' (2024 Korea Academy Outstanding 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 major functions that make up the Linux kernel better than anyone else in Korea.

Pre-enrollment Reference Information

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 'educational purposes' and cannot be modified or distributed for commercial use.

  • If you have any questions while using the TRACE32 educational program for this courseEssential for EducatorsPlease ask a question.

Practice Environment and Provided Course 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)

Prerequisites and Important Notes

  • It would be good if you have a rough understanding of how Linux works.

  • It would be good to listen to the 'Linux Kernel Structure and Principles: Debugging - Basic [Author's Direct Lecture Part 1-2]' lecture first if possible.

  • You can take the class more comfortably if you have knowledge of operating systems or computer architecture.

  • Deep prior knowledge of the Linux kernel is not required.

Recommended for
these people

Who is this course right for?

  • Junior developer aiming to build capabilities in system software, including system semiconductors and EV sector (autonomous driving, infotainment).

  • Aspiring system software developer in fields such as system semiconductors and electric vehicles.

  • University student aspiring to graduate school in the field of system software (memory, file systems, operating systems)

  • A developer from another field looking to transition into system software.

Need to know before starting?

  • C language

  • Computer Architecture

  • Operating System

Hello
This is

5,779

Learners

173

Reviews

89

Answers

4.9

Rating

22

Courses

글로벌 저자 & 리눅스 시스템 소프트웨어 개발자 (Arm, RISC-V 아키텍처)

국내 시스템 소프트웨어 분야에서 전무후무한! 'Arm 아키텍처(Armv8-A, Armv7-A)'와 '리눅스 커널' 책을 쓴 저자(2권의 책 모두 대한민국 학술원 우수도서에 선정)이며, 국내 최초로 해외 출판사(Packt)를 통해 "Reverse Engineering Armv8-A Systems" 책(영어)을 집필한 글로벌 저자입니다. 무엇보다 최신 시스템 소프트웨어 트렌드(전기자동차, 시스템 반도체- 시스템 소프트웨어)를 가장 잘 알고 있는 현업 개발자입니다. 또한 시스템 소프트웨어 분야에서 가장 지식 전파 활동을 활발하게 하는 교육자입니다. 

  • 'Reverse Engineering Armv8-A Systems: A practical guide to Kernel, Firmware, and TrustZone analysis' 책(영어) 저자, (Packt 출판사)

  • '시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리'(2024년, 대한민국 학술원 우수도서상) 저자

  • '디버깅을 통해 배우는 리눅스 커널의 구조와 원리' (2021년, 대한민국 학술원 우수도서상) 저자

  • '프로그래머스 데브 코스: 리눅스 시스템 및 커널 전문가' 메인 강사

  • 2022년 6월, 한국컴퓨터종합학술대회 (KCC2022) - 튜토리얼 발표 [ftrace를 이용해 리눅스 커널 정복하기]

  • LG전자 '리눅스 커널' 및 'Armv8 아키텍처' 사내 강사(국내 및 해외 개발자 포함) - (2020년~현재)

국내에서 어느 누구보다 리눅스 커널과 Arm 아키텍처(Armv8-A, Armv7-A)를 잘 설명할 수 있는 교육자라고 자신있게 말씀드릴 수 있습니다.

강의문의 : austindh.kim@gmail.com

주요 로드맵 🎯

'시스템 소프트웨어 개발자를 위한 Arm - basic course'

'시스템 소프트웨어 개발자를 위한 Arm - advanced course'

시스템 소프트웨어 개발자를 위한 Linux kernel - basic course

Curriculum

All

85 lectures ∙ (10hr 12min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

2 reviews

5.0

2 reviews

  • dlrbcnvk님의 프로필 이미지
    dlrbcnvk

    Reviews 19

    Average Rating 4.9

    5

    61% enrolled

    • aceoftop1975님의 프로필 이미지
      aceoftop1975

      Reviews 102

      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.

      $42.90

      austinkim's other courses

      Check out other courses by the instructor!

      Similar courses

      Explore other courses in the same field!