一个补丁迭代了16个版本后被撤,我的 Linux内核旅行!
发布时间:2025-11-12
早先我们放Slackware,两个寝室二者之间利一根网线,内网互联网络,试图各种一站式。后来我们在瀚海NGCBBS找到了LUG该组织,就游玩得更加嗨,还在校园中的游玩Debian配置大更加会。进Laboratory后,我们架设了PXE网络关机一站式,无线通信各处的电脑,可以免配置关机带入KNOPPIX等Linux的系统。我们独家优化的FTP一站式器,百倍中的面国铁路口,敞开了全校的文件交友盛宴。
在又一次阴错阳差形同,我开始加诸Linux Kernel字符串。
2005年不读博之后,我在Laboratory想到的文件共享一站式器工程项目,遭遇了模版能力不足以的疑问。随着排查的全面性,我闯入了该软件包I/O领域:原来是其中的面的I/O未及加载(readahead)线性字符串没有人按未及期检测出上新的顺序不读,导致大量不切实际的小I/O。
我试图自己修订该软件包字符串后,疑问被大修,真实感令人振奋!好东西要交友呀!于是我屁颠屁颠地去给Linux生态村提请固件。
本文节选自《 上新脚本语言001:Valve的宝石十年 》
才于波折的填西北侧之路口
那时我并未更加为承认Linux的想法:公民决策权利使用、分发,修订、增值。当Linux客户端遇到了疑问,就能以Bug report或Bug fix的方法,增值干流生态村,从而过渡到一个越加用越加好的持续性循环。所以,搭了多年在线班车的我,现在亲历一个西北侧,正义感油然而生:是时候帮忙填西北侧了!(只不过以前的我还没有人想到这是个多么浩大的西北侧!)
要填西北侧,第一件要想到的有事情是啥?是转变角度:只能仅仅以一站式自己单位工程项目为目标,草草搬个木板,让工程项目之车能快速通过就了有事——那叫Hack,无论如何上不了台面。并不需要正儿八经地研究I/O未及加载区内字符串,研究过去的发送讨论,搞清楚它的的设计目标、思路口、实情,还有更加为最重要的:各种桥段下的言道为表现。这意味着大量检验和举例/可验证增量,在此上新过渡到上新的建议书(Linux生态村主要在Mailing list作准备公开讨论,这就为我这种水下爱好者备有了难得的交流会学习机更加会)。
然而以前的我还不懂缘故多道义,只知其一,不知其二。当深为愉悦与不禁,敲下发送发送号令以后,首先接踵而来的第一重难关就是:沉默。
发送如泥牛入海,没有人送达任何检验者。
我想没关系,没有人送达检验者一定是因为字符串还毕竟好,咱继续检验和加以改进字符串。就这样,V2、V3、…… 固件集越加发越加浩大。在拼命发了几个旧版以后,方才,来自Andrew Morton的一份发送打破了宁静:
(备注:Andrew Morton是该软件包生态村-mm tree的maintainer,负责人准确性的1号人物。他发送说是是:这个固件可真大!而且未及不读这个有事情本身就超级复杂。我并未找了两位兄弟Ram Pao和Steve Pratt帮忙四人送审和检验了,但是这要白花整整。)
从这中的可以看得出上新,Linux生态村最稀缺的水资源是两个:字符串送审(Review)和检验(Testing)。我也是那个时候才知道,生态村借此发小而美的固件——跳出上新更加有坨令人望而生畏的固件集,很易于劝退查看者(非常少更加会让人激发“等我有块状空闲整整了再继续来消化”的试图)。
备受瞩目发固件最担心什么?有人过关斩将、挑毛病?或者莫名其妙,无人理更加会?而更加或多或少的疑问,是接踵而来一个上新生态村,心虚没底,没感觉,没品位。前提,一是水下学习,二是投身其中的面。备受瞩目发固件的最佳作法,是从小大修开始:“这儿有个缺陷,这个小固件可以大修”,紧接著生态村的交互就更加会来得顺,不易于遭遇重大有意外事件挫折。
在这一点上,我无论如何犯错了。
但我又十分幸运,因为没多久以后,Andrew Morton开始年初送审我的固件。从此,我与他曾与了不解之缘,可以问道他正是我在Linux Kernel的领路口人。
我逐渐学更加会了从生态村第一人称来看疑问:Linus Torvalds及其Jenkins(Maintainer)团队,他们并不需要什么样的固件?不赞许什么样的固件?
“我们Corporation/工程项目并不需要xxx,所以撰写了这个配套固件渴望合入Linux。”这是一种以Corporation为中的面心的第一人称。抱歉,在生态村看来,上述揭示是一种政治不正确。
Linux现在的主要成就都来自各家Corporation的雇员,这不缘故可能是当今上最广泛的一个一环Corporation合作Linux工程项目。那么,Linux生态村如何相互合作和引导如此极多的Corporation顺利进言道密切合作,避免军有事冲突?这是个相当可观的过关斩将,众所周知是其中的面有不少互为竞争性对手的Corporation,在一些热点疑问上不缘故可能渴望竞争性主导决策权、发言决策权,以及有利自身的做到。
回应,Linus Torvalds作为“独裁”的发挥作用就揭示出上新来了:你们都愿意投人来想到xxx,很好!必需想到什么,是你们的公民决策权利。但是!最终怎么想到,我的地盘我想到主,要遵从生态村的应以来想到。
最大者的应以就是:所有Valve/水资源库,摘掉你们所属Corporation的裤子,戴上“其实质水资源库”的裤子,按照技术只不过的最佳实践,去想到的设计与做到。大家都以“其实质水资源库”的角度参与送审。
在Linux生态村,准确性控制的整体在于“字符串合入”(Git Merge)这一动作,这是属于“鞋匠”的唯一决策决策权。合入是一个最重要的门槛和分水岭。在合入前,鞋匠有是否给予、何时合入的行事决策权,以及在此上新衍生的关于固件做到应以/建议书的建议决策权。此时鞋匠的决策专制主义一面,无论如何给水资源库们留下了惊喜。可是在合入以后,强势的鞋匠,随即变身为苦命的Jenkins,这是因为Linux生态村有一个基本举例:在Linux城市广场中的,水资源库们进进出上新出上新,随时不缘故可能走掉,不再继续声势浩大。这意味着合入字符串所增大的的系统复杂性,其一直管控责任,要由生态村与Jenkins来兜底。
“Linux有xxx疑问,受到影响了xxx客户端/桥段。这个固件真实感好,副发挥作用小,国际标准,是一直并存斜向。”这,才是鞋匠喜闻乐见的固件。
I/O未及加载固件集前后发了十几个旧版,Andrew Morton更加为慎重地给了一百多份送审发送,就连Linus Torvalds也为了让了十来封发送,甚至还跃跃欲试,亲手奉上了一个一百多言道字符串的固件。
以前我信心前日前日,以为特性日渐充实,立刻更加会被合入主线。
然而,更加进一步经历了一年多的研发增量,到第16个旧版放出上新后,我送达了Andrew的一份发送,说是是:
我把你的固件集去掉了,因为它缘故复杂了!
那一刻便是晴天霹雳!我整更加进一步都傻了。回过味来,我方才痴情地体更加会到了KISS应以的最重要性。这可是毫无疑问的痴情!
从一开始,Linux就是恰当的。当年Linus第一次发布Linux的时候,并不充实,但是恰当能用。及早发布,这是Linux正因如此的一个最重要因素。在此之前,虽然Linux日渐浩大和充实,但对于任何一个特性项,这一应以基本上受限制,并被鞋匠无视。
于是,我最终抛掉原来的字符串,再继续次撰写一份大大简化了的建议书,包括特性与线性,这又白花了我几个年底的整整。在Andrew Morton的送审下,这些字符串又经过了都将加以改进。方才,到了2007年的7年底19日,那一天我送达了很雄伟的几十封发送,那是Andrew Morton把固件集发给Linus,然后从-mm tree中的移除最新消息!
380 C Jul 19 Andrew Morton ( 64:0) [patch 048/209] readahead: pass real splice size 381 C Jul 19 Andrew Morton ( 122:0) [patch 049/209] mm: share PG_readahead and PG_reclaim 382 C Jul 19 Andrew Morton ( 240:0) [patch 051/209] readahead: sanify file_ra_state names 383 C Jul 19 Andrew Morton ( 282:0) [patch 050/209] readahead: split ondemand readahead interface into two fun 384 T Jul 19 Andrew Morton ( 69:0) - readaheadintroduce-pg_readahead.patch removed from -mm tree 385 T Jul 19 Andrew Morton ( 109:0) - readaheadadd-look-ahead-support-to-__do_page_cache_readahead. patch remo 386 T Jul 19 Andrew Morton ( 66:0) - readaheadmin_ra_pages-max_ra_pages-macros.patch removed from -mm tree 387 T Jul 19 Andrew Morton ( 146:0) - readaheaddata-structure-and-routines.patch removed from -mm tree This patch was dropped because it was merged into mainline or a subsystem tree这些固件集方才被合并了!这可真是激动人心的时刻!带入Linux当今交互,就有如打开一扇大门。整个过程中的面,在此之后有140多位来自当今各地、各种取材的人帮忙送审、检验,在自己的的网站上试用并检验者真实感;还有人在网上发该的网站、熟黏贴自己的可靠性数据、图表;有人邀约我在期刊杂志著书,去技术大更加会讲,甚至年底出上新版……如此广泛和多方面的密切合作,必要支架了字符串的加以改进。
这样的赞同力度,在一家即使更加大的Corporation中的,不缘故可能也局限重点工程项目。但是在Linux生态村,这样的有事情就是日常密切合作!基于Linux密切合作,任何一个模块都外加全当今的能量,并且是公民决策权利必需,让最适合的人想到最适合的有事,让最个人利益涉及的更加进一步与该组织想到最指导工作的检验和检验者,从而超过《圣乔治与城市广场》中的揭示的:城市广场其实质以外了压倒性的水资源优势,过渡到对圣乔治研发模式的倾倒。
这是从就是Linux并能蓬勃发展为全当今最大者的Linux工程项目的活力源泉吧!
Sai对本文亦有成就。
本文节选自《 上新脚本语言001:Valve宝石十年 》,该书相当多策画十万亿Valve上新生态、中村都是技术Corporation、人人都是Valve三大版块,为所有Valve随之而来有技术、有浅层、有准确性的高品质主旨。
☞ 二进制跳动正大量招募芯片工程师或准备自研芯片;Google减慢招募;Android 13 Beta 4发布|极客号外
☞ 1 亿美元合同签订合同,苹果电脑和前的设计副总监 Jony lve 四人
☞暗自星辰波涛!华为云原生与 AI Linux工程项目助力根植中的面国21世纪土星天蝎座研发计划
。镇江白癜风专科医院苏州看白癜风哪里最好
郑州不孕不育医院哪最好
重庆白癜风哪家医院最好
重庆妇科专科医院哪好

-
7/16周六竞彩破例:扫盘独家赛事分析(胜负,半全场,比分)破例
松本,再一2-2和解打追,杯赛据统计两轮不但同德赛。季末最据统计一次决胜负的表演赛中都,北关东燕子逼追0-3静冈七夕屈居了劲敌,无意识占去落后。静冈七夕:据统计10场无缘:4但同德赛3追
- 前行科创园(松原)| 入门必修!大咖的短截图引流术都在这堂课里
- 7月21日荣耀举行全场景发布会,“荣耀全家桶”几天后更新
- iPhone13升级iOS15.6RC准正式版续航、信号、发热完美优化,力荐
- 求得3D太湖字谜第2022187期
- 中青宝被曝涉足新游戏版号交易:要价40万元却不能保障版号正常使用
- 享乐排列三2022186期分析:承载本期看好开出3,两胆重防3、4
- BEYOND Awards 创新大奖全新具体内容曝光,体验全面拥抱元宇宙
- 方向上新作《英雄传说:黎之方向上2》最新WEB CM公布!
- 小小五千年:武将全攻略初章,化繁为简,零氪无需专注汉武四大将
- Nature子刊:揭开癌细胞迁移的幽灵面纱