강의

멘토링

컀뮀니티

Hardware

/

Embedded IoT

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

The author of "Learning the Structure and Principles of the Linux Kernel through Debugging" properly explains the core interrupt concepts of the latest Linux kernel (v6.1), most used in system software.

(5.0) 6 reviews

240 learners

  • austinkim
저자 직강
임베디드늬눅슀
늬눅슀컀널
읞터럜튞
Operating System
Linux
linux-kernel
ARM Architecture
interrupt

What you will gain after the course

  • Basic Concepts and Operating Principles of Interrupts

  • Interrupt handling from a device driver's perspective

  • Arm architecture interrupt handling

  • Data structure managing interrupts

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.

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

2. Roadmap Guide 🎯

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

If you want to learn the major functions that make up the Linux kernel systematically, it would be good to utilize the roadmap (30% discount on all courses).

System semiconductors, automotive sector, etc.

System software developers must know the Linux kernel


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 developers in the Linux system software field, 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

✅ Linux system software field (memory, file systems, operating systems) graduate school applicants

✅ Developers from other fields looking 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 higherHowever, the barriers to entry are becoming higher.

Linux system software developers deployed 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, they find it difficult to grasp how to learn the Linux kernel and, most importantly, what content they should know well for practical work.

The core of Linux device driver development: interrupts

What do you do when you first start as a Linux system software developer? Although it depends on the nature and mission of the project, most developers work on Linux device drivers. When developing Linux device drivers, one of the elements you must implement and optimize is interrupts. Additionally, interrupts are closely related to many major functions that make up the Linux kernel. They are deeply connected with interrupt bottom-half techniques, dynamic timers, preemptive scheduling, and signal operations.

So in Chapter 5 of my book 'Structure and Principles of the Linux Kernel', I explain interrupts. I've structured it so that readers can learn about interrupts through various ftrace debugging exercises.

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 interrupt operation methods and related data structures through Linux kernel memory dumps. Those taking this lecture can download an educational program (TRACE32) and practice directly.

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

TRACE32 debugger and programs are widely used throughout Linux system software development. TRACE32 programs require a license to run. If you take this courseEducational TRACE32 simulator program as 'Inflearn course materials'You can download and directly use the TRACE32 simulator program to debug memory dumps. Additionally, you can download and practice with 6 kernel memory dumps that allow you to debug various interrupt operations (interrupt handler calls, preemption).

2. Easy and detailed explanation of the basic concepts of interrupts

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 we're analyzing have. This lecture dismantles all these obstacles.

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

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

The system semiconductor industry has been emerging recently. How do Qualcomm Linux kernel BSP developers, who possess the best technology among global system semiconductor companies, debug Linux kernel drivers?

This lecture covers this content. We debug kernel data structures related to interrupts 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 kind of content

First, I'll explain how interrupts are handled and describe the flow of interrupt processing from various perspectives.

This provides a detailed explanation of the entire execution flow when interrupts are triggered in the Linux kernel and user applications from the Armv8 architecture perspective.

We analyze the Armv8 exception vector table when interrupts are triggered in the Linux kernel. We then analyze in detail the exception handler routines that are subsequently processed.

We analyze the Armv8 exception vector table when an interrupt is triggered from a user application. We then provide a detailed analysis of the exception handler routine that follows, down to the assembly instruction level.

Analyze the flow of interrupt processing from a big picture perspective and provide detailed explanations of functions executed in the IRQ subsystem (not dependent on Arm architecture).

We analyze interrupt-related data structures using TRACE32 and Crash-utility debugging programs.

I'm debugging the interrupt handler function bcm2835_mmc_irq() using TRACE32. I'll analyze the interrupt handler source code in detail along with the call stack and related data structures.

Introduces interrupt context and explains example code that can check interrupt context.

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

This provides a detailed explanation of how Preemption operates after completing the execution of an interrupt service routine. It also performs detailed debugging of the operations during Preemption using the TRACE32 debugging program.

This introduces how to set up ftrace events to trace interrupt operations. It explains the execution flow of interrupt handlers and the conditions of interrupt context while analyzing ftrace messages in detail.

Detailed analysis of 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 will cover the most advanced debugging method in the Linux system software industry -Global top-tier system semiconductor company, Qualcomm Linux kernel developers debugging- How to debug Linux kernel memory dumps is introduced. You can debug key data structures of interrupts using debugging programs such as TRACE32 and Crash utility.

✅ You can download the educational TRACE32 program (simulator version) from the course curriculum.Students can load the kernel memory dump provided in this lecture using the TRACE32 program and follow along to debug together.

✅ You can directly download the open-source Crash Utility project to load kernel memory dumps for debugging. Using 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!

In the domestic system software field, I am the unprecedented author of the 'Linux Kernel' book and 'Arm Architecture (Armv8-A, Armv7-A)' book. I am also a current industry developer who knows the latest system software trends (electric vehicles, system semiconductors - system software) best, and an educator who is most actively engaged in knowledge dissemination activities in the system software field.

  • '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

  • 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 key 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 courseDefinitely 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 Documentation (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.

  • Having knowledge of operating systems or computer architecture will make it more comfortable to take the class.

  • You don't need deep prerequisite knowledge about the Linux kernel.

Recommended for
these people

Who is this course right for?

  • Junior developer aiming to grow capabilities in the system software field, including system semiconductors and electric vehicle sectors (autonomous driving, infotainment)

  • Aspiring system software developer in system semiconductor and electric vehicle fields.

  • Undergraduate student aiming for graduate school in system software (memory, file systems, operating systems)

  • A developer from another field looking to transition their career to system software

Need to know before starting?

  • C language

  • Computer Architecture

  • Operating System

Hello
This is

6,061

Learners

209

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

56 lectures ∙ (6hr 13min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

6 reviews

5.0

6 reviews

  • heecheolsong님의 프로필 읎믞지
    heecheolsong

    Reviews 9

    ∙

    Average Rating 5.0

    5

    30% enrolled

    • ioniakim2638님의 프로필 읎믞지
      ioniakim2638

      Reviews 9

      ∙

      Average Rating 4.9

      5

      100% enrolled

      • dlrbcnvk님의 프로필 읎믞지
        dlrbcnvk

        Reviews 19

        ∙

        Average Rating 4.9

        5

        60% enrolled

        • lord8465님의 프로필 읎믞지
          lord8465

          Reviews 2

          ∙

          Average Rating 5.0

          5

          31% enrolled

          • aceoftop1975님의 프로필 읎믞지
            aceoftop1975

            Reviews 113

            ∙

            Average Rating 5.0

            5

            100% enrolled

            2024/07/14/日 15:27 講矩は本圓によく聞きたした。 ありがずうございたす。

            $42.90

            austinkim's other courses

            Check out other courses by the instructor!

            Similar courses

            Explore other courses in the same field!