当前位置: 首页 > 科技观察

Linux行话解释:什么是FOSS(自由开源软件)?什么是开源?

时间:2023-03-14 10:57:26 科技观察

什么是源码软件?过去我多次被问到这个问题,现在是时候解释一下Linux和软件世界中的FOSS是什么了。这种区别很重要,因为FOSS是一个通用术语,根据上下文可以有不同的含义。在这里,我说的是软件中的FOSS原则。1.什么是源码软件?FOSS代表免费和开源软件。这并不意味着该软件是免费的。意味着软件的源代码是公开的,任何人都可以自由使用、研究和修改代码。这一原则允许人们作为一个社区为软件的开发和改进做出贡献。FOSS起源于1960年代和70年代,当时计算机以硬件为主,价格昂贵。它们主要由大学的学者或实验室的研究人员使用。以前受限的软件是免费的或带有源代码,用户可以根据自己的需要对其进行修改。在70年代末和80年代初,制造商停止分发源代码,以防止他们的软件在竞争对手的计算机上运行。对于那些习惯并喜欢修改软件的人来说,这种限制性许可会带来不便和厌恶。在20世纪80年代中期,RichardStallman发起了自由软件运动。Stallman确定了一个软件要成为FOSS的四个基本自由。自由软件自由为了便于理解,我将重新表述它们:任何用户都可以出于任何目的运行软件。用户应该能够自由查看软件的源代码,并在必要时允许用户修改代码。用户应该能够自由地将软件的副本分发给他人。如果用户修改了代码,她/他应该可以自由地将修改后的代码分发给其他人。修改后的代码必须是开源的。如果有兴趣,我建议阅读这篇关于FOSS历史的文章。FOSS中的“免费”并不意味着免费您可能已经注意到,FOSS中的“免费”并不意味着它是免费的,它意味着运行、修改和分发软件的“自由”。人们常常错误地认为FOSS或开源软件不能有价格标签。这是不正确的。大多数FOSS都是免费提供的,原因有很多:源代码已经向公众开放,因此一些开发人员认为没有必要在软件下载上附加价格标签。有些项目是由一些志愿者免费提供的。因此,主要开发人员认为对这么多人免费贡献的东西收费是不道德的。一些项目由大型公司或非营利组织支持和/或开发,这些公司或非营利组织雇用开发人员从事他们的开源项目。一些开发人员创建开源项目是出于一种爱好,或者是出于用代码为世界做贡献的热情。下载、贡献和感谢之词对他们来说比金钱更重要。为了避免强调“免费”,有些人使用FLOSS这个词(LCTT译注:有时也写作F/LOSS)。FLOSS是自由开源软件(Free/LibreOpenSourceSoftware)的缩写。Libre(免费)一词与gartuit/gratis(免费)不同。“自由”是言论自由,不是免费啤酒的自由。FOSS项目如何赚钱?开源项目不赚钱是一个神话。红帽是第一家市值达到10亿美元大关的开源公司。IBM以340亿美元的价格收购了RedHat。这样的例子很多。许多开源项目,尤其是企业领域的项目,都提供收费的支持和面向企业的功能。这是RedHat、SUSELinux和更多此类项目的主要商业模式。一些开源项目,例如Discourse、WordPress等,会收费提供其软件的托管实例。许多开源项目,尤其是桌面应用程序,都依赖捐赠。VLC、GIMP、Inkscape等开源软件都属于这一类。有多种方法可以资助开源项目,但通常您会在项目网站上找到捐赠链接。使用开源软件赚钱可能很困难,但并非不可能。但我不是程序员,我为什么要关心一个软件是否开源?这是一个合理的问题。您不是软件开发人员,只是普通的计算机用户。即使可以得到软件的源代码,您也不会理解程序是如何工作的。这很好。你不会得到它,但具有必要技能的人会,这才是最重要的。你可以这样想。也许你不会理解一份复杂的法律文件。但是,如果您可以自由查看该文件并保留一份副本,您可以咨询可以检查该文件的人以了解法律陷阱。换句话说,开源软件具有透明度。FOSS和开源有什么区别?您会经常遇到FOSS和开源这两个术语。它们经常互换使用。它们是一样的吗?很难用是和否来回答。你看,FOSS中的“免费”这个词让很多人感到困惑,因为人们误以为它是免费的。企业高管、高层管理人员和政策制定者往往关注自由和开源中的“免费”。由于他们是商人,专注于为公司赚钱,因此“自由”一词在采用FOSS原则时起到了威慑作用。这就是为什么在90年代中期创建了一个名为OpenSourceInitiative的新组织。他们从FOSS中删除了“免费”一词,并使用自己的一套许可证创建了自己的开源定义。“开源”一词在软件行业尤其流行。高管们更喜欢开源。开源软件的采用正在迅速增长,我相信去掉“免费”这个词真的很有帮助。问题?正如我在什么是Linux发行版一文中解释的那样,FOSS/OpenSource的概念在Linux的发展和流行中发挥了重要作用。在这个术语解释器中,我试图用更简单的术语来解释FOSS和开源的概念,试图避免涉及太多细节或技术精度。