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


3

我已经看到在赫德之上运行的系统开始变得可用(即Arch Hurd),我想知道一个用户,无论如何推进他/她可以看到差异?

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

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

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

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

  • 模块肯定不能与微内核一起存在,有什么相同的?视频卡驱动程序如何?
  • 如果Hurd内核(Mach)将核心任务委托给用户空间进程,那么它们是什么?
  • 谁负责这些核心任务?(相当于超级init?)

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


@Ignacio但维基百科在单片内核中列出了xBSD ......?
凯文

Answers:


2

赫德 - > 微内核

Linux - > 单片内核

类似于b / w单片内核和Microkernel的区别

1)单片内核比Microkernel。它在Unix中使用。 虽然 微内核的想法出现在1980年代末。

2)具有Monolithic内核的操作系统的例子是UNIX,LINUX 虽然 拥有Microkernel的操作系统是QNX,L4,HURD,最初Mach(不是mac os x)以后它会转换成混合内核,甚至MINIX也不是纯内核因为设备驱动程序编译为内核的一部分。

3)单片内核比微内核更快虽然 第一个微内核Mach比单片内核慢50%,而后期版本如L4仅比单片内核慢2%或4%

4)整体内核通常很笨重虽然 Pure单片内核的尺寸必须很小,甚至适合处理器的第一级缓存(第一代微内核)。

5)在Monolithic内核设备驱动程序中驻留在内核空间中 在Microkernel设备驱动程序中驻留在用户空间中

6)由于设备驱动程序驻留在内核空间中,因此单片内核的安全性低于微内核。(驱动程序中的故障可能导致崩溃) 虽然 微内核比单片内核更安全,因此在一些军事设备中使用。

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

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


0

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

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

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

HURD就像BSD和LINUX。。几乎都一样但不同。它们都是具有各自优缺点的内核。


1
“所有几乎相同但不同”我无法相信:)我必须在某种程度上与众不同!
凯文

微核设计和一些哲学,似乎。
JinX 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.