`
touchmm
  • 浏览: 1046422 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

我对开源的理解

阅读更多

王开源事件把有关开源的话题又炒了起来。不过炒炒也好,因为对开源(本文中未特别说明的“开源”系广义的开源,泛指FS和OSS)的误解实在太多了。

事 实上与开源相关的有三个方面:商业软件(Business Software)、自由软件(Free Software)和开源软件(Open Source Software,此处为狭义的开源,以下简称OSS)。它们之间的根本区别并不是在是否收费上——这是国内对开源的最大误解。

其实这三者的根本区别在于License。

商业软件用的是商业License,以保障软件商的利益为第一位,基本没有考虑用户的利益。不相信的请自行查阅手上的商业软件License——其 实我不但很怀疑绝大多数人根本从来没有看过自己用的软件的License,我甚至很怀疑那些FUD开源软件的人手里怕是连正版的商业软件也很难找到。

自由软件用的是GPL,目的是在最大程度上保障用户的自由。这种自由表现在,用户除了可以自由使用软件以外,还可以自由分发和自由修改。但是因为 GPL的派生性(就是说基于GPL软件派生的软件也要使用GPL),用户对自由软件作修改和再分发后,用户也成了作者之一,所以GPL对用户自由的保障其 实也保障了作者的权益。

而OSS类似于自由软件,但用的License更加宽松,并不局限于GPL。只不过这些License有一个共同点就是开放源代码,赋予用户更多使用自由的同时,还赋予用户选择的自由。BTW:我个人偏爱OSS,曾经写过《选择的自由》来谈这个事情。但是后来有一次跟令狐聊起,他认为GPL的强制派生性是有其重要意义的,因为它保障了自由软件的持续发展。

既然如此,我们就可以很明白地看出来:开源软件并不排斥商业。

不 论是自由软件还是OSS,都可以在其基础上通过提供增值服务取得商业利益——只要不违反其License就行。所以你完全可以把下载来的Linux刻成光 盘拿出去卖,当然如果你修改了下载的内容,那么发行时要带上修改过的源代码。事实上,在不违反License的情况下,你可以用开源软件进行一切你能想到 的商业活动。

但是在对待商业软件的态度上,自由软件与OSS还是有区别的。

对于自由软件来说,商业软件是另一个世界的东西,二者是井水不犯河水,自由软件走的是独立自主的道路,不允许商业软件进入自由软件体系,也禁止自由软件的成果进入商业软件中(因为商业软件肯定不是用GPL,这违反了GPL的派生规定)。

但对于OSS来说则要宽松得多,一般没有派生限制,很多开源License都允许其派生成果不开源,即允许这些成果进入商业软件。从这个意义上说,OSS不但不是商业软件的敌人,反而可以说是一种必要的和有益的补充。

反观商业软件,由于开源软件的存在,它们失去了原有的垄断利益。这里的垄断不一定是指绝对垄断,还包括经济学意义上的“垄断竞争”。所谓垄断竞争是指在产品中增加不兼容特性,给用户增加替代壁垒,实现一定程度上的事实 垄断。所谓增加不兼容特性是比如对通用标准的不完全支持——例如Windows的所谓Posix兼容,以及对通用标准的不规范扩展——例如IE对W3C标 准的不规范扩展。

垄 断的好处就在于:用户没有别的选择,我做得再不好,卖得再贵,也能混得很好。但是开源软件的出现给了用户更多更好的选择,这就给它们带来了威胁,所以要 FUD开源软件。但我认为这是没有出路的,商业软件要想在这样的竞争环境下生存下去,唯一的办法就是把你的东西做得比开源软件更好!对于那些因为开源软件 的出现而死去的商业软件,我一点也不同情,因为那完全是咎由自取。

开源这件事情,不论对用户还是开发者来说,都只是选择一种态度。如令狐所说:

开源并不是一项崇高的事业,把它看得太崇高其实也是对它的一种FUD。商业是商业,开源是开源。并不是说开源就比商业更了不起,也不是说商业就比开源更了不起。
最 好的心态其实是,不要去关心任何商业的东西。我参与是因为我开心。至于别人怎么对待我的东西,是别人的事情。如果实在很不希望被商业公司利用,就使用 GPL,呵呵。把开源和商业放到一起谈,带着功利心去看开源,怎么看都觉得不舒服的。如果考虑功利的问题,就不要参与开源了,没意思的。

最后还要说一点:不要把开源软件与盗版混为一谈。

如前面所说,开源也是有License的,违反License的行为就是对开源的盗版——比如把自由软件的代码用到商业软件中的行为就是一种对开源的盗版行为。在反盗版问题上,所有类型软件的立场应该是一致的。

分享到:
评论

相关推荐

    开源软件文集:开源革命之声.pdf

    通过这本书,我们可以更深入地理解开源软件的发展脉络,认识到开源软件革命的深远意义,同时也能了解到开源软件如何影响到我们日常生活的方方面面。 《开源软件文集:开源革命之声》是一本集历史、技术和思想于一体...

    德国MK开源代码的理解

    "德国MK开源代码的理解" DEscript1: 德国MK开源代码的理解解决了修改源码、改善...通过研究德国MK开源代码,我们可以了解到姿态检测算法、控制算法等关键技术的实现细节,从而提高我们对四轴飞行器的理解和设计能力。

    开源书架 开源书架 开源书架 开源书架

    通过深入理解和使用开源书架,不仅可以提升个人图书管理的效率,还能进一步了解软件开发的过程,对于学习编程和理解开源文化也有很大帮助。同时,参与开源项目也是提升自身技能、贡献社区、拓展职业发展的好途径。

    探讨开源软件的思想与应用

    【开源思想】开源思想源于计算机领域的开放源代码实践,指的是软件开发者允许用户查看、修改和分发软件的源代码。...理解并支持开源,意味着拥抱开放、协作和共享的精神,这对于个人和组织的成长都至关重要。

    开源期刊第一期

    通过讲座和连载等形式,帮助读者深入理解开源文化和技术细节。此外,还涉及开源应用的各个方面,从基本命令操作到高级内核分析都有涉及。 - **桌面应用**:这部分关注开源桌面应用的最新发展,包括新产品的介绍、...

    开源新闻发布系统

    5. 开源文化:理解开源许可证,如MIT、GPL等,以及如何遵循开源社区的规则和最佳实践。 四、实际应用 虽然这个系统可能不适合大型企业级应用,但它可以用于小型组织或个人博客发布新闻、公告,甚至作为教学演示项目...

    通过对流行的优质android开源项目分析、学习、仿写,最终理解,不仅帮你掌握最新的android技术,更能让你理解开源项目的精华之处.zip

    通过对流行的优质android开源项目分析、学习、仿写,最终理解,不仅帮你掌握最新的android技术,更能让你理解开源项目的精华之处。.zip,Analysis for Popular & Hot Android open-source Applications & Libraries ...

    开源生态白皮书(2020年)

    开源技术自20世纪80年代发展至今,已成为推动全球软件产业发展的...通过分析开源生态的现状和发展趋势,我们能够更好地理解开源技术对企业和社会的影响,把握开源技术的发展脉络,为未来的技术创新和行业发展奠定基础。

    播放器开源 播放器开源 播放器开源

    6. **多平台支持**:确保播放器能在Windows、Linux、macOS等不同操作系统上运行,这需要对各种平台的API有深入理解。 7. **编译构建系统**:如CMake或Autotools,用于自动化构建和打包过程。 8. **版本控制**:...

    ISAS-NIIT mms2 开源分析

    该项目由一组专家进行,旨在分享对开源的理解,提供实用的见解,并展示如何利用开源解决方案来提升业务效率。 首先,我们要理解"NIIT",这是一个知名的国际信息技术教育和培训机构,致力于培养全球范围内的IT专业...

    常用开源软件说明手册

    本文档旨在帮助读者对现有的开源软件有一个初步了解,涵盖了一些常见的开源软件及其应用领域,并提供了一些基本的操作指南与实践建议。 #### 开源软件概述 开源软件是指其源代码可以被公众使用的软件,用户不仅有...

    台湾开源软件刊物资料

    例如,可能会有对台湾特色的开源项目如Gitorious Taiwan(一个开源的代码托管平台)或者Taiwanese Linux User Group (TLUG) 的介绍,这些都是台湾开源运动的重要组成部分。这些组织不仅提供技术交流的平台,还通过...

    金山开源源代码 金山开源源代码

    金山软件是中国知名的软件企业,其产品线涵盖了办公软件、安全软件、游戏等多个领域,因此其开源源代码对开发者和研究者具有很高的学习和研究价值。 1. 开源的意义: 开源软件的核心理念是开放、协作和分享。通过...

    优惠券开源系统

    1. 自定义扩展:用户可以根据业务需求对系统进行深度定制,添加新的功能模块,如积分兑换、会员等级专享优惠等。 2. 社区支持:开源项目通常有活跃的开发者社区,用户可以通过论坛、GitHub等平台寻求帮助,共享解决...

    infoq开源启示录合集

    3. **开源许可证**:解析各种开源许可证的含义和使用限制,帮助开发者理解如何合规使用和发布开源软件。 4. **开源项目治理**:介绍项目决策机制、版本控制、代码审查等最佳实践,保证项目的健康和可持续发展。 5....

    开源时代(电子杂志)

    开源时代,一个充满活力与创新的领域,...它将带领我们穿越开源的广阔天地,理解开源如何改变我们的生活,激发我们的创新精神。在忙碌的工作之后,阅读这样一份杂志,不仅能增长知识,也能为心灵带来一丝宁静和启发。

    开源时代(1-4)开源时代 1-4

    开源时代,一个在信息技术领域备受关注的话题,涵盖了从操作系统到应用程序、从数据库到云计算的广泛领域。这个概念的出现,不仅改变了软件开发的模式,也推动了整个IT...理解和掌握开源,对于理解现代IT行业至关重要。

    开源数据恢复软件

    在理解开源数据恢复软件之前,我们首先要了解数据恢复的基本概念。数据恢复是指从损坏、格式化或丢失的存储设备中恢复丢失数据的过程。这可能涉及到硬盘驱动器、闪存驱动器、SD卡、SSD或其他类型的存储介质。当文件...

    SimpleBGC32- 开源三轴无刷云台算法完全解说_电机_mpu6050三轴云台_云台开源算法_云台电机_电机开源_

    总的来说,这个开源项目提供了一个完整的三轴无刷云台解决方案,对于想深入理解飞行器稳定技术、嵌入式系统设计以及电机控制的爱好者和工程师来说,是一份宝贵的资料。通过研究和实践,不仅能提升技术能力,还可能...

Global site tag (gtag.js) - Google Analytics