강의

멘토링

커뮤니티

BEST
Security & Network

/

System

Linux Kernel Structure and Principles: Debugging - Basic [Author's Direct Lecture Part 1-2]

The author of "Learning Linux Kernel Structure and Principles Through Debugging" clearly explains the basic debugging features and methods of the latest Linux kernel (v6.1), most widely used in system software.

(4.6) 15 reviews

385 learners

Level Basic

Course period Unlimited

  • austinkim
Linux
Linux
linux-kernel
linux-kernel
Operating System
Operating System
debugging
debugging
ftrace
ftrace
Linux
Linux
linux-kernel
linux-kernel
Operating System
Operating System
debugging
debugging
ftrace
ftrace

Reviews from Early Learners

Reviews from Early Learners

4.6

5.0

anhae11

62% enrolled

He teaches difficult content in an easy-to-understand way!

5.0

kech611961

32% enrolled

Good job!

5.0

sunny75

100% enrolled

2024/07/30/Tue 15:35 I listened to the lecture well. Thank you for explaining debugging well. I didn't listen to the debugging lecture, but I listened to other lectures first, and I wondered what the logs I was analyzing would look like, but I learned that it's better to listen to the lectures in order, just like the roadmap you gave me. I learned that I can analyze the Linux kernel well through debugging while listening to the lecture. Thank you always for creating good lectures.

What you will gain after the course

  • Why debugging is important in real-world projects and the actual debugging process

  • Methods to improve debugging skills and issue types in real-world projects

  • printk and dump_stack() for kernel debugging

  • How to design a device driver and create a debugging patch using printk

  • How to use and set up Ftrace

  • Linux kernel's main workings via Ftrace messages of various events

1,500 Students Milestone 30% Discount Coupon Released

To commemorate reaching 500 students (Linux Kernel Structure and Principles), we are issuing a 30% discount coupon. Thank you. Limited to the first 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 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.

Linux Kernel That System Software Developers Must Know


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

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

✅ Linux system software field including system semiconductors and electric vehicle sectors (autonomous driving, infotainment) for junior developers

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 system, operating system) 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 with 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 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 grasp how to learn the Linux kernel and, more importantly, what content they need to know well in practical work.

The Reality of Entry-Level or Junior Embedded Linux System Developers

New or junior embedded Linux system developers struggle the most during the problem-solving process. What could be the reason for this?

1. Lack of debugging-related materials

In various software fields including web development, development environments for debugging are relatively well-established. Additionally, there are many lectures and books for beginners, so you don't experience many trial and error when learning debugging methods. However, in Linux system software development, while there are debugging-related materials, most are development documents that are difficult for beginners to digest.

2. Difficulty getting help with debugging

How do you debug Linux system software-related projects? Most of the time, you analyze kernel logs or memory dumps. What abilities are required to properly analyze logs or dumps? You need the ability to read and understand Linux kernel source code or grasp the operating principles of processes and interrupts. However, in real projects, senior developers with these abilities are rare, and even if you're lucky enough to have a developer who is good at debugging, most are too busy to provide detailed and kind explanations.

3. It's difficult to understand why debugging is done

Regardless of the field, most people know that debugging is a core competency for developing problem-solving skills. However, many job seekers as well as junior Linux system software developers often don't understand why debugging is necessary in real-world projects. They also feel frustrated because it's difficult to know what they need to prepare to become good at debugging. Moreover, when they are assigned bugs or issues during real-world projects, they are likely to repeat trial and error because they don't even know how to start analyzing. This eventually leads to endless overtime work, and they end up blaming themselves for lacking aptitude in the Linux system software field.

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

So what is the practical skill that Linux system software developers want to learn most? It's debugging skills. Since debugging is proportional to problem-solving ability, they want to improve 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 'Debugging and Code Learning' section, I cover content about debugging.This lecture is a direct lecture by the author of 'Linux Kernel Structure and Principles Learned Through Debugging' and covers the content of Chapter 3 of the book.Additionally, it explains practical debugging methods not covered in books.

You'll learn this kind of content

This explains in detail why debugging is important in real-world projects and the actual debugging process.

This introduces various methods to improve debugging skills and types of issues that can arise in real-world projects.

It provides a detailed explanation of the kernel debugging process by referencing cases most similar to real-world projects.

This provides a detailed explanation of how to debug the kernel using printk and dump_stack(). It also includes explanations of related reference code.

We will conduct hands-on practice analyzing kernel logs on an actual Raspberry Pi. We will also load memory dumps using the Crash Utility program to open and analyze kernel logs in detail.

This explains in detail how to design device drivers using printk and create debugging patches.

This explains Ftrace, a core debugging feature provided by the Linux kernel. It provides detailed explanations of how to utilize Ftrace and how to configure it.

This provides a detailed explanation of Ftrace messages. In particular, it conducts a detailed analysis of stack traces that can help identify the call flow of functions.

This explains how to analyze kernel source code through Ftrace messages and describes various Ftrace events.

This explains how to configure Ftrace directly on a Raspberry Pi and describes the Ftrace configuration methods. It also covers extracting Ftrace logs and analyzing Ftrace messages from various events.


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

In the domestic system software field, I am the author who wrote the unprecedented! 'Linux Kernel' book and 'Arm Architecture (Armv8-A, Armv7-A)' book. I am also a current 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 'Linux kernel debugging features' and 'troubleshooting methods' better than anyone else in Korea.

Pre-enrollment Reference Information

Practice Environment

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

Prerequisites and Important Notes

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

  • 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 seeking to grow capabilities in system software, including system semiconductors and EV (autonomous driving, infotainment).

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

  • Undergraduate student aiming to pursue graduate studies in system software (memory, file systems, operating systems)

  • Developer from another field transitioning to system software

  • A developer who wants to enhance debugging skills as a Linux system software developer

  • Developer seeking Linux system software troubleshooting process

Need to know before starting?

  • C language

  • Computer Architecture

  • Operating System

Hello
This is

6,220

Learners

233

Reviews

93

Answers

4.9

Rating

22

Courses

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

A global author who has written unprecedented books on 'Arm Architecture (Armv8-A, Armv7-A)' and the 'Linux Kernel' in the domestic system software field (both books were selected as Excellent Academic Books by the National Academy of Sciences of the Republic of Korea), and is the first in Korea to author the book (in English) "Reverse Engineering Armv8-A Systems" through an international publisher (Packt). Above all, he is an active developer who is most well-versed in the latest system software trends (electric vehicles, system semiconductors-system software). He is also an educator who is most actively engaged in spreading knowledge within the system software field.

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

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

  • Author of 'Structure and Principles of the Linux Kernel Learned Through Debugging' (2021, National Academy of Sciences Outstanding Scholarly Book Award)

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

  • June 2022, Korea Computer Congress (KCC2022) - Tutorial Presentation [Conquering the Linux Kernel Using ftrace]

  • LG Electronics 'Linux Kernel' and 'Armv8 Architecture' internal instructor (including domestic and overseas developers) - (2020–Present)

I can confidently say that I am an educator who can explain the Linux kernel and Arm architecture (Armv8-A, Armv7-A) better than anyone else in Korea.

Lecture Inquiries: austindh.kim@gmail.com

Main Roadmap 🎯

'Arm for System Software Developers - basic course'

'Arm for System Software Developers - advanced course'

Linux kernel for system software developers - basic course

Curriculum

All

34 lectures ∙ (4hr 35min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

15 reviews

4.6

15 reviews

  • minseoblee6235님의 프로필 이미지
    minseoblee6235

    Reviews 1

    Average Rating 5.0

    5

    100% enrolled

    • cms15751340님의 프로필 이미지
      cms15751340

      Reviews 2

      Average Rating 5.0

      5

      100% enrolled

      • redkyo008975님의 프로필 이미지
        redkyo008975

        Reviews 4

        Average Rating 5.0

        5

        100% enrolled

        • kdpark5057님의 프로필 이미지
          kdpark5057

          Reviews 2

          Average Rating 5.0

          5

          62% enrolled

          • wodud0432886님의 프로필 이미지
            wodud0432886

            Reviews 3

            Average Rating 5.0

            5

            100% enrolled

            $26.40

            austinkim's other courses

            Check out other courses by the instructor!

            Similar courses

            Explore other courses in the same field!