Ưu đãi trong tuần: Nhập mã UD50 giảm 50k cho đơn từ 300k!
Trang chủ
Menu

Memory Management in Linux Kernel

Quản lý bộ nhớ trong Linux Kernel

Quản lý bộ nhớ trong Linux Kernel

Lập trình Linux Kernel - Quản lý bộ nhớ chuyên sâu

4.2
(362 đánh giá)
2,909 học viên
Giảng viên
Linux Trainer
Phụ đề Việt chất lượng cao Phụ đề tiếng Anh Bán chạy Đánh giá cao
50.000đ 969.000đ -95%
✓ Xem giỏ hàng và thanh toán
Bao gồm phụ đề tiếng Việt, tiếng Anh
2.0 giờ video
44 bài giảng
Truy cập vĩnh viễn
Học trên mọi thiết bị
Cập nhật: 31/05/2026

Bạn sẽ học được gì

Kiến thức về quản lý bộ nhớ trong Linux Kernel

Yêu cầu

Có khả năng viết/biên dịch/nạp/gỡ bỏ module Hello World Linux Kernel

Đối tượng phù hợp

Nhà phát triển muốn tìm hiểu sâu về quản lý bộ nhớ trong Linux Kernel

Nội dung khóa học

3 phần • 44 bài giảng
1 Không gian địa chỉ vật lý là gì?
2 Cách xem bản đồ bộ nhớ/không gian địa chỉ vật lý trong Linux - /proc/iomem
3 Chạy ảnh Buildroot 32-bit trên QEMU
4 Xem/Thay đổi dung lượng RAM trong QEMU - /proc/meminfo, free -m
5 Không gian địa chỉ ảo cho bộ xử lý 32-bit
6 Tại sao kernel chia sẻ không gian địa chỉ của nó cho mọi tiến trình?
7 Bản đồ bộ nhớ 64-bit
8 Chuyển đổi địa chỉ ảo sang địa chỉ vật lý và ngược lại
9 Trang (Pages) - macro PAGE_SIZE
10 struct page
11 Lỗi trang (Page Fault)
12 Lỗi trang khi bộ nhớ là 4 KB
13 Không gian địa chỉ ảo không gian người dùng
14 Không gian địa chỉ ảo kernel - bộ nhớ thấp (low mem) và bộ nhớ cao (high mem)
15 Bộ nhớ thấp (Low Memory)
16 Làm thế nào để biết dung lượng low mem và high mem của tôi?
17 Bộ nhớ cao (High Memory)
18 Cơ chế cấp phát bộ nhớ
19 kmalloc và kfree
20 Ví dụ về module Linux Kernel sử dụng kmalloc và kfree
1 Vùng (Zones)
2 Bộ cấp phát hệ thống đôi (Buddy System allocator)
3 Bố cục bộ nhớ ảo kernel
4 Tôi có thể dùng virt_to_phy để lấy địa chỉ vật lý từ con trỏ kmalloc không?
5 Ví dụ truyền các GFP_FLAGS khác nhau cho kmalloc
6 Kích thước tối đa có thể cấp phát bằng kmalloc
7 Điều gì xảy ra nếu không giải phóng bộ nhớ đã cấp phát bằng kmalloc?
8 ksize
9 kzalloc
10 krealloc
11 Ví dụ chứng minh kmalloc cấp phát liên tục cả vật lý và ảo
12 vmalloc
13 Kích thước tối đa có thể cấp phát bằng vmalloc
14 So sánh vmalloc và kmalloc
15 Kích thước tối đa có thể cấp phát bằng vmalloc trên 32-bit
16 Tại sao VmallocUsed luôn bằng 0?
17 Tôi có thể dùng ksize với vmalloc không?
18 Lượng bộ nhớ tối đa có thể cấp phát bằng vmalloc
19 Điều gì xảy ra khi dùng kmalloc với kích thước 0 byte?
20 Điều gì xảy ra khi dùng vmalloc với kích thước 0 byte?
21 Ngăn xếp kernel (Kernel Stack)
22 CONFIG_FRAME_WARN
23 Script check_stack.pl
1 Tài nguyên

Giới thiệu khóa học

This course offers a deep dive into the memory management of a Linux kernel, equipping you with practical knowledge and skills. You will first grasp the fundamental concepts of both physical and virtual address spaces for a processor and learn how to inspect them in a Linux environment. A key focus will be on the division of the virtual address space into distinct kernel and user spaces.

You'll gain an understanding of how the operating system handles memory in units called pages, and what triggers a page fault. The course will then detail the crucial process of converting a virtual address to a physical address, including the proper format specifiers for printing addresses.

Furthermore, you will explore the concepts of Low Memory and High Memory and the kernel's efficient Buddy Allocator for managing memory. You'll learn how to use the /proc/buddyinfo file to monitor memory zones. The course also covers dynamic memory allocation in the kernel using essential APIs like kmalloc and vmalloc, clarifying the differences between them and the various flags they use, such as GFP_KERNEL and GFP_ATOMIC. The course also addresses what happens when you attempt to allocate zero-sized memory. Lastly, you will examine the structure of the kernel stack and use the qemu-system-x86 command for practical exercises.

Khóa học liên quan

Khám phá thêm các khoá học cùng chủ đề

Hiển thị tất cả khoá học Linux
Hiển thị tất cả khoá học Linux Kernel
Hiển thị tất cả khoá học Operating Systems
Hiển thị tất cả khoá học System Programming
Zalo
Tôi có thể tư vấn khoá học cho bạn 😊