Cảm ơn bạn đã gửi yêu cầu! Một thành viên trong đội ngũ của chúng tôi sẽ liên hệ với bạn ngay lập tức.
Cảm ơn bạn đã gửi đặt chỗ! Một thành viên trong đội ngũ của chúng tôi sẽ liên hệ với bạn ngay lập tức.
Đề 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 ở đó
35 Giờ
Đánh giá (3)
Mọi thứ đều ổn.
Adrian Rybka - SEOyon
Khóa học - Flutter Development Bootcamp with Dart
Dịch thuật bằng máy
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
Sự hiểu biết và sự kiên nhẫn của ông ấy.
Chrisna - Agricatural Research Council
Khóa học - Ionic 4 and Angular for Developers
Dịch thuật bằng máy