2013-02-14 10 views
6

Tôi nghe nói về mức độ đặc quyền, nhẫn, hướng dẫn đặc quyền, hướng dẫn không có đặc quyền, chế độ người dùng, chế độ hạt nhân, không gian người dùng, không gian hạt nhân.Điều gì quyết định mức độ đặc quyền của quy trình?

Quy trình người dùng sẽ chạy với đặc quyền thấp, nơi hệ điều hành xử lý cao hơn, tôi cũng nghe nói về đăng ký CPL có trách nhiệm bảo vệ chung. Ngoài ra CPU chỉ biết CPL và nó được quyết định căn cứ vào hướng dẫn trang nào thuộc về.

Tôi muốn biết ai/quyết định ban đầu là cấp độ đặc quyền của quy trình?

Khi quyết định rằng quy trình sẽ chạy với mức đặc quyền thấp hoặc cao? Tại thời gian biên dịch? Đang tải?

Điều gì cho biết chương trình hiện tại sẽ chạy với cấp đặc quyền cụ thể? Đăng ký phân khúc? Mô tả? Loader?

Trả lời

4

Trước hết tôi thấy 3 câu hỏi.

  1. Ai/Điều gì quyết định ban đầu là cấp độ đặc quyền của quy trình?
  2. Khi quyết định rằng quy trình sẽ chạy với mức đặc quyền thấp hoặc cao?
  3. Điều gì cho biết chương trình hiện tại sẽ chạy với cấp đặc quyền cụ thể?

Thứ hai để xác nhận định nghĩa của một số thuật ngữ

Khi bạn nói mức độ đặc quyền, tôi tin rằng bạn đang đề cập đến the concept of level of privilege associated with CPU processor mode như trái ngược với mức chung của bất kỳ cơ chế đặc quyền khác có sẵn.

Khi bạn nói quy trình, tôi tin rằng bạn đang đề cập đến the concept of the currently running program như trái ngược với một số định nghĩa thay thế.

quá trình tài chạy trong chế độ người dùng với đặc quyền người dùng cho một kiến ​​trúc CPU cho

Kernel các tiến trình chạy trong kernel mode với đặc quyền giám sát đối với một kiến ​​trúc CPU nhất định.

Cho dù quy trình là người dùng hay hạt nhân phụ thuộc vào cờ nào được đặt trong phần mô tả phân đoạn khi phân trang không được sử dụng hoặc trong các mục bảng trang hoặc thư mục trang nơi phân trang được sử dụng.

Điều này có nghĩa là cấp đặc quyền của quy trình được xác định bởi vị trí của mã của quy trình đó trong bộ nhớ. Nếu nó ở trong không gian hạt nhân và được đánh dấu như vậy bằng cách sử dụng các cờ có liên quan, thì đó là một tiến trình hạt nhân. Nếu nó nằm trong không gian người dùng và được đánh dấu như vậy bằng cách sử dụng các cờ có liên quan, thì đó là một quá trình người dùng.

Nếu quy trình/chương trình bạn đang chạy không phải là hạt nhân, đó là quy trình người dùng trên hầu hết các hệ điều hành hiện đại. Vì vậy, khi quyết định được thực hiện là tại thời gian thực hiện chương trình, đặc biệt là thời gian khởi động hệ điều hành khi hạt nhân được nạp lần đầu tiên.

Quá trình này là hạt nhân và được chạy ở cấp đặc quyền giám sát hoặc nó không phải là và nó chạy ở cấp đặc quyền người dùng.

CPU kiểm tra mọi thao tác của bất kỳ mã hoặc phân đoạn dữ liệu nào từ bộ nhớ đối với thanh ghi trạng thái có liên quan (đăng ký trạng thái mã trên Intel X86 và đăng ký trạng thái chương trình hiện tại trên ARM).

Khi quy trình người dùng cần truy cập tài nguyên hạt nhân, cách thức chung được thực hiện là cho phép quá trình người dùng yêu cầu tiến trình hạt nhân thay mặt nó bằng cách thực hiện cuộc gọi hệ thống. yêu cầu cho quá trình người dùng.

Lưu ý phụ, Kernel Mode Linux, cho phép bạn chạy các quy trình người dùng ở chế độ hạt nhân/giám sát.

Tài liệu tham khảo và đọc thêm

+0

Cảm ơn. Điều đó cũng có nghĩa là ... Một bộ nạp và đơn vị MMU/hệ thống phân trang ban đầu chịu trách nhiệm cho chương trình người dùng chỉ tải trong không gian người dùng và do đó đây là cách nó gián tiếp quyết định mức độ đặc quyền ..? –

0

Hầu hết các bộ vi xử lý có một cái bẫy hoặc phần mềm hướng dẫn lỗi mà chuyển sang bộ xử lý vào chế độ đặc quyền. Hạt nhân sẽ kiểm tra xem quá trình chế độ người dùng có quyền cho phép toán cụ thể hay không. Vì dữ liệu hạt nhân được bảo vệ, hạt nhân có thể thực thi chính sách bảo mật - quá trình người dùng không thể trực tiếp cấp quyền.

Quyền đôi khi được gọi là đặc quyền, vì vậy đó là lý do tại sao tôi muốn giải thích cách chế độ xử lý hoạt động trong việc thực thi các quyền bảo mật.