为什么使用开源软件
Geeks often describe programs as being “open source” or “free software.” If you’re wondering exactly what these terms mean and why they matter, read on. (No, “free software” doesn’t just mean that you can download it for free.)
极客经常将程序描述为“开源”或“*软件”。 如果您确切想知道这些术语的含义以及它们为何重要,请继续阅读。 (不,“免费软件”不仅意味着您可以免费下载它。)
Whether a program is open-source or not doesn’t just matter to developers, it ultimately matters for users, too. Open-source software licenses give users freedoms they would not otherwise have.
程序是否开放源代码不仅对开发人员很重要,最终对用户也很重要。 开源软件许可为用户提供了他们原本没有的*。
Image Credit: Quinn Dombrowski on Flickr
图片来源: Flickr上的Quinn Dombrowski
开源的定义 (The Definition of Open Source)
If a program is open-source, its source code is freely available to its users. Its users – and anyone else – have the ability to take this source code, modify it, and distribute their own versions of the program. The users also have the ability to distribute as many copies of the original program as they want. Anyone can use the program for any purpose; there are no licensing fees or other restrictions on the software. The OSI has a more detailed definition of “open source” on its website.
如果程序是开源的,则其源代码可供用户免费使用。 它的用户以及其他任何人都可以获取,修改和分发自己的程序版本。 用户还可以根据需要分发尽可能多的原始程序副本。 任何人都可以出于任何目的使用该程序; 该软件没有许可费或其他限制。 OSI 在其网站上对“开源”有更详细的定义。
For example, Ubuntu Linux is an open-source operating system. You can download Ubuntu, create as many copies as you want, and give them to your friends. You can install Ubuntu on an unlimited amount of your computers. You can create remixes of the Ubuntu installation disc and distribute them. If you were particularly motivated, you could download the source code for a program in Ubuntu and modify it, creating your own customized version of that program – or of Ubuntu itself. Open-source licenses all allow you to do this, while closed-source licenses place restrictions on you.
例如,Ubuntu Linux是一个开源操作系统。 您可以下载Ubuntu,根据需要创建任意数量的副本,并将其提供给您的朋友。 您可以在不限数量的计算机上安装Ubuntu。 您可以创建Ubuntu安装光盘的混音并分发它们。 如果您特别有动力,则可以在Ubuntu中下载程序的源代码并进行修改,以创建该程序或Ubuntu本身的自定义版本。 开源许可证都允许您执行此操作,而封闭源许可证则对您进行限制。
The opposite of open-source software is closed-source software, which has a license that restricts users and keeps the source code from them.
开源软件的对立面是封闭源软件,它具有许可证,可以限制用户并保留用户的源代码。
Firefox, Chrome, OpenOffice, Linux, and Android are some popular examples of open-source software, while Microsoft Windows is probably the most popular piece of closed-source software out there.
Firefox,Chrome,OpenOffice,Linux和Android是开放源代码软件的一些流行示例,而Microsoft Windows可能是其中最受欢迎的封闭源软件。
开源与免费软件 (Open Source vs. Free Software)
Open source applications are generally freely available – although there’s nothing stopping the developer from charging for copies of the software if they allow redistribution of the application and its source code afterwards.
开源应用程序通常是免费提供的-尽管如果开发人员允许以后再分发应用程序及其源代码,则没有什么可以阻止开发人员对软件副本收费。
However, that’s not what “free software” refers to. The “free” in free software means “free as in freedom,” not “free as in beer.” The free software camp, led by Richard Stallman and the Free Software Foundation, focuses on the ethics and morals of using software that can be controlled and modified by the user. In other words, the free software camp focuses on user freedoms.
但是,这不是“*软件”所指的。 *软件中的“*”是指“ *中的* ”,而不是“啤酒中的* ”。 由Richard Stallman和*软件基金会领导的*软件阵营,侧重于使用可以由用户控制和修改的软件的道德和道德。 换句话说,*软件阵营侧重于用户*。
Richard Stallman. Image by Fripog on Flickr.
理查德·斯托曼。 Fripog在Flickr上的图像。
The open-source software movement was created to focus on more pragmatic reasons for choosing this type of software. Open-source advocates wanted to focus on the practical benefits of using open-source software that would appeal more to businesses, rather than ethics and morals.
创建开放源代码软件运动的重点是选择此类软件的更多实用原因。 开源倡导者希望专注于使用开源软件的实际好处,该软件将更吸引企业,而不是道德和道德。
Ultimately, both open-source and free software advocates are developing the same type of software, but they disagree on the messaging.
最终,开源和*软件的倡导者都在开发相同类型的软件,但是他们在消息传递上意见不一致。
牌照种类 (Types of Licenses)
There are many different licenses used by open-source projects, depending on which the developers prefer for their program.
开源项目使用许多不同的许可证 ,具体取决于开发人员偏爱其程序。
The GPL, or GNU General Public License, is widely used by many open-source projects, such as Linux. In addition to all the above definitions of open-source, the terms of the GPL specify that, if anyone modifies an open-source program and distributes a derivative work, they must also distribute the source code for their derivative work. In other words, no one can take open-source code and create a closed-source program from it – they must release their changes back to the community. Microsoft referred to the GPL as being “viral” for this reason, as it forces programs that incorporate GPL code to release their own source code. Of course, a program’s developers can opt not to use GPL code if this is a problem.
GPL或GNU通用公共许可证已被许多开源项目(例如Linux)广泛使用。 除了上述所有对开源的定义外,GPL的条款还规定,如果任何人修改了开源程序并分发了衍生作品,他们还必须分发其衍生作品的源代码。 换句话说,没有人可以使用开源代码并从中创建一个开源程序–他们必须将所做的更改发布回社区。 微软出于这个原因将GPL称为“病毒”,因为它迫使包含GPL代码的程序发布自己的源代码。 当然,如果这是一个问题,程序的开发人员可以选择不使用GPL代码。
Some other licenses, such as the BSD license, place less restrictions on developers. If a program is licensed under the BSD license, anyone can incorporate the program’s source code into another program. They don’t have to release their changes back to the community. Some people see this is being even more “free” than the GPL license, as it gives developers the freedom to incorporate the code into their own closed-source programs, while some people see it as being less “free” because it takes rights away from the end users of the derived program.
其他一些许可证(例如BSD许可证)对开发人员的限制较少。 如果某个程序是根据BSD许可证获得许可的,则任何人都可以将该程序的源代码合并到另一个程序中。 他们不必将更改发布回社区。 有些人认为它比GPL许可证更“免费”,因为它使开发人员可以*地将代码合并到自己的封闭源程序中,而有些人则认为它不那么“免费”,因为它剥夺了权利来自派生程序的最终用户。
给用户带来的好处 (Benefits for Users)
This isn’t all dry, unimportant stuff that only matters to developers. The most obvious benefit of open-source software is that it can be had for free. The example of Ubuntu Linux above makes that clear – unlike Windows, you can install or distribute as many copies of Ubuntu as you want, with no restrictions. This can be particularly useful servers – if you’re setting up a server, you can just install Linux on it. if you’re setting up a virtualized cluster of servers, you can easily duplicate a single Ubuntu server. You don’t have to worry about licensing and how many instances of Linux you’re allowed to run.
并非所有干燥,无关紧要的东西都只对开发人员重要。 开源软件最明显的好处是可以免费获得。 上面的Ubuntu Linux示例很清楚–与Windows不同,您可以不受限制地安装或分发任意数量的Ubuntu副本。 这对服务器特别有用-如果要设置服务器,则只需在其上安装Linux。 如果要设置服务器的虚拟集群,则可以轻松地复制单个Ubuntu服务器。 您不必担心许可以及允许运行多少个Linux实例。
An open-source program is also more flexible. For example, Windows 8’s new interface disappointed many long-time desktop Windows users. Because Windows is closed-source, no Windows user can take the Windows 7 interface, modify it, and make it work properly on Windows 8. (Some Windows users are trying, but this is a painstaking process of reverse engineering and modifying binary files.)
开源程序也更加灵活。 例如,Windows 8的新界面使许多长期使用台式机的Windows用户感到失望。 因为Windows是开源的,所以没有Windows用户可以使用Windows 7界面,对其进行修改并使其在Windows 8上正常工作。(某些Windows用户正在尝试,但这是进行反向工程和修改二进制文件的艰苦过程。 )
When a Linux desktop like Ubuntu introduces a new desktop interface that some users aren’t fans of, users have more options. For example, when GNOME 3 was released, many Linux desktop users were equally turned off. Some took the code to the old version, GNOME 2, and modified it to make it run on the latest Linux distributions – this is MATE. Some took the code to GNOME 3 and modified it to make it work in a way they preferred – this is Cinnamon. Some users just switched to existing alternative desktops. If Windows was open-source, Windows 8 users would have more choice and flexibility. Just take a look at CyanogenMod, a popular, community-driven distribution of Android that adds features and support for new devices.
当像Ubuntu这样Linux桌面引入了某些用户不喜欢的新桌面界面时,用户会有更多选择。 例如,当GNOME 3发布时,许多Linux桌面用户同样被关闭。 有些人将代码带到了旧版本GNOME 2上,并对其进行了修改,使其可以在最新Linux发行版上运行-这就是MATE 。 有些人将代码带到GNOME 3并对其进行了修改,以使其以他们喜欢的方式工作-这就是Cinnamon 。 一些用户只是切换到现有的替代台式机。 如果Windows是开源的,则Windows 8用户将有更多选择和灵活性。 只需看看CyanogenMod,这是一个受社区推动的流行的Android发行版,它增加了对新设备的功能和支持。
Open-source software also allows developers to “stand on the shoulders of giants” and create their own software. Witness Android and Chrome OS, which are operating systems built on Linux and other open-source software. The core of Apple’s OS X – and therefor iOS – was built on open-source code, too. Valve is furiously working on porting their Steam gaming platform to Linux, as this would allow them to create their own hardware and control their own destiny in a way that isn’t possible on Microsoft’s Windows.
开源软件还允许开发人员“站在巨人的肩膀上”并创建自己的软件。 见证Android和Chrome OS,它们是基于Linux和其他开源软件构建的操作系统。 苹果OS X的核心以及iOS的核心也是基于开源代码构建的。 Valve正在疯狂地将他们的Steam游戏平台移植到Linux,因为这将使他们能够创建自己的硬件并以Microsoft Windows所无法实现的方式控制自己的命运。
This isn’t an exhaustive description – entire books have been written on this subject – but you should now have a better idea of what open-source software actually is and why it’s useful to you.
这不是一个详尽的描述-整本书都已经写过这个主题-但是您现在应该更好地了解什么是开源软件以及为什么对您有用。
翻译自: https://www.howtogeek.com/129967/htg-explains-what-is-open-source-software-and-why-you-should-care/
为什么使用开源软件