Arm Architecture and Linux Kernel Interface - Author-led Lecture

The author of "The Structure and Principles of Arm Architecture for System Software Development" will help you master the core of the Arm architecture (Armv8-A) and the Linux kernel interface!

(4.6) 8 reviews

138 learners

Level Intermediate

Course period Unlimited

Linux
Linux
linux-kernel
linux-kernel
armv8
armv8
ARM Architecture
ARM Architecture
assembly-language
assembly-language
Linux
Linux
linux-kernel
linux-kernel
armv8
armv8
ARM Architecture
ARM Architecture
assembly-language
assembly-language

What you will gain after the course

  • You can understand the key operating mechanisms that make up the Arm architecture (Armv8-A).

  • You can understand the interface between the Arm architecture and the Linux kernel (processes, interrupt handling, system calls, and memory management).

  • You can learn the core functions that make up the Linux kernel, such as processes, interrupt handling, system calls, and memory management techniques.

  • Registers, exception handling, assembly instructions, TrustZone, and memory management methods can be analyzed through the source code present in the Linux kernel.

1. Issuance of 30% discount coupon for reaching 300 students

To celebrate surpassing 300 students (Parts 1 and 2), we are issuing a 30% discount coupon. Thank you. Limited to the first 200 people.

2. Roadmap Guide 🎯

This lecture <Arm Architecture and Linux Kernel Interface - Author's Direct Lecture> is included in the roadmap'Arm for System Software Developers - advanced course'.


For those who wish to learn the Arm architecture (Armv8-A, Armv7-A) systematically, it is recommended to take advantage of the roadmap (30% discount on all lectures). For your reference, the Arm Architecture Roadmap (full series taught by the author) consists of two parts: the Basic Course and the Advanced Course..


The most important topics in modern system software:
Arm Architecture and Linux Kernel

Arm processors used in smartphones, AI SoC system semiconductors, electric vehicle automotive systems (autonomous driving, infotainment), cloud servers, and MacBooks are all Armv8-A based 64-bit Cortex-A processors (Cortex-A53, Cortex-A57, Cortex-A72, etc.). It can be said that the Armv8-A architecture is the most essential foundational knowledge currently required in the system software industry.

In electric vehicles and system semiconductors,
the most widely used operating system kernel

Along with Arm processors, the Linux kernel is being used in smartphones, cloud servers, and electric vehicle systems. Furthermore, most system software developers in the system semiconductor industry (fabless) perform driver programming to control their designed chips using the Linux kernel or Linux device drivers.

To summarize once again! The operating system kernel that runs most frequently on Arm processors is, in fact, the Linux kernel.

'The interface between Arm architecture and the Linux kernel'
4 reasons to learn

1⃣ First, if you have a good understanding of the interface between the Arm architecture and the Linux kernel (assembly instruction analysis), you can better understand the detailed operation of the Arm architecture. This is because analyzing the source code where theoretical concepts are implemented allows you to internalize what you have learned.

2⃣ Second, the core functions that make up the Linux kernel—such as processes, interrupt handling, system calls, and memory management techniques—are implemented by utilizing the features of the CPU architecture. By understanding the interface between the Arm architecture and the Linux kernel, you can gain a deep understanding of the Linux kernel's detailed operations.

3⃣ Third, by analyzing registers, exception handling, assembly instructions, TrustZone, and memory management methods through the source code in the Linux kernel, you can learn both the components of the Arm architecture and the Linux kernel together.

4⃣ Fourth, Arm processors and the Linux kernel are used in over 90% of products in the system software industry. By understanding how the Linux kernel operates on Arm processors, you can effectively apply what you have learned.

Since most system software developed recently is created in Arm processor and Linux environments, knowledge related to this is essential.

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

'Structure and Principles of Arm Architecture for System Software Development' Developers who have taken the author's direct lectures might be puzzled. This is because the Arm Architecture instructor is suddenly talking about the Linux kernel. However, I am an author who has written books not only on Arm architecture but also on the Linux kernel. My major career highlights related to the Linux kernel are as follows: lần này đột nhiên lại nói về nhân Linux (Linux kernel). Tuy nhiên, tôi không chỉ là tác giả sách về kiến trúc Arm mà còn là tác giả của sách về nhân Linux. Dưới đây là những kinh nghiệm chính liên quan đến nhân Linux của tôi:

  • 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' (2024, National Academy of Sciences Excellent Scholarly Book Award) 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' In-house Instructor (including domestic and overseas developers) - (2020–Present)


As the instructor of this course, I am confident that I can explain the 'interface between Arm architecture and the Linux kernel' better than anyone else.

Recommended for these people

Job seekers and junior developers in system software fields, including system semiconductors (fabless) and electric vehicles (autonomous driving, infotainment)

System software developers who want to learn how to perform practical debugging using Arm architecture features

University students aiming to enter graduate school in the field of system software (memory, file systems, operating systems)

After taking the course

  • Understand the detailed operating principles of the Arm architecture

  • Understand how the major subsystems of the Linux kernel are implemented by utilizing the features of the Arm architecture.

  • Understanding how context scheduling is implemented in the Linux kernel

  • Understanding the detailed operation of Linux kernel system calls and exception handlers

  • Understand how the Linux kernel's memory system is implemented

What you will learn

For students who are not familiar with Linux, we introduce the overall structure of the Linux system. We provide a detailed explanation of the three major resources that are handled with importance in the Linux kernel.

Explains the core of the Linux kernel: processes (user space and kernel space, user processes, and kernel threads).

It explains the data structures of processes that are dependent on the Arm architecture. In particular, it covers the operating principles in detail, focusing on registers related to context switching.

Explains the operation of context switching dependent on the Arm architecture in detail through assembly instruction analysis.

Explains the flow of interrupt processing from a big-picture perspective. It provides a detailed explanation of how interrupts are handled by analyzing the 'Armv8 architecture exception vector table.'

Explains the flow of interrupt processing based on two scenarios (interrupt occurring during user application execution and interrupt occurring during kernel code execution). Subsequently, provides a detailed review of the exception handler code (assembly code).

We will review the overall execution flow of system calls and provide a detailed explanation of the contents of the exception vector table related to system calls.

Analyze the SVC instruction routine executed when a system call is triggered in user space. Subsequently, explain in detail the exception handler routine executed in kernel space during the system call triggering process.

It explains the core kernel APIs processed during the sequence where the system call handler is called in kernel space after a system call is triggered (execution of the SVC instruction). Additionally, it covers the core symbol information of the system call handler in detail.

This section introduces the key functions that constitute memory management in the Linux kernel and explains memory management-related features that should be understood from an Arm architecture perspective.

We introduce the configuration for setting the virtual address range in the Linux kernel. Next, we explain the interfaces supported by the Linux kernel for multi-level page tables.

It explains in detail the operating principles of page lookup processed using interfaces supported by the Linux kernel, as well as the structure of fixup macros.

Vivid course reviews left by learners

<Arm Architecture: Structure and Principles for System Software Development - Part 1/2 Author-led Lecture>


Notes before taking the course

Prerequisites and Notices 📢

  • It is recommended that you first take the course 'Structure and Principles of Arm Architecture for System Software Development' (Parts 1 & 2) taught by the author.

  • Prerequisite knowledge includes Arm architecture exception levels, exceptions, AAPCS, and memory management (MMU).

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

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

Recommended for
these people

Who is this course right for?

  • Job seekers and junior developers in the field of system software

  • System SW developers who want to learn debugging methods utilizing the features of the Arm architecture

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

  • An undergraduate student aiming to go to graduate school in the field of system software

Need to know before starting?

  • Computer Architecture

  • Operating System

Hello
This is austinkim

6,507

Learners

262

Reviews

102

Answers

4.9

Rating

23

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
Published: 
Last updated: 

Reviews

All

8 reviews

4.6

8 reviews

  • llon44518288님의 프로필 이미지
    llon44518288

    Reviews 10

    Average Rating 4.9

    5

    100% enrolled

    I was able to learn the content easily thanks to your clear explanation. Thank you.

    • aceoftop1975님의 프로필 이미지
      aceoftop1975

      Reviews 122

      Average Rating 5.0

      5

      100% enrolled

      2024/07/30/Tue 10:40 I listened to the lecture well. I learned a lot from the roadmap (Arm basic/advanced) you gave me. All the lectures are good. I felt "Wow~~" while listening to it. Thank you. Now I will listen to the remaining lectures and listen to the roadmap you gave me. Thank you.

      • jangmh7595님의 프로필 이미지
        jangmh7595

        Reviews 4

        Average Rating 5.0

        5

        32% enrolled

        • heecheolsong님의 프로필 이미지
          heecheolsong

          Reviews 24

          Average Rating 5.0

          5

          32% enrolled

          • 16225864175님의 프로필 이미지
            16225864175

            Reviews 6

            Average Rating 5.0

            5

            100% enrolled

            austinkim's other courses

            Check out other courses by the instructor!

            Similar courses

            Explore other courses in the same field!