开源软件是指在软件发行的时侯,附上软件的源代码,并授权容许用户修改/自由再散播/衍生专著,开源并不谴责商业收费。
免费软件就是免费提供给用户使用的软件,并且其免费的时侯,一般还会有其他的限制,例如其源码不一定会公开,但是使用者也并没有使用、复制、研究、修改和再编造的权力。
自由软件是一项思想运动,指出用户拥有怎样使用软件的自由。即
(1)可以自由地运行;
(2)可以自由地拷贝;
(3)可以自由地更改;
(4)可以自由地再发行。
这儿指的自由,并不是价钱免费,这和价钱无关而是使用软件对所有的用户来说是自由的。(英文中FREE有自由和免费的意思,例如自由的话语权,免费的早餐)
开源软件VS自由软件
虽然二者最大的相同点是:源代码的公开,而且二者的差异却比较难理解。有一句话总结的比较好:“前者最大表现是在开发模式上的,前者的最大表现是在精神上的”。
开源项目要求当项目发布时,使用者可以同时获得项目的源代码或则是就能很便捷的获得其完整的源代码。完整的涵义就是使用者在获得源代码然后,才能再度编译出和发布的项目具有相同作用的项目。而在开源项目基础上进行更改后发表的新的项目,也必须同时发布包括更改以后的源代码,而且还要明晰的标出与其基础源代码之区别。所有的要求是当你使用项目的那一刻就默认执行的,假如不想执行相关的要求,这么就没法使用开源项目。开源项目是有版权的,相关的版权属于发布的人员或则组织。如一个项目A是由甲以开源形式发布的,这么甲就拥有A的版权;乙获得A以后,更改以后发布A+,这么乙就拥有更改部份的版权,而原先部份的版权仍然归甲所有。
可以看出,开源项目最大的特性就在于对源代码的处理,而且却不包含其它的内容。也就是你可以以收费的形式发布开源项目,这与其初衷不遵守。而个别项目只公布,这儿只是公布,而不容许使用者更改或再度发布其代码,这就不是开源项目了。
而自由软件的层次更高了。它容许使用者以任何方式获取项目,更改项目,再发布项目或则再发布更改以后的项目,至于具体的方法,不作任何强制性限制。所以,使用者可以免费或则收费的形式获得项目;使用者可以以公布或则不公布源代码形式发布项目;简单地说就是让使用者有完全的自由。并且可以发觉,这儿的自由还是有某种逻辑上的强制性:假如你以收费形式发布,对你来说是自由的,这么对使用者来说就是不自由了,由于他没有以任何可能的方法获得了,或则对他说想以免费的形式是不自由的。这么他就可以在以后不服从自由软件的限制。同样的,在再发布源代码的行为上,同样有着类似的情况。与开源软件相比,个别自由软件的定义愈发严苛,甚至只要发布的软件包含自由软件之部份,这么剩余非自由软件部份也必须以自由软件规则发布。为此,自由软件更像是一种精神层次上的东西。
据悉,开源软件只是在发布方法上做了个别定义或则限制,对软件项目的各类权力本身没有做任何的定义。也就是说如专著权,专利权等法律意义上的东西还是服从各个地区的法律定义。这样就存在此类情况:其实甲获得了乙的开源软件并使用,除非乙申明舍弃对软件的专利所有,否则乙可以在任何时侯通过法律的形式来促使甲舍弃或则以一定代价以后继续使用软件。所以,开源软件并不是完全美好的东西。这样看来红旗 linux 价格,这种东西还真有不少语义和概念上的
缺陷
其实,在使用者和发布者都是同一个人或则组织的情况下,所有的条件都成了可有可无的东西了。并且软件本身的发展却被限制了,这恰恰与开源软件和自由软件本意相违逆。
于是,发展到了前面,一种“自由软件”和“商业软件”之间的折中------“开源软件”就此诞生了,它既承继了“自由软件”所倡导的知识共享的理念,同时又容许人们以专利的方式从知识产品中牟取利益,因而保护了人们生产、创造知识产品的积极性。
所以,我们可以觉得:自由软件是开源软件的一个子集,自由软件的定义比开源软件的愈发严格,自由软件是一种道德精神层面的维护用户使用的自由。
开源软件和自由软件一样,具备一可以免费使用二是公布源代码的主要特点,所以在不刻意追究微小差别的情况下,我们可以觉得开源软件和自由软件是两个等价的概念。
这么,接出来我们主要讨论为何要开源?这其实才是开源精神的真谛所在。首先,我们来了解不开放源代码(软件私有)都有什么缺点呢?
缺点一:浪费社会财富。我们假定一个软件早已完整的开发下来了,这么开发这个软件的所有投资都早已付出了,从社会的角度来看,任何限制软件使用的行为都是对其投资的浪费,对社会财富的浪费。
缺点二:不利于软件的使用。我们假定一个已有的软件不能满足我们的需求,而事实上,我们只须要在原有的代码上更改极少的一部份,能够满足我们的须要。在这些情况下,我们用户要么重新写一个软件,要么忍受现有软件的不健全。
缺点三:不利于软件的开发。第二条是从用户的角度来看,软件私有不利于软件的使用。从软件本身发展的角度来看,软件私有,将使软件的开发集中在少数这么几个开发者之间进行,而不能使软件才能得到更多使用者和开发者的意见,集百家之长。
缺点四:不利于软件开发者学习。一个好的软件,其中有无数值得我们学习借鉴的经验。并且由于软件私有,我们难以获得属于商业绝密的源代码,未能站在巨人的右臂上学习。
开源会曝露软件的缺陷,带来安全隐患?
既然开源了,这么谁都可以看见源代码,这样会不会让骇客发觉其中的漏洞,之后借助它,因而形成安全隐患呢?这是个很自然的问题,我以前也困惑许久。并且,事实正好相反,一个软件,虽然你不开发源代码,一个骇客想找,也能找到其中的漏洞(想想我们在windows下猖獗的病毒吧)。
然而,工程师们晓得了它的漏洞,由于手头没有源代码,没有办法去改进它;骇客晓得了它的漏洞,却可以借助它!
所以,软件私有是锁不住安全的,软件私有只是更不利于安全而已!真正好的安全,须要建立的算法,缜密的技术,同样重要的是完整的制度保障。
事实上,一家公司可能混和采用其中的几种赢利模式,例如康比尔公司除了采用了第六种品牌策略,同时也采用了第二种提供技术服务的形式。在开源软件大潮的冲击之下,包括谷歌在内的商业软件公司,也开始认可开源软件"软件成为服务"的本质。正如Navica公司CEO本纳德·高登所说,"短短两两年间,任何人在选择任何企业软件之时,都开始考虑一个问题:是否有开源软件可作代替?"
(开源软件or自由软件)VS免费软件
免费软件,只是免费提供给用户使用,并不包含公开其源码的内容。提供情况下,免费软件免费的目的无非出于以下三个:当用户多了,免费软件再采取一些其他的增值服务等等手段来收费。
说道这个红旗 linux 价格,你们想到了哪些?没错,3Q大战的两位大鳄都是这种类型。TX要是公开QQ的源码,我们晓得其通讯合同的话,也许TX早就破产了。
同样,开源软件,只是在软件发行的时侯,附上软件的源代码,但是授权容许用户修改/自由再散播/衍生专著。商业软件并不谴责商业收费,所以linux运维面试题,开源软件不一定就是免费的(其实,一般都是。)并且,开源的目的,并不是做慈善,而是通过更多人的参与,建立软件的缺陷。
下边所列的开源软件的商业模式与上面所列似乎在细节上有所不同,但其本质却是相通的,如今就让我们瞧瞧其具体内容吧:
1、免费软件+收费硬件
例如IBM、SUN、HP等公司,在开源软件领域投入巨大,但这一切并非是做善事,它们可以从配置了开源软件的硬件中获得巨额回报。
2、免费知识+收费书籍(培训)
例如知名的开源软件出版商O'Reilly公司,就不遗余力地联系各开源软件权威人士,组织各类开源软件的大会,尽管知识是免费的,但承载知识的书籍却是收费的。
3、免费程序+收费施行
像中间件、ERP和SCM等企业级信息系统,免费提供这些系统的程序代码,以提供收费的技术服务来挣钱。JBoss就是这些模式的典型代表。
4、免费社区版+收费企业版
Redhat自RedhatLinux9.0后将原桌面操作系统转为Fedora项目,借FedoraCoreLinux在开源社区的威望而促使RedhatEnterpriseLinuxAS/ES/WS服务器产品线的销售。
5、开源软件+商业软件
例如Novell就将自己原先丰富的中间软件和应用软件迁移到Linux平台上,通过与Linux的捆绑为顾客提供高价值的综合解决方案。红旗和Turbolinux也在积极强化与应用软件厂商的联系或自己开发商业软件,通过附加更多的商业软件来降低收入。
6、免费软件+收费专业服务
典型代表是SourceLabs公司和SpikeSource公司。这种公司并不主推自己的产品品牌,而是与多方开源软件厂商或社区合作。
如今,IBM在开源,SUN在开源红联linux论坛,Oracle在开源,谷歌也在开源——虽然是极不甘愿的。等到某三天,谷歌完全开源了,国外的这种“开源软件”企业还有哪些价值可以向政府和媒体呈现呢?