知识卡片
把拥有最高权限的那一层压到最薄,把复杂的策略决策下放到权限更低的地方
内容
Xen的系统管理程序运行在最高权限级别,一旦出错就危及整个系统,所以设计上刻意让它只做最基础的机制:内存隔离和CPU调度,凡是”创建新虚拟机该分配多少资源”“哪个设备该连给谁”这类复杂的策略判断,全部委托给运行在较低权限的”零域”去处理,甚至零域的调试也比在系统管理程序里调试容易得多。这背后是一个更通用的原则:机制(怎么做)和策略(做什么)应该分离,而且权限越高的代码,越应该只留机制、不掺杂策略——因为策略天然复杂多变、容易出错,把它放在出错代价最高的地方,是在给系统里风险最大的角落故意堆积复杂度。
参考来源
《架构之美》第7章《Xen和虚拟化之美》