一家之言,开个脑洞。
操作系统在市场上的关键点,并不在于进程管理、文件系统这些看起来很核心的东西,这些东西真地可以抄(借鉴一下没关系的)。操作系统要普及成功,关键在于上面开发技术的方便性,也就是开发工具的易用性以及API的丰富性。开发工具就是操作系统的用户界面,决定了用户体验;下层核心是为上层API服务的,也可以说是被API决定的,而不是倒过来。
从这个意义上讲,Windows的成功,是因为Visual Basic(以及后来的Delphi,PowerBuilder,…),这些开发工具使得更多人可以低成本地开发自己的软件。能跑的应用越多,操作系统就会更稳固,而操作系统越稳固,开发工具厂商完善产品的兴趣就会越大,这样就进入了正反馈,逐步构建出完善的生态环境。
类似地,Linux的成功则要感谢Java,当然Java的成功也离不开Linux。
要做操作系统,第一步就要想好能提供什么样的开发技术!能解决现在开发应用过程中的哪些痛点?头一个开发工具一般需要操作系统厂商自己提供的,这个开发工具比其它开发工具有什么优势?新操作系统哪些特性才能发挥开发技术的优势(也就是要让API去决定内核)?这样我们才知道为什么要做这个操作系统。
如果把关注点先放到内核技术上,那就难搞了,这就是许多国产操作系统厂商的主要问题,基本上是为了做个操作系统而做的。
那么,现在还有机会吗?
有的。
举个例子,现在国内企业应用的前端操作系统大都也是在用Windows,但这合适吗?
企业应用和个人桌面应用不同,后者的装机量常常很大,而定制程度较低(售价低甚至为0,也不可能个性化定制),这时候对于应对需求变化而导致的开发成本相对不那么在意(可以被巨大的装机量摊薄,而且也不需要非常及时的修改);但企业应用则不同,装机量没那么大,而定制程度相当高,需求变化频繁,这需要有高效的应对变化的开发技术。而当前的开发技术并没有那么好用的,在浏览器上做业务系统的界面并不是那么方便 ,HTML本来不是为了做业务系统设计的,指挥个打印机都费死劲了,为什么我们就不能搞个BML(Business Markup Language)?这需要新的浏览器、以及操作系统更多的底层支持。
另一方面,企业应用有时也不需要那么多功能,比如银行和税局的柜员没有必要玩游戏看电影吧,这些东西不仅影响工作,还可能带来病毒。如果我们做一种较”弱“的操作系统,能运行企业应用却不能运行游戏和病毒,那对企业也是有吸引力的,在技术上实现这些限制相比于通常采用的严格管理,成本会低得多。
这样做下去,可能会和现有的应用开发技术不兼容,导致现有应用程序要重写,很多人又会想到缺乏生态的问题。
其实不用怕这种事,重写的应用多了去了。从单机到网络版时,应用重写过;从C/S到B/S的切换,应用又重写了。这个业界并不在乎应用重写的成本,只要你的新体系有足够多的好处就行。反而那些试图把旧体系应用移植到新体系的尝试都无一例外的失败了。生态本来也不是一天就能建成的,这样一步步积累出来的用户群才是更踏实的。
说白了,和数据库一样,操作系统想要做出头,仍然还是创新再超越,也不需要全面的超越,在某个领域有过人之处,就可以存活并发展下去。而且,上面这些讨论和国产不国产并没有什么关系,通用软件本来就没有什么地域性,能在中国做成功的,也就能在全世界成功,所谓的“国产”基础软件其实是个没什么意义的词。
最后提一下OFFICE,大家都觉得微软已经做得很好了,是吧!
是吗?
请尝试一下用Excel在一批股票收盘价中找出连续三天涨停的股票出来,看看有多难。可不要说用户没这个需求哟,业务用户也不会写代码编程序,VBA和Python以及我们的集算器都要靠边站的。
点到为止。