我正在阅读我的操作系统教科书,并且我遇到了“分离机制和政策”的概念。我不确定这是什么意思所以我检查了维基百科,我必须承认,这也没有多大帮助。
分离机制和 政策[1]是一个设计原则 计算机科学。它说明了这一点 机制(系统的那些部分) 控制的实现 经营授权和 不应该分配资源 指令(或过度限制) 政策根据哪些决定 是关于哪些操作 授权,以及哪些资源 分配
有人可以对此进行调整,并通过一些示例解释一下separation of mechanism and policy
在操作系统环境中的含义吗?
答案 0 :(得分:13)
这对于X-Windows系统来说意味着什么。
X-Windows在最基层,提供了一种操作称为“窗口”的屏幕区域的方法。它还提供了一种接收窗口内发生的事件的方法。
但X-Windows对标题栏,菜单,滚动条或其他任何内容都没有说明。它也没有说明特定应用程序使窗口占据整个屏幕的规则,或者必须将窗口移出屏幕的规则。它确实为一个应用程序提供了一种方法,可以在使用顶级窗口之前强制其他应用程序向其请求权限,但不会将任何此类应用程序作为基本服务器的一部分提供。
X-Windows完全是关于机制,而不是政策。
策略由窗口小部件工具包,窗口管理器以及稍后添加到系统的其他内容提供。例如,许多小部件工具包使用一组重叠的子窗口用于滚动条,并为这些子窗口请求鼠标事件,以便它们可以检测单击和拖动操作并使子窗口做出适当的响应。
这就是为什么,例如,GNOME和KDE可以在同一个显示器上相处,以及为什么对于面板或桌面一无所知的旧X-Windows程序在现代系统上仍能正常工作。
答案 1 :(得分:4)
关于* nix操作系统,一般的想法是安全系统由内核实现,授权系统由用户空间实现。
许多人嘲笑(无论是公正还是其他方面)的全能的根和suid二进制文件对于有效的分离是必要的。可以完全交换身份验证机制,同时保持安全性不变(ssh执行此操作,这就是它在Windows上使用未记录的API的原因)。
答案 2 :(得分:0)
尽管这是一个非常老的问题,但我仍然想分享我的观点。
之所以如此混乱,是因为有两个词“机制”和“政策”。在软件工程的背景下,我认为将“机制”替换为“接口”,将“策略”替换为“实现”总是可以的。
关于接口和实现的分离,如果您使用Java编程,那么您必须非常熟悉这两个概念。这样,我们可以将“做什么”与“怎么做”隔离开来,这有助于我们实现系统解耦。
为什么要去耦?去耦提高了代码的可扩展性和可维护性,这意味着当需求改变时,我们可以编写更少的代码:)
从“ GoF设计模式”中了解有关解耦的更多技术。
答案 3 :(得分:0)
机制与政策之间的差异 机制决定如何做某事,政策决定要做什么。
政策与机制的分离是非常重要的原则,如果以后要更改政策决策,它可以提供最大的灵活性。