강의

멘토링

로드맵

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) 7 đánh giá

239 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

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

  • 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

<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.

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

Bài giảng này <Cấu trúc và Nguyên lý của Nhân Linux: Quy trình [Bài giảng trực tiếp của Tác giả Phần 1-4]> 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ế.

Quá trình đầu tiên mà người mới bắt đầu học trong hạt nhân Linux

Người mới bắt đầu học những chủ đề nào trước tiên khi tìm hiểu về nhân Linux? Hầu hết đều học về quy trình. Cuốn sách 'Nhân Linux' bắt đầu với quy trình. Quy trình cũng được cho là một chủ đề cần phải biết cùng với hệ thống tệp và hệ thống bộ nhớ.

Người mới bắt đầu cảm thấy thế nào khi bắt đầu học quy trình? Họ nghĩ rằng quy trình là điều họ nhất định phải biết, nhưng họ lại dễ chán. Tại sao vậy? Họ nghĩ rằng không có nội dung nào có thể áp dụng trực tiếp vào các dự án thực tế. Hơn nữa, quy trình này cũng nhàm chán vì có quá nhiều nội dung mơ hồ. Cuối cùng, ngay cả khi bạn học chăm chỉ, nội dung bạn học cũng không được lưu giữ lâu dài.

Vì vậy, trong cuốn sách 'Cấu trúc và nguyên tắc của hạt nhân Linux', tôi đã cấu trúc nó theo nhiều cách khác nhau để người đọc có thể tìm hiểu quy trình thông qua thực hành gỡ lỗi ftrace.

Đ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 các cấu trúc task_struct và thread_info biểu diễn các tiến trình thông qua các bản sao lưu bộ nhớ kernel 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ành cho mục đích giáo dục) và 8 bản dump 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 8 bản sao lưu bộ nhớ kernel có thể gỡ lỗi các hoạt động khác nhau của quy trình (tạo, kết thúc quy trình, ngữ cảnh ngắt).

2. Giải thích các khái niệm cơ bản của quy trình 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 quy trình cùng với 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 quy trình hiệu quả hơn nhiều so với việc 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 nguyên lý hoạt động của quy trình trong không gian ba chiều.

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?

Bài giảng này sẽ đề cập đến vấn đề này. Chúng ta sẽ tải bản sao lưu bộ nhớ với tiện ích crash-utility để phân tích hoạt động chính của kernel, đồng thời 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 tiến trình, đặc biệt là khi ngăn xếp tiến trình bị hỏng hoặc xảy ra tràn ngăn xếp, và phương pháp gỡ lỗi là điều mà ngay cả các nhà phát triển fabless cấp cao cũng không nắm rõ.

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

Chúng tôi sẽ giải thích về quy trình, một trong ba tài nguyên chính trong hệ thống Linux, và lý do tại sao bạn nên tìm hiểu về quy trình. Chúng tôi sẽ cung cấp phần giới thiệu dễ hiểu về các khái niệm cơ bản của quy trình.

Mô tả không gian thực thi của một tiến trình và giải thích lý do tại sao bạn cần biết về nó.

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

Cấu trúc task_struct, lưu trữ và quản lý thông tin thuộc tính quy trình, được phân tích bằng các chương trình gỡ lỗi TRACE32 và Crash-Utility.

Mô tả macro hiện tại, được sử dụng rộng rãi trong nhiều chức năng và hệ thống con khác nhau của hạt nhân Linux. Mã nguồn hạt nhân

Chúng tôi phân tích chi tiết đến tận cấp độ mã lắp ráp.

Mô tả luồng thực thi quy trình trong kiến trúc hệ thống đa lõi. Đồng thời mô tả các cấu trúc dữ liệu liên quan đến nó.

Gỡ lỗi quá trình tạo và kết thúc quy trình một cách chi tiết bằng chương trình TRACE32. Giải thích chi tiết cấu trúc dữ liệu và luồng gọi hàm của quy trình. (Sinh viên có thể tải xuống chương trình TRACE32 và bản sao lưu bộ nhớ kernel được tải lên trong bài giảng này và thực hành bằng cách làm theo.)

Chúng ta sẽ 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 tiến trình mà trình xử lý ngắt được thực thi. Chúng ta sẽ giải thích ngữ cảnh ngắt bằng cách phân tích các thông báo 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 bản dump và gọi ngăn xếp cùng với mã nguồn hạt nhân Linux.


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

Bài giảng này giới thiệu 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 - gỡ lỗi bộ nhớ kernel Linux từ các nhà phát triển kernel Linux tại Qualcomm, một công ty bán dẫn hệ thống đẳng cấp thế giới. Bài giảng cung cấp một phương pháp gỡ lỗi tiên tiến có thể "gỡ lỗi bộ nhớ kernel Linux" bằng cách sử dụ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 kiến trúc Arm và các nguyên tắc phát triển phần mềm hệ thống' (2023)

  • '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)

  • 8 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 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à

5,781

Học viên

173

Đá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ả

7 đánh giá

5.0

7 đánh giá

  • wodud0432886님의 프로필 이미지
    wodud0432886

    Đánh giá 3

    Đánh giá trung bình 5.0

    5

    97% đã tham gia

    Tôi nghĩ nội dung bài giảng rất chi tiết và tốt cho việc ôn tập!:) Khi làm công việc BSP thực tế, tôi thường phải phân tích kernel log hoặc sử dụng TRACE32 để phân tích và theo dõi các vấn đề CRASH, nên khi nghĩ đến những điều đó thì tôi cảm thấy đây là một bài giảng rất hay!

    • ioniakim2638님의 프로필 이미지
      ioniakim2638

      Đánh giá 9

      Đánh giá trung bình 4.9

      5

      100% đã tham gia

      • nexgedu18614님의 프로필 이미지
        nexgedu18614

        Đánh giá 1

        Đánh giá trung bình 5.0

        5

        30% đã tham gia

        • hjlee929096님의 프로필 이미지
          hjlee929096

          Đánh giá 13

          Đánh giá trung bình 5.0

          5

          30% đã tham gia

          • woo12346560311님의 프로필 이미지
            woo12346560311

            Đánh giá 5

            Đánh giá trung bình 5.0

            5

            30% đã tham gia

            Tuyệt vời.

            1.163.886 ₫

            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!