silo
a large, round tower on a farm for storing grain or winter food for cattle:
一些历史
在微软与Docker合作之前,Windows缺乏容器正常工作所需的一些核心功能,主要是命名空间,控制组(cgroups)和层功能。经过两年半的开发和微软Windows Insider Program的又一年的beta测试,2016年9月,微软宣布将在即将到来的Windows Server 2016中支持容器。
命名空间最初是 Linux 的一项独特功能,它提供了一种控制进程可以与之交互的资源的方法。它们与访问控制完全不同,因为进程不知道资源的存在。一个简单的例子是进程列表:服务器上可能有 100 个进程在运行,但在命名空间中运行的进程可能只看到其中的 10 个。另一个例子可能是,一个进程认为它正在从根目录读取,而实际上它已经被虚拟化了。2006年,Linux内核增加了对将进程分组到一组称为cgroups的功能中的一组通用资源控制下的支持。cgroups和命名空间的组合成为现代容器的基础。
对微软来说幸运的是,Windows已经有了一个类似对照组的功能,叫做job object。作业对象允许将进程组作为单个单元进行管理。示例包括强制实施限制(如工作集大小和进程优先级)或终止与作业关联的所有进程。微软仍然缺少一个类似命名空间的功能,因此一个名为silo的内核对象诞生了。