Inflearn brand logo image
Inflearn brand logo image
Security & Network

/

System

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]

저자 của cuốn "Cấu trúc và nguyên lý của Linux Kernel học qua quá trình gỡ lỗi" giải thích đầy đủ các khái niệm cốt lõi về quá trình trong Linux Kernel mới nhất (v6.1), phần mềm hệ thống được sử dụng nhiều nhất.

(5.0) 5 đánh giá

211 học viên

trace32
Linux
linux-kernel
Operating System
Computer Architecture

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

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

  • Quá trình hoạt động cơ bản như thế nào

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

  • TRACE32 để gỡ lỗi nhiều luồng thực thi khác nhau của quy trình

  • 멀티 lõi hệ thống cấu trúc trong quá trình hoạt động

<Thông báo>

1. Tặng coupon giảm giá 30% khi có 500 người đăng ký 🙏

Để chào mừng học viên thứ 500 đăng ký khóa học Linux Kernel, chúng tôi sẽ phát hành phiếu giảm giá 30%. Cảm ơn. Ai đến trước sẽ được phục vụ trước, 100 người. Phiếu giảm giá: 17874-02bbb1c1631b

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: 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 'Linux kernel - khóa học cơ bản dành cho các 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 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: Đ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 trên tất cả các thiết bị CNTT? Đây 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ự động, 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à hạt nhân Linux. Cùng với kiến ​​trúc Armv8-A, hạt nhân Linux cũng 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.

Lưu ý dành cho 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í)

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 tin, 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, hạt nhân Linux là 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 về hạt nhân Linux. Khi phiên bản hạt nhân Linux khó khăn đó được nâng cấp, nó sẽ phát triển và trở nên ngày càng phức tạp hơn. Sau năm 2024, phiên bản hạt nhân Linux sẽ được nâng cấp lên v6.6 hoặc cao hơn , điều này sẽ tăng thêm rào cản gia nhập.

Các nhà phát triển phần mềm hệ thống Linux 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ọ chỉ có thể cải thiện khả năng phát triển của mình nếu hiểu rõ về hạt nhân Linux. Tuy nhiên, rất khó để nắm được cách học hạt nhân Linux và trên hết là nội dung nào bạn cần phải biết rõ khi thực hành.

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 nên tìm hiểu những chủ đề nào về hạt nhân Linux? Hầu hết thời gian bạn sẽ học được quy trình này. Cuốn sách 'Hạt nhân Linux' bắt đầu bằng quá trình này. Tiến 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 tin và hệ thống bộ nhớ.

Người mới bắt đầu học quá trình này cảm thấy thế nào? Tôi cảm thấy quy trình là điều hoàn toàn cần thiết phải biết, nhưng nó dễ trở nên nhàm chán. Nguyên nhân là gì? Tôi không nghĩ có bất cứ điều gì ở đây có thể áp dụng trực tiếp vào các dự án thực tế. Ngoài ra, quá trình này trở nên nhàm chán vì có nhiều nội dung mơ hồ. Cuối cùng, dù bạn có học chăm chỉ đến đâu thì những gì bạn học cũng không tồn tại 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 nội dung chưa từng được đề cập trước đây trên YouTube hoặc bất kỳ nền tảng bài giảng nào khác ! 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 dump bộ nhớ của hạt nhân Linux. Những người tham gia khóa học này có thể tải xuống chương trình đào tạo (TRACE32) và tự thực hành.

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

Trình gỡ lỗi TRACE32 và các chương trình đượ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 phải có giấy phép để chạy. Khi 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à sử dụng trực tiếp chương trình mô phỏng TRACE32 để gỡ lỗi bộ nhớ. Bạn cũng có thể tải xuống và thực hành 8 bản dump bộ nhớ kernel cho phép bạn gỡ lỗi nhiều hành vi khác nhau của một quy trình (tạo quy trình, chấm dứt, 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 tìm hiểu về hạt nhân Linux, bạn sẽ phân tích mã nguồn của hạt nhân. Tuy nhiên, chúng ta gặp phải nhiều trở ngại trong quá trình phân tích nguồn hạt nhân. Thật khó để xác định hàm được gọi theo luồng nào và giá trị thực tế của cấu trúc dữ liệu của chương trình đang được phân tích là gì. Bài giảng này sẽ phá bỏ mọi trở ngại này.

Phân tích mã nguồn hạt nhân Linux liên quan đến quy trình, cùng với ngăn xếp cuộc 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 này hiệu quả hơn nhiều so với việc tự học về hạt nhân Linux. Công cụ này cũng phân tích các thông điệp ftrace được trích xuất từ ​​các bản dump bộ nhớ, cho phép bạn hiểu được nguyên lý hoạt động của quy trình theo 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 hiện nay. Nhà phát triển Qualcomm Linux Kernel BSP, một trong những công ty bán dẫn hệ thống hàng đầu thế giới, 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 tôi phân tích các hoạt động chính của hạt nhân bằng cách tải bản sao lưu bộ nhớ với crash-utility trong khi sử dụng trình mô phỏng TRACE32 để gỡ lỗi các cấu trúc dữ liệu hạt nhân liên quan đến quy trình. Các phương pháp gỡ lỗi, đặc biệt là khi ngăn xếp của một tiến trình bị hỏng hoặc xảy ra tràn ngăn xếp, là điều mà ngay cả các nhà phát triển fabless cấp cao cũng không hiểu 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. Giới thiệu đơn giản 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 quy 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, nơi 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. Chúng tôi cũng mô tả các cấu trúc dữ liệu liên quan đến nó.

Sử dụng chương trình TRACE32 để gỡ lỗi hành vi chi tiết của quá trình tạo và kết thúc quy trình. Mô tả chi tiết cấu trúc dữ liệu của quy trình và luồng gọi hàm. (Sinh viên có thể tải xuống chương trình TRACE32 và bản sao lưu bộ nhớ hạt nhân được tải lên trong bài giảng này và thực hành bằng cách làm 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 tiến trình mà trình xử lý ngắt đang chạy. Chúng tôi sẽ thảo luận về bối cảnh ngắt bằng cách phân tích các 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à 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

Trong bài giảng này, chúng tôi sẽ giới thiệu cách gỡ lỗi bộ nhớ Linux kernel - 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 gỡ lỗi bởi các nhà phát triển kernel Linux tại Qualcomm, một công ty bán dẫn hệ thống hàng đầu thế giới . Cung cấp các phương pháp gỡ lỗi nâng cao để 'gỡ lỗi' bộ nhớ hạt nhân Linux, 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 giáo dục TRACE32 (phiên bản mô phỏng) từ chương trình giảng dạy của khóa học. Sinh viên có thể tải chương trình TRACE32 vào bộ nhớ kernel được cung cấp trong bài giảng này và gỡ lỗi trong khi thực hành.

Bạn có thể trực tiếp tải xuống Crash Utility, được vận hành như một dự án mã nguồn mở, và tải các bản dump bộ nhớ hạt nhân để gỡ lỗi. Bạn có thể trực tiếp gỡ lỗi cấu trúc dữ liệu hạt nhân và gọi ngăn xếp bằng cách sử dụng nhiều chức năng 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!

Chưa từng có trong lĩnh vực phần mềm hệ thống trong nước! Tôi là tác giả của các cuốn sách 'Linux Kernel' và 'Arm Architecture (Armv8-A, Armv7-A)' . Ông cũng là một nhà phát triển có hiểu biết sâu sắc nhất về các xu hướng phần mềm hệ thống mới nhất (xe điện, hệ thống bán dẫn - phần mềm hệ thống) và là một 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.

  • Tác giả của 'Learning the Structure and Principles of the Linux Kernel through Debugging' ( 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 hạt 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 trên cả 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 phép 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ể học lớp này dễ dàng hơn.

  • Không cần có kiến ​​thức chuyên sâu trước 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?

  • Các nhà phát triển mới muốn phát triển năng lực của mình trong lĩnh vực phần mềm hệ thống, 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í).

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

  • Sinh viên đại học muốn 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)

  • 시스템 phần mềm là lĩnh vực mà các nhà phát triển từ các lĩnh vực khác muốn chuyển hướng sự nghiệp

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

  • hệ điều hành

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

  • ngôn ngữ C

Xin chào
Đây là

4,996

Học viên

112

Đánh giá

78

Trả lời

4.9

Xếp hạng

19

Các khóa học

국내 시스템 소프트웨어 분야에서 전무후무한! 'Arm 아키텍처(Armv8-A, Armv7-A)'와 '리눅스 커널' 책을 쓴 저자(2권의 책 모두 대한민국 학술원 우수도서에 선정)이며, 최신 시스템 소프트웨어 트렌드(전기자동차, 시스템 반도체- 시스템 소프트웨어)를 가장 잘 알고 있는 현업 개발자입니다. 또한 시스템 소프트웨어 분야에서 가장 지식 전파 활동을 활발하게 하는 교육자입니다. 

  • '시스템 소프트웨어 개발을 위한 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ả

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

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

    Đánh giá 1

    Đánh giá trung bình 5.0

    5

    30% đã tham gia

    • 이현진님의 프로필 이미지
      이현진

      Đánh giá 11

      Đánh giá trung bình 5.0

      5

      30% đã tham gia

      • 김건우님의 프로필 이미지
        김건우

        Đánh giá 2

        Đánh giá trung bình 5.0

        5

        30% đã tham gia

        좋아요

        • kech611961님의 프로필 이미지
          kech611961

          Đánh giá 3

          Đánh giá trung bình 5.0

          5

          30% đã tham gia

          • sunny75님의 프로필 이미지
            sunny75

            Đánh giá 76

            Đánh giá trung bình 5.0

            5

            100% đã tham gia

            2024/07/13/토 21:07 linux 강의 정말 잘 들었습니다. 감사합니다.

            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!