Fork me on GitHub

开源2007:内核/虚拟化和移动领域均有突破

2007年的开源世界,依旧热闹与繁华,在传统Linux内核领域出现了一些新技术,包括电源管理、内核性能优化等。在人们热议的虚拟化技术领域,开源虚拟化一如前两年,继续成为众多社区成员和学院派人士的青睐,正一路高歌猛进。

  开源世界还有一件在2007年不得不提的大事,那就是移动及因特网Linux项目,英文称之为Moblin。

  Linux内核

  2007年,一件萦绕在Linux内核社区至少3年的无定时中断补丁程序终于部分被采纳了。最终采纳的方案虽然没彻底去掉定时时钟中断,但操作系统在空闲时会关掉定时时钟中断(正式名称为无定时空闲),使处理器在空闲时进入深睡眠状态,而不用处于随时被唤醒的浅睡眠状态,从而节约处理器电源,这使Linux在电源管理方面又大大前进了一步。这一改动对于移动设备非常重要,当然,传统 Linux电源管理和电源管理策略也同时得到了进一步完善。

  Linux内核的性能始终是社区关注的另一个热点。Linux 2.6内核采用了多种优化方式努力提高系统性能。在进程调度方面,内核还引入了模块化的调度架构。这个可扩展的层次结构把内核中的进程调度算法组织起来并且为将来向内核中添加新进程调度算法提供了方便。在2.6.23之前,内核性能主要集中在服务器平台,自从2.6.23,内核采用了全新的完全公平进程调度器,以便更好地支持桌面应用。

  展望未来,Linux内核将会在扩展性、文件系统、虚拟化、进程调度等领域继续得到加强。在向上扩展性方面,Linux已能较好工作在具有512个处理器平台上,但是对更大的系统会有较大的性能问题。这个问题预计随着NUMA架构的普及在未来一年得到重视和解决。在向下扩展性方面,在一些小系统及嵌入式系统中,Linux也还有很多需要改进。

  在文件系统方面,随着硬盘变得越来越大,闪存盘不断普及,文件系统方面的改进势在必行。ext4文件系统可能在不远的将来出现以支持更大的分区。一些新文件系统如LogFS、chunkfs/tilefs、Btrfs会得到进一步发展和应用。

  同时一些新的设备和设备驱动程序将不断出现,特别是无线设备方面。在显卡驱动方面,我们希望看到有更多的显卡厂商能推出开源的显卡驱动程序。今天,所有Intel显卡已做到驱动程序完全开源,但有些厂商的驱动程序还在使用二进制模块,有些则部分开源。

  除了以上这些技术方面动作外,今年开源界另一大事莫过于GPL版本3的发布。由于 Linux内核显示的标明采用GPL版本2的软件授权方式,加之Linus Torvalds本人对GPL版本3并不十分欣赏,若想使采用GPL版本2的Linux内核代码转向采用GPL版本3,将会遇到非常大的困难。

  虚拟化

  回顾2007年开源世界虚拟化技术之前,我们不得不回顾2006年。2006年的两个事件极大影响了虚拟化技术在开源社区的发展:

  ◆Kernel Summit上,Rusty Russell提出“paravirt_ops”,使同一个Linux内核不经修改运行在不同Hypervisor上成为可能,同时也解决了长期以来VMWare和Xen在泛虚拟化实现方法方面的争论;

  ◆Avi Kivity发布了KVM。KVM利用硬件支持的虚拟化技术实现了基于Linux主机的虚拟化实现,并迅速被Linux内核社区接受。

  对KVM而言,2007年显然得到了长足发展。2006年KVM取得了:更稳定的系统、更好的性能、更多的客户机操作系统类型的支持、SMP客户机的支持及跨体系结构支持。

  2007元旦刚过,Ingo Molner就发布了针对KVM的泛虚拟化支持;2月,内核2.6.20正式发布,Linux通过KVM实现了对虚拟化的支持。回想Xen为能进入Linux内核所做的努力,我们不得不惊讶于这一速度。

  Xen在2007年依然保持了高速发展,最新发布版本是3.1.2,并且Xen社区准备在年底发布3.2版本。在不断修正错误以提高稳定性的同时,越来越多的功能被加入到Xen的发布版本(Xen unstable tree),包括:XenAPI的集成以提供更好的VM管理;HVM客户机的实时迁移;32位PV客户机在64位HV上的支持;Intel VT-d技术的支持使HVM客户机可直接使用物理设备;硬件内存虚拟化技术的支持以提高内存虚拟化的性能等。

  关于虚拟化环境下的电源管理开始进行讨论,部分已经被集成到了Xen源代码;NetChannel2利用新的网络硬件技术,为Xen提供了更好网络支持。同时更多的架构和更多的虚拟化方案提供商开始加入到Xen解决方案中。

  Xen基于paravirt_ops的实现也被集成进了2.6.23的Linux内核里,尽管只是非常基本的支持,但毕竟是一个好的开端。在2008年,可以预见更多基于Xen实现的的内核程序被接受,特别是对Dom0的实现。

  内核社区关于虚拟化的另一讨论就是对IO虚拟化的统一。目前各种 Hypervisor都实现了各自I/O虚拟化方法。针对这种现状,Rusty Russell提出Virtio概念并提供了块设备和网络设备的范例驱动程序,Virtio通过针对不同HV的虚拟IO层及其上统一的Linux驱动,以实现对虚拟IO的单一机制。当然,这种努力仍处于早期阶段,估计在2008年会得到解决。
posted @ 2008-01-03 08:07  张善友  阅读(445)  评论(0编辑  收藏  举报