Exokernel
Exokernel,一种操作系统内核架构,是一种极简化的核心,也被称为外核心(Exokernel),外核、或极限核心。
在Exokernel中,运作在核心空间的唯一行程就是内核,唯一工作就是负责分配系统资源,并防止用户行程存取到其他行程的资源。每个用户行程都拥有一个虚拟机,可以执行自己的操作系统。
Exokernel的设计理念是尽可能的减少软件的抽象化,这使得开发者可以专注于硬件的抽象化。外核心的设计极为简化,它的目标是在于同时简化传统微内核的消息传递机制,以及宏内核的软件抽象层。
历史
Exokernel是在1994年提出的概念,由麻省理工学院并行与分布式操作系统小组(Parallel and Distributed Operating Systems Group)所发展出。
现在,外核设计还停留在研究阶段,没有任何一个作业系统采用了这种设计。几种概念上的操作系统正在被开发,如剑桥大学的Nemesis,格拉斯哥大学的Citrix系统和瑞士电脑科学院的一套系统。麻省理工学院也在进行着这类研究。
技术内容
它的设计理念是让用户程序的设计者来决定硬件接口的设计。外内核本身非常的小,它通常只负责系统保护和系统资源复用相关的服务。
传统的内核设计(包括单核和微核)都对硬件作了抽象,把硬件资源或装置驱动程式都隐藏在硬件抽象层下。比方说,在这些系统中,如果分配一段物理存储,应用程式并不知道它的实际位置。
而外核的目标就是让应用程式直接请求一块特定的物理空间,一块特定的磁碟块等等。系统本身只保证被请求的资源当前是空闲的,应用程式就允许直接存取它。既然外核系统只提供了比较低级的硬件操作,而没有像其他系统一样提供高级的硬件抽象,那么就需要增加额外的运行库支持。这些运行库运行在外核之上,给用户程序提供了完整的功能。
理论上,这种设计可以让各种操作系统运行在一个外核之上,如Windows和Unix。并且设计人员可以根据运行效率调整系统的各部分功能。