Liên hệ với chúng tôi

Đề cương khóa học

1. Giới thiệu về Nhân Linux

  • Tổng quan về Linux nhúng
  • Kiến trúc nhân Linux
  • Không gian người dùng so với không gian nhân
  • Trách nhiệm của nhân
  • Quy trình phát triển nhân
  • Tổng quan về các nền tảng nhúng được hỗ trợ

2. Thiết lập Môi trường Phát triển

  • Chuẩn bị máy trạm phát triển
  • Khái niệm về biên dịch chéo
  • Cài đặt các công cụ phát triển cần thiết
  • Thiết lập bo mạch phát triển BeagleBone Black
  • Cấu hình máy chủ nối tiếp (Serial console)
  • Khởi động thiết bị đích

3. Tải về và Tìm hiểu Mã nguồn Nhân

  • Cây mã nguồn nhân Linux
  • Nhân ổn định so với nhân hỗ trợ dài hạn
  • Tải về mã nguồn nhân
  • Tìm hiểu cấu trúc mã nguồn
  • Tài liệu tham khảo về nhân
  • Quản lý phiên bản nhân

4. Cấu hình, Biên dịch và Khởi động Nhân

  • Cấu hình nhân bằng menuconfig
  • Chọn các tính năng của nhân
  • Biên dịch chéo nhân
  • Xây dựng ảnh nhân (kernel images)
  • Cài đặt các module của nhân
  • Tổng quan về trình khởi động (Bootloader)
  • Khởi động nhân tùy chỉnh

5. Nền tảng Device Tree

  • Mục đích của Device Tree
  • Tệp nguồn Device Tree (DTS)
  • Blob Device Tree (DTB)
  • Khái niệm mô tả phần cứng
  • Sửa đổi tệp Device Tree
  • Xây dựng và triển khai Device Tree

6. Module Nhân Linux

  • Kiến trúc module của nhân
  • Xây dựng module nhân có thể nạp
  • Nạp và gỡ module
  • Tham số module
  • Sự phụ thuộc của module
  • Tương tác với các module của nhân
  • Kỹ thuật gỡ lỗi module

7. Gỡ lỗi Nhân Linux

  • Ghi log nhân với printk()
  • Sử dụng dmesg
  • Gỡ lỗi động
  • Phân tích tình huống nhân sụp đổ (Kernel panic)
  • Thông báo Oops
  • Gỡ lỗi với GDB
  • Các công cụ theo dõi hiệu suất cơ bản

8. Driver Thiết bị Ký tự

  • Mô hình driver thiết bị Linux
  • Thiết bị ký tự
  • Đăng ký driver
  • Các thao tác tệp
  • Các thao tác đọc và ghi
  • Giao diện IOCTL
  • Quản lý bộ nhớ
  • Dọn dẹp driver

9. Tích hợp Driver và Truy cập Phần cứng

  • Thiết bị và driver nền tảng (Platform)
  • Lập trình GPIO
  • Xử lý ngắt
  • Trình lập thời gian và công việc trì hoãn
  • Truy cập thanh ghi phần cứng
  • Hoạt động với bộ nhớ ánh xạ I/O (Memory-mapped I/O)

10. Kiểm soát Phiên bản với Git

  • Cơ bản về Git
  • Quản lý mã nguồn nhân
  • Nhánh và gộp
  • Tạo bản vá (patches)
  • Xem xét các thay đổi
  • Hợp tác trong phát triển nhân

11. Phòng Lab Phát triển Nhân Thực hành

  • Cấu hình nhân tùy chỉnh
  • Xây dựng và triển khai nhân
  • Tạo module nhân đơn giản
  • Phát triển driver thiết bị ký tự cơ bản
  • Sửa đổi tệp Device Tree
  • Gỡ lỗi các vấn đề nhân trên BeagleBone Black

12. Thực hành Tốt nhất và Tóm tắt

  • Phong cách mã hóa nhân
  • Viết driver dễ bảo trì
  • Các bẫy phổ biến trong phát triển
  • Các nguồn tài liệu tham khảo về nhân
  • Quy trình đóng góp mã nguồn mở
  • Xem xét lại các khái niệm chính
  • Câu hỏi và trả lời
  • Các bước tiếp theo trong phát triển nhân Linux

Yêu cầu

Hiểu biết cơ bản về việc sử dụng hệ thống GNU/Linux

 14 Giờ

Số người tham gia


Giá cho mỗi học viên

Đánh giá (2)

Các khóa học sắp tới

Các danh mục liên quan