Genode-一种构建安全操作系统的框架

2020-06-28 15:31:45

跳转到导航跳转到搜索Genode[4][5][6]是一个免费的开源操作系统框架,由一个微内核抽象层和一组用户空间组件组成。值得注意的是,该框架是为数不多的不是从专有操作系统(如Unix)派生而来的开源操作系统之一。其特征设计理念是,在面向安全的操作系统中,小型可信计算基础是首要考虑的问题。

Genode可以用作台式机[7][8]或平板电脑[9]操作系统的基础,也可以用作来宾操作系统的虚拟机监视器。该框架已被用作x86[10]和ARM安全虚拟化系统的可信组件。[11]。

Genode的小代码库使其成为更复杂的Unix派生操作系统的灵活替代品。为此,该框架已被用作虚拟化、[12]进程间通信、[13]IP堆栈隔离、[14][15]监控、[16]和软件开发等领域研究的基础系统。[17][18]。

Genode最初被构思为德累斯顿工业大学的Bastei OS架构[19]研究报告。该报告的重点是确定使用基于功能的安全性的基于组件的操作系统的实用性。这份报告的部分动机是在同一时期对L4微虚拟机管理程序[20]进行的研究。在早期原型获得成功后,该报告的作者创建了Genode Labs公司,将Bastei开发为Genode OS框架。

该项目作为开源项目公开开发,根据GNU Affero通用公共许可证条款发布,由一个商业实体提供替代许可。每隔三个月发布一次,以更改操作系统ABI和API以及问题文档。该操作系统框架以源代码的形式提供,在18.02版本之后,为目标上的二进制部署提供了一个称为Sculpt的通用派生工具。

Genode建立在微内核的一般哲学之上-代码越小、越简单,就越容易验证可信性和正确性。Genode通过从小组件组成复杂的应用程序,将这一理念扩展到用户空间。每个组件都存在于严格的父子关系层次结构中。充当父组件的任何组件都可以将资源和进程间通信(IPC)访问策略应用于其子组件。这种分层系统布局产生直观的分区和权限降级,因为专门的子系统嵌套在更一般的子系统中,从而减轻了集中式或超级用户系统策略特有的混乱代理问题。

该框架被设计为由微内核托管,然而,任何给定的微内核的特性大多落在一个公共集合中,而单片内核实现了这些特性的超集。抽象这些特性允许Genode充当各种L4微内核[21][22]以及Linux的用户区域。

Genode经常因为其实现语言C++的选择而受到批评(用C++实现的其他几个操作系统包括BeOS、Fuchsia、Ghost、haiku、IncludeOS、OSV、Palm OS、ReactOS、Sllable和所有主要的浏览器引擎)。这种批评通常断言,C++是实现系统库和API的不佳选择,因为C++固有的复杂性和分析代码以获得正确行为的难度。虽然Genode确实在其系统库中使用多重继承和模板,但不允许使用C++标准库,并且依赖于隐式全局状态的语言功能(如线程本地存储和全局分配器)已从语言运行时中删除。[23]无法对C++进行全面的静态分析。但是,Genode项目发布了用于经验分析的单元测试。

Genode组件使用以XML序列化的结构化数据来消费和发布状态,这与UNIX派生产品的纯文本模型形成了鲜明对比。Genode框架在其所有组件中有效地使用了XML,因为XML可以轻松地以编程方式解析和生成,同时仍然可以手动理解和编辑。

Genode没有任何实际的全局名称空间;没有进程或IPC端点的全局文件系统或注册表。这与UNIX等系统不同,UNIX的特点是文件系统无处不在,并允许超级用户上下文任意管理系统内的任何进程。与UNIX相比,显式声明组件的权限和路由可能会被认为是劳动密集型的。但是,管理分区允许在同一台计算机上由相互不信任的管理员管理子系统,而无需求助于虚拟化,这是一种常见的隔离方法。

Genode项目发布了一款面向当代消费者笔记本电脑的桌面操作系统,名为Sculpt&34;。[24]Sculpt是一个小型基础系统,具有自动设备检测和配置、一些GUI控制界面,并面向Genode包管理器。该系统不具备完整的桌面环境,但需要用户部署托管传统操作系统的虚拟机才能获得功能齐全的桌面。Sculpt与Genode操作系统框架的不同之处在于,它在很大程度上依赖于使用特权控制组件的动态重新配置,而不是使用静态策略的专用系统。

^B.PRUTHIVIRAJ,G.S.MADHUSUTHUN,S.VIJAYASARATHY,K.CHAKRAPANI";一个使用GENODE框架的基于微内核的安全操作系统";(PDF)。jatit.org。CS1维护:多个名称:作者列表(链接)。

米洛-桑切斯,Reinier&Amp;Paz Rodríguez,Waldo&;Fajardo-Moya,Alexis。Genode OS Framework,UN framework para el desarrollo de Sistemas embebios";。研究之门(ResearchGate)。CS1维护:多个名称:作者列表(链接)