(Tôi sẽ cố gắng ngắn gọn.)
Về lý thuyết, có hai chiều đặc quyền:
Kiến trúc tập lệnh của máy tính (ISA), bảo vệ một số thông tin và / hoặc chức năng nhất định của máy.
Hệ điều hành (HĐH) tạo ra một hệ sinh thái cho các ứng dụng và giao tiếp. Tại cốt lõi của nó là kernel, một chương trình có thể chạy trên ISA mà không phụ thuộc bất kỳ loại nào.
Các hệ điều hành ngày nay thực hiện rất nhiều nhiệm vụ rất khác nhau để chúng ta có thể sử dụng máy tính như chúng ta làm ngày nay. Trong một khung nhìn rất đơn giản, rất, rất, bạn có thể tưởng tượng kernel là chương trình duy nhất được thực hiện bởi máy tính. Các ứng dụng, quy trình và người dùng đều là các vật phẩm của hệ sinh thái được tạo bởi HĐH và đặc biệt là kernel.
Khi chúng ta nói về các đặc quyền của người dùng (không gian) đối với hệ điều hành, chúng ta sẽ nói về các đặc quyền được quản lý, cấp và thực thi bởi hệ điều hành. Ví dụ, quyền hạn chế tệp tìm nạp dữ liệu từ một thư mục cụ thể được thực thi bởi kernel. Nó xem xét một số ID được đồng hóa với tệp, diễn giải một số bit đại diện cho các đặc quyền và sau đó lấy dữ liệu hoặc từ chối làm như vậy.
Hệ thống phân cấp đặc quyền trong ISA cung cấp các công cụ mà kernel sử dụng cho mục đích của nó. Các chi tiết cụ thể khác nhau rất nhiều, nhưng nói chung có chế độ nhân, trong đó các chương trình được CPU thực thi rất tự do để thực hiện I / O và sử dụng các hướng dẫn được cung cấp bởi ISA và chế độ người dùng trong đó I / O và hướng dẫn gò bó.
Chẳng hạn, khi đọc hướng dẫn ghi dữ liệu vào một địa chỉ bộ nhớ cụ thể, CPU ở chế độ kernel có thể chỉ cần ghi dữ liệu vào một địa chỉ bộ nhớ cụ thể, trong khi ở chế độ người dùng, trước tiên, nó sẽ thực hiện một vài kiểm tra để xem liệu địa chỉ bộ nhớ có ở trong không phạm vi địa chỉ được phép mà dữ liệu có thể được ghi. Nếu được xác định rằng địa chỉ có thể không được ghi vào, thông thường, ISA sẽ chuyển sang chế độ kernel và bắt đầu thực thi một luồng lệnh khác, đó là một phần của kernel và nó sẽ thực hiện đúng (TM).
Đó là một ví dụ cho chiến lược thực thi để đảm bảo rằng một chương trình không can thiệp vào chương trình khác ... để javascript trên trang web bạn hiện đang truy cập không thể khiến ứng dụng ngân hàng trực tuyến của bạn thực hiện các giao dịch đáng ngờ ...
Lưu ý, trong chế độ kernel, không có gì khác được kích hoạt để thực thi đúng, nó được giả định rằng chương trình đang chạy trong chế độ kernel đang làm đúng. Đó là lý do tại sao trong chế độ kernel, không có gì có thể buộc một chương trình tuân thủ các quy tắc và khái niệm trừu tượng của hệ sinh thái của HĐH. Đó là lý do tại sao các chương trình chạy trong chế độ kernel có sức mạnh tương đương như người dùng root.
Về mặt kỹ thuật, chế độ kernel mạnh hơn nhiều so với việc chỉ là người dùng root trên HĐH của bạn.