15.vm_lighter_than_container
Introduction
背景
容器(Docker/LXC)在工业界广泛应用: Google, AWS, Azure, GCP 都依赖容器;
容器优势:
快速实例化(毫秒~百毫秒)
高密度运行(单机可数千~上万实例)
内存占用小, 镜像体积小
问题
安全性不足:
容器暴露 400+ syscalls, 内核攻击面巨大;
隔离性不如 VM, 常需要"容器运行在 VM 内"来补强;
资源滥用(fork bomb, 文件描述符耗尽)可导致宿主机 DoS;
目标
结合容器的轻量性与 VM 的强隔离;
需求:
毫秒级实例化
高密度运行
小镜像/低内存占用
快速挂起/恢复
保持 VM 的硬件隔离安全性
贡献
分析 Xen 性能瓶颈, 重构控制面:
移除 XenStore (noxs), 消除中心化瓶颈;
新工具链 chaos/libchaos + split toolstack;
提出 Tinyx 工具, 生成极小 Linux VM; 支持 unikernel;
实现 LightVM
Tinyx 与 OverlayFS
...
14.turtle_IBM.md
Authors: Muli Ben-Yehuda et al., IBM Research / IBM Linux Technology Center
1. 背景与动机
传统虚拟化 (single-level): 一个 hypervisor (L0) 管理多个 VM, 每个 VM 运行 OS;
嵌套虚拟化 (nested virtualization): 允许一个 hypervisor (L1) 作为 guest 运行, 并且还能继续运行自己的 VM (L2);
需求来源:
现代操作系统自带虚拟化功能(Windows XP mode in Win7, Linux 内置 KVM);
IaaS 场景: 云提供商 (L0) 希望用户能运行自己的 hypervisor (L1), 自己管理 VM (L2);
研究和测试: 嵌套虚拟化方便调试/benchmark hypervisor;
安全性: 可以研究/防御 hypervisor-level rootkit;
IaaS (Infrastructure as a Service)
云计算三层服务之一: IaaS / PaaS / ...
13.x86virt_comp
The main technical contributions of this paper are:
a review of VMware Workstation’s software VMM, focusing on performance properties of the virtual instruction execution engine;
a review of the emerging hardware support, identifying performance trade-offs;
a quantitative performance comparison of a software and a hardware VMM.
Establishes three essential characteristics for system software to be considered a VMM
Fidelity(保真性) Software on the VMM executes identically to its execution on hardw ...
12.xen
背景
应用设计需要一个稳定的环境, 而传统的 OS 隔离技术不足以支持这种要求, 比如一个程序消耗了大量的算力并且被 scheduler 赋予了非常高的优先级, 或者系统被程序攻击了, 从而被某个其他进程消耗了很多资源导致当前进程的性能受损, 因此需要更高层的 VM 设计来实现工业界需要的 isolation 级别
同时为了能够承载各种不同来源的软件 (有些软件跑在 linux 上, 有些在 BSD/Windows XP 上), 所以这个虚拟机的设计应当让多种 guest OS 都能以 minimal effort porting 来运行, 也就是不应该强迫所有运行的系统都要提供一致的 app interface
传统的 VM 设计都会带来显著的 Performance Overhead, 但是随着硬件平台的发展, 我们应该尽量设计出一个低 overhead 的 VM 方案
关键词:
isolation
performance (limited overhead)
portability
tradeoff btw Heavyweight and Isolation
Intro + ...
2. Lamport Clock, RSM
Overview
本简报回顾了分布式系统中逻辑时钟的核心概念, 其在处理事件排序方面的必要性, 以及它如何解决传统时间戳的局限性;重点介绍了"先行发生" (Happens-Before) 关系, Lamport 逻辑时钟的构造与规则, 以及如何通过扩展逻辑时钟实现分布式系统中的全序 (Total Ordering);
分布式系统的时序共识背景
分布式系统被定义为"a set of distinct process, 通过 exchange message 进行通信, 具有 non-neglegible communication latency, 并 not sharing fate";
这意味着系统中的不同部分:
在空间上是分离的
它们之间的通信存在延迟
并且一个部分的故障不会自动导致其他部分的故障
关键问题
状态依赖性: 如果对消息的响应取决于该消息以及(某些)过去的消息, 那么计算就是有状态的 (stateful);这通常建模为有限状态机;
容错性与复制 (Fault-Tolerance and Replication): 为了容忍 ...
2. Relational Algebra to SQL Grammar
Relational Algebra
选择 (Selection), FROM
符号: S/σ\sigmaσ (sigma), Scondition(relation)S_{\text{condition}}(\text{relation})Scondition(relation)
用法: 从关系中选择满足特定逻辑条件的行(元组)的子集;
条件构成: 条件是 bool combitation (∧\wedge∧ 表示 AND,∨\vee∨ 表示 OR)的项;每个项的形式为 Attr1 <oper> Attr2 或 Attr <oper> value, 其中 <oper> 包括 {>, ≥\ge≥, =, ≤\le≤, <};
示例:
$\sigma_{country=‘USA’ ∧\wedge∧ sport=‘gymnastics’}(Athlete): 从 Athlete 关系中选择国家为 ‘USA’ 且运动为 ‘gymnastics’ 的运动员;
对应的SQL语句示例: SELECT * FROM Athlete WHERE s ...
11.disco
这篇论文是 VMware 的基石论文
历史背景和硬件
在上世纪 90 年代, 硬件设计已经非常厉害了, 但是多个商业系统跑在一个硬件机器上非常困难, 因此这篇论文设计了一个模式:
在 hardware 和 os 之间添加一个中间层, 类似 于一个 vmm 来进行隔离
这里的硬件背景:
Stanford FLASH shared memory multiprocessor
experimental cache coherent non-uniform memory architecture (ccNUMA)
传统的不足
硬件的革新需要 significant OS changes
OS 本体代码量过大并不适合修改来适配硬件
buggy/incompatible system software can significantly impact the success of such machines
commodity OS system software 具有 constraints + inflexibility 的缺点
关键词
scalable: 设计的系统可以适配不同的( ...
6.Mach
Mach System
硬件平台 (Hardware)
Mach 最初运行在 DEC VAX 系列机器上, 后来被移植到 IBM RT PC, Sun-3 (68k), Encore Multimax, Sequent Symmetry 等多处理器系统;
这些平台通常配备 数 MB 到数十 MB 的内存 (RAM), 数百 MB 到数 GB 的磁盘存储, 以当时标准算是中高端配置;
通过这些硬件, Mach 展示了良好的可移植性和对对称多处理器 (SMP) 的支持, 并能在有限资源下探索虚拟内存与分布式操作系统的先进机制;
抽象: 任务与线程 (Task and Thread Abstraction)
Mach 将传统 UNIX 中"进程=资源+执行"的模型拆分为两个正交概念:
Task: 资源容器, 包含虚拟地址空间和端口集合, 不直接执行代码;
Thread: 执行单元, 在 Task 的地址空间内运行, 是调度的基本单位;
这种设计降低了开销, 并更好地支持多核并行和灵活的资源共享;
虚拟内存设计与实现 (Virtual Memory Design and ...
7.micro-Kernel
On μ\muμ-Kernel Construction
传统观点是, 微内核是 inefficient 和 not sufficiently flexible 的, 但是本文说明相反观点, 并展示微内核可以达到 macro kernel 的 efficiency
以及为什么当前已有的 measurement 很难说明这一点
设计目标
微内核支持 modular
外部系统可以使用 micro kernel 提供的 mechanism
微内核系统更加 flexible 和 tailorable
明确 target
决定整个 μ\muμ-kernel 的能力的不应该是 performance, 而应该是 functionality
也就是说尽量不要把指令放进内核, 除非纯外部执行无法完成指定任务
系统应该能支持 protection
independence principle: 不同 sub system 之间不应该有任何互相影响和 corruption
这里的子系统指的是进程, 也就是用户态的资源分割单位
integrity principle: 不同子系统之间应 ...
9.exokernel
Exokernel: An Operating System Architecture for Application-Level Resource Management
“Dawson R. Engler, M. Frans Kaashoek, and James O’Toole Jr. M.I.T. Laboratory for Computer Science” (Engler 等, p. 251) (pdf)
Motivation
传统的 general OS kernel 只能提供给最广泛的用户态程序一个中庸的最优解,然而随着软件界的发展,越来越需要一种对各种不同的软件有各自 customized 方案的特殊化优化
并且作者观察到 原语的级别越低,它的实现效率越高,并且它赋予高级抽象实现者更大的自由度
一个系统的目的应该是:
OS (包括 microkernel + server):= protection + abstraction
exokernel := 内核只负责 protection/security (mechanisms), 让 libOS 来负责 ab ...
