细数我与 Linux 这十三年

本文首次发表在 细数我与 Linux 这十三年 -- 泰晓科技html

大学毕业的时候总想着要 “轰轰烈烈地” 写一写 “个人大学”,工做了之后慢慢地以为好像也没什么好写的,工做8、九年后,如今离职了,接触了知乎、泰晓原创团队微信群等各个渠道你们提出的问题后,以为彷佛能够简单回顾一下。linux

因此,下面简单回顾一下 “个人大学” 以及 “个人工做”,这些基本都围绕 Linux,但愿能够打发一下你们的碎片时间。android

在黄土高原萃英山下组建 Linux 社团

第一次看到黄土高原

2003 年高考,笔者把报考的第一志愿所有填写为 “计算机专业”,由于对 “科技奥秘” 充满无尽的遐想,虽然那伙都没怎么碰过电脑,高考后的那个暑假才学会了五笔打字。git

2003 年 9 月,坐了 20 多个小时的绿皮车,从江西南昌一路到甘肃兰州,天亮之后,过了宝鸡,看到黄土高原满目的 “荒芜” 感受像是被流放到了边陲,泪水直流,等到展转下了校车摇了两个小时到榆中校区(如今有高速和火车,半个多钟可到),看到葱翠的校园和热情接待的师兄师姐们,心才平静下来。github

各类折腾

到学校之后,在师兄师姐的地摊上买了好几本感受有趣的技术图书,好比说 HTML,因为买不起电脑,因此跟同窗们借了一堆上机证,天天下午上完课,揣着个馒头就去学校机房排队去了。web

也有加入学院报社编撰《信息星空》去圆本身的“文学梦” —— 咬文嚼字,“排版码字”而已了,后面很荣幸有机会一直作到副主编。真地很想念当年投稿的做者们,一块儿编辑报纸的小伙伴们,还有第一食堂前那家打印社协助排版的同事们。这两年多的经历,不只结识了不少喜欢文字喜欢文学的朋友,也养成了严谨的撰写和编辑习惯,因此,泰晓科技的投稿做者们必定要耐心,有错别字是比较难接受的,有排版不美观也是比较难接受的,可能来来回回得改好几版,不过,改个几版后,提高会很明显的,欢迎接受挑战 ^_^算法

刚学完 C 语言没多久参加过一届学校 ACM 比赛,拿了二等奖,赢了一个 16M 的 U 盘,如今还珍藏着。数据库

而后也有暑假一我的窝在宿舍寝室编撰 汇编语言课程的参考答案,那伙不知道去找出版社出版,而是跑到学校电台去打字作勤工俭学,歪打正着把码字速度提高了很多。安全

期间,也陆陆续续参加过学校就业网站等各种项目。服务器

对面宿舍的 “北极” 同窗 10 岁那年用父母送的游戏机学 Qbasic,他在那一届 ACM 比赛拿了第 3 名,后面陆续带队参加全国的比赛,而我则完全离开了 ACM 比赛,远离了对算法的研究。

FTP 搜索引擎

大学里头,由本身发起并持续改了 n 个版本的软件,当属 FTP 搜索引擎。那时候整天梦想着打造一个西北地区高校的 FTP 搜索引擎,从大二写到大四。

大二之后死皮赖脸跟家里要钱攒了一台电脑(很是感激老爸老妈)。那时候整天抱着 MSDN 大砖头电子书啃 VB,同时不断向 “北极” 同窗取经(因此,“北极” 能够说是我大学阶段的计算机启蒙老师)。

在数据库、网络这些课程统统没有接触前,硬是在 Windows 下用 VB+Acess+ASP 码了个带图形界面,集爬虫、数据存储、搜索界面为一体的具备完整功能的 FTP 搜索引擎。

而后每隔一段时间在本身机器上跑完全部西北地区高校的 IP 地址段,跑完后把数据库和网站更新到学校提供的我的空间上。

那段时间成就感满满,由于能够看到实实在在有不少同窗在用,各类五花八门的搜索内容都有,而后为了不那啥,本身还所以创建了敏感词库等功能,后来陆陆续续迭代,一直到后面在 Linux 平台用 C+MySQL+PHP 重构了一遍。那个时候,跟隔壁班的 Tom 同窗一块儿搞,他负责 UI 设计,我负责剩下的部分,搞出来有模有样。

FTP 搜索引擎 —— 猎鹰搜索 首页

被 “rm -rf" 伤到

只惋惜,大四毕业那年,须要把电脑转给弟弟用,在整理数据时,一条 rm -rf 结束了一切。

只留下在实验楼 502 室无数个通宵达旦 debugging 的夜晚以及相关的 debugging 文章,好比说 Linux 段错误详解,固然,还有那篇基于 VB+Access+ASP 版本写的论文(没有在任何杂志发表,直接放到了网络上):FTP搜索引擎的设计与实现(优化版),至今还在网络流传。

那个时候,有几年,陆陆续续有不少高校的应届毕业生找过来,要帮忙写论文,因为鄙视这种学术做风,因此一一拒绝了,虽然当时一个月才拿实验室 200 块,可是不为这点小钱折腰的精神至今仍是赞扬的。

固然,这个项目有几个很重要的贡献:

  • 所以取了如今的网名:Falcon,由于当时取的搜索引擎名字是 “猎鹰搜索 —— 生来是猎手,网海中搜寻”,原来想用 eagle,只是以为不够霸气。

  • 认识了 Open Source 和代码管理工具的重要性,若是当时把代码开放到 sf.net,就不至于由于一条 rm -rf 就荡然无存了。

  • 后面那些考试,好比说数据库都是很容易就 Pass 了。由于在项目里头,SQL 都被玩烂了,各类优化须要都实践过了嘛,几百万条数据要在几秒内返回,得优化数据库索引,优化每条 SQL 语句。

差很少时间段,“北极” 在 Windows 平台上,不停地用 C+内存数据库+CGI 写他的搜索引擎版本,速度很快,界面很通常。

兰大开源社区刚成立时的那些事儿

2005 年 9 月,教育部和科技部批准在全国 40 所高校创建 “国家 Linux 技术培训与推广中心”,兰州大学于 10 月份创建 “Linux 技术中心”,成为首家 “大学国家 Linux 技术培训与推广中心”

以后学校开设了相关的 Linux 课程,同窗们开始涉猎 Linux 方面的知识。

也是在这一年,我和 Tom 由于在搞 FTP 搜索引擎,被学校团委的徐老师发现,那个时候她正在负责一个校园门户网站:萃英在线,而后讨论把这个搜索引擎搞得正式一点。

所以结识了萃英在线的主要成员 osier、jolestar、柳力、acai、K.D. 等同窗,而后忽然有一天,他们有人提出来要组建学校的 Linux 用户组,因而你们一块儿玩 Linux,印象中,从 TurboLinux, MandrivaLinux, Ubuntu 5.04 开始玩。

而后,委派我去跟当时上数据库课程的副院长申请设备资源,那个时候打探到有个 IBM 实验室,有台很不错的服务器闲置着,不过当时没能申请上,后来展转联系上了 DSLab 的 Kinggo 老师,后来在他的支持协助下,咱们在学校网络中心申请到了服务器,另外,也协调学院在实验楼给咱们支持了一间办公室。

2006 年 5 月 12 日,兰州大学第二届Linux开放日暨兰州大学开源社区对外开放,正式成立了兰大开源社区,你们作了一些分工,有的搭建论坛,有的搭建社区镜像站,热火朝天。

主导创建面向全校的正式社团

后来 osier 等师兄毕业后,DSLab 还在读研的 “黄天” 师兄找到我和 Tom 接手负责后续的运营,咱们商量组织了全校范围内的纳新,制定了团队章程,注册了正式的校园社团,方便持续永久合法地运做。如今回头来看,这个策略是对的,一个松散的开源团队是没法持续存在下去的。

另外,为了不局限在信息学院,咱们主导把社团注册在了资源环境学院(惋惜地是,后面有一届负责人又被忽悠把注册单位改回了信息学院),从而确保团队有来自各个专业背景的同窗,你们能够相互学习,切磋,交换思想。

同时,创建了两条线的管理制度,一条技术线,一条活动线,双 “CEO” 制度。也逐步造成了社团文化,创建了邀请外部工程师来作讲座,邀请优秀毕业生来作交流以及毕业时捐赠图书的传统,还搞了几个经典的活动,新人培训,软件自由日,软件自由日一般会播放 Revolution OS、装机、以及讲解 Linux 命令上手。

那个时候,每一年都有来自美术、物理、行政、资环、管理各个不一样专业的新同窗加入,不少同窗都是品学兼优。笔者后来在学校继续读研,虽然大四后就交棒给了下一届新人 Loyou 和 Silent,可是一直以来都在关心和支持社区直到研究生毕业。毕业后,也赞助过几笔小的费用,用于采购书籍和镜像站硬盘。

何不在贵校也创建一个社团

在这个时间段,“北极” 在负责当时学校的一个 BBS,星期天社区。后来,咱们都有幸被邀请当西北望 BBS 的技术站务,只是那段时间项目多,站务技术工做也少,因此我这边没有什么实质的贡献,只是在本身熟悉的 Linux 版块作好版务工做。

那个时候,除了对技术的执着,其实还有一种责任感在驱使着咱们,就是以为咱们应该为学校留一下一点什么,如今回头来看,每一年都有几十位来自兰大开源社区的应届生毕业,甚感当时的付出是值得的,也感谢有机会和那么多优秀的师兄师姐师弟师妹们一块儿学习和奋斗过,现在不少已经毕业,在各自的岗位上作得很出色,为他们感到自豪,也但愿更多的新同窗不断地加入,经过这样一个优秀的团队,抱团学习,一块儿成长。

兰大,虽然地理位置偏僻一些,可是即便在那边学习计算机,离东部沿海的互联网和硬件企业很远,可是若是执着,有求知欲,无论是加入兰大开源社区,仍是加入其余的 IT 社团(当时的星期天论坛,以及萃英在线、西北望BBS 等等),都是有机会跟有经验的老师和学长一块儿学习,经过网络,你们还能够跟来自世界各地的人们一块儿交流。其余高校也是,并非全部高校都有丰富的设备和网络资源,也不必定能碰到慷慨支持学生的 “kinggo” 支持,可是只要去想办法,去克服,确定是能够解决的。

前段时间,咱们去收集全国高校的开源社团信息,可以经过搜索引擎检索到的寥寥无几,因此,很是鼓励全部高校的计算机新生们,若是有兴趣,能够去抱团组建这样的团队,除了一块儿切磋研讨技术,对于组织能力,协做意识都是很是重要的历练。

在市区 DSLab 玩数控车床

被 kinggo “忽悠” 了

因为兰大开源社区的这段经历,有幸结识了 DSLab 的 kinggo 老师,也参加了 DSLab 组织的几回 “Summer School”,这个彻底向本科生免费开放,由 Nicholas Mc Guire 教授上课。咱们都亲切地称呼他 Nico。

因此到本科毕业的时候,恰好那个时候还进了基地班,积分合计下来能排到专业前三,本身有保送的机会,就跟 kinggo 老师联系,请他帮忙推荐国内的高校实验室,后来,总之是被 “忽悠”(也确实有主观以为 Linux 前景很赞,老师们也比较 Nice) 直接去 DSLab 实验室,跟 Nico 和 Kinggo 老师学习和研究实时系统和安全关键系统。

30 分钟 Watchdog

从 Nico 的 Summer School 上学到的最重要的一课是:“若是一个解决问题的方法花了 30 分钟实施毫无效果,要停下来思考一下,分析是否是哪里出了问题,不要盲目重复”。这个观念在后来的研究和工做中,多次被获得验证,笔者也一直跟周边的朋友和同事宣导。

读研那些事儿

因此大3、大四基本就跟 Tom 一块儿作了 DSLab 的研究项目,师兄师姐们都很是 Nice 和照顾,前先后后有参与作过 KIOSK,有作过 IBM Power CELL 处理器上的 gdb tracepoint,当时积累不够,时间仓促,结果作的很通常。还有用 power 的板子作过一个模块化的网关竞赛,还所以后面不断迭代搞了一个 VnstatSVG

后来作研究,主要有用 XtratuM 作 Fault-tolerant System,而投入时间最多的当属跟西门子合做的 SIL4 Linux,本科还没毕业就参与了理论研究环节,我跟师姐一组研究 HAZOP,后面整个 Demo 系统基本是由鄙人主导开发。

后面的毕业论文主要跟龙芯有关,研二下半年开始去实习,实习完主要时间都埋在实验室作实验,写毕业论文

这个论文算是在国内首次较为系统地研究和分析了 实时抢占内核,有理论分析,也有工程实践,还有实质的成果,那就是 MIPS Ftrace 以及龙芯平台上的实时抢占支持。创新性呢不是很足,可是每一个环节的论证和实验部分很是有份量,不知道趴在实验室睡了多少个晚上,设计实验,验证,看效果,这个很大程度上受到 Nico 影响,治学很严谨。

跟本科生讲嵌入式课

大四和研一的时候,还也有参与 2 届 Summer School 的授课,给本科的同窗讲嵌入式 Linux 课程,结合以前学习 Nico 授课的学习笔记,加上本身曾经动手过的一些项目素材,课堂效果还算不错。在比较短的 4 周时间内,一边要作实验室的项目,一边还得整理讲解和实验材料,讲完还要答疑,讲的时候陷入情境了,有时候眉飞色舞,口若悬河,估计很多同窗可能没跟上节奏 ;-)

实验室创业也难

那个时候,实验室穷,每月领实验室 200 块大洋,由于属于保送,学校还补贴了 200 块大洋,不过这个只是杯水车薪,还得去外面兼职作个家教攒点住宿费。幸亏那个时候牛肉面便宜好吃,否则被饿死(^_^)。

那伙应该是实验室第 3 届,如今实验室很财大气粗了。创业难,建立实验室也同样难,真是不容易,要养活一大堆学生,还得组织你们出成果。经费、学术、管理都是很大的负担,并且学生流动性很大,要持续深刻作一些课题确实不容易。

在江南水乡玩龙芯那一年

为何要读博士

研一的时候,有个学术会议,跟台湾来的老师请教,咨询他是否要读博,他说建议尽可能顶住困难,读一个,他说经济上的困难之后回头看都是必定能克服的。他打了一个比方,“博士就比如一套西装,大部分时候不是必须的,可是有些场合得穿着才行”。

万事孝为先

研二的时候,西门子的项目作得差很少了,在等新加坡的项目,一直没顺利拿到,加上弟弟那伙上大三,学费压力比较大,父母由于常年劳做,身体都积压出了毛病,学校+实验室 400 块大洋都不够本身吃住,因此没有办法补贴家用,因而跟导师商量要出去实习,delay 了差很少半年,实在是等不及,再拖父母身体就跨了,因此就跟导师讲道理,苦口婆心,各有苦衷,孝道为先,豁出去了。

那伙一直在想到底去哪里实习比较好,虽说当时状况下攒钱是第一位的,可是当时找实习倒是另一种思路。偶尔找了龙芯胡老师的几篇文章,读得眼泪稀里哗啦的,因而决定必定要去那边实习,恰好 kinggo 老师跟龙芯产业化基地的老师有联系,因此也没谈实习工资就去奔常熟去了,kinggo 说工资先别考虑,回头再谈,应该没问题的。

关于实习工资

2009 年 2 月,到那边之后,干活特别用心,部门领导以及其余同事也很是关心和热情,在同事们的指导下,两周内把实时抢占内核在龙芯 2F 盒子上跑起来了,包括搭建环境,熟悉 MIPS 平台,移植,debugging 一股脑搞完。

一个月后,工资卡收到 500 大洋,后面了解到,包吃包住,那伙实习生都是这个待遇,但是,真是来攒学费的,这个不够用啊,那伙弟弟在江西师大读软件工程,一年学费 1 万大洋,这干一年也不够啊,因此跟 kinggo 和基地的老师去沟通,而后看表现还能够破例给提高了一些。

去德累斯顿作报告

这个实时 Linux 的工做搞得七七八八之后,写了一篇论文投到了 RTLWS,而后在 Nico 的资助下还跟在那边读博士的 “黄天” 师兄去德累斯顿作了一个报告

报告完,Ftrace Maintainer Steven 指出 function graph tracer 实现不完整,讨论完发现确实有 Bug,回来继续完善,最后搞了 12 个版本才把 MIPS Ftrace 提交进官方 Linux 社区。

在此次会议上,有见了不少大神真身,除了 Ftrace Steven,还有 Lwn Cobert, RT Thomas,RCU Paul,Scheduler Ingo,跟 Thomas 拍了合照,估计找不到了,而后还有跟 20 多个内核 Maintainers 一块儿喝大杯啤酒,都忘记聊了些啥,印象是挺 happy 的。

RSM 用了我维护的内核

这段时间特别卖力,有时候头天熬一个通宵,第二还一早来打卡继续干。

先后把全部 2F 的机器内核整成一个,原来发软件,一台机器一个固件,整完之后,发一个固件就行了。

再后来,把全部代码整巴整巴所有给弄到官方内核去了,搞完后,2010 年被提名去参加 Linux 峰会,由于经济等因素,最后没成行。

同时,顺手搞了一个社区版龙芯 Linux,一直免费维护到毕业的两年后,基本上每一个晚上都要看一下邮件列表,每一个周末都有至少一个晚上在熬夜合 patch,作测试验证。

中途来自北美 FSF 的 Alex 参与维护,后来实在坚持不了,我中止维护后,他一直坚持维护了好几年,期间 RSM 还用了跑这个内核的龙芯逸珑笔记本,当时世伟兄免费维护的社区版 Debian 也是用这个内核。

在欧洲跑了 5+ 年的龙芯盒子

还有实时 Linux,最后搞到在各类软硬件负载下稳定在 80us 之内。2009 年末回实验室,继续完善,同时撰写 毕业论文

后面有送一台 2F 的盒子到欧洲的 OSADL 实验室,一直跑实时 Linux 的压力测试,如今还在欢快的跑着

与风之河的一段缘

工做选择的烦恼

2010 年,笔者毕业并加入北京风河(WindRiver),那是一家成立了 30 多年的公司,在的那年恰好是 30 周年庆。

还在龙芯实习的时候,因为在 Linux 社区发了不少龙芯和 MIPS 的 patch,风河 Linux 部门的老大 Mark 发来邮件,有过几通电话来往,后面肯定了过去。

这期间其实有过很多纠结和烦恼,由于在龙芯这边实习也干得挺好,同事和领导也比较关心,本身对龙芯的热情也一直有并且很强烈,因此,通过了很大的一个思想斗争,最后仍是以为要去 WindRiver 看看,毕竟那个时候作 Vxworks 和 RTLinux 的风河仍是嵌入式系统行业的 No.1,跟本身一直搞的 Real Time 和 Safety 也比较契合,而本身仍是一个学生,还得多学习。

不过去了之后,就上面介绍到的,即便是毕业后的 2012 年,基本上天天,每一个周末,在繁忙的工做之余,我仍是花了大量的时间义务维护社区版的龙芯 Linux 内核,一直在为龙芯服务,不拿一份工资。因此,那个时候,整天在住处和办公室跑,基本也没有业余的时间去谈朋友,也没怎么运动。

全身心投入

在工做方面,本身是 Linux BSP 部门惟一的一个应届生,因为本身资历浅,仍是学生,很担忧赶不上,因此工做也很认真,特别虚心跟各位同事们请教,你们也很 Nice。

那个时候是一我的负责整个 BSP,没有跟如今手机项目同样,好几我的,甚至是十多我的作一个 BSP,一我的作两三个模块。

作评估和实施的时候,因为不太熟悉,因此就作的特别仔细,好比说评估文档,就尽可能能验证的都验证好,有资料的就把资料列上去,一天半天都评估得比较具体细致。所以,有个项目的评估报告还被 Mark 做为样板在会上宣导 ;-)

有作本身评估的项目,也有作其余同事评估的项目,基本上都能按时按质完成工做计划,在一年多 3 个月的时间里头,完成了应该至少有 5 个左右的 BSP 项目吧(过久了记不得太清楚),有时候还要负责一些本身比较熟悉的 Ftrace, RT Features,有时还要 Review 测试同事撰写的测试用例。

这一年多下来其实仍是成长比较快的,由于要作完整的 BSP,因此接触的内核子系统,外设,各类功能就比较丰富,对于 porting 过程,验证工做,评审流程,系统质量保障都有比较系统地认识。若是能作得再久一点固然更好了。

BSP Monkey

记得刚去风河没多久,Nico 回国的时候路过北京,我把他接到望京聚了个餐,而后去机场送行。

他问我都在干啥,问完之后跟我开玩笑:You Are A BSP Monkey。说我不停地重复作不一样的 BSP,就是个 BSP Monkey。感触很深,这么多年,一直还记得。

作 BSP Porting 工做自己,有多少原创性的工做呢?“确实很少”,可是对于产品总体的把握意识和系统性的掌控能力确实是有巨大帮助的。

后来,我一直在思考,怎么突破 “BSP Monkey” 这个范畴而且跟周边的同事们也在宣导这个概念,不能只是个 “BSP Monkey”,要思考要突破,从深度上、效率上、从质量上、流程上、思路上,进度保障上,必须不断地创新进取。

Android 关注组

2010 年末 2011 年初,也是由于以前参与官方 Linux 社区的缘由,提早就结识了几个 WindRiver 的小伙伴和前辈,咱们在业余时间常常聊聊天,聚个餐什么的,你们聊到刚兴起的 Android,以为应该要关注,甚至聊到是否将来有可能为刚兴起的手机厂商提供技术咨询服务。

那一年,远在珠海的魅族恰好发布了第一款 M9 不久,上市了一年多还有各类死机崩溃问题,那伙正在作 MX,迫切但愿能改善情况。

在 2009 年的常熟,笔者有幸在很爱赶时髦的 Mike 唐同窗那里看到过一台手机,真是艳羡得很,那滑动看新闻的效果然是酷毙了,听说那台手机应该是 M8,同一年,在风河另一个 Team 的 3D 也是 Android 关注组的一员,他原来给 M8 搞过 libfetion,因此跟魅族的同窗有联系,巧合,完美无缺。

2011 年初,我和 3D,受邀去魅族作一个报告,全场坐无虚席。临行前,咱们的 Android 关注组祝福咱们成功起步,由于是第一家,根本没经验,一共下来除了对方报销机票,一人拿了应该不到 2k 来着,记不太得了。

后面,其余的厂家需求也没有渠道,而关注组的同窗们,3D 第一个南下腾讯了,后来,魅族抛来橄榄枝,加上来回的沟通,以及对网络中魅族大 Boss 的 “执着” 精神作了一个调研,几经折腾,最后南下珠海了,打算奉献给国产事业了。

第一次据说小米

这一年多里,真地很是感谢 WindRiver 几位 Leader 和同事们一直以来的关照和指导,你们真地都很是很是地 Nice。特别地,

在部门组织的欢送会上,同事们问道,北京不是有小米也准备作机么,为何不考虑一下?那伙作的调查工做实在太少,也没有考虑太多,甚至对手机行业都一片空白,那伙本身还在用 Nokia,对智能机真是一无所知,只是以为,这么多年对系统的研究应该在国产的产品上能够有点实际做为了。

恋恋不舍

离开北京的时候,我在人人网仍是 QQ 朋友圈留言,“待到东南下,竟觉北亦佳!” 怎么舍得那么好的同事和领导呢,还有不少北漂的师兄师姐师弟师妹以及同窗们,并且北京不少地方都没怎么逛过,都窝在宿舍维护社区版龙芯 Linux。

对了,那一年,本科就毕业到福州作交互机的 “北极”,在我去风河的时候,他已经在楼下作 Vxworks,真是巧合,两位老同窗,三年后,又聚到了一块儿。

在学校的时候,他住我对面宿舍,工做之后,又分别在楼上楼下办公。有一段时间换房子没来得及,还在 “北极” 家借宿了一段时间。“北极” 如今还在那边,还在那栋楼了,在技术上,他的耕耘很深很专业,而我却走上另一条道路,作终端产品上的系统去了,要更多地要跟产品的细枝末节打交道。

南下特区作机的这几年

初入魅族

2011 年 9 月,刚南下的时候,很不习惯,兴冲冲地过来,倒是被安排先从 LED、传感器驱动作起来,固然,熟悉一下终端产品也无妨,以前确实缺乏面向用户产品的经验,在风河作的东西,交付给厂商,厂商还得进一步作成实际产品,并且这些产品每每是路由器之类的隐藏在云上的产品,用户看不到摸不着着,而这边作的东西是直接交付给用户的,因此确实有差别的。

识别方向

因此刚开始挺耐心的,不过这跟我来的初衷不符啊,因此,作了一段时间之后,经过跟上司和同事们分析、探讨和观察,本身特别关注和思考如何去提高体验,体验除了死机和稳定性,逐步发现,还有性能、续航和温控等严重的体验问题,续航和温控这两个在云端产品基本不会涉及。

想了解这段过程的话,能够阅读 智能手机系统优化的演进与实践,这是 2015 年,我在 CSDN MDCC 大会上作的一场报告。报告讲述了整个系统优化的发展过程。

咱们应该是安卓手机行业内最先体系化地去思考系统体验问题的团队,也最先创建了专职的团队去作系统优化,这些工做在 2011 年末,2012 年就开始在酝酿和准备了。

付诸实施

这期间,没有对应的测试环节,就引荐外部的测试供应商过来交流;没有体系化的保障措施,就从头设计一套方案:Linux RAS 解决方案,制定标准和规范,开发原型系统;并打通生产、研发和测试各部门壁垒。一步一步,在不断有成绩以及领导的大力支持下,从 0~1 组建系统优化团队,组建自动化测试团队,组建魅蓝驱动开发团队,组建项目管理团队,与此同时,不断在践行:

  • 一方面,逐步实施新人培养计划,建设课题组,创建知识库,打造技能体系。依托课题组,创建 “技术委员会”。鼓励各课题组进行技术分享,完善标准和规范,从而保障部门的技术能力建设。

  • 另一方面,把部门经费管理、活动组织、专利数据运营、知识库运营等都交付给 “团建委员会”。由刚入职的新同事们轮岗参与实施,创建起全面参与的团队文化,同时加快新人融入团队和成长的节奏,也确保了开放性、创造性和多样性。好比说全部的经费管理都有在线帐本记录彻底公开透明,出纳和财务都作到彻底分开;而活动组织这块,你们集思广益,出现了不少精彩的活动节目;而专利和知识库,因为你们策略不少,而后负责的同事们本身带头贡献,因此呈现了爆发式增加。

  • 再一方面,创建项目数据运营系统,完善研发流程的各个环节。不只完善了各环节数据监控指标,避免死角,创新性地引入 “未更新”、“未解决”,“未验证” 三项指标来避免错过一些关键问题、关键时间点,从而避免项目管理、研发和测试任何一个环节的疏忽大意,并借此调度资源,保障进度和质量。与此同时,还引入了一个 “低几率问题占比” 这个指标来论证越到上市环节,留下的问题,90% 以上都是低几率问题,也就是不易复现的问题。因此,最关键的部分,是须要开发和测试一块儿不断去完善测试用例,确保问题是能够有效发现的,这样才有办法去定位问题,进而尝试解决方案是否有效。对于这种问题,一般须要强有力的 Leader 去把各个部门,各个课题组,包括研发、测试、项目,甚至技术委员会的技术专家喊进来,一块儿分析探讨,制定 Roadmap,设计修复方案,制定验证策略,反复迭代,直到问题收敛。

这个期间,因为涉及到资源,涉及到进度,若是足够真诚和有力量,基本上仍是能你们协调一致,可是也不排除有人只顾本身的利益,在背后放枪,因此搞技术的同时也要稍微提防一下。

行业交流

这几年在行业交流方面作了几个事情。

其中一个是泰晓沙龙。前先后后在珠海地区组织了 5 次线下交流,其中分别有荣幸邀请到国内 Linux 业界前辈宋宝华老师、台湾开源教父级大佬黄敬群老师、国内另一家 Linux 内容原创平台蜗窝科技郭健老师等嘉宾参加。相关的交流记录在 泰晓沙龙

行业演讲和报告方面,有表明性的三场分别是:

推掉了德国的工做机会

刚毕业那段,跟 Nico 聊过,请他帮忙问问 Thomas 那边是否有工做机会,2012 年的时候,Thomas 回复说能够去了。

不过那段时间,在魅族本身有一些规划正在实施,尚未成果,不但愿半途而废,因此,暂时推掉了 Thomas 的邀请。后面忙起来,也忘记再联络了。

如今想起来,既错过了去那边读博,也错过了去那边工做,或许是些许的遗憾吧。

攒到第一笔外快

2011 年向 elinux 基金会提交了一个 TinyLinux proposal,而后陆陆续续完成了 50% 的工做量,拿了一半的费用。这期间,在五一仍是十一,有几天就一直窝在家里作实验,测衰退,测数据,最后赶出来了。这篇论文是 Tiny Linux Kernel Project: Section Garbage Collection Patchset。这是第一次有收入的开源活动,期间喊了一个师弟参加,每周参加两个晚上,不只亲自指导,还每月发给他 1000 大洋 ;-)

这个 gc-section patchset 基本是 ok 了,可是有部分平台依赖比较新的 binutils,并且牵涉到的代码改动比较多,因此当时放弃了 Upstream。

这个项目其实仍是有很多成果,相关成果列在 TinyLinux,我记得当时在龙芯 2F 上有作到一个 386k 的 vmlinuz ,顺道提一下,这里的 vmlinuz —— MIPS 内核压缩支持也是笔者贡献到 Linux 官方社区的。还有一个附带的成果就是 Linux Lab,这个项目源自当时测试验证的一堆脚本。

后面陆续有华为等企业的朋友联系过来咨询该特性,彷佛他们有在产品中使用。本身也在早期 MX 等多款产品上试行,对于编译为一体的 Linux 内核,Size 优化超过 10% 以上。只是目前来看,这块的实际意义不是很大了,一方面,模块 delay 加载,另一方面,存储愈来愈大,多的已经到了 256G,内核再大也就几十 M,还有一个是不断有高压缩率的内核压缩算法加入。不过这个优化对于小存储系统,仍是省空间省钱的可选措施之一。

赋闲在家的这几个月

从离职到如今的这几个月,作了几件事情:

注册了一家公司

离职后很快注册了一家本身的公司,公司目前尚未正式开始运营。主要规划的业务方向是技术咨询,可是 ODM 的活拒了好几个,以为这块不是最能体现价值的方向,对我的来说,陷入进去,还不如去公司作单一产品,对企业来说,解决了一个问题还会有另一个问题。

若是是技术咨询,提供方法论,指导创建体系,引荐招到合适的人,并完善团队技能培训,这个是比较契合的,对笔者和企业其实都是具备更长远意义的。

咱们在嵌入式 Linux、实时 Linux、Linux 系统优化、Linux 产品质量保障、Linux 团队建设和管理等方面具备丰富的经验,在云存储、虚拟化、AIoT、芯片设计等方面也聚拢了诸多一线技术专家。

因此若是有这块需求的客户欢迎添加笔者微信:lzufalcon,也能够翻到文末直接扫描二维码。也欢迎同窗们引荐给有潜在需求的企业,很是感谢!

重构了 Linux Lab

这是一个即时 Linux 内核实验室。这个项目的潜力很大,目标是成为 Linux 开发者的手头必备工具,它正在朝这个方向走,因此,若是还没体验过,快快体验吧。

这个项目的做用:

  • 大大下降了我的学习 Linux 的门槛,原来要花几周创建学习环境,如今数十分钟就好。原来要各类挑选开发板,如今 Linux Lab 支持 7+ 大架构,14+ 开发板,除了主流架构,还包括树莓派 raspi3 和当下最火热的 Risc-V 32/64。

  • 同时也能够用到企业作 Linux 培训,作开发、调试和测试环境。不管是什么架构,很方便选择,甚至各类不一样版本的内核都有预先验证过的内核配置文件和编译好的内核。

  • 尤为是芯片公司,作好 Qemu 虚拟化后,用这个能够大大节省时间,提高效率。好比说目前 Linux Lab 除了支持 5 大主流架构(X86, ARM, MIPS, PowerPC, Risc-V),也已经支持 龙芯 和 Csky。其中龙芯这块的支持是和龙芯实验室联合开发的。Csky 是中天微联合开发的。

  • 另外,作 Linux 内核特性开发,作代码 Upstream 都很方便,能够同时在 7+ 个架构,14+ 虚拟板子上验证本身的成果是否完善,是否有影响到其余子系统。

  • 高校也能够免费用来开设不少课程,包括体系结构、汇编语言、C、Shell、操做系统、虚拟化、网络、数据库、编译原理均可以。

但愿有相关需求的我的、企业、高校踊跃尝试,若是有确实的咨询、培训、企业支持需求,也欢迎联系笔者微信:lzulfaocn 提供服务。

感谢 rexZ、releung、我夏了夏天、jordonwulee、foxsen 等同窗的踊跃参与,相关的项目还有 Linux 0.11 Lab, CS630 Qemu Lab。欢迎更多同窗参与进来,一块儿体验、测试和开发。也欢迎你们加入『Linux Lab 用户群』,能够联系笔者微信:lzufalcon。

从新运营泰晓科技

泰晓科技的域名最先是在 2010 年,咱们的 Android 关注组讨论作咨询服务的时候购买的,那时只是买了个域名,尚未网站名字,后来有用过 “泰晓实验室”,最后才改成 “泰晓科技”。后来,3D 去腾讯之后,域名直接转给了我,停顿了一段之后,陆陆续续一直更新到如今,这段时间相对充裕一些,就从新开始启用公众号,这期间也仰赖 “LWN 翻译计划” 负责人 Wang Chen 同窗的踊跃参与和支持,而后我就有更多精力在几个开源项目的重构上,同时尝试开通了 付费征稿,并开辟了除网站和公众号之外的第 3 发布渠道 —— 即会员制 VIP 版块:『Linux 知识星球』

公众号开通之后,HelloGcc 的 @ww 大大持续打气。而 Wang Chen 同窗一直在负责运营公众号,并且他在繁忙的工做之余,坚持开展 LWN 翻译 和 泰晓资讯 两个栏目,实属可贵,很是不易。咱们的公众号已经连续运营了数月,每周一到周五都坚持更新,从未间断,快快扫描下方二维码关注并设为星标吧,否则会错过好文章哈。

扫码关注 泰晓科技 微信公众号

付费征稿开通之后,有甜质粥、cee一、simowce、shenmin 等同窗积极响应,踊跃投稿。欢迎更多的同窗们踊跃投稿,即日起,一经采纳,便可得到 200 大洋稿费,同时能够免费获赠『Linux 知识星球』一年会员。

而知识星球开通之后,获得了近百号同窗们的大力支持,你们不只以实际行动提供支持,还积极参与讨论,出谋划策。欢迎更多的同窗订阅星球,或者转发到朋友圈,引荐给其余的同窗。

送您一张免费体验卡

很是感谢您能耐心读到这里,下面奉上一张免费体验卡,能够多人使用,也欢迎转赠给周边的朋友。

『Linux 知识星球』免费体验卡

寄语

在手机这波浪潮逐渐退却以后,汽车、物联网、AI 这些大潮接踵而至,可是都离不开它们的基石,即咱们正在学习和研究的 Linux 平台,不管是做为设备(汽车大屏、充电桩、语音终端、摄像终端)系统存在,仍是做为云(AI 计算、数据存储、虚拟化)平台系统存在,Linux 在将来都将继续呈现勃勃生机。

笔者但愿,可以藉由『Linux 知识星球』这个载体,系统地总结过去十多年的 Linux 系统使用、研究和开源社区组织参与经验,以及过去八年来数千万规模的手机终端产品 Linux 系统研发、团队管理和质量保障经验,而后逐步回归 Linux 官方社区,密切关注和参与行业发展趋势。

与此同时,笔者将不断邀请更多专业嘉宾朋友加入。而后但愿这些成果可以切实下降当下其余行业应用 Linux 技术的门槛,切实提高 Linux 一线工程师们解决问题的效率,切实提高汽车、物联网和 AI 产品中 Linux 系统的用户体验,为行业作一些微薄的贡献。

此致!感谢全部为 Linux 和其余开源技术产品作出过诸多贡献的同窗们!

也特别邀请您转发这篇文章,让更多的同窗了解『Linux 知识星球』,让咱们一块儿 “聚焦 Linux,追本溯源,见微知著!”。

而后一块儿学习和研究 Linux,一块儿成长。Let's go together, no longer alone。

相关文章
相关标签/搜索