开发一个 Windows 级别的操作系统难度有多大?

在搜索进程相关问题的时候,无意间看到了知乎上面的这个问题,这也是困惑我的问题,只是自己比较懒,没有刨根问底,这次无意间看到了,并且认真看了大神的回答,很受启发,作为记录,贴于此,与各位分享: 来源:知乎  http://www.zhihu.com/question/24960401

 

问题:

新闻说中科院要研发中国自己的桌面操作系统,由国家投资,1年内做出一个桌面操作系统,3年做出移动操作系统,做出中国人自己的系统来保证信息安全什么的。作为文科生,真的是完全的外行。想知道在不考虑市场占有率,商业运作,产业生态等因素的情况下,举国之力到底能不能开发出跟三大主流系统一样的操作系统?难度有多大?需要多少时间?

回答:

作为一个曾经在国内某大型操作系统研发企业(获得国家核高基支持)工作过的人士表示:国内开发的绝大多数国产操作系统基本都是基于开源操作系统之上,进行二次开发的结果。一般而言,二次开发的代码量(实际属于操作系统范畴的代码)不会超过操作系统总代码量的1/10。且往往远远小于这个数值——不超过1/100。


这里的开发单位包括所有国内企业和绝大多数的科研单位及院校。
而开源操作系统(未必是免费软件),无一例外,都不是国产软件(尽管该软件的开发者中可能包含个别中国藉的开发者)。

在其它评论中 @时国怀 先生及某位 匿名用户 分别从操作系统生态及操作系统本身的技术难度两个方面来探讨国产操作系统开发的困难。无论两位的证明是否充分,个人认为,这两个角度都是合理的。更准确的说,在正常情况下,从零开始制造一个操作系统,在当下中国是不切实际的。当然,在题主所谓的『不考虑市场占有率商业运作产业生态等因素的情况下,举国之力到底能不能开发出跟三大主流系统一样的操作系统』这种极端情况下,基本是没有难度的,但会耗时巨大

下文主要是针对正常情况来讨论。这里主要是清理一些误区。

首先,完全国产操作系统是没有意义的。软件是可以被无限制复制和再利用的资源。在不考虑知识产权的情况下,所有人都可以任意复制一个程序并使用。这一过程和重新建造一个摩天大厦不同,因为我们不需要重新准备数百上千吨钢筋水泥。成本极低。在这个意义上,重新开发一个和别人功能一样的软件,毫无意义。特别是这个软件是开源的免费的,而且往往也比某个封闭机构(企业或科研院所)开发出的更有效率。简单来讲,重新开发一个免费软件和造一架超音速飞机完全是两码事。前者的所有核心技术都可以免费获取,而后者的核心技术被掌握在外国军工企业手中。研发后者可以让我们掌握核心技术,而研发前者我们能获得什么?所以,在软件的语境下,讨论『国产』,和别的制造业中的『国产』,具有不同的意义。

其次,基于免费软件的二次开发有时也可以是一种自主创新,而且也完全可以陪养出一个生态系统。安卓系统就是利用Linux内核进行二次开发的(iOS好像原本也是基于UNIX的)。但我们一般认为安卓系统是由谷歌公司所开发。且已成功被运用到大量移动设备上。它的App Store则是一个庞大的移动生态圈。所以,我们完全可以想象,如果没有安卓,百度凭借它的技术实力,在Linux内核上开发了一个移动操作系统,且像阿里巴巴那样培养出了一个产业链。——这在技术上商业上都是可能的。只不过我们没有国外公司那样的前瞻性,所以每次都错过了这种机会。

第三,还有一种情况,就是操作系统的学术研究。目前,革命性的操作系统研究发生在中国的可能性不大。也就是说,因为技术革命,导致所有操作系统过时,需要推翻包括Linux内核在内的所有操作系统内核,重写一个新一代操作系统的可能性,不太会发生在中国。所以,国产操作系统基本没有任何理由需要重写一个内核。直接使用Linux内核并在其上进行二次开发才是合理(合乎软件工程)的选择。对于操作系统的局部的研究成果(例如某个操作系统模块的改进),就更不需要重写整个内核了。通常研究者也没有这种精力。所以局部的改进只需要开发某个内核模块,且很快会被开源社区采纳,加入到最新版本的Linux内核中。这类改进亦有不少出自中国藉的开发者之手。总之,短期内Linux内核被淘汰掉的可能性不大。即便发生,也不太会由中国某个单位来主导。

最后,作为一个曾经的业内人士,我想说大家都错误的理解了国产操作系统的意义。国产操作系统除了有部分『骗钱』的嫌疑(有时并非真骗,而是因为缺乏市场化,往往不能用最有效率的方式来进行,这在国内是常态)外,主要是为了使现代操作系统的技术能够被完全掌握,而不是真的为了开发出一个能和某某国外系统抗衡的操作系统。例如有能力针对一些国防需要进行深度定制;发现并消除一些可能的安全隐患;政绩工程或项目需要(必须使用国产设备)。此类需求多而杂乱。当然,不排除某些项目就是在骗钱。像问题中的『安全』就有可能只是个由头,也有可能是某些国家部委的需求(记得墙吗?)。所以,在当下中国,民用操作系统的开发是缺乏商业动力的

所以,总结一下:
  1. 从零开始重新开发一个操作系统是没有意义的,请不要用这一标准来定义『国产操作系统』
  2. 我们在技术上商业上具有开发一个(至少在中国)有影响力的操作系统的能力
  3. 从近期看,操作系统的变革不太可能发生在中国,这意味着下一代操作系统依然是国外主导的可能性很大(换而言之,所谓从零开始的操作系统可能还是轮不到我们);
  4. 目前国产操作系统主要还是面向特定领域(国防、政府、国有企业等)的。

最后要再补充一点:技术是无国界的。所以,所谓『国产』本身就错误的理解了现代技术发展。Linux内核就是由世界各地的技术人员开发和维护的。它本质上不属于任何国家。微软、谷歌、苹果这些国际化的大企业也是由来自世界各地的工程师们共同进行技术开发的。同时它们的国际影响力才使得它们的产品普及全球。正常情况下,技术属于一家公司而公司不属于任何国家。所以,我们真正需要的是一个国际化的本土企业。只有这样的企业才能拥有全球的人力资源来进行技术研发,全球的市场来销售它们的产品,以及全球的影响力来培植一个生态环境。没有这样的企业来主导,我们永远不可能开发出一个有影响力的国产操作系统。——这和内核是谁写的,或者有没有生态可能根本没有任何关系。
posted @ 2016-01-03 11:58  smilehuanxiao  阅读(4205)  评论(0编辑  收藏  举报