单片机和微型机的区别是什么?

谁能举例说明一下单片机和微内核的区别? 还有其他内核的分类?

221144 次浏览

宏内核是一个单一的大型进程,完全在一个地址空间中运行。它是一个单一的静态二进制文件。所有内核服务都存在并在内核地址空间中执行。内核可以直接调用函数。基于宏内核的操作系统的例子: Unix,Linux。

在微内核中,内核被分解成单独的进程,称为服务器。一些服务器在内核空间中运行,一些在用户空间中运行。所有服务器都保持独立,并在不同的地址空间中运行。服务器通过 IPC (进程间通信)互相发送消息来调用“服务”。这种分离的好处是,如果一台服务器出现故障,其他服务器仍然可以高效地工作。基于微内核的操作系统示例: Mac OS X 和 Windows NT。

  1. 宏内核设计比80年代末出现的微内核理念要古老得多。

  2. Unix 和 Linux 内核是单核的,而 QNX、 L4和 Hurd 是微内核。Mach 最初是一个微内核(不是 MacOSX) ,但后来转换成了一个混合内核。Minix (版本3之前)不是纯微内核,因为设备驱动程序是作为内核的一部分编译的。

  3. 整体内核通常比微内核快。第一个微内核的马赫数比大多数整体设计的要慢50% ,而后来的 L4等微内核的马赫数只比整体设计的慢2% 或4% 。

  4. 单片内核大,而微内核小-他们通常适合处理器的 L1缓存(第一代微内核)。

  5. 在单片内核中,设备驱动程序驻留在内核空间,而在微内核中,设备驱动程序是用户空间。

  6. 由于单片内核的设备驱动程序驻留在内核空间,单片内核的安全性不如微内核,而且驱动程序中的故障(异常)可能导致崩溃(在 Windows 中显示为 BSOD)。微内核比单片内核更安全,因此更常用于军事设备。

  7. 单片内核使用信号和套接字来实现行程间通讯(iPC) ,微内核使用消息队列。第一代微内核没有很好地实现 IPC,并且在上下文切换方面很慢——这就是导致它们性能差的原因。

  8. 给单层系统添加新特性意味着重新编译整个内核或相应的内核模块(针对模块化单片内核) ,而对于微内核,你可以在不重新编译的情况下添加新特性或补丁。

宏内核

内核的所有部分,如调度程序、文件系统、内存管理、网络栈、设备驱动程序等,都在 宏内核内核的一个单元中维护

好处

•更快的处理速度

缺点

•崩溃不安全 •移植不灵活性 •内核大小爆炸

• MS-DOS,Unix,Linux

微内核

只有非常重要的部分,如 IPC (进程间通信) ,基本的调度器,基本的内存处理,基本的 I/O 原语等,被放入内核。通信是通过消息传递进行的。其他的则作为用户空间中的服务器进程进行维护

好处

‧抗撞击,手提式,较小型

缺点

‧由于额外的讯息传递,处理速度较慢

‧视窗 NT

1. 宏内核(纯整体) : all

  • 来自单个组件的所有内核服务

    (-)不可能加入/移除,较少/没有弹性

    (+)组件间通信更好

例如:-传统 Unix

2. 微内核: few

  • 来自核心内核的少量服务(内存管理、 CPU 管理、 IPC 等) ,来自不同层次/组件的其他服务(文件管理、 I/O 管理等)

  • 拆分方法[有些服务处于特权(内核)模式,有些处于普通(用户)模式]

    (+)更改/升级的灵活性

    通讯开销

例如:-QNX等。

3. 模块化内核(模块化单片机) : most

  • 微型和宏内核的结合

  • 模块集合——模块可以—— > 静态 + 动态

  • 驱动程序以模块的形式出现

例如:-Linux 现代操作系统

在核谱设计中有两个极端 点是整体内核和微内核。

(经典的) Linux 比如内核就是一个宏内核(所有的商业操作系统也是如此 (尽管他们可能会另有说法) ;

因为它的代码是 单一的 C 文件产生一个单一的进程,实现上述所有 服务。
为了举例说明 Linux 内核的封装,我们注意到 Linux 内核甚至不能访问任何标准的 C 库。 实际上,Linux 内核不能使用基本的 C 库函数,例如 相反,它实现了自己的打印功能(称为打印)。

Linux 内核的这种隔离和自我约束提供了 Linux 内核 其主要优点是: 内核驻留在单个地址 space1中 授权 所有的功能,以最快的方式沟通可能没有诉诸 任何类型的消息传递。 特别是,一个宏内核实现了所有的设备驱动程序 然而,这就是宏内核的主要缺点: 任何新的不受支持的硬件的引入都需要重写 (在相关部分) ,重新编译它,并重新安装整个 更重要的是,如果任何设备驱动程序崩溃,整个内核都会受到影响 结果。 这种解决硬件添加和硬件崩溃的非模块化方法 是支持另一种极端设计方法的主要论据 从某种意义上说,微内核是一个极简主义的内核 仅仅是操作系统服务的基本功能(如进程管理和文件系统) 在微内核中,设备驱动程序位于内核之外 允许在操作系统运行时添加和删除设备驱动程序 并且不需要更改内核。

宏内核拥有所有的内核服务以及内核核心部分,因此非常沉重,并且对速度和性能有负面影响。另一方面,微内核是轻量级的,可以提高性能和速度。
我在 wordpress 网站上回答了同样的问题。 对于表格形式的单片机、微内核和外核之间的区别,您可以访问 给你