Đề cương khóa học
Giới thiệu
- Lịch sử nhanh của GNU/Linux
- Giấy phép
- Phiên bản kernel
- Chu kỳ phát hành
- Các cây kernel
- Mainline
- Kernel so với không gian người dùng
- Cơ chế so với chính sách
- Các lựa chọn trình điều khiển kernel khác nhau
- RTOS so với Linux
Quản lý Bộ nhớ
- Bộ nhớ ảo so với bộ nhớ vật lý
- Phân bổ bộ nhớ trong kernel
- Trang
- Khu vực
- API
- Slab
Bảng vá Kernel
- Chu trình sống
- Git
- Nguồn kernel
- Tạo bảng vá
- Kiểm tra bảng vá
- Sửa lỗi trong bảng vá
- Gửi bảng vá
- Mã đã được kiểm tra
Mô-đun Kernel
- Lấy nguồn kernel
- Cấu hình/xây dựng/cài đặt
- Trình điều khiển thiết bị (được liên kết tĩnh, tải tại runtime)
- Khởi tạo/kết thúc
- Giấy phép
- EXPORT SYMBOL GPL
- Makefile ngoài cây
- Module-init-tools
- Mô-đun trong cây kernel
- Kconfig
- Truyền tham số
- Sparse
Trình điều khiển Ký tự
- Kiến trúc
- Giao diện người dùng/kernel
- Hệ thống I/O
- VFS
- sysfs (thiết bị, bus, trình điều khiển, lớp),
- kobject/ktype/kset
- Mô hình trình điều khiển kernel Linux
- Tập tin thiết bị
-
Trình điều khiển ký tự
- Khởi tạo
- Đăng ký
- Mở, giải phóng
- cdev, cdev add, cdev del,...
- Số major/minor
- udev, udevmonitor, udevadm
Các thao tác Nâng cao của Trình điều khiển Ký tự
- ioctl
- unlocked ioctl
- compat ioctl
- API không gian người dùng
- API không gian kernel
- Chu trình sống của quy trình
- Ngủ/chặn
- Ngủ/đánh thức
- Hàng đợi chờ
- Thundering herd
- poll/select
Gỡ lỗi Kernel
- Gỡ lỗi
-
Gỡ lỗi kernel
- Tìm kiếm nhị phân với git
- Hỗ trợ gỡ lỗi từ kernel
- printk syslogd, klogd, loglevels, giới hạn tốc độ, cấp độ gỡ lỗi, hệ thống con gỡ lỗi có chọn lọc
- Gỡ lỗi bằng cách truy vấn debugfs
- Gỡ lỗi oops, xác nhận oops
- Magic SysRq Key
- kgdb/kdb
- JTAG
Theo dõi
- gcov
- lcov
- oprofile
-
ftrace
- nop tracer
- function tracer
- sched switch tracer
- function graph tracer
- dynamic tracer
- trace-cmd/kernelshark
- perf
- LTTng
Ngắt
- Ngắt so với quét
- Ngắt
- Khu vực chương trình
- Tính tái nhập
- Sự kiện
- Xử lý ngắt
- Xử lý ngắt chia sẻ
- Lưu trình xử lý ngắt
- Kiểm soát ngắt
Hoãn công việc
- Top/bottom halves
- softirqs
- tasklets
- hàng đợi công việc
- Ngắt đa luồng
Đồng bộ hóa
- Khu vực/vùng quan trọng
- Nguyên tử
- Điều kiện đua
- Đồng bộ hóa
- Khóa
- Giải pháp khóa
- Tắc đường
- Tranh chấp
- Khóa gì?
-
Có thể sử dụng gì?
- Các thao tác nguyên tử
- Khóa spin
- Khóa spin đọc-ghi
- Semaphore
- Semaphore nhị phân
- Mutex
- Semaphore đọc-ghi
- Biến hoàn thành
- Khóa tuần tự
- Tắt cướp
- Đặt hàng và rào cản
Thời gian
- HZ
- Jiffies
- Trễ lớn/nhỏ
- Bộ đếm thời gian kernel
I/O Phần cứng
- Cổng I/O
- Bộ nhớ I/O
- Cách xử lý tác dụng phụ khi truy cập các thanh ghi?
Giao tiếp Người dùng-Kernel
- put(get)_user()
- copy to(from)_user()
- I/O Kernel
- Ánh xạ bộ nhớ
- procfs
- sysfs
- debugfs
- relayfs
- netlink
- ioctl
Tính di động
- Kích thước từ
- Loại dữ liệu mờ
- char ký tự có dấu/không dấu
- Cân đối dữ liệu
- Tăng cường nguyên tử
- Sử dụng lại mã
- Đổi chiều
- Tick hệ thống
- Kích thước trang
- Thứ tự hướng dẫn
- SMP/preemption/bộ nhớ cao
Trừ khi có ghi chú khác, nội dung và cấu trúc khóa học này được cấp phép theo Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).
Yêu cầu
- Am hiểu cơ bản về việc sử dụng hệ thống GNU/Linux như người dùng cuối
- Am hiểu cơ bản về shell dòng lệnh
- Kiến thức cơ bản về phát triển không gian người dùng/ứng dụng
- Kiến thức lập trình C trung cấp
- Đã tham dự Kiến trúc Hệ thống GNU/Linux nhúng trước đó (được khuyến khích mạnh mẽ!) và/hoặc có hiểu biết tốt về các chủ đề được trình bày ở đó
Đánh giá (5)
Thông tin bổ sung rất hữu ích
Grzegorz - Comp S.A.
Khóa học - BLoC Pattern
Dịch thuật bằng máy
Edward là một facilitator tuyệt vời
Zibusiso Ncube - Agricatural Research Council
Khóa học - Ionic 4 and Angular for Developers
Dịch thuật bằng máy
Kiến thức của Miguel về chủ đề này rất rộng rãi. Ông đã làm cho khóa đào tạo dễ hiểu và nội dung được trình bày một cách cân bằng; bổ sung các tính năng mới vào mỗi phần khi cần thiết. Ông đã bao quát tất cả những điều được yêu cầu và trả lời từng câu hỏi một cách kỹ lưỡng. Đó là một trải nghiệm rất thoải mái.
Paul Coaton - SEMPCheck Services
Khóa học - Flutter Development Bootcamp with Dart
Dịch thuật bằng máy
Trainer thích ứng với nhu cầu của chúng tôi
Eduardo Fontecha - ORMAZABAL PROTECTION & AUTOMATION S.L.U.
Khóa học - The Yocto Project - An Overview - hands-on
Dịch thuật bằng máy
Giảng viên rất nhiệt tình, thân thiện và yêu thích chủ đề
Isaac Murphy - Royal New Zealand Airforce
Khóa học - Build Native iOS and Android Apps with Flutter
Dịch thuật bằng máy