HyperKit、VPNKit和DataKit

HyperKit:OSX上运行的轻量级虚拟化工具包
DataKit:现代化分布式组件框架
VPNKit:嵌入式虚拟网络库



HyperKit
HyperKit是一种轻量级虚拟化方法,基于MacOSX10.10之后引入的Hypervisor框架。HyperKit应用可以利用硬件虚拟化运行VMs,但是并不需要特殊权限或者复杂管理工具栈。



HyperKit是基于xHyve和vHyve项目,与其他相关功能模块(例如:VPNKit和DataKit)合作使得运行更加有效。由于HyperKit架构与库之上,因此将其和unikernel库连接起来就显得很直接。例如,我们可以通过使用MirageOS QCow库(用OCaml编写),加入持久化块设备支持。



DataKit
DataKit是与Git兼容文件系统相协调的工具包。它重用了UNIX管道概念和Plan9 9P协议,同时使用了树结构流数据而不是裸文本。DataKit使得用户通过使用简单脚本与复杂文件系统,可以在松耦合进程之间定义复杂工作流。



DataKit是围绕数据流重建的应用架构,借用Plan9的“everything is a file”概念,在git时代提出了 “everything is a versioned file”的概念。因为在Mac和Windows下的Docker中大量使用DataKit和9P, 我们也开源了go-p9p项目,它是一个现代的,用于Go环境的永久9P库。



VPNKit
VPNKit是在裸Ethernet网络流量和MacOSX/Windows各自socket之间传输数据的网络库。基于MirageOS TCP/IP unikernel栈,是用OCaml编写的库。 如果需要在user-space内对网路进行粒度控制,VPNKit将会非常有用,另外还可以很方便用高级语言扩展。

http://dockone.io/article/1329



http://www.uml.org.cn/yunjisuan/2016061410.asp?artid=18024



Category docker