강의

멘토링

로드맵

Inflearn brand logo image
Security & Network

/

System

Cấu trúc và nguyên lý của Linux kernel: Debugging - Advanced thực chiến [Tác giả trực tiếp giảng dạy phần 1-3]

Tác giả của cuốn sách "Cấu trúc và nguyên lý của nhân Linux qua việc gỡ lỗi" giải thích một cách rõ ràng về các kỹ năng gỡ lỗi kernel memory dump tiên tiến nhất của nhân Linux mới nhất (v6.1), được sử dụng phổ biến nhất trong phần mềm hệ thống.

(5.0) 9 đánh giá

280 học viên

  • austinkim
저자 직강
리눅스커널
임베디드리눅스
trace32
Linux
linux-kernel
Operating System
debugging

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

  • Gỡ lỗi dump bộ nhớ kernel Linux bằng TRACE32 và Crash Utility

  • Nghiên cứu đa dạng các trường hợp có thể gặp phải khi phát triển dự án thực tế.

  • Bộ theo dõi ftrace lúc khởi động

  • Chạy chương trình Crash Utility để gỡ lỗi các cấu trúc dữ liệu chính của kernel Linux

  • Chạy chương trình TRACE32 để gỡ lỗi các cấu trúc dữ liệu chính của nhân Linux.

<Thông báo>

1. Tặng phiếu giảm giá 30% khi có 200 người đăng ký

Để chào mừng 200 học viên (Cấu trúc và Nguyên lý của Nhân Linux), chúng tôi tặng phiếu giảm giá 30%. Xin chân thành cảm ơn. Ưu tiên cho 200 người đăng ký đầ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: Gỡ lỗi - Thực hành Nâng cao [Bài giảng Trực tiếp của Tác giả Phần 1-3]> 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ế.

Các nhà phát triển phần mềm hệ thống Linux muốn phát triển những kỹ năng phát triển nào nhất?

Kỹ năng thực tế nào mà các nhà phát triển phần mềm hệ thống Linux muốn học nhất? Đó là kỹ năng gỡ lỗi. Gỡ lỗi tỷ lệ thuận với kỹ năng giải quyết vấn đề, vì vậy họ muốn cải thiện kỹ năng gỡ lỗi của mình. Có rất nhiều blog và tài liệu về nhân Linux, nhưng chúng hiếm khi đề cập đến cách giải quyết vấn đề một cách có hệ thống bằng các kỹ thuật gỡ lỗi mới nhất.

Vì vậy, trong Chương 3 của cuốn sách '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', tôi đề cập đến gỡ lỗi trong 'Gỡ lỗi và học mã'.

Đ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 ! Bài giảng bao gồm các phương pháp gỡ lỗi kernel Linux mới nhất và nhiều nghiên cứu điển hình. Bài giảng cũng giới thiệu cách gỡ lỗi cấu trúc dữ liệu kernel 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. Tổng quan toàn diện về các phương pháp gỡ lỗi gần nhất với quá trình phát triển thực tế

Kỹ năng quan trọng nhất mà người tìm việc và các nhà phát triển mới muốn biết là cách sử dụng các công cụ gỡ lỗi và cách gỡ lỗi. Trong bài giảng này, chúng tôi sẽ giới thiệu cách gỡ lỗi cấu trúc dữ liệu kernel bằng phương pháp gỡ lỗi tiên tiến nhất, 'kernel memory dump'.

2. 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ấu trúc dữ liệu của kernel 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.

3. Giới thiệu phương pháp gỡ lỗi ftrace mới nhất, 'boot-time tracer'

Khi phiên bản hạt nhân Linux được nâng cấp, các phương pháp gỡ lỗi cũng đang phát triển. Trong ftrace, chức năng 'boot-time tracer' được đề xuất, cho phép theo dõi hoạt động của hạt nhân trong quá trình khởi động bằng cách chỉ thay đổi các thiết lập đơn giản. Trong bài giảng này, chúng tôi sẽ giới thiệu các cách khác nhau để sử dụng 'boot-time tracer'.

4. Cung cấp chương trình mô phỏng TRACE32 (cho mục đích giáo dục) và 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 ba bản sao lưu bộ nhớ kernel và thực hành chúng.

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

Giải thích lý do tại sao phân tích dump lại cần thiết trong các dự án thực tế. Giới thiệu Crash-Utility và TRACE32, những công cụ được sử dụng rộng rãi trong các dự án thực tế.

Bài viết này trình bày chi tiết cách gỡ lỗi các dự án thực tế bằng Crash-Utility và TRACE32.

Chúng tôi sẽ giải thích nội dung sách hướng dẫn sử dụng TRACE32 và chạy trực tiếp TRACE32 để gỡ lỗi. Trong khi tham gia lớp học, bạn có thể tải xuống chương trình TRACE32 giáo dục (dành cho trình mô phỏng) và thực hành bằng cách làm theo.

Phần này giải thích cách cài đặt và chạy chương trình TRACE32 (giáo dục, mô phỏng) được tải lên trong 'Tài liệu Bài giảng'. Phần này cũng giải thích chi tiết cách tải xuống bản sao lưu bộ nhớ kernel được tải lên trong 'Tài liệu Bài giảng' và tải bản sao lưu bộ nhớ kernel bằng chương trình TRACE32.


Chúng tôi sẽ giới thiệu ba cách thiết lập ftrace và giải thích chi tiết lý do tại sao bạn cần trình theo dõi ftrace thời gian khởi động.

Mô tả cách thiết lập trình theo dõi thời gian khởi động ftrace và phân tích chi tiết mã nguồn hạt nhân có liên quan.

Chúng tôi sẽ hướng dẫn bạn cách thiết lập dòng lệnh khởi động và phân tích chi tiết các nhật ký ftrace liên quan. Chúng tôi cũng sẽ hướng dẫn bạn cách trích xuất nhật ký hạt nhân thành nhật ký ftrace và cách phân tích các thông báo liên quan.

Chúng tôi sẽ phân tích chi tiết các thông điệp ftrace và giải thích nguyên lý hoạt động của chúng. Chúng tôi cũng sẽ phân tích chi tiết mã nguồn kernel liên quan đến initcall.

Chạy chương trình Crash Utility để gỡ lỗi các cấu trúc dữ liệu quan trọng trong nhân Linux. Phân tích mã nguồn trình điều khiển nhân liên quan và tìm hiểu thêm về nguyên lý hoạt động của nó.


Gỡ lỗi bản dump kernel Linux bằng chương trình Crash Utility sẽ giải thích nguyên lý hoạt động chi tiết của các chức năng liên quan.


Chúng tôi giới thiệu nhiều nghiên cứu điển hình mà bạn có thể gặp phải trong quá trình phát triển một dự án thực tế. Chúng tôi phân tích chi tiết các nhật ký kernel và nguyên lý hoạt động của kernel. Chúng tôi cũng giải thích cách giải quyết vấn đề thông qua gỡ lỗi.


Bài báo này trình bày một nghiên cứu điển hình về vấn đề ô nhiễm ngăn xếp và rò rỉ bộ nhớ có thể gặp phải trong quá trình phát triển các dự án thực tế.

Giải thích cấu trúc dữ liệu và cấu trúc của hệ thống bộ nhớ trong nhân Linux thông qua tiện ích gỡ lỗi Crash Utility.

Sách mô tả các lệnh chính (đúc địa chỉ bộ nhớ) của TRACE32 được giới thiệu. Giải thích chi tiết cách sử dụng các lệnh liên quan trực tiếp với chương trình TRACE32.

Mô tả thông tin ký hiệu của bảng lệnh gọi hệ thống và kiểm tra thông tin hàm xử lý lệnh gọi hệ thống bằng lệnh TRACE32 (dv %y.ll sys_call_table). Trong bài giảng sau, chúng tôi cũng sẽ giải thích các cấu trúc dữ liệu cốt lõi của hạt nhân Linux cùng với các lệnh chính của TRACE32.

Phần này giải thích chi tiết các lệnh thực tế (tùy chọn %l: xuất thông tin đăng ký) được sử dụng trong quá trình thực hiện các dự án thực tế.

Cung cấp chương trình TRACE32 giáo dục và 3 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 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)

  • 3 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?

  • Kỹ sư phát triển junior 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 hướng đến cao học ngành phần mềm hệ thống (bộ nhớ, hệ thống tệp, hệ điều hành).

  • Lập trình viên ngoại ngành muốn chuyển 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

  • Ngôn ngữ C

  • Kiến trúc máy tí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ả

42 bài giảng ∙ (5giờ 39phú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á

  • aceoftop1975님의 프로필 이미지
    aceoftop1975

    Đánh giá 95

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    2024/07/30/火 20:25 講義はよく聞きました。経験された話もたくさんしていただき、難しいlinux/armについて、簡単に説明していただきありがとうございます。 50(75年生まれ)ですね。年次を使って今講義を聞きました。急いでみなさん、もう一度聞かなければなりませんね。^^;いないから、私が感じた心を伝えることができませんね。 linuxについて少しずつ進んでいけると思います。

    • ioniakim2638님의 프로필 이미지
      ioniakim2638

      Đánh giá 9

      Đánh giá trung bình 4.9

      5

      100% đã tham gia

      • wodud0432886님의 프로필 이미지
        wodud0432886

        Đánh giá 2

        Đánh giá trung bình 5.0

        5

        31% đã tham gia

        • dlrbcnvk님의 프로필 이미지
          dlrbcnvk

          Đánh giá 19

          Đánh giá trung bình 4.9

          5

          62% đã tham gia

          • stevenchoi4427님의 프로필 이미지
            stevenchoi4427

            Đánh giá 1

            Đánh giá trung bình 5.0

            5

            31% đã 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!