对操作系统开发相关的一些问题的思考

发表于:2011-10-11 09:42

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:hellochina15    来源:51Testing软件测试网采编

分享:

  什么样的公司适合开发自己的操作系统

  我认为,直接面向终端用户的IT公司,都可以通过开发自己的操作系统来增强其竞争力。比如提供互联网服务的ISP,提供通信服务的运营商(Operator),销售终端产品的终端供应商,甚至一些非IT公司,比如汽车制造商,也可以通过开发自己的操作系统来增强核心竞争力。一个原则就是,只要直接面向终端用户,为终端用户提供服务或产品,都有潜在的操作系统开发需求。主要是因为,操作系统是业务终端的最核心软件(也是最核心部件),只要控制了操作系统,就控制了业务终端,进而达到保持用户、增强用户忠诚度的目的。同时,以一个自有产权的操作系统为基础,可以派生出非常多的终端类型,来满足各种各样的业务需求。这样在竞争中,企业就有了主动性,通过不断的业务创新,使得企业永远位于产业链的前端,做行业的领导者而不是跟随者。

  以苹果公司为例,正是由于其拥有完全自主知识产权的iOS操作系统,才使得其在产品推陈出新、更新换代的过程中始终保持在同行的前列,通过重复使用这个操作系统,开发出各种各样的新颖产品。假设其没有自主知识产权的操作系统,而利用第三方的操作系统,那就受限于操作系统本身更新换代的影响,很难及时推出有差异化的产品。

  总之,在用户直接接触的终端领域,操作系统是最高的战略高地。只要占领了这个高地,就意味着建立了在整个领域内的王者地位。但是,操作系统的开发也不能盲目进行,必须找到一个符合自身整体战略规划的应用领域,针对这个领域进行开发。比如Alibaba公司,就针对云计算自主定制了自己的操作系统。我认为这是一个非常明智的举措。

  最后再着重说明一下,开发自己的操作系统,并不意味着一定要自主开发,也可以选择在已有开源操作系统基础上进行定制。比如,现在很多互联网服务提供商,就是在Android基础上开发定制自己的操作系统的。这种操作方式,不能算是完全的自主开发,可称为自主定制。相对自主开发,自主定制方便快捷,投入少,而且短期内的目标都可达到,不失为一种便捷的措施。但是从长远来看,这种方式的竞争力远远不如自主开发操作系统的竞争力强。因为自主定制的操作系统,在大部分功能上,很难赶上或超过其基础操作系统的开发进度和更新速度。即使定制厂商不跟随基础操作系统的主版本计划,自己完全建立一套从内核到应用的开发流水线,也会因为跟不上硬件平台的变动,而最终落伍。除非厂商有足够的实力,既能够跟上硬件平台的更新换代,又能够完全掌握基础操作系统代码。而这种情况下,大部分厂商一开始就会选择自主开发,而不是自主定制。因为前者的竞争优势远远大于后者。

  操作系统开发难度是否真的很大?

  纯粹从技术上说,相对二十世纪,当前操作系统开发的难度已大大降低,甚至低于很多应用软件开发的难度。主要有以下一些原因。

  首先,目前存在很多开远的操作系统,可供开发过程中的参考。虽然开发的目标操作系统的架构和核心功能与现有操作系统不一致,但是一些关键的机制,比如线程同步、内存管理算法等,很大程度上都是相通的,可以参考借鉴已有操作系统的实现思路。

  其次,不存在人才壁垒。计算机行业中有非常多的系统软件开发人才,这些人才的水平和经验,足以支撑操作系统的有效开发。

  再次,当前已有非常多的功能模块代码,可直接在操作系统开发过程中引用。比如图形库,当前有很多的开源图形库可供直接应用。如果说以前开发操作系统是从零开始的话,现在开发操作系统,就是站在巨人的肩膀上进行开发。除非是你希望体验一下从无到有的整个过程,否则没有必要所有模块都完全重写。

  最后,也是最重要的,操作系统过程中需要的技术和知识并不是非常复杂。比如操作系统核心模块的开发,几乎不会用到复杂的数学推导和运算,只要有最基本的数据结构知识和硬件知识就可以胜任。而在一些应用软件开发过程中,比如GIS,图形处理软件,需要有非常深入的数学知识,比如复杂的矩阵运算、高阶偏微分方程等,这对程序员的要求非常高。对比起来,操作系统开发难度,比复杂应用软件开发难度低得多。

  总之,操作系统开发没有想象得那么难。人们之所以一听到操作系统开发,就认为非常难,甚至望而却步,我认为很大程度上是心理作用。因为我们从未成功开发出一个操作系统,不知道操作系统的开发难度如何,于是会产生一种对无知的畏惧。

  打造出一个广泛使用的流行操作系统的难度,在于建立一个完善的操作系统生态环境。这包括操作系统本身,与操作系统配套使用的开发工具,与之配套使用的浏览器、多媒体播放器等软件,为其定制的各种硬件驱动程序,以及支持它的众多硬件平台。这不是一个开发团队或一个公司能够独立做到的,必须借助于整个行业的力量,包括硬件设备提供商、应用软件开发商、系统软件开发商等的通力合作才能完成。而且整个生态环境的成熟,需要很长时间,有时会超过十几年时间的培育。再强调一下,这里说的生态链,是针对一个通用操作系统来说的,比如Linux,Android等。

  当然,这并不是说操作系统开发就没有任何机会了,相反,开发的机会还会越来越多。之所以这样说,就是基于先前论述的应用场景细分趋势。在操作系统应用场景细分的情况下,操作系统的生态链范围会大大缩小。一个优秀的公司,以自己之力甚至就可以打造一个完整的生态环境。

32/3<123>
2023测试行业从业人员调查问卷已开启,千元大奖正在等你~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号