Inflearn brand logo image
Inflearn brand logo image
Inflearn brand logo image
Security & Network

/

System

Linux Kernel Structure and Principles: Debugging - Advanced Practice [Author's Direct Lecture Part 1-3]

The author of "디버깅을 통해 배우는 리눅스 커널의 구조와 원리" properly explains the most advanced kernel memory dump debugging skills for the latest Linux kernel (v6.1), most widely used in system software.

(5.0) 8 reviews

272 learners

  • austinkim
저자 직강
리눅스커널
임베디드리눅스
trace32
Linux
linux-kernel
Operating System
debugging

What you will learn!

  • Debugging Linux kernel memory dump with TRACE32 and Crash Utility programs

  • Various case studies you might encounter during real-world project development

  • boot-time ftrace tracer

  • Run the Crash Utility program to debug the Linux kernel's key data structures

  • Run TRACE32 to debug Linux kernel's key data structures.

<Notice>

1. 30% discount coupon issued when 200 people sign up

To celebrate reaching 200 students (Structure and Principles of the Linux Kernel), we are issuing a 30% discount coupon. Thank you. First-come, first-served basis for the first 200 people.

2. Roadmap Guide 🎯

This lecture <Structure and Principles of the Linux Kernel: Debugging - Advanced Practice [Author's Direct Lecture Part 1-3]> is a roadmap 'Linux kernel - basic course for system software developers' This lecture is included in .

If you want to learn the main features that make up the Linux kernel systematically , we recommend using the roadmap ( 30% discount on all lectures ).

System semiconductors, automotive fields, etc.

Linux Kernel: A Must-Know for System Software Developers


What is the most used operating system in all IT devices? It is the Linux operating system. It is used in smart phones, digital TVs, aviation entertainment systems, and servers. System semiconductor companies use Linux (Linux device drivers) to control the hardware they design. Linux is also widely used 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 considered the most essential foundational knowledge required in the current system software industry.

Attention Linux System Software Developers and Linux Embedded System (BSP) Programmers!

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

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

Applicants for graduate school in the field of Linux system software (memory, file system, operating system)

Developers from other fields who want to transition their careers into Linux system software.

However, the Linux kernel is a huge barrier for beginners in the field of system software. Beginners may have given up several times while learning the Linux kernel. The difficult Linux kernel version is evolving more and more complex as it is upgraded. After 2024, the Linux kernel version will be upgraded to v6.6 or higher , which makes the entry barrier higher.

Linux system software developers who are deployed in various fields including system semiconductors and electric vehicles know that they need to know the Linux kernel well to improve their development capabilities. However, it is difficult to get a sense of how to learn the Linux kernel and, above all, what content they need to know well in practice.

What development skills do Linux system software developers most want to develop?

What practical skill do Linux system software developers want to learn the most? It is debugging skills. Debugging is proportional to problem-solving skills, so they want to improve their debugging skills. There are many blogs and materials about the Linux kernel, but they rarely cover how to systematically solve problems using the latest debugging techniques.

So, in Chapter 3 of my book, 'Learning the Structure and Principles of the Linux Kernel through Debugging', I cover debugging in 'Debugging and Learning Code'.

Differentiating Points of the Lecture

This lecture consists of content that has never been covered on YouTube or any other lecture platform before ! It covers the latest Linux kernel debugging methods and various case studies. It also introduces how to debug kernel data structures through Linux kernel memory dumps. Those who take this lecture can download the educational program (TRACE32) and practice it themselves.

1. A comprehensive overview of debugging methods closest to actual development

The most important job skill that job seekers and new developers want to know is how to debug using which debugging tools. In this lecture, we will introduce how to debug kernel data structures using the most advanced debugging method, 'kernel memory dump'.

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

The system semiconductor industry is on the rise these days. How does Qualcomm, a global system semiconductor company with the best technology, debug Linux kernel drivers?

This is what we will cover in this lecture. We will use the TRACE32 simulator to debug the kernel's data structures, and load the memory dump with crash-utility to analyze the kernel's main operations.

3. Introducing the latest ftrace debugging method, 'boot-time tracer'

As the Linux kernel version is upgraded, debugging methods are also evolving. In ftrace, the 'boot-time tracer' function is proposed, which traces the kernel's operation during the boot process by changing a simple setting. In this lecture, we will introduce various ways to utilize the 'boot-time tracer'.

4. Provides TRACE32 simulator program (for educational purposes) and Linux kernel dumps.

The TRACE32 debugger and program are widely used in the development of Linux system software. The TRACE32 program requires a license to run. If you take this course, you can download the educational TRACE32 simulator program from 'Inflearn lecture materials' and directly use the TRACE32 simulator program to debug memory dumps. You can also download three kernel memory dumps and practice them.

Learn about these things

Explains why dump analysis is necessary in real-world projects. Introduces Crash-Utility and TRACE32, which are widely used in real-world projects.

This article details how to debug real-world projects using Crash-Utility and TRACE32.

We will explain the contents of the book explaining TRACE32 and run TRACE32 directly to debug. While taking the class, you can download the educational TRACE32 program (educational: for simulator) and practice by following along.

This explains how to install and run the TRACE32 (educational, simulator) program uploaded in 'Lecture Materials'. It also explains in detail how to download the kernel memory dump uploaded in 'Lecture Materials' and load the kernel memory dump with the TRACE32 program.


We'll introduce three ways to set up ftrace and detail why you need a boot-time ftrace tracer.

Describes how to set up the boot-time ftrace tracer and analyzes the relevant kernel source code in detail.

We will show you how to set up a boot command line and analyze the relevant ftrace logs in detail. We will show you how to extract kernel logs into ftrace logs and how to analyze the relevant messages.

We will analyze ftrace messages in detail and explain their working principles. We will also analyze the kernel source code related to initcall in detail.

Run the Crash Utility program to debug key data structures in the Linux kernel. Analyze the source code of the relevant kernel drivers and learn more about their working principles.


Debugging a Linux kernel dump with the Crash Utility program explains the detailed operation principles of its related functions.


We introduce various case studies that you can encounter in the process of developing a real project. We analyze related kernel logs and kernel operation principles in detail. We also explain how to solve problems through debugging.


This paper presents a case study on stack pollution and memory leak issues that can be encountered during the development of real-world projects.

Explains the data structures and structures of the memory system of the Linux kernel through Crash Utility debugging.

Describes the main commands (memory address casting) of TRACE32 introduced in the book. Explains in detail how to use the related commands directly with the TRACE32 program.

Describes the symbol information of the system call table and checks the system call handler function information using the TRACE32 command (dv %y.ll sys_call_table). In the following lecture, we will also explain the core data structures of the Linux kernel along with the main commands of TRACE32.

This section explains in detail practical commands (%l option: output register information) used in the process of carrying out real-world projects.

Provides educational TRACE32 program and 3 Linux kernel memory dumps

This lecture introduces the most advanced debugging method in the Linux system software industry - debugging Linux kernel memory dumps by Linux kernel developers at Qualcomm, a world-class system semiconductor company. It provides an advanced debugging method that can 'debug Linux kernel memory' by utilizing debugging programs such as TRACE32 and Crash utility.

You can download the TRACE32 program (simulator version) for educational purposes from the course curriculum. Students can load the kernel memory dump provided in this course with the TRACE32 program and debug it while following along.

You can directly download Crash Utility, which is operated as an open source project, and load kernel memory dumps to debug them. You can directly debug kernel data structures and call stacks by utilizing various functions supported by Crash Utility.

Based on my experience writing books and giving lectures
More in-depth and detailed than anyone else!

The author of the book 'Linux Kernel' and 'Arm Architecture (Armv8-A, Armv7-A)', which is unprecedented in the domestic system software field! He is also a working developer who knows the latest system software trends (electric vehicles, system semiconductors - system software) the best, and an educator who is most active in spreading knowledge in the system software field.

  • Author of 'Learning the Structure and Principles of the Linux Kernel through Debugging' ( 2021, Korean Academy of Sciences Outstanding Book Award )

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

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

  • June 2022, Korea Computer Conference (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 the educator who can explain the major functions that make up the Linux kernel better than anyone else in the country.

Things to note before taking the class

Things to note when using the TRACE32 program

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

  • The TRACE32 educational program may only be used for 'educational purposes' and may not be modified or distributed for commercial purposes.

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

Practical environment and lecture materials provided

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

  • TRACE32 Educational Program and Installation Guide Document (Lecture)

  • 3 Linux Kernel Memory Dumps (vmcore)


Player Knowledge and Notes

  • It would be good to have a general idea of how Linux works.

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

  • If you know about operating systems and computer architecture, you will be able to take the class more easily.

  • No in-depth prior knowledge of the Linux kernel is required.

Recommended for
these people

Who is this course right for?

  • Junior developer wanting to build skills in system software, including system semiconductors and EV (autonomous driving, infotainment).

  • Aspiring job seeker for system software development in system semiconductor and electric vehicle fields.

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

  • Cross-domain developer seeking system software career change

Need to know before starting?

  • Operating System

  • C language

  • Computer Architecture

Hello
This is

5,429

Learners

148

Reviews

84

Answers

4.9

Rating

21

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

42 lectures ∙ (5hr 39min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

8 reviews

5.0

8 reviews

  • sunny75님의 프로필 이미지
    sunny75

    Reviews 94

    Average Rating 5.0

    5

    100% enrolled

    2024/07/30/화 20:25 강의 잘 들었습니다. 지금 김동현님의 로드맵 강의를 다 들었네요. 모든 강의는 새로운 정보와 지식을 제공하고, OOM(out of memory)에서 15일 정도 해결 시간을 잡으라는 말씀에 또 감명을 받았습니다. 직접 경험하신 얘기도 많이 해 주시고, 어려운 linux/arm 에 대해서, 쉽게 설명해 주셔서 감사합니다. 현재 제 나이는 50(75년생)이네요. T.T 젊었을 때, 리눅스 책도 참 많이 사고, 뭔가 노력도 많이 했었는데, 아무런 진도가 되지 않았는데, 김동현님의 강의를 듣고, 정말 많이 알게 되었습니다. 주말에만 시간이 나다가 이번주에 연차를 사용해서 지금 강의를 다 들었습니다. 27일 토요일 부터 지금 까지 너무 급하게 다 들어서, 다시 들어야 할 것 같네요.^^; 수강기간:무제한으로 해 주셔서, 1년 후에도 다시 듣고 싶으면 계속 들을 것 같습니다. 이제 ebook 으로 산 linux/arm 책을 꼼꼼히 읽어 보려고 합니다. 제가 글 제주가 없어서, 제가 느낀 마음을 전달 해 드릴 수가 없네요. 이제 linux에 대해서 조금씩 진도를 나갈 수 있다는 생각이 듭니다. 좋은 강의 감사드립니다. 앞으로도 강의 만드시면, 잘 듣겠습니다. 즐거운 하루 보내세요. 감사합니다.

    • 염재영님의 프로필 이미지
      염재영

      Reviews 2

      Average Rating 5.0

      5

      31% enrolled

      • dlrbcnvk님의 프로필 이미지
        dlrbcnvk

        Reviews 17

        Average Rating 4.9

        5

        62% enrolled

        • 이현진님의 프로필 이미지
          이현진

          Reviews 11

          Average Rating 5.0

          5

          62% enrolled

          • 최민철님의 프로필 이미지
            최민철

            Reviews 1

            Average Rating 5.0

            5

            31% enrolled

            $42.90

            austinkim's other courses

            Check out other courses by the instructor!

            Similar courses

            Explore other courses in the same field!