강의

멘토링

커뮤니티

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) 5 reviews

228 learners

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

What you will learn!

  • 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

5,836

Learners

183

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

5 reviews

5.0

5 reviews

  • ionia.kim님의 프로필 이미지
    ionia.kim

    Reviews 9

    Average Rating 4.9

    5

    100% enrolled

    • dlrbcnvk님의 프로필 이미지
      dlrbcnvk

      Reviews 19

      Average Rating 4.9

      5

      60% enrolled

      • 최영주님의 프로필 이미지
        최영주

        Reviews 2

        Average Rating 5.0

        5

        31% enrolled

        • sunny75님의 프로필 이미지
          sunny75

          Reviews 109

          Average Rating 5.0

          5

          100% enrolled

          2024/07/14/일 15:27 강의 정말 잘 들었습니다. 감사합니다.

          • 김경민님의 프로필 이미지
            김경민

            Reviews 1

            Average Rating 5.0

            5

            60% enrolled

            $42.90

            austinkim's other courses

            Check out other courses by the instructor!

            Similar courses

            Explore other courses in the same field!