通信人家园

 找回密码
 注册

只需一步,快速开始

短信验证,便捷登录

搜索

军衔等级:

  副版主

注册:2009-4-28439
发表于 2019-4-12 14:31:32 |显示全部楼层
本文是【转载】中兴老兵回忆录:手机的故事(完结)的姊妹篇

作者:玩云计算的民工

博客地址:http://blog.sina.com.cn/u/3868742671


目录:

操作系统的故事-初回成都
操作系统的故事-成研所的建立
操作系统的故事-支撑层
操作系统的故事-初担重任
操作系统的故事-合作破裂
操作系统的故事-四面出击
操作系统的故事-转投LINUX
操作系统的故事-夹缝中生存
操作系统的故事-LINUX出师不利
操作系统的故事-KLINUX
操作系统故事-曙光初现




操作系统的故事-初回成都

我本来是在H做无线协议的,做过GPRS,WCDMA,做了3年,就想回成都了,四川人就这么点出息,老想回家。

在H的时候,经常接到Z的电话,挖人,那个时候,我们都被教育:Z是恶意竞争对手。所以一接到这样的电话我一般马上就挂,但是有一个汪总却一直不停地给我打电话,我就把他的号码保存下来了。

当时H成立了成研所,成立这个所的目的是想从邮电某所挖一批搞传输的人,当时只有百八十号人,我申请调过去,结果被拒了,当时H还有本地回避政策,于是,在2001年5月,就自己辞职回成都了,想先回去再找。

回去之后,先回研究所转了一圈,当年的老师正好从国家拉了一个大课题,做行波管,让我回去继续干,我觉得没意思,就拒绝了。回头看,这可能是我犯下的一个巨大错误。

回成都没多久,就遇到成都阿尔卡特招人,我顺利地进去了,成都阿尔卡特是做传输网管的本地化工作,与在H的高节奏,高压力不同,在外企每天没啥事情做,每天都在办公室上网,打游戏,下班准时回家,福利待遇还好得吓人,经常发各种购物卡。我这种在H的地狱里面干了三年的人,对这种生活简直无法适应,总觉得自己会被废掉,心里面发毛,在阿尔卡特混了3个月,终于不想再混下去,突然想起Z以前老联系我的汪总,于是找出电话主动打过去,他一听我回成都了,大吃一惊,说Z成研所刚成立,让我赶快去。

汪总把我的电话给了Z成研所的人,很快就有人通知我去面试,面试的人是周总和谢总(后来的谢所),面试的时候挺搞笑,周总给我一个小纸片,上面写了一段代码,是那种指针的指针的指针操作,我一看,脱口而出:这个代码写得也太烂了,周总有点尴尬,说:是不能这么写,你就看看这个代码是干嘛的?我仔细辨认了一下,是个链表的操作,于是就这么就进入了Z公司。

据说后来HR审批的时候还遇到一点小麻烦,据说是因为给我的薪资比较高,而且我还有H公司的经历,一直到EVP那里才审核通过,汪总中间费了不少心思,虽然汪总早就离开了公司,内心其实很感谢他。

我就这么稀里糊涂进了Z,开始了长达16年的Z之路。

举报本楼

军衔等级:

  副版主

注册:2009-4-28439
发表于 2019-4-12 14:32:51 |显示全部楼层
本帖最后由 关东黑土豆 于 2019-4-12 14:49 编辑

操作系统的故事-成研所的建立

到Z报到之后,我们立刻被派到深圳参加新员工培训,这时候,才了解了Z成研所成立的背景;

当时Z实行的是事业部制度,但成研所不属于任何事业部,而是属于行政直属部门技术中心,技术中心的职能是技术管理和新技术预研,下面只有一个新技术研究部属于真正的开发部门,几乎在成立成研所的同时,也成立了一个西研所,主攻射频技术,这两个研究所都是游离于Z研发主体之外的边缘部门。

这一段属于传闻:据说成立成研所,是由市场部门建议的,目的是为了获得地方政府的政策支持,还有拿地,这个招数后来Z经常用,当时成都著名的IT企业很少,政府为招商引资给出很大的优惠条件,成研所的办公场地是政府出面租的,只有10元一平米。据说,当时的CTO是反对成立成研所的,理由是:成都是个不适合做研发的地方,飞机上都可以听到麻将声;而当时的H总是支持成立成研所,所以成研所就归属在了总部直属部门。

成研所成立之后,总得给点事做,于是,公司给了三个方向,一个是操作系统支撑平台,一个是网管平台,一个是安全平台,听起来都是特别高大上的,但实际上特别坑爹,为啥呢,这三个平台其实都不是独立产品,都是一个大系统里面的一个组成部分,前面说了,当时公司是事业部制度,各个事业部都有自己独立的研发系统,都有自己的操作系统和网管系统,而且各个事业部之间还打得不可开交,我们这种没属于任何事业部的平台,想在Z生存几乎就是不可能的。

我被划分到了操作系统平台,科长是Z总,从南研所回成都的,跟我一起的一共6人,谢总本来在CDMA是做操作系统负责人的,可是他晚了一步,只好去做网管平台,另外南研所路由器的的资深元老老白负责安全平台。

当时成都有这么一个特殊的情况,四川是人才大省,高校比较多,研究所也很多,所以各个企业都喜欢到成都挖人,但是挖的人都以出差的名义弄到沿海去工作,一去就是好几年,早期H也经常玩这种把戏,让当地的人都特别不满。

我们新员工培训完成之后,没让我们回成都,而是分兵两路,网管去上海,操作系统去南京,这一下大家全都开始怀疑了,觉得是不是又上了一个圈套,说是成都工作,其实是把我们弄沿海去当廉价劳动力,当时成研所的起薪比其他几个研究所要低不少的。

怀疑归怀疑,但是还是都老老实实又打点行李,准备去南京,我们出发去深圳的时候还是夏末,去南京的时候,已经都是深秋了,大家都忙着让家里赶快寄冬装。Z总的想法是:操作系统是各个部门的核心命脉,不可能交给别人做,我们去南京,就是去给产品线打工,通过打工,获得产品线认可,积累资本。

就这样,我们一行人又从深圳奔赴南京。

举报本楼

军衔等级:

  副版主

注册:2009-4-28439
发表于 2019-4-12 14:33:36 |显示全部楼层
本帖最后由 关东黑土豆 于 2019-4-12 14:49 编辑

操作系统的故事-支撑层

我们到南京,主要是去看看能不能试图把10机的操作系统升级,这个事情是Z总联系的,他本来就是南研所的老员工;

那个时候,Z的南研基地还没修好,南研所还在在熊猫大厦,周边很繁华,还出过一个搞笑的事情,有一天保安突然通知大家疏散,不要走电梯,我们从10多楼走下来,楼下都被大批警察包围了。

当时,Z的交换机上,所使用的一种嵌入OS,是一种非常古来的系统,交换机的CPU还是386/486的,用于主控板,其他单板上都没有OS,因为这个古老的操作系统的功能非常弱,因此,在上面又开发了一个支撑层,这个支撑层是Z著名的元老D总写的,后来马总找了了D总的设计文档,一共几页纸,把R层的精华全部写出来了。

R层包括二级调度,内存,定时器等,消息队列等模块,为啥有个二级调度?因为早期的嵌入OS支持的任务数只有16个,难以满足通讯系统的要求,因此在OS调度的基础上开发了二级调度功能。整个R层就是对OS的优化,增强,和封装。H公司则是自己编写了一个轻量级OS,我们内部称08机OS。

交换机是Z起家的产品,所以其他各个产品的OS基本都是源自这个R层,然后各个事业部,产品线又做了很多修改,但源头还是交换机的R层。CDMA的BSS是个例外,后面会说。

因为Z当时实行事业部制度,各个事业部之间存在激烈的竞争关系,有个笑话,Z的设备,对接H的都没问题,对接自己的反而对接不上。各个事业部都独立开发自己的产品,形成一个自上而下的独立技术框架,虽然源头是一样的,但是后期发展成各自不同的版本。

而通讯系统的大部分技术,协议都是通用的,这个导致各个事业部自己开发的模块很难在公司内部移植推广,也形成了内部的技术壁垒和重复开发,资源的浪费,因此,我们感觉这是个机会,做一个公司统一的支撑层。另外H当时也在做类似的东西,开始叫VOS,后来的DROPA平台,我虽然没有参与研发,但是用过这个东西。

我们到南京,首先就是想把源头的R01移植到新的VXWORKS系统上,Z总的想法是,在新的VXWORKS占住了,后面可能会推广开,当时整个科室只有我做过嵌入式,所以,我承担BOOT的开发,具体说就是在交换机主控板上启vxworks。我以前从来没启过板子,早年做过单片机,对汇编和X8086芯片的架构比较熟悉,也花了两个多月才把板子启起来,具体细节都忘了,只记得最麻烦是启网卡,那个网卡芯片特别老,vxworks上没有相关的驱动,后来我都没启过板子,因为确实是个苦力活。我们干的事情主要就是把交换机上的支撑层从IRMX移植到vxworks上。因为vxworks当时还是新东西,我们的进展也比较慢。

举报本楼

军衔等级:

  副版主

注册:2009-4-28439
发表于 2019-4-12 14:34:35 |显示全部楼层
操作系统的故事-初担重任

2002年初,在上海的谢总让我们去跟上海intel交流,Intel跟我们展示了一个全新的东西,ATCA 刀片服务器和CGLinux,为啥找我们呢?因为INTEL听说Z成立了一个操作系统团队,所以立刻就跟我们联系,把他们的一个颠覆性技术展示给我们,要了解ATCA,先说传统通讯系统架构,传统通讯系统架构都是封闭的,每个厂家都有自己的架构,从机框到单板,以及上面的软件都是封闭系统,这种架构的好处就是能保持通讯设备厂家的高利润。试图进入电讯领域的INTEL于是推出了开放式的标准电信架构,就是这个所谓的ATCA+CGL,简单说,就是想把通讯设备PC化,当时他们看好中国通讯市场巨大的发展空间,于是想首先在中国推广,而之所以选Z,是因为Z是老二,按照INTEL的理解,老二会比老大更加具有侵略性和变革的动力。

ATCA现在已经成为主流的电信架构,不过当时确实是震撼性的,我也很感兴趣,可是我们当时还没有能力来承接这个事情,后来INTEL也发现成研所其实是纸糊的,就不找我们了,在Z遇冷之后,INTEL去找了H,H很快就跟INTEL达成合作,后来Z也上了ATCA,不过都是几年后的事情。

2002年春节,所有出差的人都回到成都,这个时候大家都疲惫不堪,怨声载道了。过了年,没让大家立刻再出去,而是在成都休整一下,同时讨论后续的工作。

这个时候,研究所的人员又增加了一些,双星一帅,强强,鹏鹏,ZZL等人陆续加入,同时,一批人从H公司跳过来,其中一个还是我在H公司的徒弟WCH,也是一个顶尖高手,这批人后来成为操作系统以及手机成研所的核心,成都在人才优势逐步开始体现出来了。

但是,另一个坏消息传出来,就是公司决定设立一个大平台部门,3G平台,这个平台部门要统一CDMA事业部,移动事业部所有的硬件,软件平台,最后逐步统一整个公司的所有的基础平台,这个毫无疑问就跟我们撞车了,3G平台抽调各个事业部的骨干组建,但是唯独把成研所排除在外,成研所一个刚刚成立的小研究所,根本无力与公司战略部门3G平台做正面竞争,我们成立不足半年,饭碗就被别人抢走了。

另一个坏消息是,Z总决定离开成研,回南京了,后来Z总去了3G平台,这一下,我们这帮刚进公司不久的人全都傻了,带队的人没有了。操作系统科顿时陷入困境,先是有员工离职,然后,又有两个员工调网管,当时网管看起来比操作系统稍微好一点,第一批去南京的,最后就只剩下我一个人了,第二批进来的新员工都不知所措,这个时候,L博任命我担任操作系统科的科长,当时我进公司也不过3,4个月,就这样,我就稀里糊涂地接下了操作系统这个这个烂摊子。

我一个边塞小研究所的新员工,带着一帮新员工,却要去统一公司的操作系统,我一想到这个,就觉得完全就是开玩笑的,想着在Z的日子可能就进入倒计时了。

举报本楼

军衔等级:

  副版主

注册:2009-4-28439
发表于 2019-4-12 14:35:49 |显示全部楼层
操作系统的故事-合作破裂

在担任科长之后,我宣布了两项规定:第一,强制加班,凡是不加班的,跟我请假;第二,不准说四川话;当时,因为高层对很多人都认为成都是一个安逸养老的地方,不适合做研发,所以,首先我们要堵住这帮人的嘴。在成研所前几年,我们的加班一直在公司里面名列前茅。

新所长L博是个超级大忽悠,他不知道用什么法术忽悠得到老爷子的欣赏,老爷子支持在成都做公司统一的操作系统支撑平台,于是L博去跟3G平台谈合作,要一起共同开发这个公司级统一平台,当时3G平台虽然组建起来,但是人手却还非常缺乏,因为抽调各个部门的骨干,被各个部门抵制或者拖延。于是3G平台虽然心里面一万个不愿意,但是还是答应跟我们一起合作开发。

L博从新技术研究部抽调了新技术研究部的李博等几个人,加上我们成研所的人,大约10多个人,又去了南京,李博担任统一操作系统平台的项目经理,这个其实也让成研的人很不爽,明明是我们的项目!这个状态,不用想都知道维持不了多久。

与此同时,L博到处到各个产品线活动,为了得到产品线支持,我们派出员工到事业部产品线给打工,自带干粮给产品线干活,其中上海一所的接入网事业部的支撑部王部长对我们很支持,于是我们就派出一批员工到上海去给接入事业部干活。这帮兄弟们主要帮产品线启板子,启板子是最苦力,最困难的的活,要对硬件,驱动,操作系统的引导过程非常熟悉,我们干了大量启板子的事情,以至于到后来没有我们启不启来的单板和操作系统。

我们到南京之后,首先就是跟3G平台讨论统一接口,新员工们则抓紧时间学习支撑层代码,在R01中,有一段核心代码,就是二级调度的代码,一共200多行,全是汇编写的,我让几个骨干全都深入分析过这个代码,原始的是X86架构的,为了抢在3G平台的前面,我们迅速地把ARM架构和PPC架构的二级代码也实现了,同时也开发了新的定时器模块,旧的定时器是多队列,新的定时器是循环定时器,性能有何很大的提升,定时器是操作系统一个关键任务,10-100毫秒就运行一次,对系统的性能影响特别大。

在跟3G平台讨论方案和需求的时候,大家吵得一塌糊涂,虽然都是源自R01,但是各个产品线的都做了自己的修改,都想基于自己的方案和接口来做新的平台,当时CDMA事业部比较强势,因为CDMA是当时公司的盈利大户,所以CDMA占了优势地位,网管谢总就是从CDMA操作系统科过来的,他很了解CDMA支持层的情况,他告诉我CDMA有个顶尖高手赵工,CDMA的二级调度就是他设计出来的,据老谢说,是参考了telelogicTAU的设计思路,赵工后来也调3G平台了,我跟他接触了几次,果真是顶尖高手。

随着3G平台人员逐步到位,我们与3G平台的合作也越来越困难,我本人也是谁都不服的,遇到分歧就跟他们吵架,寸土必争,WCH技术功底深厚,经常跟我一起充当打手,以至于后来成研所的哥们都说成研和3G平台的矛盾都是我惹的祸。而那些去上海给产品线打工的兄弟,也比较郁闷,我一次去到上海去探望在上海的强强和鹏鹏,在实验室找到他们两个,正在灰头土脸地调驱动,我们刚说了两句话,突然一个妹子冲进来对着强强,鹏鹏哇啦哇啦一通训斥,语速极快,我都没听清她说了什么,这个妹子又风一样就走了,根本不给强强和鹏鹏说话的机会,我很惊奇,问这个妹子是谁呀,强强告诉我说这个就是上海一所有名的小燕子。。

到上海,有个意外的收获,就是见到了马总,马总当时领一个小团队,有陶大侠,朱DF,DH等10多个人。这个小团队是Z公司我觉得最顶尖的小团队之一,我后来评价,公司有3个小团队是战斗力特别彪悍的,CDMA的支持科,接入网的马总这个小团队(后来是朱DF),还有就是我们成研的这个小团队。L博到处忽悠,马总当时也被L博忽悠,所以对成研所还很客气。

在南京出差的时候,别的兄弟们都自己租房子,只有我,WCH,和测试组长王工合伙继续住在一个很破的宾馆,瑞金宾馆,跟宾馆谈了一个长住协议价,自己掏腰包。我们三个每天晚上就在一起聊天,都感觉跟3G平台一起做操作系统支撑平台,基本上没前途,3G平台是公司战略平台,我们只是一帮打酱油的,于是苦苦思考怎么突围;

这个时候,我觉得如果继续纠缠在操作系统支撑层上,我们这个团队肯定会被灭掉的,这个时候,我突然想起,在H公司的时候,我见过一些好东西是Z没有的,主要有3个,第一是堆栈回溯工具,第二是热补丁;第三是自动测试工具,虽然我只是用过,但是这几样东西都特别有用处,而且Z没有,技术门槛也相当高,3G平台不可能搞得定,我把这个想法跟WCH一说,他立刻赞同,于是我们开始努力回忆当时的使用细节,分析这些东西都是背后怎么实现的呢?

到了7月份,跟3G平台的合作终于破裂了,L博跟3G平台达成协议,CDMA和移动的操作系统支撑层由3G平台支撑,其他产品线的成研所自己去推广,当时还有其他几个事业部,接入事业部,网络事业部,本部事业部,手机事业部。L博的想法是移动和CDMA我们放弃了,我们做剩下几个事业部。

跟3G平台分手之后,研究部的人也跟我们分手了,他们回去做自己的项目,就这样,公司级统一操作系统平台的项目经理,就这么落在我头上了。我带着一帮人垂头丧气地从南京回到成都。

举报本楼

军衔等级:

  副版主

注册:2009-4-28439
发表于 2019-4-12 14:36:27 |显示全部楼层
操作系统的故事-四面出击

回到成都之后,我们简直觉得前景黯淡,这个时候谢总帮了我们一大把,谢总虽然负责网管,但是他跟CDMA的老大们都很熟,谢总的网管平台已经跟CDMA形成了合作,而CDMA跟3G平台也有不少分歧,于是商量我们的操作系统支持平台是不是可以先在CDMA先去试一下,选了BTS的CCM和CHM给我们做验证,于是我们开始在CDMA的BTS上的移植工作;这种验证测试,CDMA自己当然不会投入人力来协助我们,只能靠自己把支撑层,协议栈,以及上层应用都全部移植,移植过程中,我们学习和了解了CDMA系统的知识和架构。后来虽然移植完成,也通过了验证,CDMA还是没有使用我们的平台。

这个时候,WCH把堆栈回溯给做出来了,简单说一下什么是堆栈回溯,凡是做过嵌入开发的,经常会遇到飞指针和段错误,这个时候,系统就挂了,这种BUG特别难查,而堆栈回溯,就是在发生段错误,非法页面错误的时候,把堆栈信息给提取保存下来,同时,根据堆栈信息,回溯函数的调用关系很层次,最后定位到具体出错的位置,这个功能现在是个普通的功能,但是在17年前那还是非常先进的,这个东西再嵌入软件开发中有很大的作用,也是我们做的操作系统支撑平台中第一个有技术含金量的东西,后来我们在各个事业部推广我们的支撑平台的时候,很多产品线虽然拒绝使用我们的平台,但是都要求我们移植这个堆栈回溯模块到他们自己的平台上。

除了CDMA,我们也积极地向其他事业部推广,其中路由器也是我们重点,我们去南京找路由器的Z部长,Z部长说:你们先移植一个出来试一下,于是我们也开始了在T64路由器上的移植工作,为了移植到路由器上,我还采购了一台公司的T64路由器,通过几个月的努力,我们把路由器上所有的单板的软件全部切换到我们的平台上了,不过,最后路由器也没有采用我们的平台,两年后,Z部长竟然调回成都,后来还担任操作系统的老大,不能不说是个乌龙,要是他当初支持我们一下,操作系统的日子没准好过一些呢。

除了CDMA,路由器,我们还分别在本部,接入事业部,甚至康讯研究所等各个部门都做了移植,测试,但是过程几乎都是一样的,我们做完了移植测试,产品线最后都没有用,换操作系统平台相当于做心脏手术,没有几个产品愿意换操作系统平台的;

在2002年中的时候,公司要求我们分流人员,当时很多川籍毕业生都签约到成都,成都对很多川籍学子都有致命诱惑力,可是报到没多久,公司竟然要求我们分流,我们不得不含泪把很多才报到不到3个月的员工分流到公司其他研究所,为了给他们找到接收部门,不得不低三下四找各个部门求人,后来多数去了上海一所和CDMA,有个别的因此而离职了,到2002年底的时候,人员只剩下了7,8个,整个团队的业绩也糟到不能再糟的地步了,可以说是一无所获,我们都为今年怎么交差头大起来。

这个时候,L博从新技术研究部挖过来一个PLMM,张MM,担任管理经理,张MM的特长就是跟不同的部门和管理机构扯皮打烂账,在她的主持下,我们的项目在2002年竟然神奇得通过了公司的阶段验收,并成功地通过二期滚动立项。张MM后来一直就帮我们每年应付公司的交差;

为了寻找出路,老谢还让我调研了M2M技术,当时还没有物联网、IOT这些名词呢,调研中了解UPNP, DLNA 等技术,这个对后来有极大的帮助。

虽然做了这么多无用功,但是有个意外的收获就是,我们对Z公司几乎所有的产品都了如指掌了,因为每做一次移植验证,我们都熟悉了各个产品的技术架构,产品特点,设计原则,在移植过程中,我们也解决了一些产品线的具体问题,成研所的名气开始逐步传开了,因为我们在各个产品线之间串来串去,也把不同产品线的经验给传递起来。在过去这个是不可想象的,有一次,某事业部的人很开心地告诉我,经过他们艰苦努力,终于解决了一个困扰很久的BUG,因为当时所有的设备都是源自交换机,所以公司其他产品上一定有这个BUG,还叮嘱我千万要保密,不能让别人知道,后来我遇到另一个事业部的人的时候,就把这个事情告诉他,他很得意地说:这个BUG他们几年前就解决了,也是私下保密不传出去。Z各个事业部之间就像防贼一样互相防着,只有我们不属于任何事业部,大家都愿意跟我们交流,我们也得以获取了各个事业部的经验,团队的实力就这么在不知不觉中逐渐成长起来。

套用星球大战里面一句话:原力觉醒了!

举报本楼

军衔等级:

  副版主

注册:2009-4-28439
发表于 2019-4-12 14:37:30 |显示全部楼层
操作系统的故事-转投LINUX

到2002年末,2003年初的时候,我们已经事实上放弃了操作系统支撑层,但是既然是公司战略项目,样子还是要摆的,成都这么一个小边塞研究所有一个特殊的好处就是山高皇帝远,可以由得我们瞎折腾,我们打着支撑层的旗子,开始搞别的技术。2003年,一批新人加入到团队中,包括南京回来的LY,毕业生QJ,FQH等一批优秀的人才;

WCH基本把在线补丁的原理想明白了,我去上海,专门找朱DF确认了一下可行性,觉得确实是可行的,于是安排鑫总就开始做,鑫总代理他的手下,主力是一个QJMM,少有的优秀程序媛,后来这个QJMM拿到美国大学的offer,去留学了,在他们的努力下,终于实现在线补丁技术,在给上海一所和CDMA的同事演示的时候,取得了震惊的效果。

简单介绍什么叫在线补丁,传统嵌入式系统,当修正BUG之后,需要重新编译,然后下载到设备上,重启设备,补丁才能生效,这个是冷补丁,所以每次升级,修复BUG,都必须要在半夜进行,随着运营商管理规范,这种升级受到越来越多的限制。而热补丁就是把补丁直接加载到内存,在运行状态下替换某段执行代码,这样,就不需要关机重启,甚至可以偷偷地在后台打补丁。

在线补丁开始没得到重视,后来某产品去升级,被客户鄙视了一把,说人家H的设备升级都不重启的,他们才想起,我们有这个东西,后来就推广开。

而自动测试平台,则是我和WCH把我们过去的使用经验,包括这个平台的目的,使用过程,编程语言等等都总结出来,其实就是想复制一个出来,这个平台是通过扫描C/C++源文件,自动生成ASN.1的消息编码,通过TCL/TK脚本编写测试用例,自动分析消息的输出,来实现从单元测试到系统测试的全流程测试,主要用于面向消息驱动的协议软件,这也正是电信软件的特点,FQH承担了其中最重要扫描源文件生成ASN1消息格式的开发,这也是其中最关键,难度最大的一个模块,老F最后啃下了这个骨头;

我们做得差不多额时候,就准备把测试平台正式立项,这个时候,传出公司其他两个部门也要做自动测试平台,于是技术部LLF牵头,说三家一起协商,最后只能上一家,后来的事情让我始料不及,LLF私下告诉我,我们的平台评价最好,这个是因为我们都基本做完了,其他事业部还只是一些想法或者DAME,技术也先进,但是事业部产品线胳膊粗,最后还是决定要给事业部做,LLF建议我们一起参与合作,我们合作没多久,就退出来了,这个自动测试平台就这么被抢走了。

我总结出:在Z公司,产品部门要抢平台部门的活,那是一定能成功的,作为一个小边塞研究所,只能做产品部门不想做,或者不愿意做,或者做不了,以及他们还根本没想到的活。

2002年底,有人提议做LINUX,具体是谁最先提出的记不起来了,很快得到大家的赞同,因为也没别的可以做了,当时做LINUX,听起来,跟做山寨手机都差不多,有追求,有品位的人都愿意做vxworks这样的专业级别的高大尚的系统,linux在大家看起来基本就是发烧友们的玩具而已,而且当时LINNUX本身系统也很多问题。



举报本楼

军衔等级:

  副版主

注册:2009-4-28439
发表于 2019-4-12 14:38:14 |显示全部楼层
操作系统的故事-夹缝中生存

作为一个边塞研究所,想在各个事业部夹缝中生存是很艰难的,当时的西研比成研还好一点,西研有自己独立的产品直放站,成研没有自己的产品,必须要跟事业部合作,可是各个事业部根本就无意跟我们合作。

为了推广我们的平台,L博从各个事业部忽悠了一些资深员工加入成研,上海的大斌,南京的LXJ等,这些人不少都担任重要的岗位,从移动事业部过来的美女HYM,担任操作系统的团队负责人,我继续当总工,多数人都不常驻成都,于是成研在深圳,上海,南京都搞了分部,随着这些资深员工的加入,与事业部之间的沟通桥梁建立起来了。

一天,我听到门口有人在门口喊我的外号,我在想,谁这么大胆!操作系统这边内部气氛很融洽,我们彼此之间私下称呼外号的,我跑出去一看,原来是马总,被门禁挡住了,他又不认识其他的人,只记得我的外号,就在门口大呼小叫,立刻把他请进来,一问,大吃一惊,马总也被忽悠到成研所了,马总过来担任成研所总工。当时成研3个团队,安全,操作系统,网管,马总过去是做网管的,所以他对网管很有兴趣,可惜网管已经归老谢管了。

虽然,我们跟各个事业部都建立起了渠道,但是对操作系统支撑层的推广还是效果不佳,操作系统支撑层是整个通讯系统设备的核心,整个应用都构建在支撑层之上,同时,支撑层还负责系统性能优化,缺陷定位等重要任务,各个产品线根本就不愿意把这么重要的事情交给外部门的人做,我们跟各个产品线的合作,多数都是我们替他们打工,比如写驱动、启板子等苦力活,上海一所和CDMA事业部的支撑部跟我们建立了良好的关系,多次在各个场合替我们说话,就是因为我们任劳任怨替他们干活。

L博还是比较有能耐,在2003年还给我们忽悠了一个863项目,200多万的国家重点项目,和高校合作,有了这个项目,公司就不能轻易砍掉我们,最后863项目也顺利交差,整个团队就几乎是这么连滚带爬地往前走。

既然平台推广这么艰难,L博于是想在研发过程管理上做些文章,于是他提出过CMM,成研当时是第一个做CMM的,第一次就过了3级,后来是公司第一个达到5级的部门。这个CMM也是很奇怪,让我见识了Z的风格,当时我在H的时候也做CMM,当时做2级,H公司是整体做,整个公司先是一个团队过,然后整个公司强制推广,而Z是各个事业部自己过,于是Z好几个事业部同时做CMM,分别聘请不同的咨询机构,做的东西也各有特色。当时,大家对CMM的很多东西理解都不一致,导致虽然过了,但是过程管理仍然还是很混乱。

到2007年,我才终于理解,CMM其实不是软件管理能力,而是软件管理能力的优化能力,我们一开始就理解错了。

L博也邀请了一些咨询师给我们上课,我印象特别深刻的,有一次,经过两天封闭培训,老师留半个小时让我们提问,不知道谁问了一句:是不是按照这些培训的知识做项目,项目就一定会成功?老师想了一下,回答说:其实这两天我培训的东西都是哄人的,真正成功的秘诀,我现在才告诉大家:

一命二运三风水,四集阴德五读书;

大家全笑了,但是经过多年的经历,我后来才真正理解,培训老师的精华,其实就是这两句话。

举报本楼

军衔等级:

  副版主

注册:2009-4-28439
发表于 2019-4-12 14:38:51 |显示全部楼层
操作系统的故事-LINUX出师不利

当决定转向LINUX,我们首先想到的就是,在我们的支撑层下面,把VXWORKS换成LINUX ,支撑层有个模块VOS,就是用来封装底层OS的,所以,替换工作进展很顺利,而CDMA支撑部也很支持我们,为我们提供环境去测试和验证,但是测试效果让我们大跌眼镜,性能奇差,根本无法跟vxworks相比,这一下我们全懵了。

看起来,简单的招数是不灵的,于是我们开始考虑大改,于是开始分析和测试linux性能差的原因,首先,是内核态与用户态切换效率低,传统嵌入式OS根本就没有内核态与用户态,于是,我们考虑,干脆把支撑层移植到内核态里面,整个系统就运行在一个平坦的内存空间,通过这个方式,性能有了明显提升,但是还是无法与vxworks相比,内核态的功能也比用户态弱太多。

这个时候,手机事业部突然决定要做一款高端LINUX智能机,整个公司,唯一有LINUX经验的就是成研所,因此马总很快跟手机谈成了合作,成研与手机一起开发,手机承担成研的开发费用,这个是操作系统团队第一个真正的合作项目,当时安全团队也合并到操作系统,并且也全部投入到智能手机的开发中,在手机的故事里面会详细叙述。

当时成研的编制有限,为了解决人力资源问题,L博大胆创新搞起了外包,招了一批外包员工,成研也是公司最早搞外包的,说是外包,其实与正式员工无异,不管是技术能力还是工作要求都与正式员工无差别,一旦有编制的时候,就想办法把他们转成正式员工,后来很多人都成为核心骨干。外包的经费就只能我们通过各种方式省钱,比如出差不能坐飞机,还有就是找各个事业部产品线化缘,参与手机智能机开发之后,手机解决了操作系统大半的外包费用。

而系统设备,正是全面向vxworks切换,根本就没有产品线愿意接受linux操作系统,我们虽然转向了LINUX,但是当时linux的风头还没起来,除了手机,其他的事业部的推广仍然止步不前,而手机和系统设备属于不同的体系,手机基本属于半独立状态,如果不能在系统设备侧取得进展,我们的生存危机就仍然存在。

举报本楼

军衔等级:

  副版主

注册:2009-4-28439
发表于 2019-4-12 14:39:40 |显示全部楼层
操作系统的故事-KLINUX

这部分有点硬;

要想让linux达到与vxworks相当的水平,必须对linux 做大手术,linux本质不是应用于强实时的嵌入系统的,我们打算留一个linux的壳子,把里面换个遍。

首先是调度器,当时的Linux版本是2.4.18,是不支持实时抢占的,而且其调度的复杂度是O(N),我们参考其他嵌入操作系统内核,修改成基于bitmap的实时抢占内核,复杂度也变成了O(1),性能有了明显的改善;

其次是内存,原先支撑层的内存管理,性能比linux原生的好,而且功能也很强大,也一并移植到内核里面;

然后把我们开发的动态补丁,堆栈回溯等功能都移植进去,对比vxworks,把不足的功能全部在linux内核态里面补齐,就这样,除了文件系统,linux内核被我们改了个遍,通过这种优化,性能基本达到vxworks的80%-90%,经过仔细分析,我们发现,这些差距主要是vxworks编译器的差距,而不是内核本身的差距了。这样,经过大规模优化的linux基本上就达到了可以与vxworks一拼的程度,因为这10%-20%的性能差距,在应用层,几乎可以忽略不计的。

移植中,也解决了大量的疑难问题,使得我们对操作系统的理解更加深刻,举个例子,我们当时为了解决数据访问冲突,移植并使用了信号量机制做互斥,但是发现内存管理的性能很差,因为每次型号量操作其实都会引发调度器,我建议关中断来进行互斥,但是关中断这种操作其实很危险,于是我仔细分析信号量的代码,发现里面其实也用到了关中断,这样我们就放心了,在核心代码里面都是用关中断做互斥。

在优化过程中,我们需要不断地与vxworks对比测试,时间久了,我们也掌握了操作系统性能的一整套评估分析的理论与方法。

一个操作系统,除了内核以外,配套的工具也是必不可少的,其中最重要的就是调试器,linux本身是有自己的调试器的,可是内核已经被我们改得乱七八糟了,原来的GDB已经无法使用了,所以必须还得搞一个调试器出来。

在刚开始做linux内核修改的时候,我预计我们需要一个调试器,巧的是,我们的一个实习生LF的老师,正好也是做这个的,LF这个实习生的能力特别强,于是我提前安排LF研究调试器,在内核开发差不多的时候,调试器也基本上有了眉目,参照vxworks的模式,我们开发了一个调试器出来,虽然功能比较有限,而且还是字符界面的,但是已经支持attach到被调试的任务,设置断点,单步,显示调试信息等功能,可以满足基本的开发需求。

LF毕业后留在了我们团队,后来也去了美国。

这样,一个强实时的嵌入操作系统就被我们这么东拼西凑地搞出来了,我们给他取了一个名字,叫Klinux,意思是内核态linux。

举报本楼

军衔等级:

  副版主

注册:2009-4-28439
发表于 2019-4-12 14:40:40 |显示全部楼层
操作系统故事-曙光初现

2004年,L博被轮岗到新技术研究部当部长,老谢担任新的成研所所长,这个时候,L博希望把他网罗过来的各个事业部的资深员工们都带到研究部去,可是有两个人不愿意回去,一个是马总,一个是张MM,马总其实也参加了所长竞聘,不过输给了老谢,他不想去研究部,可是又不好意思去找老谢说。

这个时候,我也遇到很大的困难,KLINUX虽然开发出来,但是内部也根本无人感兴趣,我在公司里面也没人脉和根基,这个时候,我想起马总人脉比较多,于是先去找马总,问他的意思,他很愿意做操作系统的负责人,我再去找老谢,说马总愿意留下,做操作系统团队负责人,我估计老谢其实也想留他,只是不好意思开口,等马总自己来说呢,我一说,立刻就同意了。就这样,马总卸去总工,担任操作系统团队的负责人。

张MM的情形,也差不多,她先找我,然后我再找老谢,老谢一并都同意了,张MM留在成研所继续当管理经理,这个大出L博的意外,没想到他最倚重的两个人都留在了成研所。

这个时候一个转机出现了,随着公司全面切换到vxworks,风河公司要向我们公司收费了,按照每个发货单板的CPU个数收费,公司一年发货单板上百万个,这个就是一个巨大的开支了,公司跟风河陷入艰苦的谈判中。为了获得谈判中的有利地位,公司突然让我们大力宣传自研的嵌入操作系统平台,写一些文章到主流报纸上发表,造成一个我们已经准备大规模商用自研操作系统的假象,不知道这个策略后来是不是奏效,不过后来确实谈判出一个公司可以接受的价格。其实当时风河也同时向H公司发难,H公司很快就跟风河的达成了协议。

虽然在媒体上吹已经商用,但是实际上那个时候根本就没有真正商用,当时各个产品刚切换到vxworks,怎么可能马上换操作系统,而且我们的自研OS当时与vxworks相比还有不小差距,最重要的是,哪个产品线都不愿意当小白鼠,都希望在别的产品线有成功的案例之后,再考虑自研OS。

虽然公司与风河达成了收费协议,但是当时通讯系统的毛利很高,公司大部分产品线基本都认为可以消化这部分成本,但是有一个产品线却是例外,就是接入网的ADSL,这个产品线因为跟H打价格战,利润已经非常低了,而且发货量又特别大,vxworks的收费对ADLS就影响很大了,接入网那边本来就是马总的老东家,王部长,孙部长和朱总跟马总关系都很好,加上马总一忽悠,他们决定在ADSL上率先使用自研KLinux。

这个机会对我们太重要了,我们很快就开始在ADSL移植自研的KLINUX,自研操作系统的曙光,终于第一次出现了。

这个时候,技术中心的主管领导H去手机了当老大,新的领导是D总,就是前面说的最早的支持层的代码编写者,感觉D总对成研所还算是比较认可的,但是没过多久,技术中心撤销了,成立了中研院,成研所被划分到中研院,和3G平台在一起了,当时中研下面还有好几个3层研发中心,成研所是唯一的4层部门。

当时每年都要操作系统平台讨论会,在会上都要讨论决定是不是还要继续再做下去,公司主流意见都是不看好成研的操作系统平台,2004年讨论会的时候,大部分领导都觉得没必要做下去了,这个时候,接入网的孙部长和朱总跳出来,坚定地顶了我们一把,说成研所操作系统做得很好,对他们支持也很到位,于是这个项目又继续存活下来了,可以说,孙部长和朱总在关键的时候挽救了革命。

在马总担任团队负责人之后,我们又开辟了新的领域,就是固网终端,当时固网终端是新成立的一个产品线,刚成立的时候,基本就是一个空架子,研发人员缺乏,新的产品经理YU总跟马总也很熟悉,自然而然就搭上合作,固网终端一开始产品线就拉得很长,一哄而上上了很多项目,从可视电话,家庭网关,蓝牙遥控器等等都有,我们一开始主要的工作就是起板子,做驱动,各种芯片的BSP开发。当时做过的芯片包括ARM, MIPS, PPC, 等各种系列的,甚至还启过一个DSP芯片,极大的锻炼了团队的战斗力,半数以上的员工都具备了做BSP的能力。

之后,我们为可视电话开发了一个轻量级的图形框架,基于microwin的框架,主要是翌总牵头做的,同时,Y总牵头,基于开源conquer(webkit引擎的前身)浏览器引擎,为机顶盒开发了一个浏览器UI框架,取代了原先使用的茁壮的系统,固网终端和成研所形成了紧密的合作关系

团队逐步发展到60人左右,半数以上的人都去做手机了,固网终端又消耗了20人左右,一下子人员就很紧张了,于是马总觉得可以砍掉KLINUX,人员抽出来支持手机和固网终端,不过被我坚决顶住了,给KLINUX的项目经理强总保留了3,4个人,继续坚持做下去。现在回头看,幸亏当时坚持下来了。

这个时候,我们抽了几个人开始研究服务器集群,不过一开始就跑偏了,当时的初衷是想替换通讯设备上的主备倒换系统,传统的交换机主控板是1:1主备的,在接触到ATCA架构之后,我们觉得未来可以做N:M的HA集群系统,于是研究了GOAHEAD公司的集群管理系统,以及检查点回滚等技术,这条路后来证明是跑偏的路线,就放弃了。

2006年,就发生了拆分,团队一分为二,一半人划到手机成立手机成研所,一半人留在中研,南京回来的Z总担任操作系统团队负责人,在Z总的领导下,成研的操作系统最终发扬光大。


举报本楼

军衔等级:

  四级军士长

注册:2017-3-29107
发表于 2019-4-12 15:12:10 |显示全部楼层
v2l不是用国外某个开源软件改的吗

举报本楼

军衔等级:

  下士

注册:2019-3-1829
发表于 2019-4-12 16:38:24 |显示全部楼层
我去,这个哥们的的经历也太丰富了?
先mark,慢慢看

举报本楼

军衔等级:

  大校

注册:2013-12-3159
发表于 2019-4-13 17:05:49 |显示全部楼层
拭目以待~

举报本楼

军衔等级:

  新兵

注册:2019-2-18
发表于 2019-4-14 10:24:59 |显示全部楼层
先mark  慢慢看

举报本楼

军衔等级:

  下士

注册:2019-3-1829
发表于 2019-4-14 12:01:31 |显示全部楼层
这个哥们够坦诚,哈哈。。。
把H公司的功能,在Z又逆向出来;
真是什么都敢写。。。

真实得不敢相信

举报本楼

头像被屏蔽

禁止发言

注册:2014-5-30
发表于 2019-4-14 12:19:50 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

举报本楼

军衔等级:

  下士

注册:2019-3-1829
发表于 2019-4-14 22:03:46 |显示全部楼层
xuqinghai 发表于 2019-4-14 12:19
这种文章没有啥好写的,行外的看不懂,行内的觉得水平也就那样。
行外得看的是文学,比如金庸的小说,大家 ...

作者似乎不是一般的技术人员。。。

举报本楼

军衔等级:

  下士

注册:2019-3-1829
发表于 2019-4-16 16:38:09 |显示全部楼层
一命二运三风水,四集阴德五读书;

996,奋斗,都是浮云

举报本楼

军衔等级:

  列兵

注册:2015-12-3
发表于 2019-4-18 17:27:29 |显示全部楼层
兄弟,咋不更新了,都等了好几天了?

点评

chaos123  后面应该是没有了。。。  详情 回复 发表于 2019-4-25 11:31

举报本楼

您需要登录后才可以回帖 登录 | 注册 |

Archiver|手机版|C114 ( 沪ICP备12002291号-1 )|联系我们 |网站地图  

GMT+8, 2024-3-28 21:22 , Processed in 0.279894 second(s), 16 queries , Gzip On.

Copyright © 1999-2023 C114 All Rights Reserved

Discuz Licensed

回顶部