강의

멘토링

커뮤니티

Security & Network

/

System

Cấu trúc và nguyên lý của nhân Linux: Tiến trình [Giảng dạy trực tiếp của tác giả Phần 1-4]

Tác giả của "디버깅을 통해 배우는 리눅스 커널의 구조와 원리" giải thích rõ ràng các khái niệm cốt lõi về process của nhân Linux (v6.1) mới nhất, được sử dụng phổ biến nhất trong phần mềm hệ thống.

(5.0) 9 đánh giá

255 học viên

  • austinkim
저자 직강
리눅스커널
임베디드리눅스
프로세스
trace32
Linux
linux-kernel
Operating System
Computer Architecture

Đánh giá từ những học viên đầu tiên

Bạn sẽ nhận được điều này sau khi học.

  • Vai trò của tiến trình trong nhân Linux

  • Cách hoạt động cơ bản của tiến trình

  • Cấu trúc ngăn xếp của tiến trình

  • Cách gỡ lỗi các luồng thực thi đa dạng của một tiến trình bằng TRACE32

  • Cách vận hành tiến trình trong cấu trúc hệ thống đa lõi

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

Để kỷ niệm việc vượt qua 500 học viên đăng ký khóa học Linux Kernel, chúng tôi phát hành coupon giảm giá 30%. Cảm ơn các bạn. Chỉ dành cho 100 người đầu tiên.

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

Khóa học này là lộ trình'Linux kernel - khóa học cơ bản dành cho nhà phát triển phần mềm hệ thống'được bao gồm trong khóa học.

Những ai muốn học các chức năng chính cấu thành nhân Linux một cách có hệ thống thì nên sử dụng lộ trình học (giảm giá 30% toàn bộ khóa học).

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

Nhân Linux mà các nhà phát triển phần mềm hệ thống nhất định phải biết


Hệ điều hành được sử dụng nhiều nhất trên tất cả các thiết bị IT là gì? Chính 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 (Linux device driver) để điều khiển phần cứng mà họ thiết kế. Ngoài ra, Linux cũng được ứng dụng rộng rãi trong các bộ phận khác nhau cấu thành nên xe điện (Automotive) như hệ thống thông tin giải trí, lái xe tự động, telematics.

Cốt lõi của hệ điều hành Linux là Linux kernel. Cùng với kiến trúc Armv8-A, có thể nói rằng Linux kernel là nội dung đòi hỏi kiến thức nền tảng được cần thiết nhất trong ngành phần mềm hệ thống hiện tại.

Các nhà phát triển phần mềm hệ thống Linux, lập trình viên hệ thống nhúng Linux (BSP) chú ý!

✅ Trong lĩnh vực phần mềm hệ thống Linux bao gồm bán dẫn hệ thống, lĩnh vực xe điện (tự lái, infotainment) với vai trò lập trình viên junior

Người chuẩn bị việc làm muốn làm việc trong lĩnh vực phát triển phần mềm hệ thống Linux như bán dẫn hệ thống, xe điện

✅ Người mong muốn học cao học trong lĩnh vực phần mềm hệ thống Linux (bộ nhớ, hệ thống tập tin, hệ điều hành)

✅ Các lập trình viên từ các 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 Linux

Tuy nhiên, kernel Linux là một rào cản khổng lồ đối với những người mới bắt đầu trong lĩnh vực phần mềm hệ thống. Những người mới bắt đầu có lẽ đã có kinh nghiệm từ bỏ việc học kernel Linux nhiều lần. Kernel Linux vốn đã khó khăn này đang ngày càng phát triển phức tạp hơn khi các phiên bản được nâng cấp.Từ năm 2024 trở đi, phiên bản kernel Linux đã được nâng cấp lên v6.6 trở lên vànhưng rào cản gia nhập đang ngày càng cao hơn.

Các nhà phát triển phần mềm hệ thống Linux hoạt động trong nhiều lĩnh vực khác nhau bao gồm cả bán dẫn hệ thống và xe điện đều biết rằng họ cần phải hiểu rõ về Linux kernel để có thể nâng cao năng lực phát triển của mình. Tuy nhiên, họ đang gặp khó khăn trong việc nắm bắt cách học Linux kernel như thế nào và quan trọng hơn là cần biết những nội dung gì trong công việc thực tế.

Tiến trình đầu tiên mà người mới bắt đầu học trong kernel Linux

Người mới bắt đầu khi học về Linux kernel thường bắt đầu từ chủ đề nào? Hầu hết đều học về process. Cuốn sách 'Linux Kernel' cũng bắt đầu với process. Ngoài ra, process cũng được coi là chủ đề cần thiết phải biết cùng với file system và memory system.

Người mới bắt đầu sẽ cảm thấy như thế nào khi bắt đầu học về quy trình? Quy trình được cho là nội dung cần thiết phải biết nhưng lại dễ trở nên nhàm chán. Lý do là gì? Tôi nghĩ là vì không có nội dung nào có thể áp dụng ngay vào dự án thực tế. Ngoài ra, quy trình có nhiều nội dung mơ hồ nên trở nên nhàm chán. Cuối cùng, dù có học tập chăm chỉ thì những gì đã học cũng không lưu lại được lâu dài.

Vì vậy, trong cuốn sách 'Cấu trúc và Nguyên lý của Linux Kernel' mà tôi đã viết, tôi đã cấu trúc theo nhiều cách khác nhau để các độc giả có thể học về các tiến trình thông qua thực hành debug ftrace.

Điểm khác biệt của khóa học

Khóa học này được cấu thành bởi nội dung chưa từng được đề cập trên YouTube hay bất kỳ nền tảng giảng dạy nào khác! Chúng ta sẽ debug các cấu trúc task_struct và thread_info biểu thị process thông qua memory dump của Linux kernel. Những người tham gia khóa học này có thể tải xuống chương trình giáo dục (TRACE32) để thực hành trực tiếp.

1. Cung cấp chương trình mô phỏng TRACE32 (dành cho giáo dục) và 8 bản dump kernel Linux

TRACE32 debugger và chương trình được sử dụng rộng rãi trong toàn bộ quá trình phát triển phần mềm hệ thống Linux. Chương trình TRACE32 cần có giấy phép mới có thể chạy được. Khi bạn tham gia khóa học nàyChương trình mô phỏng TRACE32 giáo dục từ 'Tài liệu bài giảng Inflearn'từ đó tải xuống để sử dụng trực tiếp chương trình mô phỏng TRACE32 để debug memory dump. Ngoài ra, bạn có thể tải xuống 8 kernel memory dump để thực hành debug các hoạt động đa dạng của process (tạo process, hủy process, interrupt context).

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

Khi học kernel Linux, chúng ta phân tích mã nguồn kernel. Tuy nhiên, trong quá trình phân tích mã nguồn kernel, chúng ta gặp phải nhiều trở ngại. Rất khó để xác định hàm đó được gọi theo luồng nào, cấu trúc dữ liệu của routine đang phân tích thực sự có giá trị gì. Bài giảng này sẽ phá bỏ tất cả những trở ngại đó.

Phân tích mã nguồn kernel Linux liên quan đến process cùng với call stack của chương trình TRACE32 và các cấu trúc dữ liệu chi tiết. Có thể học về process hiệu quả hơn rất nhiều so với việc tự học kernel Linux một mình. Ngoài ra, còn phân tích cả các thông điệp ftrace được trích xuất từ memory dump nên có thể nắm bắt nguyên lý hoạt động của process một cách lập thể.

3. Giới thiệu phương pháp debug của các nhà phát triển BSP kernel Linux tại các công ty bán dẫn hệ thống toàn cầu

Gần đây ngành công nghiệp bán dẫn hệ thống đang nổi lên. Các nhà phát triển BSP kernel Linux của Qualcomm - công ty có công nghệ hàng đầu trong số các công ty bán dẫn hệ thống toàn cầu - sẽ debug driver kernel Linux theo cách nào?

Trong bài giảng này, chúng ta sẽ đề cập đến nội dung sau. Sử dụng TRACE32 simulator để debug các cấu trúc dữ liệu của kernel liên quan đến process thông qua memory dump của Linux kernel, đồng thời loading memory dump bằng crash-utility để phân tích các hoạt động chính của kernel.Đặc biệt, phương pháp debug khi stack của process bị hỏng hoặc xảy ra stack overflow là nội dung mà ngay cả các developer của những công ty fabless hàng đầu cũng không biết rõ.

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

Giải thích về tiến trình - một trong 3 tài nguyên chính của hệ thống Linux và lý do tại sao cần phải học về tiến trình. Giới thiệu một cách dễ hiểu về các khái niệm cơ bản của tiến trình.

Giải thích không gian thực thi của tiến trình và lý do tại sao cần phải hiểu về tiến trình.

Phân tích hoạt động cơ bản của tiến trình bằng cách sử dụng Crash-Utility và chương trình gỡ lỗi TRACE32.

Phân tích cấu trúc task_struct lưu trữ và quản lý thông tin thuộc tính của tiến trình bằng cách sử dụng các chương trình gỡ lỗi TRACE32 và Crash-Utility.

Giải thích về macro current được sử dụng rộng rãi trong nhiều chức năng và hệ thống con của nhân Linux. Mã nguồn kernel

Phân tích chi tiết đến cấp độ mã assembly.

Giải thích luồng thực thi của tiến trình trong kiến trúc hệ thống đa lõi. Cũng giải thích các cấu trúc dữ liệu liên quan đến điều này.

Sử dụng chương trình TRACE32 để debug chi tiết hoạt động tạo hoặc kết thúc process. Giải thích chi tiết cấu trúc dữ liệu của process và luồng gọi hàm. (Các học viên có thể tải xuống chương trình TRACE32 và kernel memory dump được upload trong bài giảng này để thực hành theo.)

Sử dụng chương trình TRACE32 để phân tích chi tiết thông tin ngữ cảnh ngắt của quá trình thực thi trình xử lý ngắt. Giải thích về ngữ cảnh ngắt trong khi phân tích thông điệp ftrace được trích xuất từ chương trình Crash-utility.

Phân tích cấu trúc dữ liệu của dump và call stack cùng với mã nguồn kernel Linux.


Cung cấp chương trình TRACE32 giáo dục và 8 bản dump bộ nhớ kernel Linux

Trong bài gi강 này, chúng ta sẽ tìm hiểu về phương pháp debug tiên tiến (Advanced) nhất trong ngành phần mềm hệ thống Linux -Các nhà phát triển Linux kernel của Qualcomm, công ty bán dẫn hệ thống hàng đầu thế giới, đang debug- Phương pháp debug memory dump của Linux kernel được giới thiệu. Sử dụng các chương trình debug như TRACE32 và Crash utility để cung cấp phương pháp debug nâng cao có thể 'debug bộ nhớ Linux kernel'.

✅ Bạn có thể tải xuống chương trình TRACE32 giáo dục (phiên bản mô phỏng) từ chương trình giảng dạy của khóa học.Học viên có thể sử dụng chương trình TRACE32 để tải kernel memory dump được cung cấp trong bài giảng này và thực hành debug cùng với giảng viên.

✅ Được vận hành như một dự án mã nguồn mở, bạn có thể tải xuống trực tiếp Crash Utility để tải kernel memory dump và thực hiện debug. Sử dụng các tính năng đa dạng mà Crash Utility hỗ trợ để phân tích cấu trúc dữ liệu của kernel hoặc call stackGỡ lỗi trực tiếpCó thể làm được.

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!

Trong lĩnh vực phần mềm hệ thống tại Hàn Quốc, đây là tác giả duy nhất! đã viết sách 'Linux Kernel' và sách 'Kiến trúc Arm (Armv8-A, Armv7-A)'. Đồng thời cũng là nhà phát triển thực tế hiểu 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), và là nhà giáo dục 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.

  • 'Học 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) 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'(2023) tác giả

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

  • 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) - Bài thuyết trình hướng dẫn [Chinh phục nhân Linux bằng ftrace]

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


Tôi có thể tự tin nói rằng tôi là một giáo육자 có thể giải thích các chức năng chính cấu성 nên nhân Linux kernel tốt hơn bất kỳ ai khác trong nước.

Những lưu ý trước khi học

Lưu ý khi sử dụng chương trình TRACE32

  • Chương trình giáo dục 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ó thể được sử dụng cho mục đích 'giáo dục' và không được phép chỉnh sửa hoặc phân phối cho mục đích thương mại.

  • Nếu có thắc mắc khi sử dụng chương trình giáo dục TRACE32 trong bài gi강 này thìNhất định dành cho các nhà giáo dụcHãy đặt câu hỏi.

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)

  • 8 bản dump bộ nhớ kernel Linux (vmcore)

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

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

  • Tốt nhất là bạn nên nghe trước khóa học 'Cấu trúc và Nguyên lý của Linux Kernel: Debugging - Basic [Tác giả trực tiếp giảng dạy Phần 1-2]'.

  • Nếu bạn có kiến thức về hệ điều hành hoặc kiến trúc máy tính thì sẽ có thể học bài một cách thoải mái hơn.

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

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 chip bán dẫn hệ thống và ô tô điện (lái tự động, thông tin giải trí).

  • Ứng viên đang 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, ô tô điện.

  • Sinh viên đại học hướng đến việc học lên 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)

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

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

  • Hệ điều hành

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

  • Ngôn ngữ C

Xin chào
Đây là

6,034

Học viên

204

Đánh giá

89

Trả lời

4.9

Xếp hạng

22

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ả

71 bài giảng ∙ (9giờ 21phú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ả

9 đánh giá

5.0

9 đánh giá

  • heecheol.song님의 프로필 이미지
    heecheol.song

    Đánh giá 7

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    • redkyo00님의 프로필 이미지
      redkyo00

      Đánh giá 4

      Đánh giá trung bình 5.0

      5

      100% đã tham gia

      • 염재영님의 프로필 이미지
        염재영

        Đánh giá 3

        Đánh giá trung bình 5.0

        5

        97% đã tham gia

        자세하면서 복습차원의 강의 내용이 매우 좋다고 생각합니다!:) 실제 BSP 업무를 보면서 커널 로그 분석이나 혹은 TRACE32를 이용한 CRASH이슈 분석 및 추적을 많이 하는데 그런 걸 생각해봤을때 좋은 강의라고 생각이 들어요!

        • ionia.kim님의 프로필 이미지
          ionia.kim

          Đánh giá 9

          Đánh giá trung bình 4.9

          5

          100% đã tham gia

          • 오경근님의 프로필 이미지
            오경근

            Đánh giá 1

            Đánh giá trung bình 5.0

            5

            30% đã tham gia

            1.164.769 ₫

            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!