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

  在从事操作系统开发过程中,对操作系统相关的一些问题尤其敏感。下面这些内容,都是就一些典型的问题或观点,与朋友或同事有过讨论之后,形成的一些个人结论或想法。只是一家直言,不免有片面之处,欢迎朋友们批评讨论。

  对未来操作系统的发展趋势的思考

  我认为,操作系统正朝着按应用场景细分的方向发展,即针对每种应用场景,或某个特定的用户群,会有一个或多个与之适应的操作系统。比如,以前的操作系统,大致可分为桌面操作系统、服务器操作系统和嵌入式操作系统等三个大类。Windows、Linux是桌面操作系统的典型代表,UNIX操作系统在服务器(或大型机)领域一家独大,嵌入式领域,则存在pSOS、VxWorks、ucOS等操作系统。而到了当前的移动互联网时代,智能移动终端这个应用场景出现后,又催生了广泛应用于智能终端上的Android操作系统、Apple iOS操作系统等。随着云计算的兴起,云操作系统又有流行的趋势。可以看出,操作系统的类别(或种类)并不是一成不变的,而是随着应用的不断变化和演进,会有全新的操作系统被开发出来,以适应这些应用。总体呈现出一种按照应用场景进行细分的趋势。

  随着移动互联网的不断发展成熟,会逐渐催生出更多的应用场景,比如家庭网络、物联网等。由于体系结构的限制,传统的操作系统很可能不能适应这些新兴场景的需求,因此又会催生出一批更新的操作系统。

  本质上,这是由于人类的个性化需求不断增加决定的,与汽车等传统消费品的发展轨迹类似。最开始的时候,汽车型号单一,产量供不应求,人们的需求不存在个性化,只要有一辆汽车就行。这时候汽车制造企业的运营模式,是典型的存货型运营模式,即按照有限的几种型号,生产大量的汽车并库存,然后投放市场。随着汽车市场的饱和,人们的需求已不局限于有一辆汽车,而是要有一辆个性化的汽车,这样就催生了各种各样的汽车品类,比如SUV、商务车、跑车等。为满足个性化需求,一种汽车型号(或平台)已经不能满足需要,汽车制造商不得不推出不同的基础汽车平台,这些不同平台之间已经不能相互兼容。计算机发展轨迹与此类似。以前,人们只要有一台计算机就可以了,没有太多个性化需求(当然,个性化的硬件配置和个性化的软件,不能算本质的个性化需求,因为这些个性化特征,都是由统一的计算机平台满足的)。这个时候,计算机生产厂家只要生产一种计算机-IBM PC兼容机,即可满足客户需求。相应的,只要有一种操作系统,理论上就可满足所有人的需求。随着计算机的普及和网络技术的发展,一台计算机已经不能满足个人需求,人们不但希望能够在家里或办公室里使用计算机,更希望能够在任何时候都能够使用计算机。这样就催生了PDA、平板电脑、智能手机等设备的诞生。原来的操作系统已经不能适应这些新兴设备,于是新的操作系统应运而生。

  因此,操作系统随应用细分,以适应人们的个性化需求,必然是一种趋势。个性化的极限情况是,每个人都有一台独特的、适应自己的计算机,对应一个独特的、专门满足这个个体的操作系统。即在极限情况下,操作系统的数量,应该与人的数量相同。这符合经济学原理,因为只有完全满足每个人的独特个性化需求,才能挖掘出全部的消费者剩余,从而使得计算机厂商的受益最大。

  当前虽然已经有很多成熟的操作系统,但离真正的计算机个性化需求满足,还有非常大的距离。操作系统的数量,必然会以越来越快的速度增加。

  在当前各类操作系统已相对成熟的环境下,开发操作系统是否有必要?

  我认为非常有必要。根据上面的分析,操作系统会越来越呈现出应用场景细分的趋势,一个或几个通用的操作系统,已经不能覆盖所有的场景需求。这种情况下,新的操作系统需求就呈现出来。这时候如果能够提前发现这种新的应用场景,并及时开发出对应的操作系统,不论经济效益还是企业商机,都是非常大的。比如Android,其开发人员就是看到了移动互联网时代智能手机会得到广泛应用,而传统的操作系统又无法适应这种应用,于是才决定投入开发的。当然,这其中可能有其它因素,但是选定应用场景,并持续投入开发,是其成功的主要因素之一。

  但是不能盲目开发,一定要选择一个应用场景,针对场景的需求,做定制性质的开发。这里的难点是如何识别出应用场景,而不是操作系统开发本身。这就需要靠开发组织的业务嗅觉能力了。我个人认为,云计算终端可能是一个未来应用空间巨大的新场景。云终端的应用有其自身独特的地方,比如需要有很强的网络能力,能够支持各种网络接入技术,同时需要有较强的图形处理能力。而且其软件部分尺寸不易过大,在必要时能够很快进行重新安装,而不影响客户应用。还要有很强的被管理能力,能够按照维护指令,做一些升级、打补丁等动作,甚至重新安装。而且还需要考虑用户认证、通信加密等功能。显然,已有的操作系统不能完全满足这种需要,开发一种最新操作系统的需求必然会出现。