Exokernel

(重定向自外内核

Exokernel,一种操作系统内核架构,是一种极简化的核心,也被称为外核心(Exokernel),外核、或极限核心

外核心的图形概述

在Exokernel中,运作在核心空间的唯一行程就是内核,唯一工作就是负责分配系统资源,并防止用户行程访问到其他行程的资源。每个用户行程都拥有一个虚拟机,可以执行自己的操作系统。

Exokernel的设计理念是尽可能的减少软件的抽象化,这使得开发者可以专注于硬件的抽象化。外核心的设计极为简化,它的目标是在于同时简化传统微内核的消息传递机制,以及宏内核的软件抽象层。

历史

编辑

Exokernel是在1994年提出的概念,由麻省理工学院并行与分布式操作系统小组(Parallel and Distributed Operating Systems Group)所发展出。

现在,外核设计还停留在研究阶段,没有任何一个作业系统采用了这种设计。几种概念上的操作系统正在被开发,如剑桥大学的Nemesis,格拉斯哥大学的Citrix系统和瑞士计算机科学院的一套系统。麻省理工学院也在进行着这类研究。

外内核有一个应用叫OSv页面存档备份,存于互联网档案馆),是一个unikernel。

技术内容

编辑

它的设计理念是让用户程序的设计者来决定硬件接口的设计。外内核本身非常的小,它通常只负责系统保护和系统资源复用相关的服务。

传统的内核设计(包括单核和微核)都对硬件作了抽象,把硬件资源或设备驱动程序都隐藏在硬件抽象层下。比方说,在这些系统中,如果分配一段物理存储,应用程序并不知道它的实际位置。

而外核的目标就是让应用程序直接请求一块特定的物理空间,一块特定的磁盘块等等。系统本身只保证被请求的资源当前是空闲的,应用程序就允许直接访问它。既然外核系统只提供了比较低级的硬件操作,而没有像其他系统一样提供高级的硬件抽象,那么就需要增加额外的运行库支持。这些运行库运行在外核之上,给用户程序提供了完整的功能。

理论上,这种设计可以让各种操作系统运行在一个外核之上,如Windows和Unix。并且设计人员可以根据运行效率调整系统的各部分功能。

参见

编辑

外部链接

编辑