阅读更多

17顶
3踩

操作系统

转载新闻 BFS 简介,Linux 桌面的极速未来?

2009-09-16 14:24 by 副主编 zly06 评论(14) 有5885人浏览

像以往一样,依然在不断编译新版 Linux kernel 内核——Linux 系统提速的必修课。和 Linux kernel BFS  的相遇充满了巧合下的必然。现在看来,BFS Kernel 是 Linux 在半年内给我的最大惊喜——系统像电视购物主持人一样充满了力量和激情!而且是人能感觉得到的快!特以此文献给系统编译狂人,桌面提速狂 Linux 控。向所有 Linux 桌面用户力顶 BFS。

最先在 Kindle 上看 xkcd 漫画,有漫画如是:



 

A: 经过某些人千百年的努力,最新的 Linux  补丁支持 4096 个 CPU 的电脑了!原来只能支持 1024 个!
B: 全屏 Flash 视频卡不卡啊?
A: 卡。不过谁他丫的看视频啊?

而关于 BFS 的消息是最先在 Linux Magazine 上看到的;不久之后 G1 Android 手机 ROM 修改大神 CM 开始在他的测试版 CyanogenMod 使用 BFS 作为 kernel 的 Scheduler,试用之后发现手机系统速度明显加快。用手滑动左右翻屏就像 Opera 下滚动网页那么平滑,搞得屏幕覆膜上多了好多指纹印。心痒已久,恰逢 Linux kernel 2.6.31 新版正式发布,打上 BFS Patch 编译,重启。神一样的提速再次出现在我 4 年高龄的笔记本电脑上,注入了鸡血的 KDE4 让人无比兴奋。快!快!快!

所以,BFS 是什么?

要知道 BFS 是什么最好先了解一下它的作者,传说中的澳洲猛士 CK。

CK,Con Kolivas,男, 澳大利亚中年男子,资深内核 hacker。众所周知,Linux Kernel 是聚集了一帮天才蠢才和暴君怪胎的地方,CK 貌似最适合这种地方的人。是真的貌似,一张电影里面典型高智商通缉犯的脸。

几年前编译 Linux kernel,ck 补丁集就是系统提速的代名词。当时编译内核的三部曲是下 kernel 源码,打上 ck 补丁集,编译安装。后来上游代码将 ck 补丁集稳定的部分不断吸收,它的影响力也渐渐消失。

CK 本身对任务调度有很深的造诣,他聪明而经典地实现了 fair scheduling,而实现模式被 Igor 借鉴改进最终写出了现在 kernel 用的进程调度管理器 CFS (Completely Fair Scheduler)。不得不顺便介绍一下任务调度。Kernel 的进程调度主要是将 CPU 资源分配给各种驱动、进程等等。你可能听说过,一般人的大脑使用率不足 20% 这种科学或者伪科学言论。但事实是,你电脑上的 CPU 从来就没有真正被 100% 的利用过(别跟我说你在资源管理器里面看到过 CPU 100%,我还见过 101% 呢)。如何将各种运算任务一刻不停又有条不紊的塞给 CPU 处理是一门严肃的科学,绝不是电视购物导购能解决的问题。一次塞的运算量少了,CPU 闲着,运算时间增长,电脑慢了;而一次塞的运算多了,CPU 忙不过来,运算又要在门口排队,电脑也慢了。进程调度主要是用算法解决这个问题,而现在 Linux Kernel 用的 CFS 据说非常经典,在不同情况下都可达到相当高的 CPU 利用率。而现用 CFS 也是在 2.6.23 才加入的,取代原来 O(1),直接将 Linux 桌面速度从 XX 时代带入了 XX+N 时代。

两年前,CK 淡出了内核开发,忽然从江湖中蒸发。几周前,CK 重出江湖,两年磨一剑,带来了 BFS ,全称 Brain-f uck-Scheduler (只认识中间那个单词的请参考谷歌翻译),声称专为低端硬件设计(我的理解是不超过 10 个 CPU 的电脑电视手机游戏机都算低端机),说白了就是比 Kernel 默认要更加山崩地裂海枯石烂房价上涨油价飞升的快。BFS 为什么叫这个名字?为了中文用户,不能三个词让他们一个也不懂吧? 好吧,这名字有点不雅,不过算是直爽。对了,据说 CK 也是看到上面我提到的漫画才开始剑走偏锋。真正有几个人用有上千 CPU 的电脑呢?为什么要为这种扩展性牺牲桌面性能。BFS 就在其间做了取舍,仅仅支持最多 16 个 CPU ,把问题外沿做小,让算法更简单精悍高效。作为原理来讲,这足够解释速度的来源。对于其它废问题, CK 专门写了一个 FAQ。在可以预见的将来,BFS 也不会进入 mainline kernel,说白了是取向问题。

关键问题是怎么用?

下 2.6.31 的 kernel 源代码,如果你不知道在哪里下的话就不必往下看了,在当前历史时期您还是搞不定的。再去:http://ck.kolivas.org/patches/bfs/ 下第一个 patch,现在是 2.6.31 开头的,表示适用该版本。解压内核源码,打上 patch,配置以后编译安装。现在 BFS 还在测试期,没有完全成熟,但已经相当可用。编译的时候有什么需要配置的?不需要, Scheduler 这东西太底层了,打上补丁就把原来的 CFS 替换掉了,没什么选项给你选。如果你非要问的话,不就图个快么,记着把配置弄到 1000Hz,开 preempt ,禁掉 dynamic ticks。编译重启不用说了,我可以酷酷的扔下一个 have fun 然后去玩 Mac 了,反正你机器启动不了不要找我。虽然我纯净 kernel 单加 BFS Patch 编译成功启动没问题,依然有一位倒霉的推油编译以后不知道怎么折腾的无法启动。可另外被我忽悠成功的推友们反应一致:“快!人能感觉得到的快!”

到底值不值得上手 ,有没有评测?

这是某些不够剽悍的读者会挣扎到最后的问题。BFS 原理上讲,机器配置越低,感受会越明显。如果你非要评测的话,Phoronix 这个专业的 Linux 测评狂网站也出了一份。我可以提前剧透结论,区别都很小,BFS 胜出绝大部分测试,然而优势不明显。我只是补充一下绝大多数折腾过的人的感受
——快 !人能感觉到的快!

{ source. Thanks Truth. }

来自: linuxtoy
17
3
评论 共 14 条 请登录后发表评论
14 楼 astroxl 2009-09-18 08:53
废话真多  长度>4
13 楼 sofire 2009-09-17 19:19
是挺有趣的。和rtfm有一拼。
12 楼 faylai 2009-09-17 17:30
难道是f-uck火星文?
11 楼 whaosoft 2009-09-17 17:25
说的什么啊
10 楼 zjzh123456 2009-09-17 15:34
这篇文章读起来很有趣
9 楼 manysysy 2009-09-17 15:11
这篇文章写的有意思,支持一下,等下去试一下,看看速度如何了,呵呵
8 楼 thekll 2009-09-17 13:21
看到电视购物我浑身猛地一惊,大哥您不提电视购物行吗?
7 楼 leegorous 2009-09-17 09:30
"比 Kernel 默认要更加山崩地裂海枯石烂房价上涨油价飞升的快"一说这个就理解有多快了
6 楼 sunlong 2009-09-17 08:51
讲得挺好……可惜我linux都不用,错了……好像在用,我那个motorola手机好像是linux平台的
5 楼 ray_linn 2009-09-17 08:49
惨啊,终于得到win2000的水平了解决了flash的平滑问题了。。
4 楼 outivh 2009-09-17 08:03
中文可以翻译为YY
3 楼 NeuronR 2009-09-16 17:18
原来BF就是传说中的brain-f-uck...
我还以为是brute-force
2 楼 qieren 2009-09-16 17:17
说实话,不懂...但...讲的很有趣(我到底在看什么啊 )
1 楼 jackzw 2009-09-16 15:22
CK太历害了!

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 一个电商系统的性能需求例子

    客户的购物网站性能测试(业务)需求: 从12月下旬至农历年底(来年2月初)(<=50天)网站预计营业额(400万),这里营业额可以理解为网站完成购买订单总金额; 访问订单转化率:10%,这里理解为百分之多少的访问量会转化为实际的网站订单; 每日访问时间:24小时×80%,这里理解为正常用户会在早6点至凌晨0点之前进行电子购物,下午18点下班至晚上22点为购物高峰期; 每个订单平均选购商...

  • linux 进程调度卡死,linux进程调度之总章:一些片汤话

    最近几天结合源码看了很多linux进程调度的文章,虽然掌握了个大概,但是越看,细节越多,写这篇文章的信心也就越不足,曾有系列文章叫鼠眼看linux进程调度,很符合我现在的心境,就像盲人摸象,学到一些东西,很惊喜...

  • linux进程调度

    最近几天结合源码看了很多linux进程调度的文章,虽然掌握了个大概,但是越看,细节越多,写这篇文章的信心也就越不足,曾有系列文章叫鼠眼看linux进程调度,很符合我现在的心境,就像盲人摸象,学到一些东西,很惊喜...

  • linux进程调度之 FIFO 和 RR 调度策略

     最近几天结合源码看了很多linux进程调度的文章,虽然掌握了个大概,但是越看,细节越多,写这篇文章的信心也就越不足,曾有系列文章叫鼠眼看linux进程调度,很符合我现在的心境

  • Github 4 万 Star!最全面的 Node.js 资源汇总推荐

    点击“程序员成长指北”,选择“星标????”让一部分开发者看到未来作者@前哨君|地址@https://github.com/jobbole/awesome-nodejs-cn由于微信不支持...

  • 查询BSF资料总结【未写完】

    对Linux的调度一直不满意,多... 在搜索LibreOffice的信息时,知道了BFS,原以为它是类似Wayland之类上层的技术,没想到是底层的。粗略了解之后,感觉它符合个人的性格,只支持16个处理器,刚好够用。其实目前PC还是以

  • 你想要的宏基因组-微生物组知识全在这(1907)

    文章目录征稿、转载、合作文章分类导航目录精选文章推荐培训会议、招聘广告科研经验软件流程扩增子分析宏基因组分析Linux与ShellR统计绘图实验设计与技术基础知识作者解读文献精读科普视频-寓教于乐科普图文写在后面...

  • 你想要的宏基因组-微生物组知识全在这(1908)

    文章目录征稿、转载、合作文章分类导航目录精选文章推荐培训会议、招聘广告科研经验软件流程扩增子分析宏基因组分析Linux与ShellR统计绘图实验设计与技术基础知识作者解读文献精读科普视频-寓教于乐科普图文写在后面...

  • 你想要的宏基因组-微生物组知识全在这(1906)

    文章目录征稿、转载、合作文章分类导航目录精选文章推荐培训会议、招聘广告科研经验软件流程扩增子分析宏基因组分析Linux与ShellR统计绘图实验设计与技术基础知识作者解读文献精读科普视频-寓教于乐科普图文写在后面...

  • 你想要的宏基因组-微生物组知识全在这(1910)

    扩增子教程****Webserver在线分析平台****相关软件和数据库教程**宏基因组分析**软件评测和简介****教程系列****有参分析****无参De novo****功能注释数据库****分箱专题****统计分析及...

  • 你想要的宏基因组-微生物组知识全在这(1909)

    文章目录征稿、转载、合作文章分类导航目录精选文章推荐培训会议、招聘广告科研经验软件流程扩增子分析宏基因组分析三代测序专题Linux与ShellR统计绘图实验设计与技术基础知识作者解读文献精读科普视频-寓教于乐科普...

  • 2016年度开源中国最受欢迎开源软件参展合集

    Cocos2d-x Cocos2D-X是全球知名的开源跨平台游戏引擎,易学易用,目前已经支持iOS、Android、Windows桌面、Mac OSX、Linux、BlackBerry、Windows P... Codis Codis 是一个分布式 Redis 解决方案, 对于上层的应用来...

  • 你想要的宏基因组-微生物组知识全在这(2023.3)

    未来在哪里 微生物领域SCIE期刊分析(英美各40本,中国大陆0本) 如何破解中国95%SCI论文外流的困局 Wiley开放科学大使访谈——刘永鑫 iMeta 2022年度最佳方法评选 iMeta 2022年度最佳研究评选 iMeta 2022年度最佳综述...

  • 2016年度最受欢迎中国开源软件评选,开源中国、博文视点,阿里独占四席

    Cocos2D-X是全球知名的开源跨平台游戏引擎,易学易用,目前已经支持iOS、Android、Windows桌面、Mac OSX、Linux、BlackBerry、Windows P... 当前票数: 396 投票 HP-Socket  HP-Socket 是一套通用的高性能 TCP/UDP/...

  • 你想要的宏基因组-微生物组知识全在这(2022.8)

    未来在哪里 微生物领域SCIE期刊分析(英美各40本,中国大陆0本) 精选文章推荐 10000+ 125家单位联合完成《微生物组实验手册(Microbiome Protocol eBook)第1版》 Nature综述:培养未被培养微生物的创新方法 第一:做...

  • Golang优秀开源项目汇总, 10大流行Go语言开源项目, golang 开源项目全集(golang/go/wiki/Projects), GitHub上优秀的Go开源项目...

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 ...

  • 体验:VC++ .NET 2003 –安装和使用Boost 1.30和Blitz++0.6 之一

    体验:VC++ .NET 2003 –安装和使用Boost 1.30和Blitz++0.6 小气的神2003-05-01 Article Type: In-Depth  难度等级:7/9        版本:1.82 “C++ increasingly means Visual C++”        - Scott Meyers 上一篇,我介绍

  • 新事务之一: dotNET和COM+中的事务(1)

    新事务之一: dotNET和COM+中的事务  小气的神2002-4-16 Article Type: In-Depth  难度等级:6/9        版本:2.32  COM+早于dotNET出现,并且在这几年成为我们在Windows平台下进行分布式和企业级开发的一个解决方案和操作平台,它预置了一些面向企业级应用的通用和底层设施,特别是多层应用

  • 体验:VC++ .NET 2003 –安装和使用Boost 1.30和Blitz++0.6 之二

    体验:VC++ .NET 2003 –安装和使用Boost 1.30和Blitz++0.6 小气的神2003-05-01 Article Type: In-Depth  难度等级:7/9        版本:1.82 “C++ increasingly means Visual C++”        - Scott Meyers 文章的长度

Global site tag (gtag.js) - Google Analytics