Chế độ người dùng so với Chế độ hạt nhân trong Windows là gì

Bạn có thể đã nghe nói về các ứng dụng chạy ở chế độ “hạt nhân” hoặc “người dùng”. Tất cả phụ thuộc vào cách hệ điều hành hoạt động khi chúng thực hiện công việc của mình. Khi bạn hiểu điều đó, thật dễ dàng để hiểu được sự khác biệt giữa chế độ người dùng và chế độ hạt nhân.

Hiểu Hệ điều hành làm gì(Does)

Máy tính bao gồm phần cứng, các thành phần điện tử và phần mềm, mã máy tính được thực thi bởi phần cứng đó. Nhưng điều có thể ít rõ ràng hơn là cách chúng hoạt động cùng nhau.

Yếu tố thiết yếu nhất của máy tính là bit hoặc “chữ số nhị phân. ”Mọi thứ(” Everything) mà máy tính thực hiện được biểu diễn dưới dạng số một và số không. Các(Different) thành phần máy tính khác nhau biểu diễn các bit theo những cách khác nhau. Trong một CPU , các bóng bán dẫn cực nhỏ biểu thị số 0 và số 0 bằng cách bật hoặc tắt. Các bóng bán dẫn đó được sắp xếp thành các cấu trúc logic, được gọi là cổng logic.

Trong bộ nhớ máy tính điện tử, các bit được biểu diễn bằng các ô nhớ hoặc có điện tích trên hoặc dưới một ngưỡng nhất định. Trên ổ cứng cơ học, các bit được biểu diễn dưới dạng dao động từ tính được đo trên đĩa quay. Trên đĩa quang, các hố và vùng đất có hoặc không phản xạ ánh sáng laser cũng thực hiện công việc tương tự. 

Bất kể cách biểu diễn vật lý của mã nhị phân được thực hiện như thế nào, cuối cùng bạn có thể giảm tất cả các thành phần máy tính tiêu dùng xuống mã máy thô này.

Vậy làm cách nào để bạn đi từ giao diện thân thiện với con người của máy tính sang các quy trình thô, cấp thấp trong chính máy tính? Đó là nơi hệ điều hành xuất hiện. Nó trực tiếp điều khiển phần cứng của máy tính. 

Phần mềm này dịch mọi thứ mà ứng dụng (và do đó người dùng) muốn thành các lệnh mã máy mà CPU và các thành phần khác hiểu được. Phần quan trọng nhất của phần mềm trong quá trình này là hạt nhân.

Kernel là gì?

Kernel, như tên gọi cho thấy, là cốt lõi của hệ điều hành. Kernel là phần mềm nằm trong RAM và chỉ đạo mọi thứ mà máy tính thực hiện. Khi một thứ gì đó được ghi vào bộ nhớ, thì chính hạt nhân sẽ chỉ đạo việc thực thi.

Hạt nhân biết cách giao tiếp với phần cứng như GPU(GPUs) và card mạng, nhưng nó có thể không biết cách vận hành chúng phát huy hết khả năng của chúng, dựa vào các tiêu chuẩn chung trong ngành máy tính.

Các trình điều khiển phần cứng phát huy tác dụng ở đây. Trình điều khiển cho hệ điều hành của bạn biết cách hoạt động với các thành phần cụ thể, đó là lý do tại sao bạn cần các trình điều khiển khác nhau cho GPU Nvidia(Nvidia)AMD(AMD GPUs) chẳng hạn.

Được trang bị đúng trình điều khiển, hạt nhân là cơ quan có thẩm quyền cuối cùng trong máy tính, bao gồm cả việc thực hiện những việc có thể phá hủy dữ liệu một cách thảm khốc.

Vai trò(Role) của giao diện lập trình ứng dụng(Application Programming Interfaces) ( API(APIs) )

Vào thời của MS-DOS , các nhà phát triển phần mềm phải viết phần mềm của họ đặc biệt cho phần cứng của người dùng. Ví dụ nổi tiếng nhất về điều này trên hệ thống MS-DOS là trình điều khiển card âm thanh.

Một trò chơi điện tử nhất định sẽ phải hỗ trợ các thẻ phổ biến nhất ( Sound Blaster , Ad-lib , Gravis Ultrasound , v.v.) và hy vọng rằng hầu hết người chơi đều được hỗ trợ. Ngày nay, mọi thứ hoạt động rất khác, nhờ vào các API(APIs) .

Microsoft DirectX là một ví dụ tuyệt vời. Nếu bạn muốn được giải thích chuyên sâu, hãy xem DirectX là gì và tại sao nó lại quan trọng? (What Is DirectX and Why Is It Important?)Tuy nhiên, điều quan trọng nhất cần biết là API cung cấp một cách tiêu chuẩn để các nhà phát triển phần mềm yêu cầu tài nguyên phần cứng từ các thành phần như GPU . Ngoài ra, các nhà sản xuất phần cứng chỉ phải đảm bảo rằng sản phẩm của họ tuân thủ DirectX để đảm bảo khả năng tương thích hoàn toàn với bất kỳ phần mềm tương tự nào tương tự.

Các API(APIs) cung cấp một lớp dịch giữa các ứng dụng phần mềm và nhân cấp thấp với các trình điều khiển phần cứng của nó. Có, điều này đi kèm với một hình phạt hiệu suất nhẹ. Tuy nhiên, trên các máy tính hiện đại, điều này là không đáng kể, và nó đi kèm với nhiều ưu điểm khác nhau, đó là nơi cuối cùng chúng ta đến với chế độ người dùng và chế độ hạt nhân.

Chế độ người dùng so với Chế độ hạt nhân

Các hệ điều hành hiện đại chạy đồng thời hàng trăm hoặc hàng nghìn “quy trình”, tự động cung cấp cho chúng thời gian CPU khi cần thiết dựa trên mức độ ưu tiên và yêu cầu năng lượng tính toán của chúng.

Khi bạn khởi chạy một ứng dụng, nó sẽ tạo ra các quy trình và CPU có thể thực thi chúng ở chế độ người dùng hoặc chế độ hạt nhân.

Tiến trình Windows chạy ở chế độ người dùng chỉ có quyền truy cập vào không gian địa chỉ bộ nhớ ảo riêng tư và bảng xử lý. Phần mềm sử dụng các bảng này để lưu trữ dữ liệu trong RAM và yêu cầu tài nguyên. Không có quyền truy cập trực tiếp vào bộ nhớ hoặc phần cứng khác và tùy thuộc vào hệ điều hành để ánh xạ những không gian ảo đó với phần cứng thực của máy tính.

Điều này là tốt vì nhiều lý do, nhưng lợi ích quan trọng nhất là ứng dụng không thể ghi đè hoặc thay đổi dữ liệu bên ngoài không gian địa chỉ bộ nhớ ảo của nó. Ngoài ra, một số chức năng bị giới hạn đối với các quy trình ở chế độ người dùng, chủ yếu là những chức năng có thể làm hỏng hệ thống hoặc phá hủy dữ liệu.

Khi một tiến trình khởi chạy hoặc được nâng lên chế độ hạt nhân, nó có toàn quyền truy cập vào các tài nguyên hệ thống, ngay cả những tài nguyên dành riêng cho hệ điều hành. Vì vậy, về lý thuyết, nó có thể ghi đè lên dữ liệu quan trọng mà hệ điều hành cần để chạy đúng cách.

Bẫy và Ngoại lệ

Điều quan trọng là phải hiểu rằng hai chế độ này được thực thi ở cấp phần cứng bởi chính CPU . Nếu một ứng dụng đang chạy ở chế độ người dùng cố gắng thực hiện một điều gì đó yêu cầu quyền truy cập chế độ hạt nhân, nó sẽ tạo ra một “cái bẫy” hoặc “ngoại lệ”. Sau đó, hệ điều hành sẽ xử lý ứng dụng, thường bằng cách tắt ứng dụng và tạo nhật ký sự cố để các nhà phát triển có thể xem những gì đã xảy ra trong bộ nhớ khi mọi thứ đi sai hướng.

Mối nguy hiểm(Dangers) của chế độ hạt nhân(Kernel Mode) : Màn hình xanh (Blue Screen)chết chóc(Death)

Nếu bạn đã từng trải qua Màn hình xanh(Blue Screen) chết chóc(Death) (ai chưa?) Buộc máy tính của bạn phải tắt hoặc khởi động lại, thì rất có thể đó là lỗi của quá trình chế độ hạt nhân.

Khi một tiến trình ở chế độ hạt nhân thực hiện một điều gì đó mà nó không được yêu cầu, hệ điều hành không thể khôi phục từ đó và toàn bộ máy tính sẽ tạm dừng. Khi quy trình ở chế độ người dùng hoạt động tốt, chỉ có ứng dụng bị treo và phần còn lại của phần mềm và hệ điều hành có thể tiếp tục mà không gặp bất kỳ sự cố nào.

Đây là một lĩnh vực mà các API(APIs) đóng một vai trò thiết yếu vì đó là API yêu cầu các đặc quyền của chế độ hạt nhân. Các ứng dụng chế độ người dùng về cơ bản ủy quyền các yêu cầu sẽ yêu cầu đặc quyền chế độ hạt nhân cho API .

Đây là lý do tại sao chế độ hạt nhân thường chỉ được cấp cho các quy trình hệ thống cấp thấp cần truy cập trực tiếp vào phần cứng của máy tính. Thông thường, đặc quyền này được mở rộng cho một quy trình vì nó cần nhiều hiệu suất hơn chế độ người dùng có thể cung cấp. Một số lệnh CPU chỉ hoạt động trong chế độ hạt nhân, vì vậy nếu một tiến trình cần sử dụng các chức năng đó, nó phải được nâng lên.

Nếu bạn đang gặp sự cố với Màn hình xanh(Blue Screen) chết chóc(Death) , hãy nhớ đọc Hướng dẫn khắc phục sự cố Màn hình xanh chết chóc dành cho Windows 10(Blue Screen of Death Troubleshooting Guide for Windows 10) của chúng tôi !



About the author

Tôi là Chuyên gia Windows và đã làm việc trong ngành phần mềm hơn 10 năm. Tôi có kinh nghiệm với cả hệ thống Microsoft Windows và Apple Macintosh. Các kỹ năng của tôi bao gồm: quản lý cửa sổ, phần cứng máy tính và âm thanh, phát triển ứng dụng, v.v. Tôi là một nhà tư vấn giàu kinh nghiệm có thể giúp bạn khai thác tối đa hệ thống Windows của mình.



Related posts