房屋和H(硬件)单子,演示了使用高级、类型安全的像Haskell这样的语言允许我们为以安全的方式编程操作系统内核。通过描述形式化API的语义,可以验证在API之上编写的代码是否满足要求属性,如安全要求。
但我们迄今为止使用的方法中存在一些弱点:
- 我们与GHC一起编译我们的程序。我们能相信GHC吗其运行时系统是否正确?如果我们的目标是至少在Haskell中实现一个高保证的微内核结果系统中90%的代码将来自GHC运行时系统,它是用C实现的,并且更大而不是一个单片BSD内核。
- 尽管Haskell中的类型安全允许许多安全约束要在编译时进行验证,需要进行某些检查直到运行时,延迟错误检测并减慢结果代码。
这个演讲描述了一个旨在克服上述问题的小实验弱点:我们使用依赖类型来捕获类型系统中的所有安全约束,消除了对于运行时检查,我们使用编译器和运行时比GHC小两个数量级的磁铁矿系统。我们建立了一个小示例,该示例访问屏幕缓冲存储器以安全的方式在屏幕上显示文本消息。