강의

멘토링

로드맵

BEST
Security & Network

/

System

Cấu trúc và nguyên lý của Linux kernel: Debug - Basic [Bài giảng trực tiếp của tác giả phần 1-2]

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

(4.5) 13 đánh giá

356 học viên

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

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

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

  • Lý do gỡ lỗi (debugging) quan trọng trong các dự án thực tế và quá trình thực hiện gỡ lỗi trên thực tế

  • Các cách khác nhau để nâng cao kỹ năng gỡ lỗi và các dạng vấn đề có thể gặp phải trong dự án thực chiến

  • Cách gỡ lỗi kernel bằng printk và dump_stack()

  • Cách thiết kế driver thiết bị và tạo patch gỡ lỗi bằng printk

  • Cách sử dụng Ftrace và cách thiết lập

  • Nguyên lý hoạt động chính của nhân Linux qua thông điệp Ftrace từ nhiều sự kiện.

<Thông báo>

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

Để chào mừng 500 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 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: Gỡ lỗi - Cơ bản [Bài giảng trực tiếp của Tác giả Phần 1-2]> 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 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ế.

Thực tế của việc trở thành một nhà phát triển hệ thống Linux nhúng mới hoặc còn non trẻ

Những vấn đề phổ biến nhất mà các nhà phát triển hệ thống Linux nhúng mới hoặc chưa có kinh nghiệm gặp phải khi giải quyết vấn đề là gì? Tại sao?

1. Thiếu tài liệu liên quan đến gỡ lỗi

Trong nhiều lĩnh vực phần mềm, bao gồm cả phát triển web, môi trường phát triển để gỡ lỗi được trang bị tương đối đầy đủ. Ngoài ra, có rất nhiều bài giảng và sách dành cho người mới bắt đầu, giúp bạn không phải trải qua nhiều lần thử nghiệm và mắc lỗi khi học các phương pháp gỡ lỗi. Tuy nhiên, trong phát triển phần mềm hệ thống Linux, có nhiều tài liệu liên quan đến gỡ lỗi, nhưng hầu hết đều là tài liệu phát triển khó hiểu đối với người mới bắt đầu .

2. Khó khăn khi nhận trợ giúp gỡ lỗi

Làm thế nào để gỡ lỗi một dự án phần mềm hệ thống Linux? Phần lớn thời gian, bạn phân tích nhật ký kernel hoặc bản sao lưu bộ nhớ. Vậy cần những kỹ năng nào để phân tích nhật ký hoặc bản sao lưu đúng cách? Bạn cần khả năng đọc và hiểu mã nguồn của kernel Linux hoặc hiểu nguyên lý hoạt động của các tiến trình hoặc ngắt. Tuy nhiên , trong các dự án thực tế, rất hiếm các lập trình viên cao cấp có những kỹ năng này, và ngay cả khi bạn may mắn có một lập trình viên giỏi gỡ lỗi, hầu hết họ đều quá bận rộn để có thể giải thích chi tiết và tận tình .

3. Khó khăn trong việc biết lý do tại sao việc gỡ lỗi đang được thực hiện

Bất kể lĩnh vực nào, hầu hết mọi người đều biết rằng gỡ lỗi là một năng lực cốt lõi để phát triển kỹ năng giải quyết vấn đề. Tuy nhiên, nhiều người tìm việc, thậm chí cả những người mới vào nghề, không biết tại sao họ phải gỡ lỗi trong các dự án thực tế. Họ cũng cảm thấy thất vọng vì không biết phải chuẩn bị gì cho việc gỡ lỗi. Tuy nhiên , khi làm việc trên một dự án thực tế và được giao một lỗi hoặc vấn đề, họ thường lặp lại việc thử và sai vì thậm chí không biết cách bắt đầu phân tích lỗi. Điều này cuối cùng dẫn đến việc làm thêm giờ liên tục và tự trách mình vì thiếu năng khiếu về phần mềm hệ thống Linux.

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?

Cuối cùng, 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 lý của Nhân Linux thông qua Gỡ lỗi' mà tôi đã viết, tôi sẽ trình bày nội dung về gỡ lỗi và học mã. Bài giảng này là bài giảng do chính tác giả của cuốn sách 'Tìm hiểu Cấu trúc và Nguyên lý của Nhân Linux thông qua Gỡ lỗi' trực tiếp giảng dạy và bao quát nội dung của Chương 3. Ngoài ra, bài giảng còn giải thích các phương pháp gỡ lỗi thực tế không được đề cập trong sách.

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

Giải thích chi tiết lý do tại sao việc gỡ lỗi lại quan trọng trong các dự án thực tế và quy trình gỡ lỗi thực tế.

Chúng tôi giới thiệu nhiều cách khác nhau để cải thiện kỹ năng gỡ lỗi của bạn và các loại vấn đề có thể phát sinh trong các dự án thực tế.

Chúng tôi sẽ giải thích chi tiết quá trình gỡ lỗi hạt nhân bằng cách tham khảo một trường hợp giống nhất với một dự án thực tế.

Bài viết này giải thích chi tiết cách gỡ lỗi kernel bằng printk và dump_stack(). Mã tham khảo liên quan cũng được cung cấp.

Chúng ta sẽ thực hành kiểm tra và phân tích nhật ký kernel trên Raspberry Pi thực tế. Chúng ta cũng sẽ tải các bản sao lưu bộ nhớ vào chương trình Crash Utility và mở nhật ký kernel để phân tích chi tiết.

Bài viết này trình bày chi tiết cách thiết kế trình điều khiển thiết bị và tạo bản vá lỗi bằng printk.

Mô tả Ftrace, một tính năng gỡ lỗi cốt lõi được cung cấp bởi nhân Linux. Cụ thể, bài viết giải thích chi tiết cách sử dụng Ftrace và cách cấu hình nó.

Mô tả chi tiết các thông báo Ftrace, đặc biệt là theo dõi ngăn xếp, có thể giúp bạn hiểu luồng gọi hàm.

Giải thích cách phân tích nguồn kernel thông qua các thông báo Ftrace và các sự kiện Ftrace khác nhau.

Chúng tôi sẽ giải thích cách thiết lập Ftrace bằng cách cài đặt trực tiếp trên Raspberry Pi. Chúng tôi cũng sẽ trích xuất nhật ký Ftrace và phân tích các thông báo Ftrace cho các sự kiện khác nhau.


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 'chức năng gỡ lỗi hạt nhân Linux' và 'phương pháp khắc phục sự cố' tốt hơn bất kỳ ai khác ở Hàn Quốc.

Những điều cần lưu ý trước khi tham gia lớp học

Môi trường thực hành

  • Hệ điều hành và phiên bản (OS): Raspberry Pi (Raspbian), Linux Kernel v6.1

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.

  • 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 nâng cao 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 ô tô điện (lái tự động, thông tin giải trí).

  • Ứng viên 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 tới cao học ngành phần mềm hệ thống (bộ nhớ, hệ thống tệp, hệ điều hành)

  • Nhà phát triển ngoài ngành mong muốn chuyển đổi sang lĩnh vực phần mềm hệ thống

  • Lập trình viên phần mềm hệ thống Linux muốn nâng cao khả năng gỡ lỗi

  • Nhà phát triển tìm hiểu quy trình xử lý sự cố liên quan đến phần mềm hệ thống Linux

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

  • Ngôn ngữ C

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

  • Hệ điều hành

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ả

34 bài giảng ∙ (4giờ 35phú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ả

13 đánh giá

4.5

13 đánh giá

  • redkyo00님의 프로필 이미지
    redkyo00

    Đánh giá 2

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    • 박규동님의 프로필 이미지
      박규동

      Đánh giá 2

      Đánh giá trung bình 5.0

      5

      62% đã tham gia

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

        Đánh giá 3

        Đánh giá trung bình 5.0

        5

        100% đã tham gia

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

          Đánh giá 13

          Đánh giá trung bình 5.0

          5

          32% đã tham gia

          • anhae11님의 프로필 이미지
            anhae11

            Đánh giá 1

            Đánh giá trung bình 5.0

            5

            62% đã tham gia

            어려운 내용인데 쉽게 가르쳐주십니다!

            716.237 ₫

            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!