inflearn logo

Structure and Principles of the Linux Kernel: Process [Author's Lecture Part 1-4]

The author of "Learning the Structure and Principles of the Linux Kernel Through Debugging" provides a thorough explanation of core process concepts in the latest Linux kernel (v6.1), which is most widely used in system software.

(5.0) 9 reviews

269 learners

Level Basic

Course period Unlimited

trace32
trace32
Linux
Linux
linux-kernel
linux-kernel
Operating System
Operating System
Computer Architecture
Computer Architecture
trace32
trace32
Linux
Linux
linux-kernel
linux-kernel
Operating System
Operating System
Computer Architecture
Computer Architecture

Reviews from Early Learners

Reviews from Early Learners

5.0

5.0

염재영

97% enrolled

I think the detailed lecture content for review purposes is very good! :) When I look at actual BSP work, I do a lot of kernel log analysis and crash issue analysis and tracking using TRACE32, so considering that, I think this is a great lecture!

5.0

김건우

30% enrolled

Okay.

5.0

sunny75

100% enrolled

2024/07/13/Sat 21:07 I really enjoyed the Linux lecture. Thank you.

What you will gain after the course

  • The role of processes in the Linux kernel

  • Basic operating principles of a process

  • Structure of a process stack

  • How to debug various execution flows of a process with TRACE32

  • How processes operate in a multi-core system architecture

<Notice>

1. Issuing a 30% discount coupon to celebrate reaching 500 students🙏

To celebrate surpassing 500 students for the Linux Kernel course, we are issuing a 30% discount coupon. Thank you. Limited to the first 100 people.

2.Roadmap Guide 🎯

This lecture, <Structure and Principles of the Linux Kernel: Processes [Author's Lecture Part 1-4]>, is included in the roadmap 'Linux kernel - basic course for system software developers'.

If you want to learn the key functions that make up the Linux kernel systematically, it is recommended to use the roadmap (30% discount on all courses).

System semiconductor, automotive fields, etc.

Linux Kernel: A Must-Know for System Software Developers


What is the most widely used operating system across all IT devices? It is the Linux operating system. It is used in smartphones, digital TVs, in-flight entertainment systems, and servers. System semiconductor companies use Linux (Linux device drivers) to control the hardware they design. Furthermore, Linux is extensively utilized 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 seen as the area requiring the most essential foundational knowledge currently in demand within the system software industry.

Attention Linux system software developers and Linux embedded system (BSP) programmers!

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

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

Aspiring graduate students in the field of Linux system software (memory, file systems, operating systems)

Developers from other fields who want to switch their career to the Linux system software field

However, the Linux kernel is like a massive barrier for beginners in the field of system software. Many beginners have likely experienced giving up multiple times while trying to learn it. As the already difficult Linux kernel versions upgrade, it is evolving to become increasingly complex. Since 2024, Linux kernel versions have been upgrading to v6.6 and above, and the barrier to entry is rising even higher.

Linux system software developers across various fields, including system semiconductors and electric vehicles, know that they must understand the Linux kernel well to enhance their development capabilities. However, it is difficult to get a sense of how to learn the Linux kernel and, more importantly, which specific topics are essential for practical work.

Processes, the first thing beginners learn in the Linux kernel

Where do beginners start when learning the Linux kernel? Most of them learn about processes. 'Linux Kernel' books usually begin with processes. Furthermore, processes are considered a must-know topic along with file systems and memory systems.

How do beginners feel when they start learning about processes? Processes are considered essential knowledge, but they easily become boring. Why is that? I believe it's because there isn't much content that can be applied immediately to real-world projects. Furthermore, processes involve many vague concepts, which leads to boredom. Ultimately, even after studying hard, the material doesn't stick for long.

That is why in my book, 'The Structure and Principles of the Linux Kernel,' I have organized the content so that readers can learn about processes through various ftrace debugging exercises.

Key Differentiators of the Lecture

This course consists of content that has never been covered on YouTube or any other lecture platform before! We will debug the task_struct and thread_info structures, which represent processes, through Linux kernel memory dumps. Those taking this course can download the educational program (TRACE32) and practice directly.

1. TRACE32 simulator program (for educational use) and 8 Linux kernel dumps provided

TRACE32 debuggers and programs are widely used throughout Linux system software development. The TRACE32 program requires a license to run. By taking this course, you can download the educational TRACE32 simulator program from the 'Inflearn Course Materials' and use it to debug memory dumps yourself. Additionally, you can download and practice with 8 kernel memory dumps that allow you to debug various process behaviors (process creation, termination, and interrupt context).

2. Explaining the basic concepts of processes easily and in detail

When learning the Linux kernel, you analyze the kernel source code. However, you encounter many obstacles during this process. It is difficult to determine the flow in which a specific function is called or to verify the actual values within the data structures of the routine you are analyzing. This lecture removes all of those obstacles.

We analyze the Linux kernel source code related to processes alongside TRACE32 program call stacks and detailed data structures. You can learn about processes much more efficiently than studying the Linux kernel on your own. Furthermore, by analyzing ftrace messages extracted from memory dumps, you can grasp the operational principles of processes from a multi-dimensional perspective.

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

Recently, the system semiconductor industry has been on the rise. How do Linux kernel BSP developers at Qualcomm, who possess the top technological prowess among global system semiconductor companies, debug Linux kernel drivers?

This lecture covers the following content. We will debug kernel data structures related to processes using the TRACE32 simulator with Linux kernel memory dumps, and analyze key kernel operations by loading memory dumps with crash-utility. In particular, debugging methods for when a process stack is corrupted or a stack overflow occurs are topics that even developers at top-tier fabless companies are often unfamiliar with.

What you will learn

It explains the process, one of the three major resources of the Linux system, and why it is necessary to learn about it. It provides an easy introduction to the basic concepts of a process.

Explains the execution space of a process and the reasons why it is necessary to understand processes.

Analyze the basic behavior of processes using Crash-Utility and TRACE32 debugging programs.

Analyze the task_struct structure, which stores and manages process attribute information, using TRACE32 and Crash-Utility debugging programs.

Explains the current macro, which is widely used in various functions and subsystems of the Linux kernel. The kernel source code

Analyze in detail down to the assembly code level.

Explains the flow of process execution in a multi-core system architecture. It also explains the related data structures.

Use the TRACE32 program to debug the process creation and termination operations in detail. We will explain the process data structures and function call flows in depth. (Students can practice by downloading the TRACE32 program and kernel memory dump uploaded to this lecture.)

Using the TRACE32 program, we will conduct a detailed analysis of the interrupt context information of the process where the interrupt handler is executed. We will also explain the interrupt context while analyzing ftrace messages extracted from the Crash-utility program.

Analyze the data structures and call stacks of the dump along with the Linux kernel source code.


Educational TRACE32 program and 8 Linux kernel memory dumps provided

In this lecture, we introduce the most advanced debugging method in the Linux system software industry—the way Linux kernel developers at Qualcomm, a world-class system semiconductor company, perform debugging—which is how to debug Linux kernel memory dumps. We provide advanced debugging techniques to debug Linux kernel memory using debugging programs such as TRACE32 and the Crash utility.

✅ You can download the educational TRACE32 program (simulator version) from the course curriculum. Students can use the TRACE32 program to load the kernel memory dumps provided in this course and follow along with the debugging process.

✅ You can directly download the Crash Utility, which is operated as an open-source project, and debug by loading kernel memory dumps. By utilizing the various functions supported by the Crash Utility, you can directly debug the kernel's data structures or call stacks.

Based on my experience writing books and lecturing,
deeper and more detailed than anyone else!

I am the author of the unprecedented books on the 'Linux Kernel' and 'Arm Architecture (Armv8-A, Armv7-A)' in the domestic system software field. I am also an active developer who is well-versed in the latest system software trends (electric vehicles, system semiconductors-system software), as well as an educator who is most actively engaged in spreading knowledge within the system software field.

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

  • 'Structure and Principles of Arm Architecture for System Software Development' (2023) Author

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

  • 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–2024)


I can confidently say that I am an educator who can explain the core functions of the Linux kernel better than anyone else in Korea.

Notes before taking the course

Precautions when using the TRACE32 program

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

  • The TRACE32 educational program is intended for &#39;educational use&#39; only and may not be modified or distributed for commercial purposes.

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

Practice Environment and Provided Lecture Materials

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

  • TRACE32 Educational Program and Installation Guide Document (Lecture)

  • 8 Linux kernel memory dumps (vmcore)

Prerequisite Knowledge and Precautions

  • It is helpful to have a general understanding of how Linux operates.

  • It is recommended that you take the 'Structure and Principles of the Linux Kernel: Debugging - Basic [Author's Lecture Part 1-2]' course first if possible.

  • It will be easier to follow the class if you have knowledge of operating systems or computer architecture.

  • In-depth prior knowledge of the Linux kernel is not required.

Recommended for
these people

Who is this course right for?

  • A junior developer who wants to build expertise in the system software field, including system semiconductors and electric vehicles (autonomous driving, infotainment).

  • A job seeker who wants to develop system software in fields such as system semiconductors and electric vehicles

  • An undergraduate student aiming to pursue graduate studies in the field of system software (memory, file systems, operating systems).

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

Need to know before starting?

  • Operating System

  • Computer Architecture

  • C Language

Hello
This is austinkim

6,316

Learners

241

Reviews

96

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

More

Curriculum

All

71 lectures ∙ (9hr 21min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

9 reviews

5.0

9 reviews

  • ioniakim2638님의 프로필 이미지
    ioniakim2638

    Reviews 9

    Average Rating 4.9

    5

    100% enrolled

    • wodud0432886님의 프로필 이미지
      wodud0432886

      Reviews 3

      Average Rating 5.0

      5

      97% enrolled

      I think the detailed lecture content for review purposes is very good! :) When I look at actual BSP work, I do a lot of kernel log analysis and crash issue analysis and tracking using TRACE32, so considering that, I think this is a great lecture!

      • redkyo008975님의 프로필 이미지
        redkyo008975

        Reviews 4

        Average Rating 5.0

        5

        100% enrolled

        • heecheolsong님의 프로필 이미지
          heecheolsong

          Reviews 21

          Average Rating 5.0

          5

          100% enrolled

          • nexgedu18614님의 프로필 이미지
            nexgedu18614

            Reviews 1

            Average Rating 5.0

            5

            30% enrolled

            austinkim's other courses

            Check out other courses by the instructor!

            Similar courses

            Explore other courses in the same field!

            $42.90