Kiến trúc Arm và giao diện nhân Linux - Giảng dạy trực tiếp của tác giả

Tác giả của "시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리" sẽ giúp bạn nắm bắt chính xác cốt lõi của kiến trúc Arm (Armv8-A) và giao diện nhân Linux!

(4.6) 수강평 7개

강의소개.상단개요.수강생.short

난이도 중급이상

수강기한 무제한

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

강의상세_배울수있는것_타이틀

  • Có thể hiểu các phương thức hoạt động chính tạo nên Kiến trúc Arm (Armv8-A).

  • Có thể hiểu giao diện của kiến trúc Arm và nhân Linux (tiến trình, xử lý ngắt, lời gọi hệ thống, quản lý bộ nhớ).

  • Bạn có thể học các chức năng cốt lõi cấu thành kernel Linux như: tiến trình, xử lý ngắt, lời gọi hệ thống và kỹ thuật quản lý bộ nhớ.

  • Thanh ghi, xử lý ngoại lệ, lệnh assembly, TrustZone và phương pháp quản lý bộ nhớ có thể được phân tích bằng mã nguồn hiện có trong nhân Linux.

1. Phát hành coupon giảm giá 30% khi vượt qua 300 người

Để kỷ niệm việc vượt qua 300 học viên (phần 1,2), chúng tôi phát hành coupon giảm giá 30%. Cảm ơn các bạn. Chỉ dành cho 200 người đầu tiên.

2. Hướng dẫn lộ trình 🎯

Bài giảng nàyLộ trình'Arm cho nhà phát triển phần mềm hệ thống - khóa học nâng cao'được bao gồm trong khóa học.


Những ai muốn học kiến trúc Arm (Armv8-A, Armv7-A) một cách có hệ thống nên sử dụng lộ trình học (giảm giá 30% toàn bộ khóa học). Tham khảo, lộ trình kiến trúc Arm (toàn bộ khóa học trực tiếp từ tác giả) làBasic CourseKhóa học Nâng caoĐược cấu thành từ 2 phần.


Quan trọng nhất trong phần mềm hệ thống hiện đại
Kiến trúc Arm và nhân Linux

Smartphone cũng như SoC hệ thống bán dẫn cho AI, ô tô điện Automotive (tự lái, infotainment) và bộ xử lý Arm được sử dụng trong máy chủ cloud và MacBook đều là bộ xử lý Cortex-A 64-bit dựa trên Armv8-A (Cortex-A53, Cortex-A57, Cortex-A72, v.v...). Có thể nói rằng kiến thức nền tảng được yêu cầu nhiều nhất trong ngành phần mềm hệ thống hiện tại chính là kiến trúc Armv8-A.

Trong xe điện, bán dẫn hệ thống
Kernel hệ điều hành được thực thi nhiều nhất

Bộ xử lý Arm cùng với kernel Linux đang được sử dụng trong điện thoại thông minh, máy chủ đám mây và hệ thống xe điện. Ngoài ra, các nhà phát triển phần mềm hệ thống trong ngành bán dẫn hệ thống (fabless) chủ yếu thực hiện lập trình driver để điều khiển chip mà họ thiết kế bằng cách sử dụng kernel Linux hoặc device driver Linux.

Tóm lại một lần nữa! Kernel của hệ điều hành chạy nhiều nhất trên bộ xử lý Arm chính là Linux kernel.

'Giao diện giữa kiến trúc Arm và nhân Linux' -
4 lý do tại sao bạn cần học

1⃣ Thứ nhất, nếu hiểu rõ giao diện giữa kiến trúc Arm và kernel Linux (phân tích lệnh assembly), bạn có thể hiểu rõ hơn về cách thức hoạt động chi tiết của kiến trúc Arm. Bởi vì việc phân tích mã nguồn đã triển khai những nội dung học được từ lý thuyết sẽ giúp bạn nội hóa kiến thức đã học.

2⃣ Thứ hai, các chức năng cốt lõi tạo nên kernel Linux như process, xử lý interrupt, system call, kỹ thuật quản lý bộ nhớ đều được triển khai bằng cách tận dụng các Feature của kiến trúc CPU. Nếu hiểu rõ giao diện giữa kiến trúc Arm và kernel Linux, bạn có thể nắm bắt sâu sắc các hoạt động chi tiết của kernel Linux.

3⃣ Thứ ba, bằng cách phân tích register, exception handling, assembly instruction, trust zone và phương thức quản lý bộ nhớ thông qua source code có sẵn trong Linux kernel, bạn có thể học đồng thời về nội dung cấu thành kiến trúc Arm và Linux kernel.

4⃣ Thứ tư, bộ vi xử lý Arm và nhân Linux được sử dụng trong hơn 90% các sản phẩm trong ngành phần mềm hệ thống. Nếu hiểu được cách thức hoạt động của nhân Linux trên bộ vi xử lý Arm, bạn có thể ứng dụng tốt những kiến thức đã học.

Hầu hết các phần mềm hệ thống được phát triển gần đây đều được phát triển trên bộ vi xử lý Arm và môi trường Linux, vì vậy kiến thức liên quan đến điều này là điều bạn nhất định phải biết.

Dựa trên kinh nghiệm viết sách/giảng dạy
Sâu sắc và chi tiết hơn ai hết!

'Cấu trúc và nguyên lý của kiến trúc Arm để phát triển phần mềm hệ thống' - các nhà phát triển đã tham gia khóa học trực tiếp của tác giả có thể thấy thắc mắc. Bởi vì lần này giảng viên kiến trúc Arm đột nhiên nói về Linux kernel. Tuy nhiên, tôi không chỉ là tác giả viết về kiến trúc Arm mà còn viết cả sách về Linux kernel. Các thành tích chính liên quan đến Linux kernel như sau

  • Tác giả của 'Cấu trúc và nguyên lý của Linux kernel thông qua debugging' (2021, Giải thưởng sách xuất sắc của Viện Hàn lâm Khoa học Hàn Quốc)

  • 'Cấu trúc và Nguyên lý của Kiến trúc Arm cho Phát triển Phần mềm Hệ thống' (2024, Giải thưởng Sách Xuất sắc của Viện Hàn lâm Khoa học Hàn Quốc) tác giả

  • Giảng viên chính của 'Programmers Dev Course: Chuyên gia hệ thống Linux và kernel'

  • Tháng 6 năm 2022, Hội nghị Khoa học Máy tính Tổng hợp Hàn Quốc (KCC2022) - Thuyết trình Tutorial
    [Chinh phục Linux Kernel bằng ftrace]


  • LG Electronics - Giảng viên nội bộ về 'Linux Kernel' (bao gồm các nhà phát triển trong nước và nước ngoài) - (2020~hiện tại)


Tôi, với tư cách là giảng viên của khóa học này, có thể tự tin rằng tôi có thể giải thích 'giao diện giữa kiến trúc Arm và nhân Linux' tốt hơn bất kỳ ai khác.

Tôi khuyến nghị cho những người như thế này

Sinh viên chuẩn bị việc làm và lập trình viên junior trong lĩnh vực phần mềm hệ thống bao gồm chíp bán dẫn hệ thống (fabless), lĩnh vực xe điện (tự lái, infotainment)

Nhà phát triển phần mềm hệ thống muốn biết cách debug trong thực tế bằng cách tận dụng các tính năng của kiến trúc Arm

Sinh viên đại học có mục tiêu theo học cao học trong lĩnh vực phần mềm hệ thống (bộ nhớ, hệ thống tập tin, hệ điều hành)

Sau khi hoàn thành khóa học

  • Tìm hiểu nguyên lý hoạt động chi tiết của kiến trúc Arm

  • Tìm hiểu cách các Subsystem chính của Linux kernel được triển khai bằng cách tận dụng các tính năng của kiến trúc Arm

  • Hiểu về cách thức triển khai context scheduling của Linux kernel

  • Hiểu chi tiết về cách thức hoạt động của system call và exception handler trong Linux kernel

  • Tìm hiểu cách thức triển khai hệ thống bộ nhớ của Linux kernel

Chúng ta sẽ học những nội dung như thế này

Giới thiệu cấu trúc tổng thể của hệ thống Linux dành cho học viên chưa quen thuộc với Linux. Giải thích chi tiết 3 tài nguyên quan trọng được xử lý trong nhân Linux.

Giải thích về process - thành phần cốt lõi của Linux kernel (không gian người dùng và không gian kernel, user process, kernel thread).

Giải thích cấu trúc dữ liệu của tiến trình phụ thuộc vào kiến trúc Arm. Đặc biệt tập trung vào các thanh ghi liên quan đến context switch và trình bày chi tiết nguyên lý hoạt động.

Giải thích chi tiết hoạt động của context switching phụ thuộc vào kiến trúc Arm thông qua phân tích các lệnh assembly.

Giải thích luồng xử lý interrupt theo bức tranh tổng thể. Giải thích chi tiết cách thức xử lý interrupt thông qua phân tích 'bảng vector exception của kiến trúc Armv8'.

Luồng xử lý ngắt được giải thích dựa trên 2 kịch bản (ngắt xảy ra trong quá trình thực thi ứng dụng người dùng, ngắt xảy ra trong quá trình thực thi mã kernel). Tiếp theo sẽ review chi tiết mã exception handler (mã assembly).

Xem xét toàn bộ luồng thực thi của system call và giải thích chi tiết nội dung của bảng vector exception liên quan đến system call.

Phân tích quy trình lệnh SVC được thực thi khi gây ra system call từ không gian người dùng. Tiếp theo, mô tả chi tiết quy trình exception handler được thực thi trong không gian kernel trong quá trình system call được kích hoạt.

Sau khi system call được kích hoạt (thực thi lệnh SVC), quá trình gọi system call handler trong kernel space sẽ xử lý các API kernel cốt lõi. Ngoài ra, chúng ta cũng sẽ đề cập chi tiết đến thông tin symbol cốt lõi của system call handler.

Giới thiệu các chức năng chính tạo nên quản lý bộ nhớ trong nhân Linux và giải thích các tính năng liên quan đến quản lý bộ nhớ cần biết từ góc độ kiến trúc Arm.

Giới thiệu config thiết lập phạm vi địa chỉ ảo trong nhân Linux. Tiếp theo sẽ giải thích giao diện mà nhân Linux hỗ trợ cho bảng trang đa cấp.

Giải thích chi tiết về nguyên lý hoạt động của page lookup được xử lý bằng interface được hỗ trợ trong Linux kernel và cấu trúc của macro fixup.

Đánh giá khóa học chân thực từ học viên


Những điều cần lưu ý trước khi học

Kiến thức tiên quyết và lưu ý 📢

  • Chúng tôi khuyến nghị bạn nên nghe trước bài giảng trực tiếp của tác giả 'Cấu trúc và Nguyên lý của Kiến trúc Arm cho Phát triển Phần mềm Hệ thống' (phần 1/2).

  • Kiến thức tiên quyết là Exception Level của kiến trúc Arm, Exception, AAPCS, quản lý bộ nhớ (MMU).

  • Tốt nhất là bạn nên biết đại khái Linux hoạt động như thế nào.

  • Không cần có kiến thức sâu về nhân Linux làm điều kiện tiên quyết.

강의소개.콘텐츠.추천문구

학습 대상은 누구일까요?

  • Người tìm việc và lập trình viên junior ngành phần mềm hệ thống

  • Nhà phát triển SW hệ thống muốn biết cách gỡ lỗi dùng tính năng kiến trúc Arm.

  • Lập trình viên từ lĩnh vực khác muốn chuyển đổi sự nghiệp sang lĩnh vực phần mềm hệ thống

  • Sinh viên đại học có mục tiêu học lên cao học ngành phần mềm hệ thống.

선수 지식, 필요할까요?

  • Kiến trúc máy tính

  • Hệ điều hành

강의소개.지공자소개

6,256

수강생

236

수강평

94

답변

4.9

강의 평점

22

강의_other

Tác giả toàn cầu & Nhà phát triển phần mềm hệ thống Linux (Kiến trúc Arm, RISC-V)

Là tác giả vô tiền khoáng hậu trong lĩnh vực phần mềm hệ thống tại Hàn Quốc, người đã viết các cuốn sách về 'Kiến trúc Arm (Armv8-A, Armv7-A)' và 'Linux Kernel' (cả hai cuốn sách đều được Viện Hàn lâm Khoa học Quốc gia Hàn Quốc bình chọn là Sách ưu tú), đồng thời là tác giả toàn cầu đầu tiên tại Hàn Quốc viết cuốn sách tiếng Anh "Reverse Engineering Armv8-A Systems" thông qua nhà xuất bản nước ngoài (Packt). Trên hết, ông là một nhà phát triển đang làm việc thực tế, người nắm rõ nhất các xu hướng phần mềm hệ thống mới nhất (xe điện, bán dẫn hệ thống - phần mềm hệ thống). Ngoài ra, ông còn là một nhà giáo dục hoạt động tích cực nhất trong việc truyền bá kiến thức trong lĩnh vực phần mềm hệ thống.

  • Tác giả cuốn sách (tiếng Anh) 'Reverse Engineering Armv8-A Systems: A practical guide to Kernel, Firmware, and TrustZone analysis', (Nhà xuất bản Packt), (Packt Publishing)

  • Tác giả cuốn 'Cấu trúc và nguyên lý của kiến trúc Arm dành cho phát triển phần mềm hệ thống' (Giải thưởng Sách hay của Viện Hàn lâm Khoa học Quốc gia Hàn Quốc năm 2024))

  • Tác giả cuốn sách 'Cấu trúc và nguyên lý của nhân Linux học qua việc gỡ lỗi' (Giải thưởng Sách hay của Viện Hàn lâm Khoa học Quốc gia Hàn Quốc năm 2021))

  • Giảng viên chính của 'Programmers Dev Course: Chuyên gia Hệ thống Linux và Kernel'

  • Tháng 6 năm 2022, Hội nghị Tổng hợp Khoa học Máy tính Hàn Quốc (KCC2022) - Thuyết trình hướng dẫn [Chinh phục Linux Kernel bằng ftrace]

  • Giảng viên nội bộ của LG Electronics về 'Linux Kernel' và 'Kiến trúc Armv8' (bao gồm các nhà phát triển trong và ngoài nước) - (2020~Hiện tại)

Tôi có thể tự tin khẳng định rằng mình là một giảng viên có khả năng giải thích về Linux Kernel và kiến trúc Arm (Armv8-A, Armv7-A) tốt hơn bất kỳ ai khác tại Hàn Quốc.

Liên hệ giảng dạy: austindh.kim@gmail.com

Lộ trình chính 🎯

'Arm dành cho nhà phát triển phần mềm hệ thống - khóa học cơ bản'

'Arm dành cho nhà phát triển phần mềm hệ thống - khóa học nâng cao'

Linux kernel dành cho nhà phát triển phần mềm hệ thống - khóa học cơ bản

더보기

커리큘럼

전체

25개 ∙ (강의상세_런타임_시간 강의상세_런타임_분)

강의 게시일: 
마지막 업데이트일: 

수강평

전체

7개

4.6

7개의 수강평

  • heecheolsong님의 프로필 이미지
    heecheolsong

    수강평 21

    평균 평점 5.0

    5

    32% 수강 후 작성

    • hanskim님의 프로필 이미지
      hanskim

      수강평 2

      평균 평점 4.0

      4

      100% 수강 후 작성

      • aceoftop1975님의 프로필 이미지
        aceoftop1975

        수강평 115

        평균 평점 5.0

        5

        100% 수강 후 작성

        2024/07/30/Thứ ba 10:40 Tôi rất thích bài giảng. Tôi đã học được rất nhiều điều từ lộ trình (Arm cơ bản/nâng cao) mà bạn cung cấp. Tất cả các bài giảng đều tốt. Trong khi nghe, "Wow~~" Tôi cảm thấy rất cô đơn. Cảm ơn Bây giờ em sẽ nghe nốt phần còn lại của bài giảng và nghe lộ trình mà thầy đưa cho em. Cảm ơn

        • jangmh7595님의 프로필 이미지
          jangmh7595

          수강평 4

          평균 평점 5.0

          5

          32% 수강 후 작성

          • 16225864175님의 프로필 이미지
            16225864175

            수강평 6

            평균 평점 5.0

            5

            100% 수강 후 작성

            austinkim님의 다른 강의

            지식공유자님의 다른 강의를 만나보세요!

            비슷한 강의

            같은 분야의 다른 강의를 만나보세요!

            강의상세.할인문구

            35.420 ₫

            30%

            1.059.060 ₫