Linux内核发展方向深入分析


  对于一个Linux的企业用户来说,它的内核开发可能显得过于复杂了,有许多人在维护不同的代码,而且有更多志愿者在提交代码,这种乱花渐欲迷人眼式的“热闹”景象却让我们很难看清未来将有什么样的新功能。

  就其本身而言,Linux的发展没有路线图。为了对Linux发展方向有一个简单的认识,作者根据与开发者和内核维护者的交流,以及从www.kernelnewbies.org网站上了解的知识,提出了值得关注的七个开发领域。当然,这七个方面的发展也不会顺风顺水,和众多其他进入Linux内核的功能一样,会按照一条曲折的道路前进。

  1、虚拟化技术

  由于认识到虚拟化技术是本世纪最大的趋势,Linux内核维护者已经破例以飞快的速度将虚拟化功能加入到它的内核中。由新兴公司Qumranet的Avi Kivity所贡献的系统管理程序KVM已经被在2006年底被加入到内核中,并在最近的版本中进行了更新。在迅速的内核版本发布和缓慢前进的企业版Linux之间之间存在鲜明对比,KVM则是一个典型的例子。

  Novell负责管理的副总裁Holger Dryoff表示,“企业还没有为很多功能做好接受的准备,KVM就是非常好的例子,”在KVM进入SUSE Linux企业服务器版之前,它还需要更多的测试工作,以验证它将与内核其他子系统之间如何交互,同样的情况还有调度器,他表示。

  最近刚刚被Citrix系统以5亿美元收购的商业化开源虚拟技术公司XenSource一直在上下活动来让内核中的Xen管理程序使用它自己的体系架构。内核维护者认为,增加一个虚拟化功能是一个维护量很重的工作。XenSource工程师已经让步,但是使Xen与内核操作结盟的工作依然在继续。它还没有真正成为内核组件,只是增加一些支持,可以让当Linux运行在一个虚拟化环境的时候可以识别它。

  其他虚拟化功能正在飞速的发展,其中包括KVM和Lguest,后者是由IBM工程师Rusty Russell编写的迷你型管理程序,代码只有5000行,它已经被包含在多数最近的内核中。和KVM一样,它可以利用来自英特尔和AMD最近芯片中的虚拟化技术。但是,与VMware的ESX服务器不一样的是,Lguest创建了一个虚拟机器,它的操作系统能意识到它已经被虚拟化。这种体系架构让这个操作系统可以更高效的忽略某些针对CPU周期的呼叫,直接让其指向硬件,而不用扮演一个仲裁者使其速度变慢。

  2、实时操作

  在实时操作方面Linux已经取得了迅速的提高,已经成为一个在一些移动电话和其他设备中被频繁使用的嵌入式操作系统。但是,据商业化嵌入式Linux的作者之一,MontaVista的创始人兼首席技术官Jim Ready表示,在最近发布的2.6.23内核中,在实时操作方面却显示出了“一点点倒退”的迹象。一个新的过程调度器开始更多的倾向于更“公平”,它主张由终端用户告诉处理器进行的任务应该获得更多的优先权。

  Ready表示,“一个实时系统的用户并不需要这种公平,”因为实时系统主张其操作系统可以随时中断处理器正在进行的工作,并增加一个新的优先操作。一个简单的例子是,一个用于监视病人呼吸状况的医疗设备中的软件如果发现呼吸停止的情况,就应该中断这个软件正在做的任何工作,并立即发送一个紧急告警。MontaVista不会将这个新的内核应用到它的产品线中,除非其性能被恢复,Ready表示。Gartner分析师George Weiss预测,在2008年标准Linux将作为一个具有竞争力的实时操作系统。

  3、中断处理程序

  Weiss之所以如此说的原因之一是,内核开发人员正在研究让这个调度器具备又一个实时特点。这个操作系统的一个关键角色是用来管理中断的,来决定哪一个任务应该引起CPU的注意,以及如何比其他操作具有优先权。如果所有的中断处理器可以被结合到它们自己的线程中,那个线程可以被调度并设置优先,而不是不可预知的发生和延迟实时响应。

  在这个方向的研究已经进行了三年的时间。MontaVista的Sven-Thorsten Dietrich在2004年提交了一个程序,希望防止中断处理程序因为常规任务中断内核,因为它们影响了实时响应。但是这个程序与内核调度器领域专家Ingo Molnar的观点分歧太大。这个程序影响了一个关键的内核功能,自旋锁(spinlocks),当一个过程等待一个需要的数据或事件的时候它会阻挡CPU。许多程序需要使用自旋锁功能。而Dietrich的代码将数百个自旋锁降低到30个;Molnar的修订保留了90个自旋锁,是一个具有更少破坏性的改变。

  中断处理器集合到一个单独的线程的想法现在看上去已经做了进入内核的准备。Ready表示,“Ingo替换了我们所做的操作,但是他的工作是非常有效的,”MontaVista不会在意是否因为它做的工作而得到多少荣誉,Ready知道这就是开源协作的方式,因此他将接受正在进入内核的实时功能的修改。

  • 1
  • 2
  • 下一页

相关内容