2011-01-24 20 views
9

Tôi đã trải qua sách giáo khoa của hệ điều hành và tôi đã xem xét khái niệm "cơ chế và chính sách tách biệt". Tôi đã không chắc chắn về những gì có nghĩa là vì vậy tôi đã kiểm tra wikipedia mà tôi phải thừa nhận, cũng không giúp được gì nhiều.chính sách và cơ chế

Cách ly cơ chế và chính sách [1] là nguyên tắc thiết kế trong khoa học máy tính. Nó nói rằng cơ chế (những bộ phận của một hệ thống thực hiện kiểm soát việc ủy ​​quyền hoạt động và phân bổ tài nguyên) nên không dictate (hoặc quá giới hạn) các chính sách theo đó quyết định được thực hiện về những hoạt động để ủy quyền và tài nguyên nào cần phân bổ cho .

Ai đó có thể tắt âm thanh này và giải thích nếu có thể với một vài ví dụ về những gì separation of mechanism and policy có nghĩa là trong ngữ cảnh của hệ điều hành?

Trả lời

12

Dưới đây là ý nghĩa của hệ thống X-Windows.

X-Windows, ở cấp cơ sở, cung cấp cách xử lý các khu vực màn hình được gọi là 'cửa sổ'. Nó cũng cung cấp một cách để nhận các sự kiện xảy ra bên trong các cửa sổ.

Nhưng X-Windows không nói gì về thanh tiêu đề, menu, thanh cuộn hoặc bất kỳ nội dung nào trong số đó. Nó cũng không nói bất cứ điều gì về các quy tắc mà theo đó một ứng dụng cụ thể có thể làm cho cửa sổ của nó chiếm toàn bộ màn hình, hoặc khi một cửa sổ phải được di chuyển khỏi màn hình. Nó cung cấp một cách để một ứng dụng buộc các ứng dụng khác yêu cầu sự cho phép trước khi làm việc với các cửa sổ cấp cao nhất, nhưng không cung cấp bất kỳ ứng dụng nào như một phần của máy chủ cơ sở.

X-Windows là tất cả về cơ chế chứ không phải chính sách.

Chính sách này được cung cấp bởi bộ công cụ tiện ích, bởi người quản lý cửa sổ và những thứ khác được thêm vào hệ thống sau. Ví dụ: nhiều bộ công cụ tiện ích con sử dụng một tập hợp các cửa sổ phụ chồng chéo cho thanh cuộn và yêu cầu sự kiện chuột cho các cửa sổ phụ này để chúng có thể phát hiện hoạt động nhấp và kéo và làm cho các cửa sổ phụ phản hồi một cách thích hợp. Đây là lý do tại sao, ví dụ, GNOME và KDE có thể có được trên cùng một màn hình, và tại sao các chương trình X-Windows cũ không biết gì về các bảng hoặc máy tính để bàn vẫn hoạt động tốt trên các hệ thống hiện đại.

+0

Vâng, đặc biệt là kể từ khi chính sách ban đầu là bạn vượt qua-đo lường khi bắt đầu tất cả các ứng dụng X (từ dòng lệnh). – Joshua

4

Đối với hệ điều hành * nix, ý tưởng chung là hệ thống bảo mật được thực hiện bởi hạt nhân và hệ thống ủy quyền được triển khai bởi không gian người dùng.

Các tập tin nhị phân gốc và suid mạnh mẽ mà rất nhiều người bắt đầu (dù là chính xác hoặc khác) là cần thiết để tách biệt hiệu quả. Có thể hoán đổi hoàn toàn cơ chế xác thực trong khi vẫn giữ nguyên bảo mật (ssh thực hiện điều này, đó là lý do tại sao nó sử dụng các API không có giấy tờ trên Windows).

+0

+1 - Một ví dụ tuyệt vời khác về nguyên tắc. Unix thực sự có cơ chế gần như (nhưng không hoàn toàn) để cho phép thực hiện bảo mật dựa trên khả năng. Trình mô tả tệp đi qua các ổ cắm miền Unix là một điều cơ bản, đó là một tính năng rất quan trọng cho việc này. Nhưng nó cần nhiều hơn, giống như một cách để thậm chí một quá trình người dùng thực hiện 'exec' và có quá trình kết quả có ít đặc quyền hơn. – Omnifarious

+0

@Omnifarious: thực sự là người cuối cùng dễ dàng. Thả đặc quyền giữa fork() và exec(). Tuy nhiên, không có tương đương với hộp cát của Vista. – Joshua

+0

Nhưng nếu bạn là một quá trình người dùng, làm thế nào để bạn thả đặc quyền? Ví dụ, có các đặc quyền của 'nobody' và không có quyền tạo socket. Và hộp cát của Vista có thể được thực hiện với bộ mô tả tập tin đi qua. – Omnifarious

Các vấn đề liên quan