从深度和广度上开源是什么意思?

从深度和广度上开源是什么意思?,第1张

开源(open source)这个术语是指人们可以修改和共享的东西,因为它的设计是可以公开访问的。
该术语起源于软件开发的上下文,用于指定创建计算机程序的特定方法。但是,今天,“开源”指的是更广泛的价值集,我们称之为“开源方式”。开源项目,产品或计划包含并赞扬开放交流,协作参与,快速原型制作,透明度,精英管理和面向社区的发展的原则。
什么是开源软件?
开放源码软件是带有源代码的软件,任何人都可以对其进行检查、修改和增强。
“源代码”是大多数计算机用户从未见过的软件的一部分;这是计算机程序员可以用来更改软件(即“程序”或“应用程序”)工作方式的代码。有权访问计算机程序源代码的程序员可以通过向计算机程序添加功能或修复无法始终正常运行的部件来改进该程序。
开源软件和其他类型的软件有什么区别?
有些软件的源代码只有创建它的个人、团队或组织才能修改,并且保持对它的独占控制。人们称这种软件为“专有的”或“闭源的”软件。
只有专有软件的原始作者才能合法地复制,检查和更改该软件。并且,为了使用专有软件,计算机用户必须同意(通常通过签署他们首次运行此软件时显示的许可),他们不会对软件作者未明确允许的软件做任何事情。Microsoft Office和Adobe Photoshop是专有软件的示例。
开源软件则不同。它的作者将它的源代码提供给其他想要查看、复制、学习、修改或共享代码的人。LibreOffice和GNU图像处理程序就是开源软件的例子。
就像使用专有软件一样,用户在使用开放源代码软件时必须接受许可条款,但是开放源代码许可的法律条款与专有许可的法律条款有很大不同。
开源许可证影响人们使用、研究、修改和分发软件的方式。一般来说,开放源码许可证允许计算机用户将开放源码软件用于他们希望的任何目的。一些开源许可,有些人称之为“copyleft”许可,规定任何发布修改过的开源程序的人必须同时发布该程序的源代码。此外,一些开放源码许可证规定,任何修改和与他人共享程序的人也必须共享该程序的源代码,而不收取任何许可证费用。
通过设计,开源软件许可证促进了协作和共享,因为它们允许其他人对源代码进行修改,并将这些修改合并到他们自己的项目中。他们鼓励计算机程序员随时访问、查看和修改开放源码软件,只要他们在共享工作时允许其他人也这样做。
开源软件仅对计算机程序员重要吗?
开源技术和开源思想对程序员和非程序员都有好处。
因为早期的发明者将互联网本身建立在开源技术之上,比如Linux *** 作系统和Apache Web服务器应用程序,今天任何使用互联网的人都能从开源软件中受益。
每当计算机用户浏览网页、查看电子邮件、与朋友聊天、在线播放音乐或玩多人视频游戏时,他们的计算机、移动电话或游戏机都会连接到计算机的全球网络,使用开源软件将数据路由并传输到他们面前的“本地”设备。完成所有这些重要工作的计算机通常位于用户看不到或无法实际访问的遥远地方,这就是为什么有些人称这些计算机为“远程计算机” 。
越来越多的人依赖远程计算机来执行他们本可以在本地设备上执行的任务。例如,他们可能使用在线文字处理、电子邮件管理和图像编辑软件,而这些软件并不是安装在他们的个人电脑上运行的。相反,他们只是通过Web浏览器或移动电话应用程序访问远程计算机上的这些程序。当他们这样做时,他们从事的是“远程计算”。
有些人把远程计算称为“云计算”,因为它涉及的活动(如存储文件、共享照片或观看视频)不仅包括本地设备,还包括形成周围“氛围”的远程计算机全球网络。
云计算是日常生活中越来越重要的一个方面,有了互联网连接的设备。一些云计算应用,比如谷歌应用,是专有的。其他的,比如ownCloud和Nextcloud,都是开源的。
云计算应用程序运行在帮助它们平稳高效运行的附加软件之上,因此人们经常会说运行在云计算应用程序之下的软件充当了这些应用程序的“平台”。云计算平台可以是开源的,也可以是封闭的。OpenStack是开源云计算平台的一个例子。
人们为什么喜欢使用开源软件?
人们出于多种原因,更喜欢开源软件而不是专有软件,其中包括:
控制。许多人喜欢开源软件,因为他们对这种软件有更多的控制权。他们可以检查代码以确保它没有做任何他们不希望做的事,并且可以更改不喜欢的部分。非程序员的用户也将从开源软件中受益,因为他们可以将其用于任何期望的目的,而不仅仅是他人认为的方式。
训练。有些人喜欢开源软件,因为它可以帮助他们成为更好的程序员。由于开放源代码是可公开访问的,因此学生在学习制作更好的软件时可以轻松地学习它。 学生还可以在发展技能时与他人分享他们的作品,邀请他们发表评论和批评。当人们发现程序源代码中的错误时,他们可以与他人共享这些错误,以帮助他们避免自己犯同样的错误。
安全。有些人喜欢开源软件,因为他们认为它比专有软件更安全和稳定。因为任何人都可以查看和修改开源软件,所以有人可能会发现并纠正程序原始作者可能错过的错误或遗漏。而且由于有如此多的程序员可以在不要求原始作者许可的情况下开发一款开源软件,因此与专有软件相比,他们可以更快地修复,更新和升级开源软件。
稳定性。对于重要的长期项目,许多用户更喜欢开源软件而不是专有软件。由于程序员公开分发开源软件的源代码,因此依靠该软件执行关键任务的用户可以确保,如果他们的原始创建者停止开发它们的工具,他们的工具也不会消失或停用。 另外,开源软件倾向于结合并根据开放标准进行 *** 作。
社区。开源软件常常会激发用户和开发人员围绕它形成一个社区。这并不是开源所独有的;许多流行的应用程序都是聚会和用户组的主题。但是在开源的情况下,社区不仅仅是一个购买(情感上或经济上)精英用户群的粉丝基础;是那些开发、测试、使用、推广并最终影响他们所喜爱的软件的人。
“开源”不就是免费的吗?
这是对“开源”含义的普遍误解,这个概念的含义不仅是经济上的。
开源软件程序员可以为他们创建的或贡献的开源软件收费。但是在某些情况下,因为开放源码许可可能要求他们在向其他人出售软件时发布源代码,所以一些程序员发现向用户收取软件服务和支持费用(而不是软件本身)更有利可图。通过这种方式,他们的软件仍然是免费的,他们通过帮助他人安装、使用和故障排除来赚钱。
虽然有些开源软件可能是免费的,但是掌握编程和排除开源软件故障的技能是很有价值的。许多雇主特别希望雇佣有开发开源软件经验的程序员。
什么是“软件之外”的开源?
开源不仅是开发和许可计算机软件的一种方式,也是一种态度。接触生活的方方面面“开源方式”意味着表达一种分享的意愿,以一种透明的方式与他人合作(这样其他人也能看到并加入),接受失败作为一种改进的方式,并期待,甚至鼓励其他人也这样做。
这也意味着致力于在改善世界中发挥积极作用,只有当每个人都可以使用设计世界的方式时,这才有可能实现。
这个世界充满了“源代码”,包括蓝图,食谱,规则,它们指导并塑造了我们在其中思考和采取行动的方式。我们认为此基础代码(无论其形式如何)都应该是开放的,可访问的和共享的,因此许多人可以将其改进。

开源软件,英文表示是open source software,简称为OSS,直接的字面意思是公开源代码的软件软件既然连源代码都公开,因此开源软件具备可以免费使用和公布源代码的主要特征
一站式出国留学攻略 >开源即开放源代码(Open source code)也称为源代码公开,指的是一种软件发布模式,讲源代码公开。闭源(Closed source)是作为开源的反义词而出现的一个术语,指被用于任何没有资格作为开源许可术语的程序。
1、开源。 描述了一种在产品的出品和开发中提供最终源材料的做法。一些人将开放源代码认为是一种哲学思想,另一些人则把它当成一种实用主义。在这个词广泛使用前,开发者和生产者使用很多词去描述这个概念;开放源代码在互联网上获得广泛使用,参加者需要大量更新电脑源代码。开放源代码使得生产模块、通信管道、交互社区获得改善。随后,一个新著作权、软件授权条款、域名和消费者提供创建的,一个新词开源软件诞生。
2、闭源。一般意味着将仅能获得它们许可的计算机程序的一个二进制版本,而没有这个程序的源代码。软件的翻译修改从技术方面来说几乎是不可能的。这个发展模型的源代码被看作这个公司的商业秘密,因此可能获得源代码接入的团体例如学校,商业机构等必须提前签订不泄漏协议,以保证源代码不会大众所知而影响其盈利。
那么对于开源和闭源,两者有哪些优势呢?
针对闭源……
1 出了问题,不用自己搞定
只要是软件,难保不出问题。要是开源软件出了这事儿,要么你自己,要么某个欠你人情债的工程师,总得有个人要花费时间排除bug。通览代码,求助于开源社区或者开源软件的供应商,通过这些手段来解决问题。
但是闭源呢,一旦你确定开发商代码出了问题,ok,你的工作到此为止! 你只需发个文件,等着就行了。当然,可能会等上几个月或者几年,问题才能得到解决,更甚者永远得不到答复。但是除此之外,你还能做什么呢。 把问题踢回去,放松,期待最好的解决方案,仅此而已。
2 不必担心贡献回流到社区
如果用的是开源软件, 很有可能, 你解决了一个bug或者做出了改善,之后你的代码就会进入到社区,随着时间的推移从而帮助测试或者维护。
闭源就不同了,你根本用不着给任何人做任何事情。当然,那是因为你接触不到代码,所以也修改不了,但是你可以针对遇到的问题创建自己的解决方案。你可以一直只针对同一个问题,改善再改善,一个版本接着一个版本,至少用不着跟社区打交道,为其他人提供更好的解决方法。
3 你不必考虑开源许可条款及规定事宜
对于开源,你必须遵循所使用的组件的许可条款。例如,想要搞明白Apache软件许可证和GPL之间的区别与联系,是需要花费一定的时间的。使用哪一种许可证取决于你所用的开源组件以及你如何使用这些组件(发布给第三方或者内部使用),据此都有不同的许可证可供应用(可附加到文档中进行说明)。
像OpenLogic这样的公司可以很容易地理解并遵守开源许可,但是针对闭源,你大可不必担心这类事情!你的供应商的许可协议把有关软件的所有的权利都收走了,如果没有你的公司的律师明确同意的情况下,你几乎是不可能的想以别的方式使用这些软件,想都不要想。当然,你还得考虑许可证数量、突如其来的软件合规性审计、随着时间的推移而恶化的条款、几乎难以理解的法律术语,但至少你不必了解如何使用开源组件。
4 你用不着为每个组件在众多选项中进行选择
针对数据库,Web服务器,应用服务器,编程语言,图形用户界面框架,类似的方面等等,开源都提供了大量的解决方案。在每一个特定的领域,你都可以找到运用不同的架构方法,使用各种语言构建的健壮的成品。找一款功能相似的工具很容易,这些工具都针对不同的使用场合进行了优化(性能、可扩展性、简洁之间的比较)。为了确信一个工具软件在既定场合下功能够满足需求,可以下载下来,试用一下。
使用闭源软件的话,你就用不着对付那么多的选择。你只需要在每个领域探索两三个大厂商提供的产品。如果供应商没有提供免费试用版本,或者很难说服你为试用品买单,甚至根本不和你签署试用协议,那你就节省时间了。
5 你不必四处找幻灯片
如果打算找一些软件的会议简报,架构图表,截图,以及其他相关的文档,这需要花费一定的时间。使用开源软件,你得读百科,访问论坛,还有邮件列表,才能获取到你需要的相关组件的信息。
使用闭源软件,一通电话就足够了,只需坐在自己舒适的办公室,会有西装革履的专业人士把PowerPoint演示文稿寄送到你的面前。当然,在你提供自己的之前,销售人员是不会给你打电话的。这样看来,至少自己没必要在网上搜索带有漂亮的图形的PPT。
6 你无需到处寻求技术支持
你可以得到来自开源社区,自己的工程师,或专业开源组织的帮助。这可能需要一些时间,以决定是否要服务等级协议(SLA)的支持,以便于在保证的时间内得到答复,就像从OpenLogic那里获得帮助一样,或者如果你可以自由的发问题到邮件列表,自己解决。
闭源就不同了,你根本不需要担忧从哪获得帮助。而且,你可能根本用不着和工程师当面交谈,只需要知道给谁打电话就OK了。
7 认输就行了
开源软件,总会有办法解决问题,打补丁,改善,强化,重构,升级,或者重写。没可能跟闭源那样,甩手走开。当然,你可以谩骂开发出这个导致问题的软件的社区,但是你仍然可以解决问题,从社区或者组织那里获得帮助,或者自己动手解决。 而对于商业供应商,那就远不能满足于骂一顿和花费一天的时间来找他们。
当然啦。欢迎各位来讨论学习交流,加群1083227756
文章知识点与官方知识档案匹配
C技能树首页概览
144340 人正在系统学习中
聚天下高手,共享学习资料!
QQ群名片
打开CSDN APP,看更多技术内容
孰优孰劣 — 开源 vs 闭源_weixin_34217711的博客
闭源 *** 作系统时不时中止对旧硬件的支持,迫使用户去购买新的硬件。我们还不得不亲自寻找、安装驱动。 社区支持 几乎所有的开源 *** 作系统都有用户论坛,你可以在那里提问题,并从别的用户那里得到答案。大家在那里分享技巧和窍门,互帮互助。有经
继续访问
开源和闭源_weixin_34216196的博客
闭源比开源更安全 在国人当中,安全性的需求远大于隐私性的需求,360的兴起就是说明,为什么在浏览器、电脑管家甚至是搜索引擎之上,360都可以所向披靡不是因为他的技术和软件多厉害,而是因为360已经成为了安全的代名词,用户使用觉得放心。
继续访问
java二次开发源码-kalai:将Clojure转换为多种目标语言(Rust、C++、Java等)的源到源转译器
java二次开发源码卡莱转换器 Kalai 是一个从 Clojure 到其他语言(Rust、Java、C++ 等)的源到源转译器。 Kalai 的目标是允许有用的算法被编码一次,然后自动提供给其他目标编程语言。 基本原理 支持的表格 Kalai 旨在对工作 Clojure 源代码进行 *** 作。 Kalai 没有在 Clojure 之上引入任何新语法。 Kalai 支持足够多的 Clojure 语言结构子集来表示许多有用的算法和应用程序。 命名空间转换为类,函数转换为静态函数,defs 和 let 转换为变量,原子转换为可变数据结构,数据文字在使用时通过库默认为等效的持久数据结构。 Kalai 明确禁止除defn和def之外的顶级形式。 例如: ( ns foobar ) ( println " hi " ) 虽然在 Clojure 中有效,但大多数目标语言在编译期间不允许执行代码,因此 Kalai 将拒绝此代码。 在 已实现的目标语言 锈 Java 另见kalaiemitlangs/TARGET-LANGS 用法 最简单的入门方法是遵循examples文件夹中建立的模式。 定义了
Java开源十年争议不断:其实仍然是“闭源”
2006年11月13日,Sun Microsystems正式宣布Java开源,并希望此举能够让社区帮助进行安全分析、bug报告、增强性能、了解偏僻个案等。 不过,十年过去之后,对于Java开源的争议依旧存在。批评者认为,Java并没有像官方说的那样完全开源,其实只开放了SDK,而Java SE和Java EE TCKs仍然是闭源的。 对于Java的开源身世,最初IBM呼吁将Java捐给
继续访问
Qt 的开源版本与商业版区别及 LGPL 与闭源程序_李肖遥的博客-CSDN博
这两个版本最大的区别在于,前者是免费的,后者是收费的。既然代码都是一致的,所以费用就要是用来购买 Qt 的售后服务和培训等等相关服务。 Qt版权问题 现在我们是来说一下版权的问题。LGPL 是一个开源协议,因此,有人会担心 LGPL 能否用
继续访问
关于开源和闭源的探讨(下)_Ultipa的博客
这一模式的通用特点是通过对开源项目进行二次开发、定制、重新封装来提供具有特色(Differentiation)的功能与服务(例如性能、便捷性的提高等),并以新的开源或闭源的产品方式在市场上发行。 以Open Stack11为例,Open Stack的定位是一款星球
继续访问
开源 vs 闭源
2019独角兽企业重金招聘Python工程师标准>>>
继续访问
由Java说起:编程语言还需要开源吗?
过去的几个月里出现了很多关于Java的讨论,讨论它究竟是一种开源的语言还是一种有专利的语言。人们开始怀疑对Java进行投资是否还有意义,担心这种语言将会受到它的新管家Oracle的独裁控制。在这种情形下,人们表达出了对这种语言长期发展方向的担忧,尤其担忧的是潜在的开发和运行Java软件所需的许可费用以及成本的增加。这更加导致了人们去寻找一种开源的,独立于厂商的语言,以此避免把自己的基础架构和开发工作都捆绑在像Oracle这样的单个公司的商业标准之上。 像Python,C/C++,JavaScript,Ruby和Perl等语言都是优秀的能
编程学习,编程语言,php,android,java,c,javascript 编程语言教学,资讯
整合了各种语言(php,android,c,c++,html,div+css,python,ruby等)在工作和面试中遇到的问题 随时随地的阅读,提高我们的时间碎片利用率 我们在路上我们不断的学习
开源与闭源的 5 个最大区别
转载自|TARS 基金会作者 |Isabella Ferreira开源软件是指公开可用的计算机源代码,其特性允许任何人都可以查看、修改和分发开源代码。其中,开源社区使用分散和协作的方式进行开源软件的开发。因此,与单个公司或个人开发的软件相比,开源软件更便宜、更灵活。如今,开源软件已被公司和个人用户广泛使用,每年都会创建数千个新的开源项目。在本文中,我们将讨论开源开发模式
继续访问
热门推荐 八个 C++ 开源项目,帮助初学者进阶成长
ThreadPool 一个简单的 C++11 线程池实现,只有一个头文件,代码加起来不到 100 行。 GitHub 地址:>

开放源代码软件源于自由软件开源运动,简称开源软件。是指那些源代码公开,可以被自由使用、复制、修改和再发布的一系列软件的集合。开源软件许可证,是对开源软件进行规范的授权合同,也可以称为授权协议书。其类别繁多,在选择适用上,了解彼此的权利让渡程度是其关键因素。

开放源代码软件就是在开放源代码许可证下发布的软件,以保障软件用户自由使用及接触源代码的权利。这同时也保障了用户自行修改、复制以及再分发的权利。

简而言之,所有公布软件源代码的程序都可以称为开放源代码软件。 开放源代码有时不仅仅指开放源代码软件,它同时也是一种软件开放模式的名称。

扩展资料:

源代码好处:

1、它们能降低企业部署网络和各种服务的成本,如果采用开源方案,你只需要一台服务器,其他的都可以免费,而用windows,你必须花钱购买 *** 作系统(假设没有盗版)。

2、可以在源代码的基础上进行二次开发,完善或丰富现有系统功能。

3、参考学习。通过分析源代码,可以学习开发、了解开发者的思路,学习开发者如何通过巧妙的方式、算法解决业务问题,阅读源代码是提高开发水平的快捷方式。

参考资料来源:百度百科-开源代码

开源软件,英文表示是open source software,简称为OSS,直接的字面意思是公开源代码的软件软件既然连源代码都公开,因此开源软件具备可以免费使用和公布源代码的主要特征
一站式出国留学攻略 >

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13094561.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-30
下一篇 2023-05-30

发表评论

登录后才能评论

评论列表(0条)

保存