강의

멘토링

커뮤니티

Security & Network

/

System

Linux Kernel Structure and Principles: Processes [Author's Direct Lecture Part 1-4]

The author of "Learning the Structure and Principles of the Linux Kernel Through Debugging" thoroughly explains the core concepts of processes in the latest Linux kernel (v6.1), which is most widely used in system software.

(5.0) 9 reviews

255 learners

  • austinkim
저자 직강
리눅스커널
임베디드리눅스
프로세스
trace32
Linux
linux-kernel
Operating System
Computer Architecture

Reviews from Early Learners

What you will gain after the course

  • The role of processes in the Linux kernel

  • Basic way a process operates

  • Process's stack structure

  • How to debug a process's various execution flows with TRACE32

  • Process Behavior in Multi-core System Architecture

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.

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 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 system, operating system) 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 likely have experience 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 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, more importantly, what content they should know well for practical work.

The process that beginners learn first in the Linux kernel

What topic do beginners start with when learning the Linux kernel? Most learn about processes. The "Linux Kernel" book starts with processes. Additionally, processes are said to be an essential topic that must be understood along with file systems and memory systems.

What would it feel like when beginners start learning about processes? While processes are considered essential knowledge, they easily become boring. What could be the reason for this? I believe it's because there's no content that can be immediately applied to real projects. Additionally, processes contain a lot of vague content, making them tedious. As a result, even after studying hard, what you've learned doesn't stick around for long.

So in my book 'Structure and Principles of the Linux Kernel', I structured it in various ways so that readers can learn about processes through ftrace debugging practice.

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 the task_struct and thread_info structures that represent processes through Linux kernel memory dumps. Those taking this lecture can download the educational program (TRACE32) and practice directly.

1. TRACE32 simulator program (educational) and 8 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 lecture materials'You can download and directly use the TRACE32 simulator program to debug memory dumps. Additionally, you can download and practice with 8 kernel memory dumps that allow you to debug various process operations (process creation, termination, interrupt context).

2. Easy and detailed explanation of the basic concepts of processes

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 processes along with TRACE32 program's call stack and detailed data structures. You can learn about processes much more efficiently than when studying the Linux kernel alone. Additionally, by analyzing ftrace messages extracted from memory dumps, you can understand the operating principles of processes in a three-dimensional way.

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 processes using memory dumps of the Linux kernel with the TRACE32 simulator, and analyze key kernel operations by loading memory dumps with crash-utility.Especially debugging methods when a process's stack is corrupted or stack overflow occurs are content that even expert-level DevOps company developers don't know well.

You'll learn this kind of content

This explains processes, one of the three major resources in Linux systems, and explains why we need to learn about processes. It provides an easy introduction to the basic concepts of processes.

Explains the execution space of processes and describes why we need to understand processes.

We analyze the basic operations of processes using Crash-Utility and TRACE32 debugging programs.

We analyze the task_struct structure that stores and manages process attribute information using TRACE32 and Crash-Utility debugging programs.

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

Analyzes in detail down to the assembly code level.

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

We use the TRACE32 program to debug in detail the operations of process creation and termination. We explain in detail the data structures of processes and the flow of function calls. (Students can download the TRACE32 program and kernel memory dump uploaded to this course and practice by following along.)

We will analyze interrupt context information of processes where interrupt handlers are executed using the TRACE32 program in detail. We will explain interrupt context while analyzing ftrace messages extracted from the Crash-utility program.

We analyze the data structures of dumps and call stacks along with Linux kernel source code.


Educational TRACE32 program and 8 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 open-source Crash Utility 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/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

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

  • '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 courseMust be 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)

  • 8 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]' course 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 in system software, including system semiconductors and EV (autonomous driving, infotainment).

  • A job seeker aspiring to develop system software in areas such as system semiconductors and electric vehicles.

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

  • Developer from another field seeking to transition into system software

Need to know before starting?

  • OS

  • Computer Architecture

  • C

Hello
This is

6,019

Learners

201

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

71 lectures ∙ (9hr 21min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

9 reviews

5.0

9 reviews

  • heecheolsong님의 프로필 이미지
    heecheolsong

    Reviews 4

    Average Rating 5.0

    5

    100% enrolled

    • redkyo008975님의 프로필 이미지
      redkyo008975

      Reviews 4

      Average Rating 5.0

      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!

        • ioniakim2638님의 프로필 이미지
          ioniakim2638

          Reviews 9

          Average Rating 4.9

          5

          100% enrolled

          • nexgedu18614님의 프로필 이미지
            nexgedu18614

            Reviews 1

            Average Rating 5.0

            5

            30% enrolled

            $42.90

            austinkim's other courses

            Check out other courses by the instructor!

            Similar courses

            Explore other courses in the same field!