纠正Linux认识误区
中国开源软件推进联盟主席陆首群
国内有这样一种言论:Linux是免费的,搞国产Linux只是为了骗钱(从过去的政府采购到今天的核高基都是如此),要打假。这种言论有很大欺骗性,诱导不明真相的人们由此对Linux产生认识上的误区,对国内Linux的发展具有很大伤害,为此有必要进行科学分析,以正视听:
一、Linux内核
有人把“Linux内核(Kernel)”叫成“Linux”。其实Linux内核虽然是操作系统最重要的部分,但仅靠它用户还无法使用。
一个完整的Linux操作系统是多层结构,分为底层、中间层和上层三个层次。底层主要是Linux内核,中间层包含各种功能服务模块,上层为用户体验层,由用户界面和各种应用程序组成。
不同的多层Linux操作系统(包括一些“基于Linux”的操作系统在内),均选择不同版本的Linux内核作其底层。
Linux(内核)是采用GPL协议的自由/开源软件,其各种版本源代码均可免费下载。不能说因为Linux(内核)是完全开放和免费的,可以推而广之,说Linux(即Linux多层结构的一般形态)也是完全开放免费的。
二、Linux社区版
一般Linux的发行版可分为社区版和商业版。
社区版Linux是由采用分布式开发机制的社区开发的。社区在选择某个版本的“Linux内核”的基础上,集成、开发中间层和一些应用程序(一般的社区开发没有路线图,不会充分考虑用户需求,因此社区版不会具有深入开发的用户体验层)。
社区版Linux,其底层内核当然采用GPL协议,中间层有的采用LGPL协议(如Ubuntu、MeeGO等),有的采用其他开源协议(如Android中间层采用Apache协议)。
社区版Linux均是完全开放并可免费下载的,一般来说,社区版Linux在产品化上还未臻成熟。
三、Android的挑战
Google的Android是基于Linux内核的。Google在开发Android过程中,据称为了更好地实现用户需求,开发了很多独立的增强功能模块(在标准、功能和放置问题上,Google与Linux社区产生了摩擦),而且将驱动程序单独地分离出来(Linux社区一般将驱动程序放置在内核中,Google认为,从维护成本和维护工作量上考虑,宜将这些模块放置在内核官方主干之外),从而产生了与Linux内核的融合与兼容问题。这时Linux内核驱动维护者Greg
Kroah-Har
tman认为,Google开发了不少怪异的驱动程序,其在自己分支上的很多代码与Linux官方主干上的内核代码不兼容,因此在今年年初恰逢“Linux内核”最新版本Linux2.6.33发布之际,将所有Android代码从Linux内核中删除了,以致有人惊呼Android已被Linux所抛弃或逐出。Linux基金会执行主席Jim
Zemlin于今年6月31日在北京的开源峰会圆桌会议上回答质询时说,当时Google确实承受着巨大的压力,但Linux社区和Google关于Android代码融合到Linux内核中去的问题已获得很大进展。今年4月,Greg
Kroah-Hartman又在Linux内核中恢复了Android代码。
四、Linux商业版
Linux要作为一款成熟的产品出售时,尚需在Linux社区版的基础上进一步做好产品化开发工作,做好测试、定制、认证、配置、优化、整合等工作;做好用户体验(UE,包括用户界面UI设计和各种应用程序开发)工作;做好专用软件模块(如安全模块等)的设计工作;做好本地应用软件的开发或引入,以及相关应用软件的内置工作。
将Linux社区版通过这样产品化过程的二次开发(创新活动),才能形成商业版,在产品化过程中开发了新的价值。正如一位Linux社区的核心人员所说,只有注入新价值,Linux商业版才可成为付费的Linux。
当然也可引用一位Ubuntu/Canonical工程师的话这样说:“我们的产品对用户是免费的,但对用户的支持和服务是要收费的”。他说的支持和服务包括如上所述在实现产品化过程中所做的事;也包括今后在产品运行的生命周期内向用户提供的支持和服务。
其实Linux目前已经找到了更好的商业模式,即Linux(商业版)可以与服务、硬件、内容、运营、广告等捆绑在一起,这时Linux(商业版)对用户是免费的,但可从捆绑伙伴的收费中提成。
五、U盘Linux
把Linux社区版(本来在网上是可以免费下载的)放在U盘上使用,这种事谁都可以做,用户自己也可以做,但并不能创造新的价值。所谓“国内Linux发展要依靠U盘”的这种说法更是荒唐。所谓U盘Linux使用的Mint桌面,原来是基于Ubuntu(桌面版)的,最近才改为与Debian100%兼容的桌面发行版(与Ubuntu反而不兼容),反映了开发资源调度上的困惑。当然Mint有很多创新特点,但其应用主要还局限于发烧友的圈子,而要成为Linux桌面市场的主流产品尚不成气候。
六、国内Linux发行版
国内早期的Linux版,在产品化(二次开发)方面是欠缺的,虽然也通过一些测试考核(当然测试是Linux开发的主要手段),做了一些BugFix,Patch工作,但总的来说,注入的创新价值很少,早期Linux在使用中卸载率也很高。针对早期Linux处在萌芽、幼稚的发展阶段,当时政府在采购中确实采取了一些扶持政策。这时我尚未介入,今天看来也没有什么不当之处。奇怪的是,当年参与其中的某些人今天却要来打昨天的“假”,不知他们自己是否会脸红?
随后,国内Linux发行商(企业)在Linux产品化过程中把重点放在加强用户体验上(如共创开源开发农村电子政务,作了大量测试改进,并在平谷试点运行,中科红旗开发邮政业务,作了大量的测试改进,并在邮政部门从试点到广泛运行,中标软件开发金融中低端业务,作了大量测试改进,并在建设银行试点运行),在用户体验框架内,他们还设计、改进了新的用户界面,开发适用的应用软件,引进本地应用软件,自行设计专用软件模块等;一些Linux发行商加强了产品质量认证,有的企业还争取到并进行了国际认证;这些企业在产品化二次开发过程中,在为用户做好定制、配置、优化、整合以及挑错、改错的工作中,逐步提升了Linux(商业版)的创新价值。可某些人却对本国企业的这些艰苦努力视而不见或亟力将其贬低,难道这些事实都是假的吗?
目前,中国的这些Linux企业还以集体志愿者的名义参加了MeeGO、Android等Linux(或基于Linux)社区的开发工作。中科红旗鼓励工程师积极参与KDE社区的研发工作,现有5名工程师拿到社区官方仓库写入权帐号,成为其正式成员。
需要指出的是,即使是同一Linux版本(如MeeGO),其不同发行版操作系统之间也是存在竞争关系的:在底层,如果大家都选择同一版本的Linux内核,不存在竞争;在中间层,如果大家从相同的软件模块库中为用户定制、优选、配置、整合,其结果也会不同,此时竞争优劣主要取决于各自的开发、测试情况,以及各家企业专业人员的技能和经验;在上层,如Jim
Zemlin所说,竞争的优劣主要取决于市场。
在Linux产品化二次开发中,国内企业注入了大量自主创新的成果和价值。国内的Linux版本在技术上正在走向成熟,在市场上正在创造条件与国外版本一样,努力跻身于全球主流产品的行列。
上月,我曾应邀为大连高新技术产业园区题词如下:
自主决定命运,
创新成就未来,
软件体现价值,
开源提供机遇。
我愿与大家共享。