Sự khác biệt giữa Kernel mode và User mode trong Windows 

Sự khác biệt giữa Kernel mode và User mode trong Windows 

Chia sẻ kiến thức 07/01/2022

Khi bạn sử dụng PC, bộ xử lý của bạn liên tục hoán đổi giữa hai chế độ này. Nhưng Kernel mode (chế độ hạt nhân) và User mode (chế độ người dùng) thực tế có nghĩa là gì trong Windows?

Khi bạn sử dụng PC, bộ xử lý của bạn liên tục hoán đổi giữa hai chế độ này. Nhưng Kernel mode (chế độ hạt nhân) và User mode (chế độ người dùng) thực tế có nghĩa là gì trong Windows?Bộ xử lý thực thi các chương trình ở User mode (chế độ người dùng) hoặc Kernel mode (chế độ hạt nhân). Khi bạn sử dụng PC, bộ xử lý của bạn thường xuyên chuyển đổi giữa hai chế độ tùy thuộc vào từng tác vụ. Nhưng User mode và Kernel mode là gì, và sự khác biệt giữa hai chế độ này nằm ở đâu?

1. User mode trong Windows là gì?

Khi bạn khởi động một chương trình trên Windows, chương trình đó sẽ khởi chạy ở User mode. Bất cứ khi nào một chương trình ở User mode muốn chạy, Windows sẽ tạo ra một quy trình (process) cho nó. Quy trình là một chương trình mà một bộ xử lý đang thực thi hoặc một chương trình mà Windows đã lên lịch để thực thi. Và bất cứ khi nào Windows tạo một quy trình, nó cũng tạo ra một không gian địa chỉ ảo (virtual address space) cho quy trình đó.

Một không gian địa chỉ ảo là một tập hợp các địa chỉ logic (phi vật chất) mà Windows dành cho một quá trình. Các quy trình có thể sử dụng những địa chỉ này để lưu trữ dữ liệu trên bộ nhớ vật lý.

Ngoài ra, không gian địa chỉ ảo được tách riêng. Vì vậy, không gian địa chỉ ảo của một quy trình không can thiệp vào không gian của quy trình khác. Và bởi vì các chương trình ở User mode có không gian địa chỉ riêng biệt, nếu một chương trình bị lỗi, chỉ mình nó bị sập mà không làm hỏng các chương trình khác hoặc toàn bộ hệ điều hành.

Một cách khác để mô tả các ứng dụng ở user mode là sử dụng thuật ngữ “ít đặc quyền” (less privileged). Windows hạn chế các ứng dụng ở user mode truy cập trực tiếp vào các tài nguyên hệ thống quan trọng, do đó làm cho chúng có ít đặc quyền hơn. Ví dụ, nếu một ứng dụng muốn truy cập vào phần cứng, nó phải thông qua nhân (kernel) của hệ điều hành bằng cách sử dụng các lệnh gọi hệ thống (system calls).

Nói một cách đơn giản, các chương trình ứng dụng như trò chơi điện tử chạy ở user mode. Nó có ít đặc quyền hơn và không có quyền truy cập không hạn chế vào tài nguyên hệ thống. Mỗi ứng dụng user mode có không gian địa chỉ riêng. Ứng dụng này không thể thay đổi không gian địa chỉ của ứng dụng khác. Do đó, nếu một ứng dụng bị treo, nó không ảnh hưởng đến các chương trình khác đang chạy trên máy tính.

>>> Đọc ngay: Cách tăng bộ nhớ ảo trong Windows 11

2. Kernel mode trong Windows là gì?

Trước khi thảo luận về Kernel node (chế độ hạt nhân), trước tiên chúng ta phải biết “kernel” (hạt nhân) là gì và nó hoạt động như thế nào trong Windows.

Kernel là bộ não của một hệ điều hành. Nó là thành phần phần mềm cốt lõi mà tất cả các thành phần khác bên trong hệ điều hành đều phải dựa vào. Kernel quản lý phần cứng máy tính, lập lịch cho các quy trình chạy trên máy tính cũng như xử lý các tương tác giữa phần cứng và phần mềm ứng dụng.

Tóm lại, kernel là đoạn mã đặc quyền nhất chạy trên hệ thống, bởi nó là mã tương tác trực tiếp với phần cứng. Mọi chương trình khác muốn sử dụng tài nguyên phần cứng phải yêu cầu quyền truy cập thông qua kernel.

Khi một ứng dụng nào đó chạy trong Chế độ Người dùng và muốn truy cập vào một bộ phận phần cứng như webcam, chương trình đó phải yêu cầu kernel bằng cách sử dụng lệnh gọi hệ thống (system call). Để phục vụ các yêu cầu này, CPU, tại thời điểm thực thi chương trình, sẽ chuyển từ User mode sang Kernel mode.

Sau khi quá trình thực thi hoàn tất, CPU sẽ chuyển trở lại User mode và bắt đầu thực hiện quy trình đã lên lịch tiếp theo. 

3. Sự khác biệt giữa User mode và Kernel mode là gì?

Sự khác biệt chính giữa User mode và Kernel mode là mức độ đặc quyền mà mỗi chế độ cung cấp. Trong User mode, các ứng dụng có ít đặc quyền hơn. Chúng không có quyền truy cập trực tiếp vào tài nguyên phần cứng và cũng không thể ghi vào không gian địa chỉ của các ứng dụng khác.

Mã chạy trong Kernel mode có các đặc quyền nâng cao. Nó không chỉ có quyền truy cập trực tiếp vào phần cứng máy tính mà tất cả các chương trình đang chạy ở Kernel mode, bao gồm cả hệ điều hành, đều chia sẻ một không gian địa chỉ. Vì vậy, nếu một chương trình ở Kernel mode gặp sự cố, nó có thể khiến toàn bộ hệ điều hành bị hỏng. Để đảm bảo không xảy ra sự cố như vậy, Windows chỉ cho phép một số quy trình chạy ở Kernel mode.

>>> Đọc ngay: Cách khắc phục lỗi không thể nhấp vào bất cứ thứ gì trên Windows 11

4. Windows áp dụng phương pháp tiếp cận theo lớp để tách các chương trình người dùng khỏi tài nguyên hệ thống

Windows sử dụng mô hình phân lớp để xác định mức độ đặc quyền của các quy trình. Các ứng dụng nằm ở lớp ngoài cùng có ít đặc quyền nhất. Nằm ở vị trí trong cùng của các lớp này là kernel với quyền truy cập không giới hạn vào tài nguyên hệ điều hành.

Phương pháp phân lớp cũng bảo vệ chức năng quan trọng của hệ điều hành. Khi các chương trình ở lớp trên gặp sự cố ngẫu nhiên, nó không ảnh hưởng đến hệ điều hành. Mặt khác, khi kernel gặp sự cố, toàn bộ hệ điều hành sẽ bị hỏng.

Link gốc: https://www.makeuseof.com/computer-drivers-what-are-they-why-should-you-update/

>>>  Tìm hiểu ngay các khóa học lập trình của FUNiX tại:

>>> Xem thêm bài viết:

5 cách đơn giản để sử dụng SSH trong Windows

Cách tạo điểm khôi phục trong Windows 11

Cách thoát chương trình bị treo trên Windows mà không cần Task Manager

Cách dùng PowerShell quét Windows 10 để tìm phần mềm độc hại

8 cách để mở Control Panel trong Windows

Vân Nguyễn (dịch từ makeuseof.com)

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
Chat với FUNiX GPT ×

yêu cầu gọi lại

error: Content is protected !!