2. 尤其是内核,当前行业已经形成了一种印象,只要是借用成熟内核(比如Linux),就不是自主开发的,哪怕自主开发的代码大大超过了内核本身。相反,如果自主开发一个内核,在此基础上,移植业界已有的外围模块的实现,哪怕内核代码占比微不足道,也会被认为是自主开发。因此,自主开发内核,尽量借用已有外围实现,是一种可行的策略;
3. 基础模块的开发成本和难度都不会太大。一个功能完善的内核,其代码量不会超过100万行。这样的工作量,对大多数有志于操作系统开发的单位或公司,都是可以接受的。
当前开源文化已深入人心,通过开源,可以充分调动大量的开源力量投入进来,一起完善和优化操作系统。虽然真正能够贡献核心代码的支援力量非常少(按照我个人的统计,大约200:1),但是大量的使用者和测试者,可以帮助快速发现问题,帮助产品快速完善成熟。
内部可以保留一份非开源版本,在安全上进行深入优化,迎合一些对安全需求苛刻的应用场合。
产业链的构筑非常关键,但是也没有想象的那么难
广泛的产业链支持是操作系统成功的关键,包括应用程序层面的产业链,以及硬件支持方面的产业链。对于个人计算机操作系统,以及智能手机操作系统,应用产业链是核心,其重要性远远大于硬件产业链。但是对物联网这种应用场景,主要瞄准的是机器与机器之间的交互,机器与人之间的交互需求大大降低,因此应用层面的产业链反而不是非常关键,但是硬件产业链却非常重要。
要得到产业链的支持,尤其是硬件厂商的支持,根据我个人的经验,开发的工作量不是很大。譬如一个网卡厂商,为一个新的OS适配一个驱动程序,一个熟练的工程师,一个星期基本可以搞定。这点成本是微乎其微的。
但最大的门槛,还是“认同”。如果自主研发的操作系统具备核心价值,这种核心价值能够得到认同,那么自然就会有越来越多的厂商靠拢过来,逐渐就会形成一个产业链。因此,归根结底,操作系统成功的要素,仍然是“选中应用场景,做出核心价值”。