강의

멘토링

커뮤니티

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

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

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

Để kỷ niệm việc vượt qua 200 học viên (Cấu trúc và Nguyên lý của Linux Kernel), chúng tôi phát hành coupon giảm giá 30%. Cảm ơn các bạn. Áp dụng cho 200 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ó hệ thống các chức năng chính cấu thành nhân Linux 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à phát triển phần mềm hệ thống nhất định phải biết về Linux Kernel


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í (infotainment), lái xe tự động và 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ú ý!

✅ 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) dành cho 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

✅ Những 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, 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 nhân Linux đã được nâng cấp lên v6.6 trở lên vàcó, 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 thức học Linux kernel và quan trọng hơn là cần biết những nội dung nào trong công việc 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ất khả năng phát triển nào?

Các nhà phát triển phần mềm hệ thống Linux muốn học kỹ năng thực tế nào nhất? Chính là kỹ năng debugging. Debugging tỷ lệ thuận với khả năng giải quyết vấn đề, vì vậy họ muốn nâng cao khả năng debugging của mình. Mặc dù có nhiều blog và tài liệu về Linux kernel, nhưng hầu như không có tài liệu nào đề 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 debugging mới nhất.

Vì vậy trong chương 3 "Debugging và học tập code" của cuốn sách "Cấu trúc và nguyên lý của Linux kernel thông qua debugging" mà tôi đã viết, tôi đang đề cập đến nội dung về debugging.

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

Khóa học này được cấu thành từ 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 tôi sẽ đề cập đến các phương pháp debug kernel Linux mới nhất và nhiều case study đa dạng. Ngoài ra, chúng tôi sẽ giới thiệu cách debug cấu trúc dữ liệu của kernel 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. Tổng hợp các phương pháp debug gần nhất với phát triển thực tế

Kỹ năng công việc mà các bạn chuẩn bị việc làm hoặc các lập trình viên mới vào nghề muốn biết nhất là sử dụng công cụ debugging nào và cách debugging như thế nào. Trong khóa học này, chúng tôi sẽ giới thiệu phương pháp debugging tiên tiến nhất là sử dụng 'kernel memory dump' để debug cấu trúc dữ liệu của kernel.

2. 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ấu trúc dữ liệu của kernel thông qua memory dump của Linux kernel, đồng thời load memory dump bằng 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 debug ftrace mới nhất 'boot-time tracer'

Khi phiên bản kernel Linux được nâng cấp, các phương pháp debugging cũng đang phát triển. Trong ftrace, tính năng 'boot-time tracer' đã được đề xuất, cho phép tracing hoạt động của kernel trong quá trình khởi động chỉ bằng cách thay đổi một số cài đặt đơ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 (dành cho giáo dục) và dump kernel Linux

Trình gỡ lỗi và chương trình TRACE32 đượ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'có thể 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 3 kernel memory dump để thực hành.

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

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

Giải thích chi tiết cách thức debug trong các dự án thực tế sử dụng Crash-Utility và TRACE32.

Giải thích nội dung của cuốn sách mô tả TRACE32 và thực hiện debug bằng cách chạy trực tiếp TRACE32. Trong khi học, hãy tải xuống chương trình TRACE32 dành cho giáo dục (dành cho giáo dục: dành cho simulator)Bạn có thể thực hành cùng theo dõi.

Giải thích cách cài đặt và chạy chương trình TRACE32 (dành cho giáo dục, trình mô phỏng) đã được tải lên trong 'Tài liệu bài giảng'. Ngoài ra, giải thích chi tiết cách tải xuống kernel memory dump đã được tải lên trong 'Tài liệu bài giảng' và cách load kernel memory dump bằng chương trình TRACE32.


Giới thiệu 3 cách thiết lập ftrace và giải thích chi tiết về lý do cần thiết boot-time ftrace tracer.

Cách thiết lập boot-time ftrace tracer và phân tích chi tiết mã nguồn kernel liên quan.

Giới thiệu cách thiết lập dòng lệnh khởi động và phân tích chi tiết các log ftrace liên quan. Giới thiệu cách trích xuất log kernel thành log ftrace và cách phân tích các thông báo liên quan.

Phân tích chi tiết thông điệp ftrace và giải thích nguyên lý hoạt động liên quan. Đồng thời cũng phân tích chi tiết mã nguồn kernel liên quan đến initcall.

Chạy chương trình Crash Utility để debug các cấu trúc dữ liệu chính của Linux kernel. Đồng thời phân tích mã nguồn kernel driver liên quan và giải thích chi tiết nguyên lý hoạt động.


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


Giới thiệu các nghiên cứu tình huống đa dạng có thể gặp phải trong quá trình phát triển dự án thực tế. Phân tích chi tiết các log kernel liên quan và nguyên lý hoạt động của kernel. Ngoài ra, cũng giải thích về cách giải quyết vấn đề thông qua việc debug.


Giải thích các nghiên cứu tình huống về vấn đề stack overflow và memory leak có thể gặp phải trong quá trình phát triển dự án thực tế.

Giải thích cấu trúc dữ liệu và kiến trúc của hệ thống bộ nhớ trong nhân Linux thông qua việc debug bằng Crash Utility.

Cuốn sách giới thiệu các lệnh chính của TRACE32 (ép kiểu địa chỉ bộ nhớ). Giải thích chi tiết cách sử dụng các lệnh liên quan trực tiếp bằng chương trình TRACE32.

Giải thích thông tin ký hiệu của bảng system call và sử dụng lệnh TRACE32 (d.v %y.ll sys_call_table) để xác nhận thông tin hàm xử lý system call. Trong các bài giảng tiếp theo sẽ giải thích các lệnh chính của TRACE32 cùng với các cấu trúc dữ liệu cốt lõi của Linux kernel.

Trong quá trình tiến hành dự án thực tế, chúng tôi sẽ giải thích chi tiết các lệnh thực dụng được sử dụng (tùy chọn %l: xuất thông tin thanh ghi).

Cung cấp chương trình TRACE32 giáo dục và 3 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 kernel Linux 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.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ó thể tải xuống trực tiếp Crash Utility được vận hành như một dự án mã nguồn mở để 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ả

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

  • '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) - Thuyết trình Tutorial [Chinh phục Linux Kernel 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 điều cần 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ảng này thìChắc chắn dành cho 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)

  • 3 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 hiểu đại khái về cách thức hoạt động của Linux.

  • 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ề nhân Linux làm tiền đề.

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,835

Học viên

183

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

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ả

10 đánh giá

5.0

10 đánh giá

  • aceoftop1975님의 프로필 이미지
    aceoftop1975

    Đánh giá 109

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    2024/07/30/Thứ Ba 20:25 Tôi rất thích bài giảng. Bây giờ tôi đã nghe bài giảng về lộ trình của Donghyun Kim. Tôi cũng rất ấn tượng với lời khuyên rằng tất cả các bài giảng đều cung cấp thông tin và kiến ​​thức mới, đồng thời phải mất khoảng 15 ngày để giải quyết vấn đề OOM (hết bộ nhớ). Cảm ơn bạn đã chia sẻ kinh nghiệm cá nhân và giải thích linux/arm khó hiểu một cách dễ hiểu. Tuổi tôi hiện nay là 50 (sinh năm 1975). T.T Khi còn trẻ, tôi đã mua rất nhiều sách về Linux và nỗ lực rất nhiều nhưng vẫn không tiến bộ gì. Nhưng sau khi nghe Donghyun Kim giảng, tôi đã học được rất nhiều điều. Tôi chỉ có thời gian vào cuối tuần, nhưng tuần này tôi tận dụng thời gian nghỉ phép hàng năm để tham dự tất cả các buổi giảng. Mình đã nghe rất nhanh từ thứ bảy ngày 27 đến giờ nên chắc phải nghe lại thôi.^_^; Thời gian khóa học: Vì không giới hạn nên tôi nghĩ mình sẽ tiếp tục nghe nếu muốn nghe lại sau một năm. Bây giờ tôi sẽ đọc kỹ cuốn sách linux/arm mà tôi đã mua dưới dạng sách điện tử. Vì không có Jeju nên tôi không thể truyền tải được cảm xúc của mình. Bây giờ tôi cảm thấy mình có thể tiến bộ từng chút một với Linux. Cảm ơn bạn vì bài giảng tuyệt vời. Nếu bạn tiếp tục soạn bài giảng, tôi sẽ lắng nghe cẩn thận. Chúc một ngày tốt lành! Cảm ơn

    • kdpark5057님의 프로필 이미지
      kdpark5057

      Đánh giá 2

      Đánh giá trung bình 5.0

      5

      100% đã tham gia

      • ioniakim2638님의 프로필 이미지
        ioniakim2638

        Đánh giá 9

        Đánh giá trung bình 4.9

        5

        100% đã tham gia

        • wodud0432886님의 프로필 이미지
          wodud0432886

          Đánh giá 3

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

            1.163.444 ₫

            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!