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 đó, bạn sẽ 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 có chức năng gì

Một 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.

Mục lục

Yếu tố quan trọng nhất của máy tính là bit hoặc”chữ số nhị phân”. Mọi thứ máy tính làm được biểu diễn dưới dạng số một và số không. Các 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 thị bằng các ô nhớ 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ự.

Dù đạt được biểu diễn vật lý của mã nhị phân như thế nào, cuối cùng bạn vẫ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 để chuyển từ giao diện thân thiện với con người của máy tính sang giao diện thô, thấp-các quy trình cấp trong chính máy tính? Đó là nơi xuất hiện của hệ điều hành. Hệ điều hành này trực tiếp kiểm soát 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 đó là 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 mềm quan trọng nhất trong quá trình này là hạt nhân.

Kernel là gì?

Kernel, như tên gọi, là 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ì hạt nhân sẽ chỉ đạo quá trình thực thi.

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

Trình điều khiển phần cứng hoạt độ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 và AMD chẳng hạn.

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

Vai trò của Giao diện lập trình ứng dụng (API)

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 cạc â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ờ API.

Màn hình lựa chọn Soundcard từ Wolf3D

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? 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ự.

API 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 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, đó 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 các 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, ứng dụng đó 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 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 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 quy trình khởi chạy hoặc được nâng lên chế độ nhân, nó có toàn quyền truy cập vào hệ thống tài nguyên, 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 điều gì đã xảy ra trong bộ nhớ khi mọi thứ đi sai hướng.

Nguy hiểm của Chế độ hạt nhân: Màn hình xanh chết chóc

Nếu bạn đã từng gặp phải màn hình xanh chết chóc (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à chế độ hạt nhân quy trình bị đổ lỗi.

Khi một quy trình ở chế độ hạt nhân thực hiện đ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 diễn ra haywire, chỉ ứ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à API đóng vai trò thiết yếu vì API yêu cầu đặc quyền 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 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ố hướng dẫn CPU chỉ hoạt động trong chế độ hạt nhân, vì vậy nếu một quy trình cần sử dụng các chức năng đó, nó phải được nâng cấp.

Nếu bạn đang gặp sự cố với Màn hình xanh chết chóc, 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!

Categories: IT Info