Linux内核Virtio、GNU Hurd、Genode、Linux Kernel介绍

以下为你介绍Linux内核:Virtio(针对Linux的I/O虚拟化框架)、GNU Hurd(基于 GNU Mach 或者 L4 微内核的守护进程)、Genode(操作系统框架)、Linux Kernel(Linux内核项目)。

1、Virtio(针对Linux的I/O虚拟化框架)

Linux内核Virtio、GNU Hurd、Genode、Linux Kernel介绍

Virtio 是半虚拟化 hypervisor 中位于设备之上的抽象层。virtio 由 Rusty Russell 开发,他当时的目的是支持自己的虚拟化解决方案 lguest。

virtio 是对半虚拟化 hypervisor 中的一组通用模拟设备的抽象。该设置还允许 hypervisor 导出一组通用的模拟设备,并通过一个通用的应用编程接口(API)让它们变得可用。下图展示了为什么这很重要。有了半虚拟化 hypervisor 之后,来宾操作系统能够实现一组通用的接口,在一组后端驱动程序之后采用特定的设备模拟。后端驱动程序不需要是通用的,因为它们只实现前端所需的行为。

除了前端驱动程序(在来宾操作系统中实现)和后端驱动程序(在 hypervisor 中实现)之外,virtio 还定义了两个层来支持来宾操作系统到 hypervisor 的通信。在顶级(称为 virtio)的是虚拟队列接口,它在概念上将前 端驱动程序附加到后端驱动程序。驱动程序可以使用 0 个或多个队列,具体数量取决于需求。例如,virtio 网络驱动程序使用两个虚拟队列(一个用于接收,另一个用于发送),而 virtio 块驱动程序仅使用一个虚拟队列。虚拟队列实际上被实现为跨越来宾操作系统和 hypervisor 的衔接点。但这可以通过任意方式实现,前提是来宾操作系统和 hypervisor 以相同的方式实现它。

2、GNU Hurd(基于 GNU Mach 或者 L4 微内核的守护进程)

GNU Hurd 是一系列基于 GNU Mach 或者 L4 微内核的守护进程,这一套守护进程最终形成了 GNU 操作系统。GNU 计划从1990年开始开发 GNU Hurd,并且将它作为一个遵循 GPL 的自由软件发布。Hurd 的目标是从功能、安全性和稳定性上全面超越 Unix 内核,而同时又能保持对其的兼容性,为此 Hurd 遵守 POSIX 标准。

“HURD”是一个间接递归缩写,来自“HIRD of Unix Replacing Daemons”,其中“HIRD”表示“HURD of Interfaces Representing Depth”。

Hurd基于GNU Mach作微内核进行开发。这是由Richard Stallman做出的技术决定

2005年,Hurd开发者Neal Walfield完成了L4/Hurd基本的内存管理框架,Marcus Brinkmann移植了glibc的重要部分

如果没有Hurd的出现而已经有Linux的话,FSF可能不会研发Hurd。但在Linux之前,Hurd就已经被做出来了。而GNU希望这先进的架构能够让自由软件更具有威力。

事实上,GNU的操作系统中预期的核心就是Hurd。而不是Linux,一般常见的Linux平台又可称为GNU/Linux操作系统。而真正的GNU OS则是维持Hurd作为未来的发展计划。

下载地址:https://www.gnu.org/software/hurd/

3、Genode(操作系统框架)

Linux内核Virtio、GNU Hurd、Genode、Linux Kernel介绍

Genode操作系統框架擴展現有的內核(如微內核或程序) ,並提供一個統一的API應用程序。目前, L4/Fiasco和Linux的支持。

下载地址:https://github.com/genodelabs/genode

4、Linux Kernel(Linux内核项目)

Linux内核Virtio、GNU Hurd、Genode、Linux Kernel介绍

Linux是最受欢迎的自由电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统。Linux最早是由芬兰黑客林纳斯·托瓦茲为尝试在英特尔x86架构上提供自由免费的类Unix操作系统而开发的。该计划开始于1991年,林纳斯·托瓦茲当时在Usenet新闻组登载帖子,这份著名的帖子标志着Linux计划的正式开始。

在计划的早期有一些Minix 黑客提供了协助,而今天全球无数程序员正在为该计划无偿提供帮助。

技术上说Linux是一个内核。“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。一套基于Linux内核的完整操作系统叫作Linux操作系统,或是GNU/Linux。

Linux是一个宏内核(monolithic kernel)系统。设备驱动程序可以完全访问硬件。Linux内的设备驱动程序可以方便地以模块化(modularize)的形式设置,并在系统运行期间可直接装载或卸载。

Linux不是微内核(microkernel)架构的事实曾经引起了林纳斯·托瓦茲与安德鲁·斯图尔特·塔能鲍姆(‎ Andy Tanenbaum)之间一场著名的争论。

尽管林纳斯·托瓦茲的初衷不是使Linux成为一个可移植的操作系统,今天的Linux却是全球被最广泛移植的操作系统内核。从掌上电脑iPAQ到IBM S/390(一种可以同时跑成千上百个Linux的大型电脑),甚至于有人成功的将Linux内核在新力出品的游戏机PS2及PS3和微软出品的游戏机Xbox上使用。Linux也是IBM超级计算机Blue Gene的操作系统。直至2008年11月,全球前五百大超级电脑(TOP 500)有高达87.8%的比例采用Linux为它们的作业系统,最快的超级电脑IBM_Roadrunner正是采用Linux的。

专利权:

原先托瓦茲将Linux置于一个禁止任何商业行为的条例之下,但之后改用GNU通用公共许可证第二版。该协议允许任何人对软件进行修改或发行,包括商业行为,只要其遵守该协议,所有基于Linux的软件也必须以该协议的形式发表,并提供源代码。

托瓦茲曾经公开声称将Linux置于GNU通用公共许可证之下是他一生中所做的“最好的决定”。

Linux內核有三个不同的命名方案。

早期版本:

第一个版本的内核是0.01。其次是0.02,0.03,0.10,0.11,0.12(第一GPL版本),0.95,0.96,0.97,0.98,0.99及1.0。

从0.95版有许多的补丁发布于主要版本版本之间。

旧计划(1.0和2.6版之间):

A大幅度转变的内核。这是很少发生变化,只有当发生重大变化的代码和核心发生才会发生。在历史上曾改变两次的内核:1994年的1.0及1996年的2.0。

B是指一些重大修改的內核。

内核使用了传统的奇数次要版本号码的软件号码系統(用偶数的次要版本号码來表示稳定版本)。

C是指轻微修订的内核。这个数字当有安全补丁,bug修复,新的功能或驱动程序,内核便会有变化。

自2.6.0(2003年12月)发布后,人们认识到,更短的发布周期将是有益的。自那时起:

A和B是无关要的。

C是内核的版本。

D是安全补丁(通常会以'rc'表示)。

下载地址:https://www.kernel.org/

注明

以上就是Linux内核Virtio、GNU Hurd、Genode、Linux Kernel的介绍内容。

栏目相关文章