Nhẫn và cấp độ chạy


7

Câu hỏi được nêu dưới đây có thể không đúng về mặt kỹ thuật (quan niệm sai lầm) vì vậy sẽ rất đáng trân trọng nếu quan niệm sai lầm cũng được giải quyết.

Cấp độ vòng nào làm cho các cấp chạy * nix khác nhau hoạt động?

Thẻ nhẫn không có sẵn.

Câu trả lời:


9

Runlevels Unix là trực giao (theo nghĩa "không liên quan", "độc lập với" - xem bình luận) với vòng bảo vệ.

Runlevels về cơ bản là một cấu hình / trạng thái thời gian chạy của toàn bộ hệ điều hành, chúng mô tả những dịch vụ nào có sẵn ("cho người dùng") - như truy cập SSH, MTA, máy chủ tệp, GUI.

Nhẫn là một khái niệm hỗ trợ phần cứng cho phép kiểm soát chi tiết hơn đối với phần cứng (như đã đề cập trong trang wikipedia mà bạn liên kết đến). Ví dụ mã chạy trong Ring cao hơn có thể không thực hiện được một số lệnh CPU.

Linux trên kiến ​​trúc x86 thường sử dụng Ring0 cho kernel (bao gồm trình điều khiển thiết bị) và Ring3 cho các ứng dụng không gian người dùng (không quan tâm đến việc chúng được chạy bởi root hay người dùng thông thường hoặc đặc quyền khác).

Do đó, bạn thực sự không thể nói rằng runlevel đang chạy trong một số Ring cụ thể - luôn có 1 ứng dụng không gian người dùng (ít nhất là PID 1 - the init) chạy trong Ring3 và kernel (Ring0).


1 Như mọi khi, "luôn luôn" thực sự có nghĩa là "hầu như luôn luôn", vì bạn có thể chạy các chương trình "bình thường" trong Ring0, nhưng bạn không thể thấy điều đó trong cuộc sống thực (trừ khi bạn làm việc trên HPC).


Khi bạn nói trực giao, bạn có nghĩa là bảo mật dựa trên khả năng ?
Chảy máu ngón tay

1
Không, trực giao như độc lập (ý nghĩa 3-5 trên trang wiktionary đó). Điều gì làm bạn nghĩ về bảo mật dựa trên khả năng?
peterph

2
Máy tính hiệu năng cao (HPC)?
Chảy máu ngón tay

3
Vâng, High Performance Computing - vấn đề là, thông thường các ứng dụng tạo ra rất nhiều syscalls (yêu cầu đến kernel như truy cập vào các file, mạng vv) và những phải chịu một hình phạt cho qua thi thuộc về ma thuật giữa những chiếc nhẫn. Bây giờ, nếu bạn đặt mã của mình vào cùng một vòng với kernel, bạn có thể đạt được một số hiệu suất khi loại bỏ sự cần thiết của các công tắc này. Mã của bạn phải được viết / kiểm tra cẩn thận hơn, vì nó có quyền truy cập vào những thứ mà nó thường không có và do đó có thể gây ra thảm họa lớn hơn. :)
peterph

2
@peterph Tôi nghĩ trực giao là một từ tuyệt vời, nhưng thật không may, tôi nghĩ nhiều người có thể không biết từ này. Có thể đáng để đặt một thuật ngữ đơn giản hơn, ít nhất là trong ngoặc đơn sau trực giao.
kurtm

0

Hai khái niệm hoàn toàn không liên quan. Cấp độ chạy hệ thống đề cập đến tập hợp các dịch vụ đang chạy trên hệ thống, chẳng hạn như môi trường máy tính để bàn gui có chạy hay không. Cấp độ vòng là một cơ chế bảo vệ phần cứng trên bộ xử lý intel x86, phân tách mã thành các cấp độ riêng tư khác nhau. Linux chỉ sử dụng các vòng 0 và 3 cho mã nhân và mã chế độ người dùng tương ứng. Do đó, tất cả các chế độ người dùng xử lý, chạy khi hệ thống ở bất kỳ mức chạy nào thực thi trong vòng 3, cho đến khi chúng thực hiện cuộc gọi thành mã hạt nhân, chuyển cpu sang vòng 0.


-2

Từ liên kết của riêng bạn:

Trong một hạt nhân nguyên khối, hệ điều hành chạy ở chế độ giám sát và các ứng dụng chạy ở chế độ người dùng. Các loại hệ điều hành khác, như các loại có exokernel hoặc microkernel, không nhất thiết phải chia sẻ hành vi này.

Một số ví dụ từ thế giới PC:

Linux và Windows là hai hệ điều hành sử dụng chế độ giám sát / người dùng. Để thực hiện các chức năng chuyên dụng, mã chế độ người dùng phải thực hiện cuộc gọi hệ thống vào chế độ giám sát hoặc thậm chí đến không gian hạt nhân nơi mã tin cậy của hệ điều hành sẽ thực hiện tác vụ cần thiết và đưa nó trở lại không gian người dùng.

Vì vậy, câu trả lời của bạn sẽ là 2. Người giám sát (0) và người dùng (1).


-1 Điều đó không thực sự trả lời cho câu hỏi Cấp độ vòng nào làm cho các cấp độ chạy * nix khác nhau hoạt động?
peterph

@peterph Câu trả lời của bạn là cùng ROOT và USER. Tôi sẽ cho bạn giải thích rõ hơn, nhưng câu trả lời của anh ấy đã có trong đường dẫn anh ấy đưa ra.
Jeight

1
Vâng, câu trả lời về cơ bản là có - khiếu nại của tôi đề cập đến cách giải thích của bạn về nó. Nhẫn không liên quan gì đến người dùng đặc quyền (root) và người dùng không có đặc quyền, thay vào đó là sự khác biệt về không gian nhân / không gian người dùng. Và đó là những gì -1 của tôi đã làm (Tôi xin lỗi vì tôi đã không nói rõ điều đó).
peterph

@peterph Hầu hết mọi người không hiểu sự khác biệt giữa người dùng đặc quyền / không có đặc quyền và không gian người dùng / không gian người dùng. Có, tôi nên đặt Kernel thay vì người giám sát, nhưng tôi chỉ sao chép trích dẫn từ bài viết để đưa ra quan điểm. Tôi xin lỗi đã làm phiền bạn. Tôi biết bạn nghĩ rằng tôi có rất nhiều người dùng mới chỉ sao chép và dán từ google mà không hiểu họ đang nói gì (tôi đã đọc bài đăng của bạn), nhưng có lẽ bạn nên xem lại lịch sử câu hỏi / câu trả lời của ai đó trước khi đưa ra kết luận.
Jeight

1
Không cần xem lại lịch sử của bất kỳ ai - Tôi không tranh cãi về tính cách quảng cáo . Đó là câu trả lời ở dạng hiện tại mà theo tôi là sai.
peterph
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.