강의

멘토링

커뮤니티

BEST
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) 12 reviews

305 learners

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

What you will gain after the course

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

1. 30% discount coupon issued for breaking 200 participants

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

2. Roadmap Guide 🎯

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

For those who want to learn the main functions that systematically compose the Linux kernel, 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 that make up electric vehicles (Automotive), including 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 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 have likely 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 even higher.

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

What development capabilities do Linux system software developers most want to cultivate?

What is the most practical skill that Linux system software developers want to learn? It's debugging skills. Since debugging is proportional to problem-solving ability, they want to develop their debugging capabilities. While there are many blogs and materials about the Linux kernel, they rarely cover how to systematically solve problems using the latest debugging techniques.

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

Differentiation Points of the Course

This course 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 methods for debugging kernel data structures through Linux kernel memory dumps. Students taking this course can download the educational program (TRACE32) and practice hands-on.

1. Comprehensive debugging methods closest to real-world development

The work skill that job seekers and junior developers want to know most is what debugging tools to use and how to debug with them. In this lecture, we introduce how to debug kernel data structures using 'kernel memory dump', which is the most advanced debugging method.

2. 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 the following content. We will debug the kernel's data structures using the TRACE32 simulator with Linux kernel memory dumps, and analyze the kernel's key operations by loading memory dumps with crash-utility.

3. Introduction to the Latest ftrace Debugging Method 'boot-time tracer'

As the Linux kernel version upgrades, debugging methods are also evolving. In ftrace, a 'boot-time tracer' feature has been proposed that can trace kernel operations during the boot process with just simple configuration changes. This lecture introduces various ways to utilize the 'boot-time tracer'.

4. TRACE32 simulator program (educational) and Linux kernel dump 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 lecture materials'You can download and directly use the TRACE32 simulator program to debug memory dumps. You can also download 3 kernel memory dumps for hands-on practice.

You'll learn this kind of content

This explains why dump analysis is necessary in real-world projects. It introduces Crash-Utility and TRACE32, which are widely used in real-world projects.

This explains in detail how to debug using Crash-Utility and TRACE32 in real-world projects.

This explains the content of a book about TRACE32 while directly running TRACE32 for debugging. While taking the class, you can download the educational TRACE32 program (educational version: for simulator use)You can practice by following along together.

This explains how to install and run the TRACE32 (educational, simulator) program uploaded to 'Course Materials'. It also provides detailed instructions on how to download the kernel memory dump uploaded to 'Course Materials' and load the kernel memory dump using the TRACE32 program.


This introduces 3 methods for configuring ftrace and provides a detailed explanation of why boot-time ftrace tracer is necessary.

Explains how to configure the boot-time ftrace tracer and provides detailed analysis of related kernel source code.

This introduces how to configure boot command line and provides detailed analysis of related ftrace logs. It covers methods for extracting kernel logs as ftrace logs and techniques for analyzing related messages.

Provides detailed analysis of ftrace messages and explains the related operational principles. Also provides detailed analysis of kernel source code related to initcall.

We will run the Crash Utility program to debug the major data structures of the Linux kernel. We will also analyze the related kernel driver source code together to explain the operating principles in detail.


Explains the detailed operating principles of related functions while debugging Linux kernel dumps with the Crash Utility program.


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


This explains case studies of stack corruption and memory leak issues that can be encountered during the development of real-world projects.

This explains the data structures and architecture of the Linux kernel's memory system through Crash Utility debugging.

This explains the main TRACE32 commands (memory address casting) introduced in the book. It provides detailed explanations on how to use related commands directly with the TRACE32 program.

This explains the symbol information of the system call table and uses the TRACE32 command (d.v %y.ll sys_call_table) to check system call handler function information. In the following lectures, we will explain the key commands of TRACE32 along with the core data structures of the Linux kernel.

This provides a detailed explanation of practical commands used in the process of conducting real-world projects (the %l option: outputting register information).

Educational TRACE32 program and 3 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- Introduces how to debug Linux kernel memory dumps. Provides advanced debugging methods for debugging 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 load the kernel memory dump provided in this lecture using the TRACE32 program and follow along to debug together.

✅ You can directly download the Crash Utility, which operates 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/lecture 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 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 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)

  • 3 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 easier to follow 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 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

6,010

Learners

198

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

42 lectures ∙ (5hr 39min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

12 reviews

5.0

12 reviews

  • sunny75님의 프로필 이미지
    sunny75

    Reviews 112

    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에 대해서 조금씩 진도를 나갈 수 있다는 생각이 듭니다. 좋은 강의 감사드립니다. 앞으로도 강의 만드시면, 잘 듣겠습니다. 즐거운 하루 보내세요. 감사합니다.

    • heecheol.song님의 프로필 이미지
      heecheol.song

      Reviews 3

      Average Rating 5.0

      5

      31% enrolled

      • redkyo00님의 프로필 이미지
        redkyo00

        Reviews 4

        Average Rating 5.0

        5

        100% enrolled

        • 박규동님의 프로필 이미지
          박규동

          Reviews 2

          Average Rating 5.0

          5

          100% enrolled

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

            Reviews 9

            Average Rating 4.9

            5

            100% enrolled

            $42.90

            austinkim's other courses

            Check out other courses by the instructor!

            Similar courses

            Explore other courses in the same field!