강의

멘토링

커뮤니티

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

123 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 for Breaking 300 Students

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

2. Roadmap Guide 🎯

This lectureRoad Map'Arm for System Software Developers - Advanced Course'is included in the course.


For those who want to learn Arm architecture (Armv8-A, Armv7-A) systematically, it would be good to utilize the roadmap (30% discount on all courses). For reference, the Arm architecture roadmap (all courses taught directly by the author) isBasic Course andAdvanced CourseIt consists of 2 components.


The most important in modern system software
Arm architecture and Linux kernel

Not only smartphones but also AI SoC system semiconductors, electric vehicle Automotive (autonomous driving, infotainment), and Arm processors used in cloud servers and MacBooks are all Armv8-A based 64-bit Cortex-A processors (Cortex-A53, Cortex-A57, Cortex-A72, etc...). Currently, the content that requires the most needed foundational knowledge in the system software industry can be considered the Armv8-A architecture.

In electric vehicles and system semiconductors
The most widely executed operating system kernel

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

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

'Arm Architecture and Linux Kernel Interface'
4 Reasons Why You Should Learn It

1⃣ First, if you have a good understanding of the interface between Arm architecture and the Linux kernel (assembly instruction analysis), you can better understand the detailed operational mechanisms of Arm architecture. This is because analyzing source code that implements theoretically learned content allows you to internalize what you've learned.

2⃣ Second, the core functions that make up the Linux kernel—processes, interrupt handling, system calls, and memory management techniques—are implemented by leveraging CPU architecture features. Understanding the interface between Arm architecture and the Linux kernel well allows you to gain deep insight into the detailed operations of the Linux kernel.

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

4⃣ Fourth, Arm processors and the Linux kernel are used in over 90% of system software industry products. Understanding how the Linux kernel operates on Arm processors will help you effectively utilize what you've learned.

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

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

Developers who have taken the direct lecture on 'Structure and Principles of Arm Architecture for System Software Development' might find this puzzling. This is because the Arm architecture instructor is suddenly talking about the Linux kernel. However, I am an author who has written not only about Arm architecture but also about the Linux kernel. My major background related to the Linux kernel is as follows:

  • Author of 'Learning Linux Kernel Structure and Principles through Debugging' (2021, Korea Academy of Sciences Excellence in Books Award)

  • 'Structure and Principles of Arm Architecture for System Software Development' (2024 Korea Academy of Sciences Excellence in Books Award) Author

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

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


  • LG Electronics 'Linux Kernel' In-house Instructor (including domestic and overseas developers) - (2020~Present)


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

I recommend this for people like this

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

System software developers who want to know how to debug in practice by utilizing Arm architecture features

Undergraduate student aiming for graduate school admission in the system software field (memory, file systems, operating systems)

After taking the course

  • Understanding the detailed operating principles of Arm architecture

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

  • Understanding the Implementation of Context Scheduling in the Linux Kernel

  • Understanding the Detailed Operation of System Calls and Exception Handlers in the Linux Kernel

  • Understanding the Implementation of Linux Kernel Memory System

You'll learn this kind of content

This introduces the overall structure of the Linux system for students who are not familiar with Linux. It provides detailed explanations of the three major resources that are importantly handled by the Linux kernel.

This explains processes, which are the core of the Linux kernel (user space and kernel space, user processes, kernel threads).

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

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

This explains the flow of interrupt processing from a big picture perspective. It provides a detailed explanation of the interrupt processing method through analysis of the 'Armv8 architecture exception vector table'.

This explains the interrupt processing flow based on two scenarios (interrupt occurring during user application execution, interrupt occurring during kernel code execution). It then provides a detailed review of the exception handler code (assembly code).

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.

We analyze the SVC instruction routine that executes when a system call is triggered from user space. We then provide a detailed explanation of the exception handler routine that runs in kernel space during the system call invocation process.

This explains the core kernel APIs that are processed during the process of calling system call handlers in kernel space after a system call is triggered (SVC instruction execution). It also covers the core symbol information of system call handlers in detail.

Introduces the main functions that constitute memory management in the Linux kernel and explains memory management-related features that should be understood from an Arm architecture perspective.

This introduces the configuration for setting the range of virtual addresses in the Linux kernel. It then explains the interfaces that the Linux kernel supports for multi-level page tables.

This provides a detailed explanation of the operating principles of page lookup processing using interfaces supported by the Linux kernel and the structure of fixup macros.

Authentic reviews from learners


Pre-enrollment Reference Information

Prerequisites and Important Notes 📢

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

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

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

  • You don't need deep prerequisite knowledge about the Linux kernel.

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,836

Learners

183

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

25 lectures ∙ (3hr 51min)

Published: 
Last updated: 

Reviews

All

5 reviews

4.4

5 reviews

  • sunny75님의 프로필 이미지
    sunny75

    Reviews 109

    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 4

        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!