详解Linux开发领域

运维 系统运维
本文向大家介绍Linux,可能好多人还不了解Linux开发领域,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。

本文向大家介绍Linux,可能好多人还不了解Linux,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。就其本身而言,Linux的发展没有路线图。为了对Linux开发领域发展方向有一个简单的认识,作者根据与开发者和内核维护者的交流,以及从www.kernelnewbies.org网站上了解的知识,提出了值得关注的七个Linux开发领域。当然,这七个方面的发展也不会顺风顺水,和众多其他进入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知道这就是开源协作的方式,因此他将接受正在进入内核的实时功能的修改。

4、安全
每一个人都希望使用更安全的系统。Novell在其SUSE Linux企业服务器版10中集成了AppArmor,作为限制一个应用程序可以访问多少操作系统功能的方法,因此如果一个应用程序未经授权被访问,可以限制其破坏性。不过,现在看来它还没有被加入到内核中的时间计划。

Stephen Smalley是一个关键的Linux安全权威,也是另一个安全方案SELinux的开发者,他认为AppArmor不能被合并到内核中,因为它的保护机制是基于“路径名”方式,实质上是一个白名单方式,AppArmor只允许一个应用程序访问那些指定的文件,所有其他文件都被排除在外。根据去年Jonathan Corbet的一个报告,Smalley认为一个狡猾的入侵者可以使用被认可的路径名来猜测其他名称,从而得到人们不想暴露的内容。

内核维护者Andrew Morton对此表示认可,认为这种路径名方式是使AppArmor不能进入内核的最根本的理由。

5、系统诊断
Solaris可以使用DTrace工具来探测在操作系统核心中正在进行的工作,但是Linux缺少一个具有友好用户界面的诊断工具。少数仅有的工具之一是ptrace,它可以让一个过程跟踪另一个的行为。但是ptrace使用起来非常笨拙,且容易出错,现在有一个替代者utrace,它已经成功进入Morton的内容管理树中,距离提交给Linus Torvalds只有一步之遥。在一个进程被一个程序执行执行的时候,Utrace可以跟踪它的行为,而且不会发生ptrace的问题,但是它依然会导致内核锁定问题。Corbet预测在下一个内核版本中还不会包含这个功能。

6、文件系统
Reiser4文件系统目前已经被开始考虑加入到内核中,它已经包含了30个文件系统。根据Hans Reiser的文档,它是一个打星文件管理系统,擅长处理大量的小文件,而使用最小化的磁盘空间。

这个文件系统要求一个文件操作或者被完成,或者被禁止,减少了文件被完成了一半操作所破坏的风险。对很多Linux用户它似乎非常不错,但是经过数年的争论,Reiser4还有没有进入内核中。它不能很好的与内核的很多部分保持协调,而Reiser已经不再是一个领先的开发者。Corbet在最近他的前景预测中写到,“如果它想最终成为传统Linux的一部分,它将需要一个新的支持者。”

Sun公司的128位文件系统ZFS,除了满足今天正在使用的大型系统的需要外,正在引起Linux界的关注。支持它的团体指出它的开源代码应该被内核所考虑。但是它目前的许可协议与Linux通用公共许可GPL不兼容。

7、电源管理
在电源管理方面Linux已经落后了,在这方面Windows笔记本已经给人们留下了深刻的印象,这刺激着英特尔工程师、内核开发者Molnar和Thomas Gleixner和其他人正在这个领域努力。一年前,内核实现了“tick-less idle”机制,当没有工作可做的时候告诉处理器处于空闲状态。没有它,CPU的时钟将会每秒询问内核1000次是否有什么事情可做,从而浪费大量电能。

英特尔的首席Linux技术专家Dirk Hohndel预计在电源管理方面会有更多的完善。但是在内核和系统时钟之间的任何改变会威胁许多其他的交互。他表示,“这些事情可能会非常困难,需要花费长期的时间来完成,但是我认为这是一个正确的发展方向。”

看完本文你觉得这七个开发领域前景怎样?本文是否让你认清了Linux的前景。希望会对你有所帮助。

【编辑推荐】

  1. 操作笔记:SUSE FAQ修改XWindows分辨率
  2. 不要犹豫:Suse Linux Enterprise Server 10
  3. Suse下无线网卡DWL与G122驱动模块
  4. 讲述:Suse FAQ设定ftp服务
  5. 解决Suse中文编码问题知识
责任编辑:小霞 来源: 百度博客
相关推荐

2011-06-28 13:38:15

Arm linux QT

2011-06-20 09:26:38

Linux qtopia QT

2011-06-29 10:18:20

LINUX QT ARM

2010-09-14 09:24:29

C语言

2010-02-26 11:05:04

Linux Mono

2011-08-16 16:32:13

Linux驱动程序

2012-08-30 09:41:23

移动应用开发

2009-11-20 09:10:21

C#开发环境

2020-12-21 14:40:10

Java技术开发

2010-01-25 09:17:01

Visual Stud

2011-12-15 20:21:48

Web

2009-03-03 16:36:03

javafxWebSun

2022-06-26 23:31:17

Java开发语言

2011-09-09 20:14:58

Android Wid

2017-12-01 12:36:54

LDA模型机器

2022-07-22 16:36:23

协作机器人机器人

2023-10-06 22:12:40

Python开发工业系统

2010-07-13 09:02:19

Widget开发

2011-08-30 13:59:06

QTMysql数据库

2013-06-21 09:32:52

Linux超级计算机
点赞
收藏

51CTO技术栈公众号