从(高级)用户/程序员的角度来看 Linux 和 Hurd 之间的区别

从(高级)用户/程序员的角度来看 Linux 和 Hurd 之间的区别

我已经看到运行在 Hurd 上的系统开始变得可用(即阿奇·赫德) 并且我想知道用户,无论他/她有多先进,如何能看到差异?

Linux 和 BSD 应该非常相似,因为它们都是单内核,所以唯一的区别应该是它们的系统调用 API。

注意:当我写 Linux 时,我并不是指 GNU/Linux,因为我猜测 GNU 环境最终在两个系统中应该是相同的

编辑:删除了关于 BSD 的声明,我对这个系统一无所知,而且这不是我问题的重点 :$

编辑2:让我们尝试另一种方法:我对 GNU/Linux 非常了解。GNU/Hurd 有什么不同?例如,

  • 模块当然不能与微内核共存,那么等价的东西是什么呢?显卡驱动程序是什么样的?
  • 如果 Hurd 内核(Mach)将核心任务委托给用户空间进程,那么它们是什么?
  • 谁负责这些核心任务?(相当于超级init?)

(附带问题:这个问题属于 stackoverflow 吗?)

答案1

赫德->微内核

尽管

Linux->单片内核

类似于单内核和微内核之间的区别

1)单片内核比微内核还老.它在Unix中使用。 尽管 微内核的思想出现在1980 年代

2)具有单片内核的操作系统的示例是操作系统 尽管 具有微内核的操作系统是操作系统, 最初马赫(不是 mac os x)稍后它将转换为混合内核,甚至迷你不是纯内核,因为设备驱动程序是作为内核的一部分进行编译的。

3)单片内核比微内核更快尽管 第一个微内核 Mach 比单内核慢 50%,而后来的版本L4 仅慢 2% 或 4%比单片内核更甚。

4)单片内核一般是笨重尽管 纯单片内核必须体积小甚至适合处理器第一级缓存(第一代微内核)。

5)在单片内核设备驱动程序中驻留在内核空间尽管 在微内核设备驱动程序中驻留在用户空间

6)由于设备驱动程序驻留在内核空间中,因此它构成了单片内核不太安全比微内核更复杂。(驱动程序故障可能导致崩溃) 尽管 微内核是更安全因此在一些军事设备中使用单片内核。

7) 单片内核使用信号和套接字来确保 IPC,而微内核方法使用消息队列。第一代微内核的 IPC 实现不佳,因此上下文切换速度很慢。

8)向单片系统添加新功能意味着重新编译整个内核 您可以添加新功能或补丁无需重新编译

答案2

为什么不先了解一下 HURD 是什么:http://www.gnu.org/software/hurd/hurd/what_is_the_gnu_hurd.html

简而言之(据我理解)HURD 是一个在 MACH 微内核上运行的内核,甚至可以在不重启的情况下更新 HURD 内核的内容。

这一切都很好,而且只是理论上的,但在实践中你唯一会注意到的是缺乏对 HURD 的(驱动程序)支持。

HURD 就像 BSD 和 LINUX 一样……它们大体相同,但又各有不同。它们都是内核,各有优缺点。

相关内容