操作系统结构是否存在根本性缺陷?

Is there a fundamental flaw in operating system structure?

在某些时候,我读到操作系统应该以某种方式(即 'microkernel')创建以抵抗故障,但以另一种方式(即 'monolithic')创建用于实际目的,例如速度。虽然这不是问题,但确实提出了问题:

是否在计算机体系结构中进行了任何基本的权衡以降低早期理论系统的安全性?

我正在寻找计算机科学领域公认的答案,而不是对当前实现的意见。例如,如果程序全部构建在定制硬件上,它们可以运行得更快,这是众所周知的,但这是不切实际的,这就是我们拥有通用计算机的原因。

SECURITY IS NOT A FUNCTION OF NATURE OF KERNEL.

内核类型与操作系统的安全无关。尽管我同意操作系统的效率确实取决于它的性质。

单片内核是一个单一的大进程运行完全在一个单一的地址space。它是一个单一的静态二进制文件。而在微内核中,内核被分解为单独的进程,称为服务器。内核 space 中的一些服务器 运行 和用户 space 中的一些 运行。所有服务器都保持独立,并且 运行 在不同的地址 spaces.The 微内核中的通信是通过消息传递完成的。

开发人员似乎更喜欢微内核,因为它提供了灵活性,而且更容易与不同的用户space一起工作。单体在本质上有点复杂,有利于轻量级系统。

Is their some fundamentally flawed way our computers are structured that allow all the security holes that are found? What I mean by this, is that there are sometimes the proper theoretical ways to do things in computer science that satisfy all our requirements and are robust, etc, .

它们是某些概念,例如protection-ring and capability based security等等,但是,最后这取决于系统的要求。为了更清楚,请务必访问提供的链接。下面突出显示了一些次要想法。

Capability-based_security :- 尽管大多数操作系统都实现了类似于功能的功能,但它们通常不提供足够的支持以允许可能相互交换功能不信任实体是在整个系统中授予和分配访问权限的主要方式。

Protection_ring :- 计算机操作系统提供不同级别的资源访问权限。保护环是计算机系统体系结构中两个或多个等级或特权层之一。这通常是由一些 CPU 架构在硬件或微代码级别提供不同 CPU 模式的硬件强制执行的。环按从最高权限(最受信任,通常编号为零)到最低权限(最不信任,通常具有最高环编号)的层次结构排列。

任何说微内核 "the right way" 的人都是错误的。没有"right way"。没有 objective 最好的安全方法。

问题在于安全性并不是计算的基础。从很多方面来说,这都是一个社会学问题,它的存在只是因为人类的存在——不像计算,计算是一门文字科学。

就是说,有些安全原则已经成立并被纳入硬件和软件,例如最小特权原则。操作系统中的内核在硬件上以比用户态进程更高的特权级别运行。这就是为什么您的程序实际上无法与硬件交互,而必须使用系统调用来实现的原因。

还有复杂性问题,以及复杂性的各种度量。随着我们需求的增长,程序往往会变得更加复杂——我们现在在一张巨大的地图上拥有 1,000 个 AI 单元,而不是简单的乒乓球游戏。复杂性上升,我们推理程序的能力可能会下降,从而为漏洞打开漏洞。

您的问题没有真正的答案,但是这个 - 如果有 objective 安全方法我们还没有发现它。