开发一个 Windows 级别的操作系统难度有多大?
新闻说中科院要研发中国自己的桌面操作系统,由国家投资,1年内做出一个桌面操作系统,3年做出移动操作系统,做出中国人自己的系统来保证信息安全什么的。作为文科生,真的是完全的外行。想知道在不考虑市场占有率,商业运作,产业生态等因素的情况下,举国之力到底能不能开发出跟三大主流系统一样的操作系统?难度有多大?需要多少时间?
作为一个曾经在国内某大型操作系统研发企业(获得国家核高基支持)工作过的人士表示:国内开发的绝大多数国产操作系统基本都是基于开源操作系统之上,进行二次开发的结果。一般而言,二次开发的代码量(实际属于操作系统范畴的代码)不会超过操作系统总代码量的1/10。且往往远远小于这个数值——不超过1/100。
这里的开发单位包括所有国内企业和绝大多数的科研单位及院校。
而开源操作系统(未必是免费软件),无一例外,都不是国产软件(尽管该软件的开发者中可能包含个别中国藉的开发者)。
在其它评论中 @时国怀 先生及某位 匿名用户 分别从操作系统生态及操作系统本身的技术难度两个方面来探讨国产操作系统开发的困难。无论两位的证明是否充分,个人认为,这两个角度都是合理的。更准确的说,在正常情况下,从零开始制造一个操作系统,在当下中国是不切实际的。当然,在题主所谓的『不考虑市场占有率,商业运作,产业生态等因素的情况下,举国之力到底能不能开发出跟三大主流系统一样的操作系统』这种极端情况下,基本是没有难度的,但会耗时巨大。
下文主要是针对正常情况来讨论。这里主要是清理一些误区。
首先,完全国产操作系统是没有意义的。软件是可以被无限制复制和再利用的资源。在不考虑知识产权的情况下,所有人都可以任意复制一个程序并使用。这一过程和重新建造一个摩天大厦不同,因为我们不需要重新准备数百上千吨钢筋水泥。成本极低。在这个意义上,重新开发一个和别人功能一样的软件,毫无意义。特别是这个软件是开源的,免费的,而且往往也比某个封闭机构(企业或科研院所)开发出的更有效率。简单来讲,重新开发一个免费软件和造一架超音速飞机完全是两码事。前者的所有核心技术都可以免费获取,而后者的核心技术被掌握在外国军工企业手中。研发后者可以让我们掌握核心技术,而研发前者我们能获得什么?所以,在软件的语境下,讨论『国产』,和别的制造业中的『国产』,具有不同的意义。
其次,基于免费软件的二次开发有时也可以是一种自主创新,而且也完全可以陪养出一个生态系统。安卓系统就是利用Linux内核进行二次开发的(iOS好像原本也是基于UNIX的)。但我们一般认为安卓系统是由谷歌公司所开发。且已成功被运用到大量移动设备上。它的App Store则是一个庞大的移动生态圈。所以,我们完全可以想象,如果没有安卓,百度凭借它的技术实力,在Linux内核上开发了一个移动操作系统,且像阿里巴巴那样培养出了一个产业链。——这在技术上和商业上都是可能的。只不过我们没有国外公司那样的前瞻性,所以每次都错过了这种机会。
第三,还有一种情况,就是操作系统的学术研究。目前,革命性的操作系统研究发生在中国的可能性不大。也就是说,因为技术革命,导致所有操作系统过时,需要推翻包括Linux内核在内的所有操作系统内核,重写一个新一代操作系统的可能性,不太会发生在中国。所以,国产操作系统基本没有任何理由需要重写一个内核。直接使用Linux内核并在其上进行二次开发才是合理(合乎软件工程)的选择。对于操作系统的局部的研究成果(例如某个操作系统模块的改进),就更不需要重写整个内核了。通常研究者也没有这种精力。所以局部的改进只需要开发某个内核模块,且很快会被开源社区采纳,加入到最新版本的Linux内核中。这类改进亦有不少出自中国藉的开发者之手。总之,短期内Linux内核被淘汰掉的可能性不大。即便发生,也不太会由中国某个单位来主导。
最后,作为一个曾经的业内人士,我想说大家都错误的理解了国产操作系统的意义。国产操作系统除了有部分『骗钱』的嫌疑(有时并非真骗,而是因为缺乏市场化,往往不能用最有效率的方式来进行,这在国内是常态)外,主要是为了使现代操作系统的技术能够被完全掌握,而不是真的为了开发出一个能和某某国外系统抗衡的操作系统。例如有能力针对一些国防需要进行深度定制;发现并消除一些可能的安全隐患;政绩工程或项目需要(必须使用国产设备)。此类需求多而杂乱。当然,不排除某些项目就是在骗钱。像问题中的『安全』就有可能只是个由头,也有可能是某些国家部委的需求(记得墙吗?)。所以,在当下中国,民用操作系统的开发是缺乏商业动力的。
所以,总结一下:
- 从零开始重新开发一个操作系统是没有意义的,请不要用这一标准来定义『国产操作系统』;
- 我们在技术上和商业上都具有开发一个(至少在中国)有影响力的操作系统的能力;
- 从近期看,操作系统的变革不太可能发生在中国,这意味着下一代操作系统依然是国外主导的可能性很大(换而言之,所谓从零开始的操作系统可能还是轮不到我们);
- 目前国产操作系统主要还是面向特定领域(国防、政府、国有企业等)的。
一个桌面级的操作系统代码规模在千万行数量级,如果加上配套软件,总规模应该超过一亿行,如果再加上一个完整的软件生态系统,那么总规模应该不少于十亿行。
那是不是投钱投人就够了?不是。
说一个直观一点的道理吧:是不是说会盖5层楼房,只要投入2倍的人力物力财力就可以盖出10层楼房?显然不可能仅仅是2倍。或者盖5层楼房需要一年,那么投入两倍的资源,是不是半年就可以搞定?显然也不会是2倍这么少。
同样的,能开发一个软件,和开发一个完整的操作系统的难度相比困难也在这里。
而且我们落后了这么久,仅仅希望通过国家投资来推动,并且放出大话说一年做出来,如果不依赖任何现有基础的话,那恐怕很困难。而且真要投钱去强行推进这个项目的话,应该需要比三峡或者京沪高铁这种项目更多的钱。
可惜很多人都认识不到这一点,把软件开发当成是1+1=2这么简单的事情,所以,只能说,这是一个笑话。
Windows发展到今天用了将近30年,我们要从零追赶,至少要一半以上的时间,投入的钱,大致上把微软从过去到现在的所有销售额加起来的总数吧——具体我没算过,每次看到这种新闻,我都觉得,这是一个笑话。
第一耳朵听到这个新闻的时候,据说是中科院要做国产的操作系统,第一反应就是八成是倪光南牵头。因为前段时间倪光南院士刚刚在新闻上大批特批微软的windows操作系统不开源不安全云云,被业内人士笑话为外行。结果还真是,原来倪院士是为了国产操作系统造势啊~~
如果倪光南牵头做国产操作系统,想要比微软的更加安全,我只能说不可能不可能不可能不可能不可能不可能不可能不可能不可能不可能不可能不可能不可能不可能不可能不可能不可能不可能不可能不可能不可能不可能不可能不可能不可能不可能不可能!!!
倪院士虽然这几年在致力于推动linux开源运动,这种态度值得肯定。但是搞开源运动的人总是有些毛病喜欢把问题教条化,适合码农使用的操作系统并不一定适合公务员和军工系统使用,你让领导办公也用命令行??!!还是用那个蛋疼的OpenOffice?至少在生产线上、工业控制还有电路设计方面使用linux并不合适,这几个方面win还是不可或缺的。
Win经过这么多年的改进,其本身的基系统已经非常安全了。连完整的操作系统都没有开发过,就瞎吹牛一年的时间开发出安全操作系统?而且基于win的商业软件生态环境已经非常完善了,难道国家不想让政府工作人员用商业软件反而改用开源软件?那还怎么保证安全性??!!卧槽。
倪光南本身没有任何领导开发操作系统的经验,先不谈桌面操作系统工程量多大,想要在一年之内花1个亿就出一个桌面级系统也就只能拿现成的开源内核做二次开发才比较现实,这样的话顶多也就是个linux或者FreeBSD的新发行版,安全性在哪里?微软Sun做了这么多年还天天打系统补丁,开源内核真正按照商业标准定制了之后也少不了伤筋动骨。
之前国家主导的麒麟操作系统当年还投了好几个亿呢,结果大家发现这个玩意就是拿着FreeBSD的开源项目做了个UI最后开机还经常花屏那就不说了,口口声声自主知识产权最后还是个半成品,安全性那就纯扯淡了,反编译代码还能看到"Copyright@UC Berkeley";软件所牵头的红旗linux现在也因为断绝了资金支持快挂了吧,然后为了新一轮的圈钱计划委托HTC的UI部门搞了个COS,这帮人还有生态系统的概念了,一上来就说有不下10W个应用。
国产操作系统这个玩意每隔几年就有人来摸一下,而且一个个都还乐此不疲摸上瘾了。
各位大爷圈钱手下留情吧,没看下面很多课题组都揭不开锅了?
我从两个角度来说明中国开发出类似Windows级别的主流操作系统这件事情在可以预见的未来是不可能的,其一技术,其二信息产业的基础设施论。
技术:微软当年开发windows 7的工程量是大于阿波罗登月计划的,我天朝还是先搞定“嫦娥”吧!
在有Windows Vista作为基础的情况下,开发一个Windows7需要多少人:The Windows 7 Team
23个小组,每个小组约40人:
- Applets and Gadgets (小程序和边栏应用)
- Assistance and Support Technologies (协助和支持技术)
- Core User Experience (核心用户体验)
- Customer Engineering and Telemetry (用户工程和遥测)
- Deployment and Component Platform? (部署和组件平台)
- Desktop Graphics (桌面图形)
- Devices and Media (设备和媒体)
- Devices and Storage (设备和存储)
- Documents and Printing (文档和打印)
- Engineering System and Tools (工程系统和工具)
- File System (文件系统)
- Find and Organize (查找与组织)
- Fundamentals (基础)
- Internet Explorer (包括IE8 down-level)
- International (国际化)
- Kernel & VM (内核与虚拟机)
- Media Center (媒体中心)
- Networking – Core (网络 – 核心)
- Networking – Enterprise (网络 – 企业)
- Networking – Wireless (网络 – 无线)
- Security (安全)
- User Interface Platform (用户界面平台)
- Windows App Platform (Windows 应用平台)
Windows代码量:
Windows XP 有40,000,000行代码
Windows Vista 大约50,000,000行代码
Windows 7 有50,000,000行代码
几个著名操作系统(单位:百万代码行):
Year, Operating System, SLOC (Million)
- 1993 ,Windows NT3.1,4-5
- 1994, Windows NT3.5,7-8
- 1996 ,Windows NT 4.0 ,11-12
- 2000 Windows 2000, 29
- 2001 Windows XP ,45
- 2003 Windows Server2003 ,50
Operating System SLOC (Million)
- Debian 2.2 ,55-59
- Debian 3.0, 104
- Debian 3.1 ,215
- Debian 4.0, 283
- Debian 5.0 ,324
Linux(仅内核部分)
- Linux kernel 2.6.0, 5.2
- Linux kernel 2.6.29, 11.0
- Linux kernel 2.6.32, 12.6
- Linux kernel 2.6.35, 13.5
- Linux kernel 3.6, 15.9
信息产业的基础设施论:在整个信息产业中基础设施一旦搭建完成后来者无论如何也没有能力把整个世界推倒重塑一遍,只能等待下一次浪潮。
我不懂技术,所以只从管理上发表一点看法。想要开发出具有知识产权的,受市场认可的操作系统,从宏观上来说,其对于国家在互联网领域管理的创新要求,恐怕不亚于设计IT界浦东新区;从微观上来说,对于开发公司在开发产品时的项目管理,也会是业界顶尖要求。
那种认为以砸钱方式,就可以轻松开发出可替代操作体统的想法,就好比是认为政府砸钱也能砸出个诺贝尔物理学奖一样。
有钱可以提供最一流的实验室,也有可能请来世界顶尖的物理学家回国。然后呢?请问在现行的体制下,中国的科研机构,中国的大学能够发挥好这些一流设施和才智么?
类似的道理,有钱确实可以招来程序员,有钱也可以提供一流的办公环境。那你认为,有了程序员和办公室,操作系统就出来了么?微软公司开发一个新系统(先不说人力物力的投资了),至少是在3年的时间里,让无数的人力物力合作前进 (微软有多年系统开发经验才能驾轻就熟) ,这其中对应的项目管理能力也属于商业壁垒。
我们来看一看国家队的水平——
手机操作系统开发:号称研发15年,拥有自助知识产权的960os,和htc sense 5.0系统有纠缠不清的关系;
搜索国家队:前著名运动员坐镇带队的即刻搜索,烧了20亿(都是我们老百姓的钱!)后现在没影了。
怎么到现在还有人相信通过砸钱就能砸出科技领先,砸出一切的说法?
我不知道开发一套操作系统的技术难度,但是我知道,对于项目管理的要求非常之高。没有配套的项目管理能力,开发的钱砸下去也是打水漂。
即使中国未来有这样的具有知识产权的受市场认可的操作系统出现,也只会是民营企业完成的,绝不是所谓国家队。
但是前提是国家能够给予中国互联网公司极大的扶植,让他们壮大,让他们有实力去挑战世界巨头。但是支付宝受到银行打压,虚拟信用卡不让做了,说好的阿里银行腾讯银行迟迟不见踪影,微信碰到了“微信十条”……
国家只有通过在互联网监管上的管理创新,给予民营互联网企业更多的自由,让他们去捣腾去积累去发展,这才是国产操作系统的平凡之路。
后面又发表了评论,下面贴上——
我很认同需求理论,市场的持续需求推动软件市场的前进。
我列举的失败的国产互联网产品(960OS手机操作系统,即刻搜索),也正是由国家提出了战略需求,才会组织国家队带队,投入大量的资源进行开发的。
但是最后国家队们失败的原因是由于理想大于需求以及初次投资失败的必然性?
我们以做搜索为例说明吧。
现在我们假设阿里公司要做一个阿里搜索,先期投入2亿,总预算资金20亿,而且只要做得好还可以得到持续的资金投入。请问这样一个项目,最起码是不是应该保证以下三点:找懂行的人来做;保证搜索团队的独立性和灵活性;项目考核制作的建立(用的股东的钱,做差了肯定是要有人背背锅的);
国家队开发即刻搜索,我们来看看:带头人找的是之前没有任何互联网经验的正局级领导,某前乒乓球女皇;即刻搜索为人民网下属子公司,资产剥离产权不明;没有任何的考核制度(20亿打水漂后没有任何问责)——简单地说,国家队的工作中,行政官员为公司核心领导,创业团队无法获得股权,并且没有任何考核制度(用的都不是自己的钱,没有任何人需要为这些钱负责)。
后者的这种政商不分的管理模式早已在市场竞争中被证明是一种落后的、失败的模式。请问就算你是即刻搜索的一把手,你的很多想法受到不懂互联网的更高层行政官员阻碍,你无法有效考核公司核心管理人员,你也无法有效激励员工创业,难道你想高举爱国主义大旗去解决一切?
在这里引用前乒乓球女皇的一段话:
我们(即刻搜索)本身代表的是国家,最重要的不是赚钱,而是履行国家职责。你(百度)不用打败我们,你应该多帮助我们,多给我们出主意。
如何解决问题?
因为我不懂技术,所以还是只能从宏观上说我的想法(确实比较夸夸其他,请见谅)。
国家给予更开放的互联网政策,让我国的互联网公司得到更充分的竞争以及发挥,我相信自由市场经济的自我作用。
在谷歌搜索市场地位无法撼动的情况下,微软已经投入了累计100亿美金到bing搜索;
在微软雄霸PC操作系统多年的情况下,谷歌开发了chrome系统;
没有什么国家队,只是提供了更好的竞争环境,让各公司优胜劣汰。当有一天腾讯、阿里、百度能够更自由地发展,更加壮大,甚至也有了投入100亿美金开发系统,亏了不至于伤筋动骨时,或许开拓者就真的出现了。
你会说民营企业需求不足?永远相信,企业都是追求利润的,设想中国对知识版权保护更好,中国盗版系统越来越少,正版操作系统越卖越红火,你觉得腾讯们不想分一杯羹?
补充:
我觉得有些人想事情太自我中心,什么东西只要对自己没用就急着否定。
不是谁都是把写程序作为谋生手段,也不是什么人都计算机科班出身。
很多人不过为了实现一些省力小工具,就得在各种英文资料之间跑断了腿。
更别提那些非计算机专业,但是工作也要涉及编程的人。
计算机语言也不是英语,只是把英语作为助记符。原则上使用任何一种符号系统作为编程语言都没问题,不过是现行条件下输入英文最为简单,英文最为通用。
易语言已经证明了,哪怕把某种英文编程语言替换成中文加空格的形式,都可以有不少人喜欢并接受(是的,可能这部分人大多水平不咋地)。如果以国家之力,制造出一种更接近自然中文并功能齐全的语言并不是难事(注意只是更接近,不是说自然语言编程)。
对一个孩子来说,哪怕都是非自然的程序代码,看到一坨英文和一坨中文的感觉也是截然不同的,产生兴趣的概率更是相差甚远。