《架构之美》阅读笔记六
今天我阅读了《架构之美》第七章xen虚拟化之美,Xen是一个虚拟化平台,它来自于一项学术研究成果,现已发展成一个重要的开源项目。它容许用户在单个物理机器上运行几个操作系统,并特别强调性能、隔离性和安全性。本书总结了从Xen中获取的两个主要的经验:半虚拟化的重要性和开源开发的优点。“计算机科学中的任何问题都可以用另外的间接层解决,但是这通常会引发另一个问题。”虚拟化仅仅是一种间接的形式,即使现代计算机从硬件上支持虚拟化,盲目地依赖这种支持会导致糟糕的性能。当年盲目地利用任何类型的虚拟化时都会出现同样的问题。在这样的情况下,可以想象把那个程序“半虚拟化”以使它意识到这个物理限制,结合虚拟内存系统来改变用来使它高效的运行的算法和数据结构。在Xen发展过程中采取的最大胆的决策也许是当其他系统管理程序还只作为私有软件时把Xen昨为开源软件,这个决策使得Xen受益匪浅。通过全球超过100位相关人士和相关机构的贡献,使得Xen成为领先的系统管理程序之一来支持intel和amd的处理器的扩展。另外,由于开源,一些贡献者努力把Xen移植到其他架构,使得Xen能够运行“非传统”的设备。
软件架构是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。通过对《架构之美》中这些优秀的设计师和架构师描述的选择软件架构的准则,我们可以知道一个优秀的软件系统不能按照某些固定的框架去选择自己的软件架构,而是要综合考虑该软件系统的各个利益相关人的关注点,折中考虑,为该软件系统选择最适合的软件架构。软件架构的选择很大一部分需要依靠架构师的经验,因此软件架构的选择并不像上面讲的那么简单,需要随着以后经验的积累,逐渐地去理解怎么选择最适合的软件架构。