Hệ điều hành Windows đi kèm cả Kernel Mode và User Mode, nhưng không phải ai cũng biết khác biệt giữa hai chế độ. Thực tế, hầu hết người dùng không biết tồn tại các chế độ này, nhưng họ đã dùng chúng rồi. Nếu bạn là một trong số đó, hãy đọc tiếp để获得一些 kiến thức cần thiết.
Tổng quan về User Mode và Kernel Mode
Máy tính chạy Windows có hai chế độ khác biệt: User mode (Chế độ người dùng) và Kernel mode (Chế độ hạt nhân). Vi xử lý trong máy tính có thể tự động chuyển đổi giữa hai chế độ, tùy thuộc vào loại mã đang chạy. Ứng dụng & chương trình được thiết kế chạy ở User mode, trong khi các thành phần liên quan đến lõi hệ điều hành sẽ chạy ở Kernel mode. Hầu hết driver chạy ở Kernel mode, nhưng có những driver chạy ở User mode.
Kernel Mode và User Mode trong hệ điều hành Windows

Hiểu các khía cạnh quan trọng của User và Kernel mode nên nằm trong kế hoạch của bất kỳ người dùng máy tính nâng cao nào. Chúng ta sẽ thảo luận sau đây:
- Kernel Mode hoạt động như thế nào?
- User Mode hoạt động như thế nào?
- Khác biệt giữa Kernel Mode và User Mode?
- Windows tách tài nguyên hệ thống khỏi ứng dụng người dùng như thế nào?
1. Kernel Mode hoạt động như thế nào trong Windows 11/10?
Microsoft nói:
All code that runs in kernel mode shares a single virtual address space. This means that a kernel-mode driver is not isolated from other drivers and the operating system itself. If a kernel-mode driver accidentally writes to the wrong virtual address, data that belongs to the operating system or another driver could be compromised. If a kernel-mode driver crashes, the entire operating system crashes. (Tất cả mã chạy ở kernel mode chia sẻ một không gian địa chỉ ảo đơn lẻ. Nghĩa là driver kernel-mode không bị cô lập khỏi driver khác và chính hệ điều hành. Nếu driver kernel-mode ghi nhầm vào địa chỉ ảo sai, dữ liệu thuộc OS hoặc driver khác có thể bị xâm phạm. Nếu driver kernel-mode crash, toàn bộ OS sẽ crash.)
OK, mọi mã chạy ở Kernel mode chia sẻ cùng không gian địa chỉ ảo. Điều này nghĩa là gì? Bueno, driver Kernel-mode không tách biệt khỏi driver khác, và điều tương tự cũng đúng cho hệ điều hành.
Hãy nhớ rằng nếu driver Kernel-mode vô tình ghi vào sai địa chỉ ảo, dữ liệu liên quan đến hệ điều hành có thể bị xâm phạm. Chúng ta cũng hiểu driver khác có thể bị xâm phạm theo cách này.
Ngoài ra, nếu driver Kernel-mode gặp crash, toàn bộ hệ điều hành Windows 11/10 sẽ crash.
Đọc thêm: Kernel trong OS là gì? Các loại Kernel?
2. User Mode hoạt động như thế nào trong Windows 11/10?
Microsoft nói:
When you start a user-mode application, Windows creates a process for the application. The process provides the application with a private virtual address space and a private handle table. Because an application's virtual address space is private, one application cannot alter data that belongs to another application. Each application runs in isolation, and if an application crashes, the crash is limited to that one application. Other applications and the operating system are not affected by the crash. (Khi bạn khởi động ứng dụng user-mode, Windows tạo tiến trình cho ứng dụng. Tiến trình cung cấp không gian địa chỉ ảo riêng và bảng handle riêng. Vì không gian địa chỉ ảo riêng tư, ứng dụng không thể sửa dữ liệu của ứng dụng khác. Mỗi ứng dụng chạy độc lập, nếu crash thì chỉ ứng dụng đó bị ảnh hưởng. Ứng dụng khác và OS không bị ảnh hưởng.)
Khi người dùng máy tính khởi động ứng dụng User-mode, Windows 11/10 sẽ tạo tiến trình cho ứng dụng. Tiến trình sẽ cung cấp ứng dụng với bảng handle riêng cùng không gian địa chỉ ảo.
Kiểm tra điều này. Một ứng dụng không thể thay đổi dữ liệu thuộc ứng dụng khác. Vì không gian địa chỉ ảo của ứng dụng luôn riêng tư và không thể thay đổi. Bạn thấy, mọi ứng dụng ở đây chạy trong sự cô lập, do đó nếu một app crash, chỉ app đó bị ảnh hưởng. Các app khác chạy trên OS sẽ tiếp tục chạy như mong đợi.
3. Khác biệt giữa Kernel Mode và User Mode trên Windows 11/10?
Khác biệt lớn nhất giữa hai chế độ thực sự là mức độ đặc quyền (privilege) chúng cung cấp. Khi ở User mode, ứng dụng không có nhiều đặc quyền, nghĩa là nó thiếu quyền truy cập trực tiếp vào tài nguyên phần cứng.
Tuy nhiên, với Kernel mode, nó đi kèm đặc quyền tăng lên, và như vậy, một crash đơn giản có thể làm sập toàn bộ hệ điều hành, điều không thể xảy ra với User mode.
4. Windows tách tài nguyên hệ thống khỏi ứng dụng người dùng như thế nào?
Microsoft thiết kế Windows dùng mô hình phân lớp (layered model) để xác định mức đặc quyền hiện tại cho tiến trình. Bạn thấy, ứng dụng ở lớp ngoài thường có ít đặc quyền hơn, trong khi Kernel, nằm ở lõi, có nhiều đặc quyền hơn.
Đọc thêm: Windows Kernel Mode Power Manager là gì?
Khác biệt giữa Kernel space và User space là gì?
Kernel space dành riêng cho chạy tiến trình kernel hệ điều hành có đặc quyền bao gồm driver. User space là vùng nhớ dành riêng cho chạy chương trình và phần mềm.
Device driver có chạy ở kernel mode không?
Driver là phần mềm, vì vậy driver thiết bị có thể chạy ở Kernel mode. Tuy nhiên, vì driver thiết bị không cần truy cập dữ liệu được bảo vệ, chúng có thể chạy tốt trong User mode với nhu cầu nhỏ để thực hiện ở Kernel mode.
Đọc tiếp: Bản đồ tương tác của Linux Kernel.
