如果您在科技行业工作了一段时间,您可能听说过开源或开源软件。当我们谈论开源时,您应该想到开放协作、开放交流、参与透明和面向社区的开发。
在本文中,您将了解更多关于开源软件的信息,包括开源与其他形式软件的区别、OSS 的主要特性、开源的优缺点、如何开始为开源做贡献,以及 OSS 的一些示例。
什么是开源?
开源是任何人都可以修改和共享其源代码的任何程序,因为它是公开访问的。
什么是源代码?
源代码是由程序员使用计算机编程语言以函数、描述、方法、调用或任何其他操作语句的形式编写的一组指令。任何人都可以编辑和重新分发的源代码可以是开放的,也可以是关闭的。源代码是大多数软件或计算机用户看不到的部分。
开源软件 (OSS) 是什么意思?
术语开源软件是一种非专有软件,任何人都可以公开使用其中的代码来检查、评论、修改、改进和重新分发它。开源软件由一组开发人员创建和维护,因此如果您不熟悉计算机编程,您可以作为开源贡献者开始您的旅程。
我从 2017 年开始接触开源,并于 2020 年开始了我的第一个贡献。我在Apache 软件基金会Gihhub 和Mozilla 移动 Github上做出了我的第一个贡献。
开源软件和其他类型的软件有什么区别?
不要混淆开源、免费、封闭软件和免费软件。本节重点介绍这些软件类型之间的区别。
开源与自由软件
开源软件是任何人都可以编辑、改进和重新分发的软件。任何人都可以访问源代码。开源促进源代码的协作和共享。这是组织、开发人员和个人协作的有效方式。使用该软件的自由不是绝对的或强加的,但它是允许的。每个开源软件都不是免费的。但是,一些开源许可证是有限制的。 WordPress是开源软件的一个例子
自由软件描述了源代码可以不受任何限制地免费使用、编辑和重新分发的软件。对于自由软件,自由是一种比任何其他事物都更重要的价值。所有免费软件都是开源软件。战神就是一个例子
开源软件和免费软件具有不同的特点。一些开源软件是有限制的,所有的自由软件都是开源软件,但并不是所有的开源软件都是自由软件。
开源软件与免费软件
免费软件是任何可以免费使用并可供公众使用的软件。如果您是,使用免费软件可能会令人沮丧,因为它的源代码不是开放的,或者更确切地说,它是封闭的,因此您可以编辑软件以满足您的需要。您只能使用它提供的功能,即使它是有限的。
谷歌浏览器是免费软件的一个例子。
使用开源软件时,您可以编辑、改进和添加不同的功能以满足您的需求。一个例子是 Chromium。
免费软件源代码是封闭的,只有创建该软件的开发人员或组织才能查看其源代码,而开源软件则可以编辑和重新分发。免费软件受版权保护,而开源软件则没有。
开源与专有软件
您不需要经过身份验证的许可证即可使用开源软件。它们使用 GNU 公共许可证运行。它们可以自由安装在任何计算机系统上。开源软件是通过开放协作开发和维护的。
专有软件是源代码受保护(封闭)的软件。没有有效许可证,它们不能安装在计算机上。因此,用户需要一个有效且经过身份验证的许可证才能使用它。它们也像免费软件一样受版权保护,但不同之处在于您无需付费即可使用免费软件。一个例子是 Windows
开源软件的主要特点
在本节中,我将详细阐述涵盖开源软件的各种关键特性和价值。
- 透明度:开源使您可以跟踪和了解对软件所做的任何更改,而无需依赖软件制造商。
- 协作:开源计划的主要目标是允许任何人自由参与和改进软件。通过合作,我们可以轻松识别和解决问题
- 任人唯贤:包括来自不同大脑的不同观点可以帮助决策者确定最佳想法,并且同样可以决定项目的成功。
- 社区:当许多人聚在一起帮助和分享想法时,它创建了一个彼此可以获得支持的社区。
- 评论:由于源代码是免费提供给公众的,不同的实验社区成员可以检查、提出想法和改进软件。
- 可靠性:许多合作者可以更新和测试代码以检查是否有任何错误并修复它。开源不依赖于一个、两个或三个人来维护,而是有一个庞大的社区来支持它们。
- 灵活性:灵活性是指您可以使用开源代码来解决您的业务所特有的问题。此外,您还可以依靠社区帮助来改进现有解决方案或实施新解决方案。
- 成本更低:大多数时候,开源是免费使用和下载的。有时您可能只需要为增强安全性和互操作性付费。
开源有什么好处?
选择使用或贡献开源软件有很多好处。其中一些包括:
- 开源是免费的
- 您可以更好地控制软件。与封闭软件相比,您可以编辑开源软件以满足您的需求。
- 这对任何开始计算机编程的人都有好处。作为初学者,您可以通过分享您的工作并为其他作品做出贡献来成为更好的程序员
- 开源是好的,因为它可以帮助增强软件安全性,因为任何人都可以快速发现并修复原始程序员可能遗漏的安全问题
- 开源项目往往比其他类型的软件更稳定,因为有一个伟大的社区支持随时可以部署的方法来改进它。
- 它通过创建社区来促进协作。
- 开源是灵活的
- 他们有很好的文档
开源软件的缺点是什么?
并不是每个人都接受开源理念。一些组织仍在争论开源软件更容易受到攻击的事实,因为它们的源代码对任何人都是开放的。
我已经在软件社区工作了 3 到 4 年,我注意到它们往往更安全,因为与安全相关或无关的问题很容易被社区成员识别和修复。但是,我同样注意到开源的一些缺点。
- 开源软件可能难以设置,尤其是对于初学者而言。其中一些可能缺乏用户友好的界面,迫使您使用终端
- 责任问题。开源很少包含保证或责任保护
- 兼容性问题。
- 最初,没有任何成本,但从长远来看可能成本高昂,尤其是在您需要即时支持的情况下。如果您将该软件纳入您的团队,还需要支付培训费用。
- 并非所有开源软件都有用户手册,尽管您可以从社区寻求帮助,但它不会像商业软件那样总是立即可用,需要 24 小时/7 小时提供支持
您如何开始为开源做贡献?
为开源软件做贡献非常简单。您可以通过识别和修复错误、添加功能、改进文档以及以博客文章、技术教程或创建视频的形式编写内容来做到这一点。您还可以创建自己的开源项目来推广开源。
要为现有的开源软件做出贡献,您应该前往GitHub :
- 找到一个项目并 Fork
- 将项目克隆到本地计算机
- 创建一个新分支
- 做出改变
- 提交您的更改
- 将您的更改推送到远程存储库
- 最后,创建拉取请求
如果您没有任何项目想法,那么可以贡献的开源项目包括
开源许可证
开源许可证管理除初始开发人员之外的其他人如何使用、修改和重新分发软件。它允许软件透明并由社区成员或第三方更改。根据开源倡议包括
- Apache 许可证,版本 2.0
- Eclipse 公共许可证 2.0 版
- 通用开发和分发许可证 1.0
- GNU 库通用公共许可证版本 2
- Mozilla 公共许可证 2.0 (MPL-2.0)
- 2 条款 BSD 许可证
开源软件示例
您可能在没有意识到的情况下使用了开源软件。那里有很多。一些流行和最常用的开源软件是
- WordPress,一个用于内容管理的开源 CMS
- 用于 Web、桌面和移动开发的Flutter
- 用于网站布局的CSS 框架,例如 Bootstrap
- 用于视频和声音播放器的 VLC Media Player
- 用于文字处理的 Libre Office
- 开源 Linux 操作系统
- Python也是开源的。
- 开源报告工具包括 Metabase、BIRT
- 开源 PDF 查看器包括 Qoppa PDF Studio、pdfFiller 和 Soda PDF
- 一些 Java 开源项目是 Arduino、Mindustry 和 Signal Android
- 我们同样拥有 Eclipse IDE 和 Apache Cordova 等开源开发工具
常问问题
开源软件是免费的吗?
大多数开源软件都是免费的,但也有一些例外。一些开源许可证是有限制的,不允许创建修改版本。一个例子是开源 Watcom
我在哪里可以找到 OSS?
您可以在 SourceForge、OSDN、FossHub、GitHub 和 F-Droid 上查找和下载开源项目
为什么要为 OSS 做贡献?
为开源做出贡献的最重要优势是您可以找到其他开发人员并与之协作,从而改善您的开发人员网络。
为什么开源很重要?
开源通过与其他组织和开发人员的合作改进创新
有哪些开源竞赛?
开源竞赛是您可以学习参与开源项目、展示您的编码技能并获得反馈的竞赛。开源竞赛的示例包括开源竞赛、 Google 代码之夏 (GSoC) 、 Outreachy 、 Open Summer of Code 、自由软件基金会 (FSF) 实习计划、 GirlScript 代码之夏 (GSSoC)
什么是闭源软件?
封闭软件是其源代码仅供作者使用的软件。所以只有作者可以修改和复制它。
什么是开源计划?
Open Source Initiative 是一个非营利组织,其主要目的是教育、形成和宣传开源的好处
结论
开源可供任何人编辑、使用和重新分发。开源的一些关键特性包括透明度、可靠性、可用社区和灵活性。但是,从长远来看,OSS 的成本可能很高。因此,如果您计划将 OSS 整合到您的业务中,您需要在项目计划中包括额外或紧急成本,包括培训员工使用该软件的成本。一些流行的开源项目包括 Apache、WordPress 和 Mozilla Firefox。
如果您喜欢此类内容,请随时分享或订阅我们下方的时事通讯,以定期获取此类新鲜内容。
也发布 在这里。