linux内核的功能6,linux内核2.6.39已经发布,有很多亮点

linux内核2.6.39已经发布,有很多亮点

(2011-05-19 22:01:43)

标签:

linux

kernel

it

分类:

技术

刚看到2.6.39发布,有许多亮点:

1、加入了IPset框架,这个能简化iptables规则,提高规则匹配速度。初看跟OpenBSD中pf的table很类似。

2、媒体控制系统的更新(The media controller subsystem)

对linux内核来说,视频采集设备变得越来复杂,同一个视频设备有传感器、DMA桥、视频处理如白平衡调整、镜头阴影补偿处理、图像大小调整等等功能,这对内核来说,意味着不同功能的设备,它们之间又相互连接和传递数据,可以单独起用或暂停某项功能。这样对传统的设备模型来说是一个挑战。

传统的设备模型已经考虑了设备之间在起动与停止顺序方面的依赖,这在机器起动、关机、进入休眠需要用它这些依赖信息。

如果再要表达视频设备不同功能单元之间的联系,这种方法已经有点吃力了。这样有必要改变这种状况。

在这次更新中,新加入了一种新的方式。更重要的是,新的设备之间的关联方式更灵活,也能用来表达传统的电源方面的依赖关系。

3、显式地块设备 请求缓冲

在很早的时候,linux开始对块设备请求进行缓冲与批量处理。作法是当有IO在一个空闲的设备上排队时,这些设备将自动被堵上(plugging),这样IO不是立即派发到底层设备,而是被缓冲住。这样做的好处是能把大量请求按顺序进行合并,提高硬件的吞吐能力。2.6.39对这一块代码做了大的调整。为什么要调整呢?下面对相关历史进行说明。

设备被堵住之后,需要显式地拨掉这些堵住请求的塞子。这一般是在应用程序在进行IO等待状态时调用。这样请求都会派到下一层的设备进行处理。当然,另外还有一些启发式的方法,如当缓冲队列到一定长度,或堵住了指定的时间的时候,打开一次,让请求漏下去。

在最早的实现中,这一块涉及到全局状态。当应用程序快要进入阻塞在IO上时,简单地打开所有堵住的设备,把IO请求全部派发下去。这实现简单,但SMP方面的性能很差。后来的作法把状态放到每个设备结构中,这样虽然解决了SMP性能问题,但是应用程序就不太容易一次性打开所有堵住的设备,为了解决这个问题,又产生了一些新的问题。

另外自动地堵住,需要显式地打开,这种不对称的设置,也容易产生一些让IO停住的BUG。当然可以粗暴地加上自动打开功能,这样既便是有程序忘了打开,也不会让IO停住。

另外,有一些速度快的设备,这种方式反而影响它的性能,需要绕过缓冲。还有一些设备内部就有队列,这样也没必要在外部做缓冲了。

因为所有提到的这些,有必要做一次大的调整。方法是让进程显式地调用接口堵住IO请求,而这些信息都放在进程的内核态堆栈里,而不是放在设备结构里。在进程结构里跟踪这些信息。详细的实现情况请参考对应的链接。

4、终于去掉了内核中的那把巨形锁(big lock)

其它更新见下面的链接:

part1

part2

part3

分享:

a4c26d1e5885305701be709a3d33442f.png喜欢

0

a4c26d1e5885305701be709a3d33442f.png赠金笔

加载中,请稍候......

评论加载中,请稍候...

发评论

登录名: 密码: 找回密码 注册记住登录状态

昵   称:

评论并转载此博文

a4c26d1e5885305701be709a3d33442f.png

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值