“Exokernel: An Operating System Architecture forApplication-Level Resource Management”主要介绍了一个“外内核”,重点研究了exokernel的体系结构设计,以及如何安全高效地实现exokernel。
文章第2节提供了关于exokernels的更详细的案例。
第3节讨论了设计中出现的问题。
第4节概述了样机的现状,并说明了实验方法。
第5节和第6节介绍了Aegis和ExOS的实现并总结了性能度量。
第7节报告了演示exokernel体系结构灵活性的实验。
第8节总结相关工作,
第9节总结
传统操作系统限制了应用程序的性能和自由度,exokernel操作系统体系结构通过提供物理资源的应用程序级管理来解决这个问题,在exokernel体系结构中,一个小内核通过底层接口安全地将所有硬件资源导出到不受信任的库操作系统。库操作系统使用此接口来实现系统对象和策略。这种资源保护与管理的分离允许通过扩展、专门化甚至替换库来定制特定于应用程序的传统操作系统抽象。也就是说exokernel是想给应用程序系统资源的管理,访问。首先exokernel系统由exokernel内核(一层很轻量的系统软件层)和library OS组成。应用程序跟library OS编译、链接在一起。这样,应用程序与library OS共用一个地址空间,应用程序可以有限制的访问系统资源(网络socket、内存VMA等)。允许应用程序定制使用原本操作系统内核才可以使用的资源
图 1显示了一个简化的exokernel系统,该系统运行两个应用程序:一个与ExOS libOS链接的未修改的UNIX应用程序,以及使用其自己的TCP和文件系统库的专用exokernel应用程序。
exokernel体系结构的核心原则是内核应该提供安全的低级原语,允许尽可能直接地访问所有硬件资源,所以他也有一个最重要的目标:将保护与管理分离开来。例如,exokernel应该在不理解窗口系统的情况下保护framebuffer(帧缓冲),在不理解文件系统的情况下保护磁盘。因此,exokernel使用一种不同的方法:它导出硬件资源,而不是模拟它们,这允许高效和简单的实现,exokernel使用三种技术来安全地导出资源:
首先,通过使用安全绑定,应用程序可以安全地绑定到机器资源并处理事件。
其次,通过使用可见资源撤销,应用程序参与了资源撤销协议。
第三,通过使用中止协议,exokernel可以强行破坏不合作应用程序的安全绑定
这里给了一个系统示例
通过secure binding (安全绑定)将资源导出到库操作系统
exokernel的目标是在安全的多用户系统中为不受信任的应用程序提供有效的资源控制。遵循以下原则来实现此目标:
分开的保护和管理;
公开分配。应用程序显式分配资源。内核允许在分配期间请求特定资源。
公开名称。Exokernels尽可能使用物理名称。物理名称捕获有用的信息,不需要从虚拟名称中进行潜在的昂贵翻译或易于种族化的翻译。
公开撤销。Exokernels向应用程序公开吊销策略。他们让应用程序选择放弃资源的哪个实例。每个应用程序都可以控制其物理资源集。
公开信息。Exokernels公开所有系统信息并收集应用程序无法轻易从本地派生的数据。这些原则不仅适用于内核,而且适用于exokernel系统的任何组件。
exokernel优缺点都存在,他优化性能,减少运行时间,在引言里面的很多报告给出了论证,他让不同的库操作系统能够共存,但是exokernel依赖架构,应用程序移植也不在简单,即使在相同的体系结构中,对硬件的更改也需要重写Exokernel和LibraryOS,以利用新特性,或者只是为了保证基本兼容性。
https://blog.csdn.net/ablo_zhou/article/details/1519468
https://en.wikipedia.org/wiki/Exokernel