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年会得到解决。
Linux世界的虚拟化实现远非KVM/Xen两家争雄的简单局面。VMWare 基于paravirt_ops的VMI接口已被集成进内核2.6.21版本,而VMWare也已在其VMWare workstation 6.0上提供对VMI接口支持。lguest也已被集成进Linux内核。
在Linux社区外,Innotek在2007年1月提供了VirtualBOX 的开源版本 (VirtualBOX OSE),除一些针对企业客户的特性外,开源版本的VirtualBOX与完整的VirtualBOX包完全相同,而VirtualBOX最让人感兴趣 的,并不只是二进制翻译技术,而且它可运行在Mac系统上。另外Google也开始进入虚拟化世界,提供基于Xen的虚拟服务器管理工具Ganeti。
移动及因特网Linux
2007年Intel向社区宣布了新开源项目Moblin,和开源社区竭诚合作,为促进移动Linux革新做出不懈努力。Moblin项目主要为移动设 备,数字医疗与数字家庭设备等消费类电子产品提供互操作与可伸缩的创新解决方案。 Moblin旨在为移动设备开发合适的Linux系统与应用,这包括开源的解决方案、工具和一个框架结构。在这个框架内,开源社区可以分享技术、创意及使 用模型。
英特尔在4月的开发者论坛上发布了移动因特网设备MID,第一款移动互联网产品预计在2008推出。Linux是MID的首选操作系统,Moblin就是首先为MID量身定做,当然Moblin也可应用到其它消费类电子产品。
Moblin还应用于汽车导航定位等领域。车载领域中汽车供应商可以通过建立Intel架构在车载的信息娱乐平台,应用嵌入式linux把资讯机会变成现实,丰富导航、定位、内容和应用等车载服务。
Moblin采用Linux内核,但在下列几个方面进行了提高:Linux内核、电源管理策略、用户界面架构、多媒体、浏览器等。
内核方面,不同于PC、MID设备和消费类电子产品通常会有跟标准PC不同的特殊的硬件部件,因此moblin项目建立了内核子项目以适应这些硬件平台的不同。
电源管理方面,由于移动设备和消费类电子设备均采用电池供电,对电源效率极其敏感。 Moblin对Linux的现有电源管理能力进行了扩充和加强,以提供广泛、强健和可扩展的电源管理框架。用户界面架构子项目则很容易理解,MID设备和 消费类电子产品通常不具有如PC那样的大屏幕,因此必然需要在用户界面上量身定做。
在多媒体方面,MID设备和消费类电子产品具有很强的需求,同时兼有移动特点,因此Moblin在多媒体内容管理和框架支持上都有独特地方。作为移动互 联网设备,互联网浏览器的角色至关重要,直接关系到Moblin的普及。对基于 Mozilla浏览器软件进行改进以适应MID设备和消费类电子产品自然是一个重中之重。
回顾2007年,Moblin有了一个很好的开始,我们估计2008年Moblin将会有一个极大提高,各种基于Moblin的设备也将大量出现,让我们拭目以待。