강의

멘토링

로드맵

Inflearn brand logo image
Hardware

/

Embedded IoT

Arm Architecture and Linux Kernel Interface - Author's Direct Lecture

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

(4.4) 5 reviews

122 learners

  • austinkim
저자 직강
이론 중심
arm-linux
리눅스커널
운영체제
어셈블리어
Linux
linux-kernel
armv8
ARM Architecture
assembly-language

What you will learn!

  • You can understand the main operating principles that form the Arm architecture (Armv8-A).

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

  • Learn core functions forming the Linux kernel: processes, interrupt handling, system calls, and memory management techniques.

  • Register, exception handling, assembly instructions, TrustZone, and memory management can be analyzed using the Linux kernel source code.

1. 30% discount coupon issued when 300 people sign up

To celebrate reaching 300 students (Part 1 and 2), we are issuing a 30% discount coupon. Thank you. It is for the first 200 people.

2. Roadmap Guide 🎯

This lecture is a roadmap 'Arm - advanced course for system software developers ' This lecture is included in .


If you want to learn Arm architecture (Armv8-A, Armv7-A) systematically , it is recommended to use the roadmap ( 30% discount on all lectures ). For reference, the Arm architecture roadmap (all author lectures) is Basic Course and Advanced Course It consists of two parts.


The most important thing in modern system software
Arm Architecture and the Linux Kernel

The Arm processors used in smartphones, AI SoC system semiconductors, electric vehicles (autonomous driving, infotainment), cloud servers, and MacBooks are all Armv8-A based 64-bit Cortex-A processors (Cortex-A53, Cortex-A57, Cortex-A72, etc.). The Armv8-A architecture can be seen as the most needed basic knowledge in the current system software industry.

In electric vehicles and system semiconductors
The most running operating system kernel

The Linux kernel, along with Arm processors, is used in smartphones, cloud servers, and electric vehicle systems . In addition, most system software developers in the system semiconductor industry (fabless) use the Linux kernel or Linux device drivers to program drivers that control the chips they design .

To recap, the most commonly running operating system kernel on Arm processors is the Linux kernel.

' Interface between Arm architecture and Linux kernel '
4 Reasons Why You Should Learn

1⃣ First, if you are familiar with 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 you can internalize what you have learned by analyzing the source code that implements what you have learned in theory.

2⃣ Second, the core functions of the Linux kernel, such as processes, interrupt handling, system calls, and memory management techniques, are implemented by utilizing the features of the CPU architecture. If you are familiar with the interface between the Arm architecture and the Linux kernel, you can deeply understand the detailed operation of the Linux kernel.

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

4⃣ Fourth, Arm processors and the Linux kernel are used in more than 90% of the products in the system software industry. If you understand how the Linux kernel works on the Arm processor, you can apply what you have learned.

Most system software developed recently is developed in Arm processors and Linux environments, so knowledge related to this is essential.

Based on my experience writing books and giving lectures
More in-depth and detailed than anyone else!

Developers who have attended the author's lecture on 'Arm Architecture Structure and Principles for System Software Development' may be surprised. This is because the Arm architecture lecturer suddenly talks about the Linux kernel. However, I am the author who wrote not only Arm architecture but also Linux kernel books. My main history related to the Linux kernel is as follows.

  • Author of 'Learning the Structure and Principles of the Linux Kernel through Debugging' (2021, Korean Academy of Sciences Outstanding Book Award )

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

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

  • June 2022, Korea Computer Conference (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 'Arm architecture and the Linux kernel interface' better than anyone else.

I recommend this to these people

Job seekers and junior developers in the system SW field, including system semiconductors (fabless) and electric vehicles (autonomous driving, infotainment)

System software developers who want to know how to debug in practice by leveraging the features of the Arm architecture.

College students aiming to advance to graduate school in the field of system software (memory, file system, operating system)

After class

  • Understand the detailed operating principles of the Arm architecture

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

  • Understanding how the Linux kernel implements context scheduling

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

  • Understanding how the Linux kernel implements its memory system

Learn about these things

For students who are not familiar with Linux, this course introduces the overall structure of a Linux system. It explains in detail the three major resources that are important to the Linux kernel.

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

Describes the data structures of a process dependent on the Arm architecture, covering in detail the operating principles, especially the registers involved in context switches.

The behavior of context switching dependent on the Arm architecture is described in detail through assembly instruction analysis.

Explains the flow of interrupt processing in a big picture. The method of handling interrupts is explained in detail through an analysis of the 'Exception Vector Table of the Armv8 Architecture'.

The flow of interrupt handling is explained based on two scenarios (interruption occurring during user application execution, interruption occurring during kernel code execution). Next, the exception handler code (assembly code) is reviewed in detail.

We review the entire execution flow of a system call and explain in detail the contents of the exception vector table related to the system call.

We analyze the SVC instruction routine that is executed when a system call is triggered in user space. Then, we describe in detail the exception handler routine that is executed in kernel space during the process of triggering a system call.

Describes the kernel core APIs that are processed when a system call is triggered (SVC instruction execution) and the system call handler is called in kernel space. It also covers the core symbol information of the system call handler in detail.

This article introduces the main functions of memory management in the Linux kernel and explains memory management-related features that should be known from the perspective of the Arm architecture.

We introduce the config for setting the range of virtual addresses in the Linux kernel. Then, we describe the interface supported for multi-level page tables in the Linux kernel.

This section details the workings of page lookups handled using interfaces supported by the Linux kernel, and the structure of the fixup macro.

Vivid course reviews left by students

<Structure and Principles of Arm Architecture for System Software Development - Part 1/2 Author's Lecture>


Things to note before taking the class

Player Knowledge & Notes 📢

  • We recommend that you first attend the author's lecture (Part 1/2) on 'Structure and Principles of Arm Architecture for System Software Development'.

  • The required knowledge is exception levels, exceptions, AAPCS, and memory management (MMU) of the Arm architecture.

  • It would be good to have a general idea of how Linux works.

  • No in-depth prior knowledge of the Linux kernel is required.

Recommended for
these people

Who is this course right for?

  • System software job seekers and junior developers

  • System SW developer interested in debugging methods leveraging Arm architecture features.

  • Developer from another field looking to transition to system software

  • Undergraduate student aiming for graduate school in the system software field.

Need to know before starting?

  • Computer Architecture

  • Operating System

Hello
This is

5,555

Learners

156

Reviews

85

Answers

4.9

Rating

21

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

25 lectures ∙ (3hr 51min)

Published: 
Last updated: 

Reviews

All

5 reviews

4.4

5 reviews

  • sunny75님의 프로필 이미지
    sunny75

    Reviews 95

    Average Rating 5.0

    5

    100% enrolled

    2024/07/30/화 10:40 강의 잘 들었습니다. 알려 주신 로드맵( Arm basic/advanced )으로 많은 것을 배웠습니다. 모든 강의가 다 좋네요. 들으면서 "와~~" 라고 혼자 엄청 느꼈습니다. 감사합니다. 이젠 남은 강의를 다 들어서, 알려주신 로드맵을 다 들으려고 합니다. 감사합니다.

    • 김현문님의 프로필 이미지
      김현문

      Reviews 2

      Average Rating 4.0

      4

      100% enrolled

      • ej3989님의 프로필 이미지
        ej3989

        Reviews 3

        Average Rating 5.0

        5

        100% enrolled

        • yjjung님의 프로필 이미지
          yjjung

          Reviews 2

          Average Rating 5.0

          5

          32% enrolled

          • 응애님의 프로필 이미지
            응애

            Reviews 5

            Average Rating 3.4

            3

            96% enrolled

            $39.60

            austinkim's other courses

            Check out other courses by the instructor!

            Similar courses

            Explore other courses in the same field!