对国产操作系统发展的一些思考

  跟行业内的朋友交流,对国产操作系统的开发和推广,有一些个人的观点,分享出来,欢迎朋友们批评和讨论。

  以下是我个人的一些思考,基于个人对行业的粗浅理解,以及个人在推动物联网操作系统时遇到的问题的总结。观点不一定准确,有的甚至有些偏激,目的在于交流碰撞,“抛砖引玉”,以形成更好的思路,把我国的基础软件事业做得更好。

物联网

  物联网是一个绝好的机会点

  个人PC电脑,智能手机,已经形成稳固的垄断局面,并形成了相对完善的产业链和生态系统,按照Gartner的Hype Cycle技术曲线,个人电脑和智能手机已进入稳定成熟的产品化应用阶段,切入的成本会非常高,而且成功的概率非常低,因此不建议发展该领域的操作系统,而是采取研究和微创新的原则,把现有的成熟操作系统(Windows,Linux,Android等)理解透,具备内核级的定制能力。同时结合具体应用,在某一个核心点上进行加强,比如安全和可靠性等。

  而物联网则属新兴行业,其特征尚不明朗,存在巨大的机会。纵观系统软件的发展历史,可以看出任何一款成功的操作系统,必然是在一个硬件(或应用)转折点上发展起来。最初的大型计算机,促成了UNIX的发展壮大,而以文件服务器为核心的局域网时代,则促成了NetWare的发展和壮大。再后来到了个人计算机时代,强调简便易用和图形处理,于是Windows发展起来了。接下来就是移动互联网及处理器技术大发展,智能手机具备了基础的应用环境,于是iOS和Android发展壮大了。所有这些机会,中国都没有抓住。这与当时的经济水平和国内整体软件水平也有关系。

  现在到了物联网这个转折点上,历史又给中国的系统软件事业创造了一个千载难逢的机会。首先,物联网所具备的特征(硬件碎片化,本地交互协同,智能硬件具备自学习能力等),传统操作系统无法满足。就连Linux的创始人Linus也承认,Linux无法适应物联网这种碎片化的应用环境,需要寻找另外的替代方案。其次,我国的经济已经发展到足以支撑在基础软件领域大有作为的水平,整体行业的认知,国内的消费和应用,都为操作系统提供了坚实的应用环境。最后,经过十几年的学习,实践和积累,中国已经具备了很高水平的基础软开发和理解能力,尤其是操作系统,在技术上已没有太多的门槛。如果能够有效地整合起包括民间和国家层面的开源力量,必然能够开发出非常优秀的操作系统。

  在这样一个“天时,地利,人和”具备的机会点上,如果我们能够抓住,那么很可能会做出“两弹一星”,“中国航天”,“电信高铁”等一样的水平,为中国民族的复兴做出可以铭记的贡献。

  坚持自主创新,自主开发,代码开源

  操作系统本身就是一堆程序,本身的价值不大。但是它却凝聚了对行业的理解和沉淀。因此,要开发自主操作系统,必须对操作系统应用的行业,要有一个深切深入的理解,或者对行业未来的准确判断。把对行业的理解和判断,以代码的形式表现出来,沉淀到操作系统当中。这样逐步积累,修订,完善,改进,最终就会达到质变的临界点。

  而要做到这一步,唯一的手段就是创新。通过与行业进行广泛深入的交流,综合,提炼,抽象,形成共性的观点,架构,算法。然后把这些东西固化为代码,就形成了具备灵魂的操作系统。这就是创新。只有在这些创新成果的支撑下,操作系统之间才能形成差异化和竞争力,才会逐渐的凝聚上下游的合作伙伴,最终形成一个生态链。

  而这部分基于创新的开发工作,是无现有成果可以借鉴的,而且这部分开发工作,也是占操作系统开发比重最大的部分。

  对于成熟模块的开发,比如内核,关键的硬件驱动程序,文件系统,GUI等,个人的观点是尽量不要借用开源实现,而是自行从头开发。主要有下列考虑因素:

  1. 虽然这些模块的功能相似性非常大,但是在迎合一些关键需求的时候,还是会表现出巨大差异。如果借用开源实现,很可能会出现与应用无法调和的矛盾;