欢迎访问北大青鸟鲁广校区~

  1. 加入收藏
  2. 设为主页
  3. 学校简介
北大青鸟鲁广校区

17740513250

三分钟了解北大青鸟

×
  • 数据加载中...
当前位置:网站首页 > 新闻资讯 > 行业新闻 >

开源软件在中国的兴起和发展

责任编辑:宏鹏来源:武汉北大青鸟鲁广校区发布时间:2012-11-18 08:45:53
导读:软件开源是一个发展趋势,开源软件在中国的兴起和发展经历了怎样的过程?

一、自由软件兴起的必然和偶然。

自由软件精神领袖理查德斯托曼(以下简称RMS)过去曾经表示这些观点:“我认为的黄金定律:软件代码应该分享和交流”、“UNIX是没有意义的操作系统,因为社群成员不能对其进行公开研究交流”、“车不在‘路’上,即使开得再快,也没有意义”。

一直以来,在人们的概念中,自由软件提出和发展是有很大的“偶然性”,故事是这样:在麻省理工人工智能实验室,RMS对一台经常出错的激光打印机感到很无助,因为它的控制程序是封闭私有,他说:“即使我们有世界的程序员,却解决不了这个‘问题’。”……某一天,RMS认为软件源代码应该自由分发,遂告诉他上司他要离开人工智能实验室,心身开发一个完整的开放自由的操作系统──GNU计划,上司很有人情味地没有没收他实验室的钥匙,就让他“离职”却为理想“工作”……某一天,Emacs编辑器发布,很多同行者下载使用研究……不久之后,的GCC编译器释放……某一天,在众多技术志愿者、志愿律师顾问的提议和RMS带领下,自由软件基金会(Free Software Foundation)成立……接下来来自芬兰的赫辛金大学学生Linus Torvalds独立开发系统内核Linux,之后利用开发开发模式继续进行开发……之后某些人把GNU成果和Linux内核组装起来,构成一个完整独立发展的操作系统……然之后,很多社区和社群建立,而且很多具有技术天赋和富有亲和力的黑客其他的项目,同时,部分商业公司把自身一些项目公开,利用社群的力量完善软件质量……现在看来,一切都很“戏剧性”。

让我们站在业界发展的初:当时没有所谓的“软件产业”,因为那时没有硬件公司意识到软件的“不寻常”,原因很简单──当时的软件代码是针对具体的单一型号的计算机开发。这样导致软件代码换到其他型号的计算机将不能运作,换句话,硬件公司不能靠销售软件代码获利,必须要把硬件和软件捆绑销售。捆绑销售,意味着,只要维持工厂流水线的正常生产,计算机硬件就持续出货,而相反,软件代码一次开发完成,之后的工序就是“Ctrl+C和Ctrl+V”。当时的硬件公司意识到,如果公开软件代码,将很有可能某些不怀好意的公司,仿制他们的硬件,制造出“山寨”的计算机,然后搭载他们的软件代码,就可以在市场上销售。所以,起初的计算机硬件千奇百怪,直到半导体工业的发展和技术联盟的组建,让某些通用硬件技术标准化和零件化,这样,编写通用的软件代码逐渐吸引程序员的眼球。随着更的程序语言提出,代码撰写和维护相对变得简单,让人们比较适宜地维护代码树。

摩尔定律的“指导”下,计算机硬件飞速发展。人们深深感受到,特定功能的软件可以帮助他们完成很多不同的日常任务,可以充分使用硬件的性能──这个就是大众对软件的强烈需求,进而导致这样的现象:人们日益增长的软件需求和缓慢的软件开发周期的矛盾成为了软件工业发展突出的矛盾。为了解决矛盾,有两种很好的解决办法:种,让人们根据自己爱好编写简单、初级的软件代码,然后向公众公开,让其他人获取源代码根据自身需求二次开发,然后再公开二次开发代码,这样缩短开发周期,满足人们需求;第二种,让有编写代码能力的人组建公司分析客户需求定制一个软件项目解决方案,由于代码的撰写完由公司自己承担,所有代码从零开始,开发成本很高,为了避免同行者进行兜售,必然不公开软件代码。恰好,前者代表自由/开源,后者代表封闭/私有,他们共通一点是──解决人们对软件的迫切需求。

二、价值理念和项目性能的博弈。

为了解决这个迫切需求,两种方法导致不同的“技术导向”:前者觉得,向社区开放了的项目,可以用众人的力量完善代码质量;后者觉得,自身公司维护项目,可以针对客户需求调整开发,同时封闭私有,可以排挤其他竞争对手,同时拥有企业追求商业价值的大化。前者觉得,通过众多不同类型的高质量的公开软件项目,人们可以根据自身需求而使用这些项目代码打造适合的软件──这样可以满足许多人的不同的软件需求;后者觉得,通过众多不同公司对既定需求而开发的软件代码,销售编译后的二进制代码,可以在市场竞争中,让消费者选择适合自身的软件产品──这样可以满足人们对不同软件的需求。

这就好像,在家烧菜煮饭跟去餐厅饭馆消费:都是满足了人们膳食需求,只是自己亲自动手,还是支付厨师费用。当然,餐厅的厨师做的菜是适合大众或者特定某地方人的口味,而自己在家烧菜,可以考虑自己的膳食喜好:多点糖,少点盐。一般厨师不会公开烧菜的秘诀,个人或者喜欢和邻居膳食心得。重要的是,两种填肚子的办法都不会让自己饿死。

这个是两种解决方法的共性,他们都满足了人们对软件的需求,都推动的整个社会发展。这个是必须要承认,也是必须要肯定。这个也是给那些整天扛自由开源软件大旗、无限抬高自由软件无限贬低封闭软件、外国封闭私有软件亡国论的人深刻的警醒。

但是,计算机程序这个特殊的商品对当时法律制度提出巨大的疑问:计算机程序需要保护?是用专利法保护?还是用版权法保护?专利法和版权法的引入,让软件程序设计原理和具体实现代码成为了的商业秘密,而且在有限的时间内不公开。更可怕的是,软件程序设计原理被专利化,寻找其他设计原理(其实就是数学模型)变得更难;商业公司发布编译后的二进制代码,几乎是不可能阅读的“文本”。

好了,我们可以阅读《哈木莱特》学习如何编剧和如何导演,但是,我们购买了一份Windows7操作系统拷贝,我们却不能学习里面的设计原理。或者我们可以加入微软公司,就可以学到相关的软件设计原理;但是,是不是等我们加入了舞团才学习编剧和排练的知识?

这两个观念,根本区别就是,人应不应该有自由发展的诉求和自由分享知识的权利:一个人很自由地学习自己喜欢的知识,而阻碍一个人学习的,只是本身的天赋和能力,而不是外部社会环境因素约束;同时,一个人可以自愿地和其他人分享知识和技术交流,无论知识的高深浅薄,是不受外部社会环境因素约束。自由软件本质就是,能够提供给每一个人对软件代码学习自由、思想自由和创意自由的舞台,并且人们在这样的知识舞台上,建立平等、协助、共进和共享等人与人社区关系。假如一开始就不理解、不认同和不承认这根本点,任何推广自由软件的讲座和活动都是徒劳,引喻失义,甚至“挂羊头卖狗肉”。

群众的眼睛是雪亮的。社区开放的软件,让软件代码在公众面前表露无遗,人们可以修改代码适合自己使用,把不完善部分通过修改臻于完美。当然,在涉及开放项目中人与人之间的关系,为了使到项目的持续健康发展,必要时订立一些“社区契约”,让大家认同、承诺并遵循规则。这个就是开放源代码的“项目性能”导向。开放源代码在项目实践层面上,和自由软件相差不大,两者核心的区别:自由软件坚持者认为私有封闭软件必然灭亡,因为私有封闭软件限制人的自由发展,必将消失在历史发展中;开放源代码拥护者认为,私有封闭软件和开放性软件可以并存,让人们有更多更好的选择,满足人们的软件需求。

一个追求自由,一个追求性能;一个追求人与人在交流软件代码之间关系的良性发展,一个追求技术实践是否满足人们的软件需求;即使性能稍有差距,自由价值是无价;即使暂时封闭私有,性能是人们大取向;由于私有封闭软件的禁锢作用,人们后将抛弃使用封闭软件,转而投奔自由软件。由于开放的软件开发模式的优越性,封闭私有软件拥有者将会逐步开放其项目,产业得到快速良性发展。

这样更好地解释,为什么自由软件的坚持者主张使用自由/开源的硬件驱动程序,即使这些驱动程序比不上硬件厂商的驱动程序,一个例子就是NVIDIA在GNU/Linux平台的显卡驱动,而性能追求者则在这样的“情况”下,选择暂时的妥协,自由软件坚持分子则主导开发nouveau驱动;这样也解释了,为什么一些科学工作者在使用搭载INTEL芯片的计算机进行模拟计算时,优先考虑使用INTEL数学函数库,即使有很多自由软件数学库:GSL,FFTW,LAPACK等;也解释了,这些科学工作者为何选择CUDA进行高性能并行计算解决密集型计算课题 ── 诚然,CUDA技术是代表一种革命性的计算方式。性能追求者可能很喜欢GNU/Linux系统,因为其表现性能在整个工业界一直处于技术尖端,但是,如果出现某些更强大更先进的封闭操作系统,性能追求者则转移视线,然则,自由软件主义者将演绎类似GNU计划(开发一个类似UNIX但不是UNIX的操作系统)的历史 ── 用自由软件社区力量打造这样更强大更先进的自由操作系统。不久的之后,自由软件天然高质量的属性,使到性能追求者又回到自由软件阵营。

“Freedom is NOT free” ── “自由并非无价”。

所以,自由软件坚持者,认为统计GNU/Linux系统的市场占用率不能正真反应自由软件推广程度:某些人可能工作需要,安装双操作系统,一个windows,一个GNU/Linux,但是大多数时间使用windows;某些人可能在某些发行版本有新的推出时候,测试使用一段时间,之后格式化抛弃;某些人或者喜欢compize那些炫耀的三维特效,就安装上一个相对使用人数较多的发行版本。等等这些,都是对自由软件了解和尝试的感性认识,至于能不能正真体验自由软件的本质价值和核心理念 ── 这个才是自由软件推广者承担更重大的责任和义务。

偏执狂热爱自由,现实者钟爱性能。

三、自由/开源软件在中国的发展。

自由/开源软件在中国大陆被官方统一称“开源软件”,这个很明显是避免某些敏感字眼。至于“GNU Project”,中国台湾和中国香港翻译为“革奴计划” ── 既发音相似,也反映GNU本质一面;中国大陆暂时没有正式的中文官方翻译──因为找寻另一个“很好很友善很亲和”的译名比较困难。

陆群大师,认为自由软件和开源软件应该抛弃“门户之见”,集部精力打造高质量的软件代码,直接产生经济价值,推动社会发展。历史就是这样演绎:爱因斯坦很后悔原子物理的和质能方程的提出,原因是聚变和裂变反应释放巨大的能量,被某些军事家用在战场上,造成生灵涂炭;之前陆群大师在会见Apache基金会主席时候,提到Apache应该注重市场推广应用达到良性发展,而Apache基金会主席认为,基金会提供一个高质量而且开放的互联网服务软件,初衷这样现在也这样,至于其他人和单位怎样使用,是他们的事情;Linus在其自传一书题目《Just for Fun》,中文译本题目为《乐者为王》,这似乎有点扭曲的原作者的意思 ── Linux内核是为了乐趣而开发,而不是以成为信息工业界之而生,完没有“称王称帝”的初衷 ── 至于某些商业公司在不违反GPL2下怎样把Linux内核使用是那些商业公司的事情。科学的发展历程,本质是纯洁和朴素,自由软件/开源软件的发展也是一样的。

自由开源软件的凝聚发展,虽然这样可以在项目实践上团结两大阵形,但是在项目具体开展中,两者阵营对于如何选择软件代码释放协议,将直接导致在法律上对开源协议的理解和取向不同,特别是以BSD协议和GPL协议为代表的两种“初衷”的直接不同。幸运的是,暂时没有见到这样的矛盾对博公堂。辩证法告诉我们,矛盾是对立统一的。

为什么中国大陆更偏爱MIT和BSD等类型的开源软件释放协议,原因很简单:再次发布的时候只需要署名,不必要强制公开源代码。这样有点类似当年洋务运动 ── “施夷长技以制夷”、“施夷长技以自强”、“中学为体,西学为用”和“以洋制洋”等:用美国的开源软件对抗美国的封闭商业软件,或许我们还乐着以为他们在搞“内部矛盾”;或者,用芬兰的Linux内核,来对抗其他输送的封闭软件;又或者,对世界的自由软件和开源软件代码库服务器在中国做镜像,我们以为这样直接获取外国人丰硕的软件思维成果;或者在商业封闭软件定价洽谈时,把自由/开源软件作为谈判的强力筹码。无疑这个是“不作为”的委而求的做法。

由于Apache,FSF,Mozilla等基金会是在美国注册,受美国法律体系和行政法规约束,即使这些基金会的软件代码为人类做贡献,也不能向列入“黑名单”的输送软件源代码,例如朝鲜和古巴。当然,朝鲜和古巴因为对其他的外交关系,从他们的镜像再造镜像,也用上了GNU/Linux操作系统和Firefox浏览器。美国可以通过法律限制打压自由软件开源软件的海外输出?估计谁提这个议案谁受到整个技术社区社群的评击。这是逆潮流的傻瓜想法。

“我们把人家服务器做了镜像,我们窃取了人家的劳动成果?”可笑地说,我们没有窃取人家的成果,反而是获得人家的“许可”。自由/开源软件并不是一个简单的静态概念,它是动态发展的连续不断的软件代码不断提高的历史演进。换句话,拷贝人家的软件代码,就好像在日光下捕捉影子,甚至产生“把苹果树运到南方栽种、把橘子树运淮北栽种”的现象。更重点的是,开放项目的核心开发团队和整个社群的球化趋势,局部地区的只有成为项目参与者的角色,而不能一步登天成为项目主导者的角色。自由/开源软件促进了地区经济发展,但是却伤害了本土封闭软件厂商的收入,进而减少地区的税收。一个公认的事实:封闭软件比自由/开源软件更容易获取暴利。倘然以金钱盈利经济发展为目的,自由/开源软件不适合中国发展。

中国大陆在软件自主发展上落后他人,如果再进行封闭的硬件和软件技术发展,其成本将是不可估量。倘若发展标准化的硬件平台,采用自由/开源软件,将快速缩小信息化鸿沟的差距,但是换来却是本土行业导向的封闭软件萎缩:Openoffice.org的到来,金山感到压力;QCAD的到来,国内CAXA厂商感到压力;R统计软件的到来,国内类似的统计分析软件感到压力。即使暂时没有感受压力,这些软件厂商只能生存在国外封闭软件围堵和开放软件大军的推进下。问题已经不是盗版不盗版的问题(当然,在盗版的情况下,很多人更喜欢盗版外国封闭商业软件),而是行业用户注意力和学习成本的问题。直接导致就是传统软件销售产业萎缩,以用户服务为核心的软件发展模式更加突出,对行业应用软件功能和质量提出更加高的要求。在国人没有完准备下,新一轮的软件发展模式已经落在头上。

外国的GNU/Linux用户还多是Unix和Solaris的移民,而国内的多数是Windows基础的移民,前期信息普及教育和当代推广自由/开源软件产生度不协调:凡是关于XXX的认证考试,XXX行业认证上机考试,均采用windows平台。如果硬要说这个“矛盾”不是矛盾,很简单,把所有自由/开源软件部移植到windows平台,让人们次接触不察觉使用自由/开源软件,然后把所有自由/开源软件一个一个地替换。后,人们发觉除了操作系统外,其他都是自由/开源软件,值得高兴的时候来了:是时候让大家一举迁移到GNU/Linux下!这个是相对幼稚的想法。

那为什么当年GNU工具可以把UNIX系统一个一个地替换?问题重点在于,UNIX系统的操作风格逐渐成为整个工业界的标准,GNU项目为了成功达到目的,也只能借着UNIX的外壳,所以才强调“GNU = GNU's NOT UNIX”的递归缩写。微软的Windows,很抱歉,是信息业界不成文的“潜规则”:独立封闭的体系,即使有相对的API环境描述;自我决定windows发展方向,导致其他周边厂商要跟随,成立“商业联盟”;既当裁判,也当球员,除了开发windows操作系统,又发展其他基础性的软件,例如Office和Media Player。用“替换”的的原理,已经不适合现在这个现实情况。现在比起当年,情况更加复杂。

中国选择自由软件和开源软件,或许是一种“曲线救国”的做法,或许是一种暂时牺牲本土封闭商业利益而求软件产业升级的做法,或许是一条登上球软件技术宝座的蹊径。社会任何一种变革,必定伤害旧权贵已有利益。变革,意味着重新洗牌,意味着机遇,意味着推倒一些过时的做法,也意味着树立新的规范和新权贵的形成

本文标题:#开源软件在中国的兴起和发展#,宏鹏发布于北大青鸟鲁广校区。软件开源是一个发展趋势,开源软件在中国的兴起和发展经历了怎样的过程?

专业老师指导

专业老师指导

赵老师

从事IT教育培训十年有余,致力于帮助广大学子找到适合自己的专业。

培训咨询客服

培训咨询客服

陈老师

IT培训专业客服,用自己的真诚解决了无数学子的困惑。

本文地址:https://www.027hpedu.com/html/1919.html

大家都在看的大家都在看的行业新闻

热门课程

更多>>
  • 数据加载中...
7天免费试学

7天课程免费试学

实战学习干货限时领取

行业解读+大咖授课+项目实操
10年以上业内强师集结,手把手带你蜕变精英!

点我咨询
×
在线咨询更多问题

如您有任何疑问
在线咨询随时为您解答或拨打咨询热线:13125006136

×
  • 姓 名*
  • 手 机*
  • QQ号/微信号
  • 所报学科 *
  • 其他备注
  • 验证码 获取验证码 *
  • 温馨提示:请保持手机畅通,咨询老师将为您提供专属的一对一报名服务。