강의

멘토링

로드맵

Inflearn brand logo image
Hardware

/

Embedded IoT

Cấu trúc và nguyên lý của nhân Linux: Interrupt [Tác giả giảng trực tiếp Phần 1-5]

Tác giả "디버깅을 통해 배우는 리눅스 커널의 구조와 원리" giải thích đúng đắn khái niệm cốt lõi về interrupt của kernel Linux (v6.1) mới nhất, được dùng nhiều nhất trong phần mềm hệ thống.

(5.0) 5 đánh giá

222 học viên

  • austinkim
저자 직강
임베디드리눅스
리눅스커널
인터럽트
Operating System
Linux
linux-kernel
ARM Architecture
interrupt

Dịch cái này sang tiếng Việt

  • Ngắt: Khái niệm cơ bản và cách hoạt động

  • Xử lý ngắt theo góc nhìn của driver thiết bị

  • Xử lý ngắt nhìn từ kiến trúc Arm

  • Cấu trúc dữ liệu quản lý ngắt

<Thông báo>

1. Phát hành phiếu giảm giá 30% cho 500 người 🙏

Để chào mừng người thứ 500 đăng ký khóa học Linux Kernel, chúng tôi tặng phiếu giảm giá 30%. Xin cảm ơn. Dành cho 100 người đầu tiên.

-Link mã giảm giá 30%: https://inf.run/GmqK5

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

Bài giảng này <Cấu trúc và Nguyên lý của Hạt nhân Linux: Ngắt [Bài giảng trực tiếp của Tác giả Phần 1-5]> là một lộ trình 'Nhân Linux - khóa học cơ bản dành cho nhà phát triển phần mềm hệ thống' Bài giảng này được bao gồm trong .

Nếu bạn muốn tìm hiểu các tính năng chính tạo nên hạt nhân Linux một cách có hệ thống , chúng tôi khuyên bạn nên sử dụng lộ trình ( giảm giá 30% cho tất cả các bài giảng ).

Hệ thống bán dẫn, lĩnh vực ô tô, v.v.

Linux Kernel: Những điều cần biết cho các nhà phát triển phần mềm hệ thống


Hệ điều hành nào được sử dụng nhiều nhất trong tất cả các thiết bị CNTT? Đó là hệ điều hành Linux. Nó được sử dụng trong điện thoại thông minh, TV kỹ thuật số, hệ thống giải trí hàng không và máy chủ. Các công ty bán dẫn hệ thống sử dụng Linux (trình điều khiển thiết bị Linux) để điều khiển phần cứng mà họ thiết kế. Linux cũng được sử dụng rộng rãi trong nhiều thành phần khác nhau (giải trí thông tin, lái xe tự hành, tin học viễn thông) tạo nên xe điện (Ô tô).

Cốt lõi của hệ điều hành Linux là nhân Linux. Cùng với kiến trúc Armv8-A, nhân Linux có thể được coi là kiến thức nền tảng thiết yếu nhất cần có trong ngành công nghiệp phần mềm hệ thống hiện nay.

Gửi đến các nhà phát triển phần mềm hệ thống Linux và lập trình viên hệ thống nhúng Linux (BSP)!

Nhà phát triển cấp cơ sở trong lĩnh vực phần mềm hệ thống Linux, bao gồm hệ thống bán dẫn và xe điện (lái xe tự động, thông tin giải trí)

Những người tìm việc muốn làm việc trong lĩnh vực phát triển phần mềm hệ thống Linux, chẳng hạn như hệ thống bán dẫn và xe điện

Ứng viên học sau đại học chuyên ngành phần mềm hệ thống Linux (bộ nhớ, hệ thống tệp, hệ điều hành)

Các nhà phát triển từ các lĩnh vực khác muốn chuyển đổi nghề nghiệp sang phần mềm hệ thống Linux.

Tuy nhiên, nhân Linux là một rào cản lớn đối với người mới bắt đầu trong lĩnh vực phần mềm hệ thống. Người mới bắt đầu có thể đã bỏ cuộc nhiều lần khi học nhân Linux. Phiên bản nhân Linux khó hơn đang ngày càng trở nên phức tạp hơn khi được nâng cấp. Sau năm 2024, phiên bản nhân Linux sẽ được nâng cấp lên v6.6 hoặc cao hơn , khiến rào cản gia nhập trở nên cao hơn.

Các nhà phát triển phần mềm hệ thống Linux, những người làm việc trong nhiều lĩnh vực khác nhau, bao gồm hệ thống bán dẫn và xe điện, đều biết rằng họ cần phải nắm rõ nhân Linux để cải thiện khả năng phát triển. Tuy nhiên, rất khó để nắm bắt cách học nhân Linux và trên hết là những nội dung nào họ cần nắm vững trong thực tế.

Ngắt, cốt lõi của quá trình phát triển trình điều khiển thiết bị Linux

Bạn làm gì khi mới bắt đầu làm nhà phát triển phần mềm hệ thống Linux? Điều này phụ thuộc vào bản chất và nhiệm vụ của dự án, nhưng hầu hết các bạn đều phát triển trình điều khiển thiết bị Linux. Khi phát triển trình điều khiển thiết bị Linux, một trong những yếu tố bạn phải triển khai và tối ưu hóa là ngắt. Ngắt cũng liên quan chặt chẽ đến các chức năng chính cấu thành nên nhân Linux. Chúng liên quan chặt chẽ đến nửa sau của các kỹ thuật ngắt, bộ định thời động, lập lịch ưu tiên và hành vi tín hiệu.

Vì vậy, tôi sẽ giải thích về ngắt trong Chương 5 của cuốn sách "Cấu trúc và Nguyên lý của Nhân Linux". Tôi đã cấu trúc chương này để độc giả có thể tìm hiểu về ngắt thông qua thực hành gỡ lỗi ftrace theo nhiều cách khác nhau.

Điểm khác biệt của bài giảng

Bài giảng này bao gồm những nội dung chưa từng được đề cập trên YouTube hay bất kỳ nền tảng bài giảng nào khác ! Chúng ta sẽ gỡ lỗi phương thức hoạt động ngắt và cấu trúc dữ liệu liên quan thông qua kết xuất bộ nhớ nhân Linux. Những người tham gia bài giảng này có thể tải xuống chương trình giáo dục (TRACE32) và tự thực hành.

1. Cung cấp chương trình mô phỏng TRACE32 (dùng cho mục đích giáo dục) và 6 bản sao lưu kernel Linux.

Trình gỡ lỗi và chương trình TRACE32 được sử dụng rộng rãi trong quá trình phát triển phần mềm hệ thống Linux. Chương trình TRACE32 yêu cầu giấy phép để chạy. Nếu bạn tham gia khóa học này, bạn có thể tải xuống chương trình mô phỏng TRACE32 giáo dục từ 'Tài liệu bài giảng Inflearn' và trực tiếp sử dụng chương trình mô phỏng TRACE32 để gỡ lỗi các bản sao lưu bộ nhớ. Bạn cũng có thể tải xuống và thực hành 6 bản sao lưu bộ nhớ kernel có thể gỡ lỗi các hoạt động ngắt khác nhau (gọi trình xử lý ngắt, chiếm quyền).

2. Giải thích khái niệm cơ bản về ngắt một cách dễ hiểu và chi tiết.

Khi học nhân Linux, bạn sẽ phân tích mã nguồn nhân. Tuy nhiên, bạn sẽ gặp phải nhiều trở ngại trong quá trình phân tích mã nguồn nhân. Việc xác định luồng mà hàm được gọi và giá trị thực tế của cấu trúc dữ liệu của chương trình con đang được phân tích là rất khó khăn. Bài giảng này sẽ giúp bạn giải quyết tất cả những trở ngại này.

Chúng tôi phân tích mã nguồn nhân Linux liên quan đến ngắt bằng ngăn xếp lệnh gọi và cấu trúc dữ liệu chi tiết của chương trình TRACE32. Bạn có thể học ngắt hiệu quả hơn nhiều so với khi tự học nhân Linux. Chúng tôi cũng phân tích các thông điệp ftrace được trích xuất từ bản sao lưu bộ nhớ, để bạn có thể hiểu chi tiết nguyên lý hoạt động của ngắt.

3. Giới thiệu về các phương pháp gỡ lỗi được các nhà phát triển BSP hạt nhân Linux sử dụng tại các công ty bán dẫn hệ thống toàn cầu

Ngành công nghiệp bán dẫn hệ thống đang trên đà phát triển mạnh mẽ hiện nay. Qualcomm, một công ty bán dẫn hệ thống toàn cầu sở hữu công nghệ tốt nhất, gỡ lỗi trình điều khiển hạt nhân Linux như thế nào?

Đây là nội dung chúng ta sẽ đề cập trong bài giảng này. Chúng ta sẽ sử dụng trình mô phỏng TRACE32 để gỡ lỗi các cấu trúc dữ liệu kernel liên quan đến ngắt và tải bản sao lưu bộ nhớ với tiện ích crash-utility để phân tích các hoạt động chính của kernel.

Tìm hiểu về những điều này

Đầu tiên, chúng tôi sẽ giải thích cách xử lý ngắt và giải thích luồng xử lý ngắt từ nhiều góc độ khác nhau.

Phần này trình bày chi tiết toàn bộ luồng thực thi khi ngắt được kích hoạt trong hạt nhân Linux và các ứng dụng người dùng theo góc nhìn kiến trúc Armv8.

Chúng tôi phân tích bảng vectơ ngoại lệ Armv8 khi một ngắt được kích hoạt trong nhân Linux. Sau đó, chúng tôi phân tích chi tiết các trình xử lý ngoại lệ được xử lý.

Chúng tôi phân tích bảng vectơ ngoại lệ Armv8 khi một ngắt được kích hoạt trong ứng dụng người dùng. Sau đó, chúng tôi phân tích chi tiết trình xử lý ngoại lệ đang được xử lý xuống tận cấp độ lệnh hợp ngữ.

Nó chia nhỏ luồng xử lý ngắt thành dạng xem cấp cao và trình bày chi tiết các chức năng được thực hiện trong hệ thống con IRQ (độc lập với kiến trúc Arm).

Phân tích cấu trúc dữ liệu liên quan đến ngắt bằng chương trình gỡ lỗi TRACE32 và Crash-utility.

Gỡ lỗi hàm xử lý ngắt bcm2835_mmc_irq() bằng TRACE32. Phân tích chi tiết mã nguồn của trình xử lý ngắt, cùng với ngăn xếp lệnh gọi và các cấu trúc dữ liệu liên quan.

Giới thiệu ngữ cảnh ngắt và cung cấp mã ví dụ để kiểm tra ngữ cảnh ngắt.

Chúng tôi phân tích mã nguồn kernel cho phép sử dụng ngữ cảnh ngắt. Chúng tôi giải thích lý do tại sao các hàm kernel được đưa vào trạng thái ngủ không nên được gọi trong ngữ cảnh ngắt, và chúng tôi giới thiệu mã xử lý ngoại lệ khi lấy mutex làm ví dụ.

Chúng tôi sẽ giải thích chi tiết cách thức hoạt động của Preemption sau khi chương trình phục vụ ngắt hoàn tất. Chúng tôi cũng sẽ gỡ lỗi thao tác khi Preemption được thực hiện chi tiết bằng chương trình gỡ lỗi TRACE32.

Hướng dẫn này giới thiệu cách thiết lập sự kiện ftrace để theo dõi hành vi của các ngắt. Nó giải thích luồng thực thi của trình xử lý ngắt và các điều kiện của ngữ cảnh ngắt trong khi phân tích chi tiết các thông báo ftrace.

Chúng tôi sẽ kiểm tra kỹ lưỡng mã nguồn kernel in ra các thông báo ftrace theo dõi hành vi của các ngắt.

Cung cấp chương trình TRACE32 giáo dục và 6 bản sao lưu bộ nhớ hạt nhân Linux

Trong bài giảng này, chúng tôi sẽ giới thiệu cách gỡ lỗi Linux kernel memory dumps , phương pháp gỡ lỗi tiên tiến nhất trong ngành công nghiệp phần mềm hệ thống Linux - được thực hiện bởi các nhà phát triển Linux kernel tại Qualcomm, một công ty bán dẫn hệ thống đẳng cấp thế giới . Bạn có thể gỡ lỗi các cấu trúc dữ liệu chính của ngắt bằng các chương trình gỡ lỗi như TRACE32 và tiện ích Crash.

Bạn có thể tải xuống chương trình TRACE32 (phiên bản mô phỏng) cho mục đích giáo dục từ chương trình học. Học viên có thể tải chương trình TRACE32 (bộ nhớ kernel dump) được cung cấp trong khóa học này và gỡ lỗi trong khi thực hành.

Bạn có thể tải trực tiếp Crash Utility, được vận hành như một dự án mã nguồn mở, và tải các bản sao lưu bộ nhớ kernel để gỡ lỗi. Bạn có thể gỡ lỗi trực tiếp các cấu trúc dữ liệu kernel và ngăn xếp lệnh gọi bằng cách sử dụng các hàm khác nhau được Crash Utility hỗ trợ.

Dựa trên kinh nghiệm viết sách và giảng bài của tôi
Sâu sắc và chi tiết hơn bất kỳ ai khác!

Tác giả của cuốn sách 'Linux Kernel' và 'Arm Architecture (Armv8-A, Armv7-A)', một cuốn sách chưa từng có trong lĩnh vực phần mềm hệ thống trong nước! Ông cũng là một nhà phát triển am hiểu các xu hướng phần mềm hệ thống mới nhất (xe điện, chất bán dẫn hệ thống - phần mềm hệ thống), và là một nhà giáo dục năng động 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ả của 'Tìm hiểu cấu trúc và nguyên tắc của hạt nhân Linux thông qua gỡ lỗi' ( 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 năm 2021 )

  • Tác giả của 'Cấu trúc và nguyên tắc của kiến trúc Arm cho phát triển phần mềm hệ thống' ( 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 năm 2024 )

  • 'Khóa học dành cho lập trình viên: Chuyên gia về hệ thống và hạt nhân Linux' Giảng viên chính

  • Tháng 6 năm 2022, Hội nghị Máy tính Hàn Quốc (KCC2022) - Bài thuyết trình hướng dẫn [Chinh phục Nhân Linux bằng ftrace]

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


Tôi có thể tự tin khẳng định rằng tôi là nhà giáo dục có thể giải thích các chức năng chính tạo nên hạt nhân Linux tốt hơn bất kỳ ai khác trong nước.

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

Những điều cần lưu ý khi sử dụng chương trình TRACE32

  • Chương trình đào tạo TRACE32 chỉ có thể thực hành trong môi trường Windows.

  • Chương trình giáo dục TRACE32 chỉ được sử dụng cho 'mục đích giáo dục' và không được sửa đổi hoặc phân phối cho mục đích thương mại.

  • Nếu bạn có bất kỳ câu hỏi nào khi sử dụng chương trình đào tạo TRACE32 trong bài giảng này , hãy hỏi người hướng dẫn .

Môi trường thực hành và tài liệu bài giảng được cung cấp

  • Hệ điều hành và phiên bản (OS): Raspberry Pi (Raspbian), Linux Kernel v6.1

  • Tài liệu hướng dẫn cài đặt và chương trình giáo dục TRACE32 (Bài giảng)

  • 6 Linux Kernel Memory Dumps (vmcore)

Kiến thức và ghi chú của người chơi

  • Sẽ rất tốt nếu có được ý tưởng chung về cách thức hoạt động của Linux.

  • Tốt nhất là bạn nên nghe bài giảng 'Cấu trúc và nguyên lý của hạt nhân Linux: Gỡ lỗi - Cơ bản [Bài giảng của tác giả Phần 1-2]' trước.

  • Nếu bạn biết về hệ điều hành và kiến trúc máy tính, bạn sẽ có thể tham gia lớp học dễ dàng hơn.

  • Không cần có kiến thức chuyên sâu về hạt nhân Linux.

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Lập trình viên junior mong muốn phát triển năng lực trong lĩnh vực phần mềm hệ thống, bao gồm bán dẫn hệ thống và lĩnh vực xe điện (tự lái, thông tin giải trí).

  • Người tìm việc mong muốn phát triển phần mềm hệ thống trong các lĩnh vực như bán dẫn hệ thống, xe điện.

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

  • Nhà phát triển từ lĩnh vực khác muốn chuyển đổi sang phần mềm hệ thống

Cần biết trước khi bắt đầu?

  • Ngôn ngữ C

  • Cấu trúc máy tính

  • Hệ điều hành

Xin chào
Đây là

5,557

Học viên

156

Đánh giá

85

Trả lời

4.9

Xếp hạng

21

Các khóa học

글로벌 저자 & 리눅스 시스템 소프트웨어 개발자 (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

Chương trình giảng dạy

Tất cả

56 bài giảng ∙ (6giờ 13phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

5 đánh giá

5.0

5 đánh giá

  • ioniakim2638님의 프로필 이미지
    ioniakim2638

    Đánh giá 9

    Đánh giá trung bình 4.9

    5

    100% đã tham gia

    • dlrbcnvk님의 프로필 이미지
      dlrbcnvk

      Đánh giá 19

      Đánh giá trung bình 4.9

      5

      60% đã tham gia

      • lord8465님의 프로필 이미지
        lord8465

        Đánh giá 2

        Đánh giá trung bình 5.0

        5

        31% đã tham gia

        • aceoftop1975님의 프로필 이미지
          aceoftop1975

          Đánh giá 95

          Đánh giá trung bình 5.0

          5

          100% đã tham gia

          2024/07/14/Sun 15:27 I really enjoyed the lecture. Thank you.

          • kimkyungmin6357님의 프로필 이미지
            kimkyungmin6357

            Đánh giá 1

            Đánh giá trung bình 5.0

            5

            60% đã tham gia

            1.165.874 ₫

            Khóa học khác của austinkim

            Hãy khám phá các khóa học khác của giảng viên!

            Khóa học tương tự

            Khám phá các khóa học khác trong cùng lĩnh vực!