【FN通讯源码】【readline的java源码】【开源码怎么查找】放源码
1.开源开源定义详解
2.什么叫开源代码,放源码什么叫非开源代码
3.开放源代码是放源码什么意思?
4.开放源码有利于系统安全
5.主流的开源源码是什么意思
开源开源定义详解
开放源代码定义详解(版本1.9)以下缩进和斜体部分作为开放源代码定义(OSD)的注释,并非定义的放源码一部分。
引言
开放源代码不仅仅意味着访问源代码。放源码开放源代码软件的放源码分发条件必须遵循以下标准:
1. 免费重分发
理由:通过约束许可要求免费重分发,我们可以消除为了短期内赚取销售美元而放弃长期收益的放源码FN通讯源码诱惑。如果不这样做,放源码将会有很大的放源码压力让合作方退出。
2. 源代码
程序必须包含源代码,放源码并允许以源代码形式以及编译形式进行分发。放源码如果以某种形式分发产品而没有提供源代码,放源码则必须提供一个明显的放源码途径,以合理复制成本免费获取源代码 - 通常是放源码通过互联网免费下载。源代码必须是放源码程序员修改程序时首选的形式。故意混淆的放源码源代码不允许。中间形式,如预处理器或翻译器的输出,也不允许。
理由:要求访问未混淆的源代码是因为您无法在不修改程序的情况下进化程序。我们的目标是使进化变得容易,因此要求修改变得容易。
3. 派生作品
许可必须允许修改和衍生作品,并允许它们在原始软件许可的相同条款下进行分发。
理由:仅仅能够阅读源代码不足以支持独立的同行评审和快速的进化选择。为了实现快速进化,人们需要能够实验并分发修改后的版本。
4. 作者源代码的完整性
如果许可允许在构建时通过“补丁文件”发行修改后的源代码,则许可可以限制源代码以修改后的形式发行,前提是可以发行未经修改的基本源代码加上补丁。这样,“非官方”更改可以提供,但易于与基本源代码区分开来。
理由:鼓励大量改进是一件好事,但用户有权了解他们正在使用的软件的责任人。作者和维护者有权了解他们被要求支持和保护自己的声誉。
因此,readline的java源码开放源代码许可必须保证源代码的可获取性,但可以要求以未修改的基本源代码加上补丁的形式分发。通过这种方式,非官方更改可以提供,但易于与基本源代码区分开来。
5. 对个人或群体无歧视
许可不得歧视任何个人或群体。
理由:为了从过程中获得最大的利益,最大的个人和群体多样性应该有资格平等贡献到开放源代码。因此,我们禁止任何开放源代码许可将任何人排除在外。
某些国家,包括美国,对特定类型的软件有出口限制。遵守此类限制的OSD兼容许可可以警告许可人,并提醒他们必须遵守法律;然而,它本身不得包含此类限制。
6. 对领域无歧视
许可不得限制任何人使用该程序的特定领域。例如,它可能不得限制程序在商业领域或用于遗传研究的使用。
理由:此条款的主要目的是禁止阻止开放源代码在商业上使用的许可陷阱。我们希望商业用户加入我们的社区,而不是感到被排除在外。
7. 许可的分发
程序的附带权利应适用于所有接收程序的人,而无需执行额外的许可。
理由:此条款旨在禁止通过间接方式(如要求保密协议)关闭软件。
8. 许可不得特定于产品
许可附带的权利不应依赖于程序是特定软件发行版的一部分。如果从该发行版中提取程序并在遵守程序许可的条款下使用或分发,则所有接收程序的人都应享有与原始软件发行版中授予的权利相同的权利。
理由:此条款阻止了另一种类型的许可陷阱。
9. 许可不得限制其他软件
许可不得对与许可软件一起分发的其他软件施加限制。例如,许可不得坚持所有在同一介质上分发的其他程序必须是开放源代码软件。
理由:开放源代码软件的分发商有权自行选择自己的软件。
是的,GPL符合这一要求。开源码怎么查找与GPL库链接的软件仅继承GPL,如果它们形成了单一作品,而不是与之仅分发的软件。
. 许可必须技术中立
许可中不得有基于任何特定技术或接口风格的条款。
理由:此规定旨在专门针对要求明示同意以在许可人与被许可人之间建立合同的许可。要求所谓的“点击包装”可能会与支持FTP下载、CD-ROM文集和网络镜像等重要软件分发方法发生冲突;这些规定也可能阻碍代码重用。兼容的许可必须允许以下可能性:(a)软件的重新分发将通过不支持下载点击包装的非Web渠道进行;和(b)受保护代码(或重用的部分受保护代码)可能在无法支持弹出对话框的非GUI环境中运行。
扩展资料
开源(Open Source,开放源码)被非赢利软件组织(美国的Open Source Initiative协会)注册为认证标记,并对其进行了正式的定义,用于描述那些源码可以被公众使用的软件,并且此软件的使用、修改和发行也不受许可证的限制。什么叫开源代码,什么叫非开源代码
开源代码是指开放源代码,也称为源代码公开,指的是一种软件发布模式;反之,若不公开源代码则为非开源代码。一般的软件仅可取得已经过编译的二进制可执行档,通常只有软件的作者或著作权所有者等拥有程序的原始码。
有些软件的作者会将原始码公开,此称之为“源代码公开”,但这并不一定符合“开放源代码”的定义及条件,因为作者可能会设定公开原始码的条件限制,例如限制可阅读原始码的对象、限制衍生品等。
扩展资料:
开源代码的作用:
1、软件成果独占权带来的弊端
基于知识产权保护的独占权,就阻碍了他公司进入此类市场的“商业壁垒”,无相关产品接应,无市场竞争,从而形成了垄断。
2、软件的gif图修改源码源代码保密带来的危害
由于知识产权保护,各个公司对软件源代码保密,只有公司内部流通交流,软件技术专家和学者无法进行学习和研究,造成了软件的重复开发和使用,浪费社会劳动力。并且,软件的安全性和改进完善受到了限制。
由于软件行业的垄断,造成了学术界的强烈不满,因此开源运动和自由运动产生了。开放源代码软件源于自由软件运动。
百度百科-开放源代码
开放源代码是什么意思?
开放源代码是指将计算机软件的应用程序源代码公开发布的一种开放方式。在这种开放源代码的情况下,软件的使用者可以自由地阅读、使用、复制、修改和分发软件的源代码。这种开放源代码的方式使得软件产品更加透明化、可靠化和灵活化。
开放源代码的文化是一种开放的合作方式,它使得任何有兴趣与能力的人都可以参与软件开发过程中,从而共同改进软件的源代码和功能。正因为如此,开放源代码的软件更加透明透明、可靠和强大,因为合作社区中的开发人员们都能够互相检查和审查软件的源码,从而提高软件品质。
通过开放源代码的方式,软件的用户可以自由地使用和修改软件代码。用户可以根据自己的需要定制软件,从而满足不同需求。此外,用户还可以一起共同开发和完善开放源代码项目,这也是一种对自我学习和知识分享的很好的方式。在这个互联网时代,php源码安装地址开放源代码的文化是一个非常宝贵的资源,也是我们共同进步和发展的重要组成部分。
开放源码有利于系统安全
开放源码是近来人们的一个热点话题。这会对信息安全带来什么影响?开放源码和封闭源码相比,哪个更安全?本文作者明确提出:开放源码会改善信息安全。
近年来,随着Linux和Apache等开放源码软件受到越来越多的人的关注和喜爱,开放源码运动在世界范围内引起了一场风暴。但是,我们也经常可以看到有人对开放源码软件的安全性表示怀疑:"所有的源代码都被黑客们看到了,还有什么安全可言?""开放源代码意味着黑客们可以找出代码中存在的所有缺陷。"有人甚至列出等式:"开放源码 = 打开信息系统之门 = 不安全"。
开放源码到底安不安全
那些认为开放源码不安全的人,一般是出于如下的考虑。
一、黑客可以找到其中的安全漏洞
这种观点成立的前提是:黑客们不会找出封闭源码软件中的安全漏洞。但是我们只需要到网上去查找一下与封闭源码软件相关的安全警告和安全建议,就会知道这明显不是事实。例如,年月,Todd Sabin在Bugtraq邮件列表上宣布,他发现了一个Windows NT的SYSKEY缺陷,而这个缺陷就是在没有源码的情况下(众所周知,微软不提供源代码),利用反汇编器发现的。实际上,大多数黑客们在破解程序时并不一定需要有源代码。
二、开放的就是不安全的
因为对大多数人来说,安全指的就是隐藏的、秘密的、不开放的。在加密学中有一句谚语:一个加密算法的安全不应当依赖于它是秘密的。历史证明,秘密的加密算法终究会被破解。现在的加密算法(如AES)大都是公开的,而其安全强度依赖于所用密钥的长度。这句话同样可以应用于一般的安全软件。算法可以被人采用反向工程攻破,协议可以通过分析技术去解析。隐藏的和秘密的东西最终会被发现并公布于众。因此,靠封闭和隐秘达到安全的目的,在很大程度上可以说是不可能的。
三、开放代码没人注意
有个例子,在PGP 2.6发布以后,有人就在Bugtraq邮件列表上宣布,在检查代码时发现,其中一个随机数生成器中有一个"臭虫"。这个错误很细小,在进行异或操作的代码中,却使用了赋值运算符号(=)。这表明,"即便代码开放了,也没有人会真正去检查"的想法是站不住脚的,在开放源码模型中,这样细小的错误都能被发现,所以说,严重错误或后门不被发现的可能性极小。
四、开放源码中可放置后门
这在理论上是成立的,但是如何在其中放置后门或陷阱?因为开放源码软件使用代码控制系统来管理代码树,而且有许多人在检查和分析代码,更重要的是,代码本身意味着作者的个人名誉。谁愿意冒险在开放的代码中放置后门而丧失个人名誉和声望呢? 对比而言,封闭源码的软件中更容易放置后门或者陷阱,在Windows操作系统中发现的NSA密钥即是有力的证据。
开放源码可以带来安全
封闭源码软件并不比开放源的软件的安全性好,相反,开放源码软件更有能力和潜力提供更好的安全,有以下例子证明:
● openBSD,目前世界上最安全的操作系统之一,是开放源码的项目。它是BSD Uinx的一个分支,安全是它的主要设计目标,它是在NetBSD的基础上,花了几十个人年的时间审查代码形成的。更为重要的是,它在缺省安装方式下,三年中从未出现过一个远程漏洞。
● Linux,这个信息时代的软件骄子,在年就已经占领了%的服务器市场。已经广泛应用在像Yahoo这样的性能要求较高的站点上,并且已经得到了IBM、HP等大厂商的明确支持。
事实表明,开源软件比之封闭软件更具有稳定性和安全性。而且,开放源代码还会带来如下好处:
一、开放代码有助于快速修改错误
由于开放代码软件会得到世界上成千上万的开发者的审查,所以发现并修正它们的错误的时间很快。国外有人对Linux、Windows NT、Solaris三个操作系统做过统计,从发现其中的错误直到错误得到修正,不同的软件开发商所花的平均时间如下:
软件开发商 red hat microsoft sun
软件名称 linux windows NT solaris
改错平均时间 天 天 天
二、开放代码有助于改善代码质量
在典型的封闭开发项目中,开发者的个人责任和职业名誉是相对有限的,更重要的是,因为源码是封闭的,错误或失误可能会被开发者悄悄掩盖过去;相反,开源软件的开发者写的每一行代码都体现着自己的声望和名誉。混乱糟糕的代码会受到同行们的批评甚至讥笑。发布源码并让同行审查,这在封闭源码开发中是不可能的。
三、开源有助于促进安全代码开发技术
开放源码的编程者经常会就开发中遇到的问题交换想法和解决办法,他们乐于创新并实践有关代码安全的新理论,如果某个技术被发现有缺点,就会出现新的技术替代它,随着旧的安全性较差的代码逐渐被修正,新的代码的安全性逐渐得到改善;而在封闭开发中,软件的安全性可能会让步于商业利益。开发者们可能因为任务时间紧或是编程习惯等因素,而不重视采纳或创造新的安全代码开发技术。
开放源码并非百分百安全
以上这些并不说明开放源码就可以解决安全问题了,开放源码模型也有不足之处。
打补丁 ≠ 安全
有人认为,只要我们开放源代码,并对软件不停地审查代码和修改漏洞,最终这个软件会变成绝对安全的。显然,这种看法有失偏颇,因为它把软件看成是一个静止不变的事物。实际上,软件是不断进化的,是动态发展的。通过调查Java的安全漏洞情况,我们可以看出,发现的安全漏洞会被修正,但是随着功能的增加,又会引进新的安全漏洞,显然只依赖于对软件打补丁,是达不到安全目的的。
多眼球效应 ≠ 安全
从安全角度来看,开放源码软件的一个主要好处是"多眼球效应",即众多的开发者可以审查代码,从而较快地发现和修改其中的"臭虫"。但是,发布源代码并不意味着就可以去除所有的"臭虫",而且,即使经过广泛审查的开源软件也可能存在重要的未被发现的"臭虫"。例如,被发现存在缓冲区溢出问题 的Wu-ftp(一个文件传输工具),它在公布之前,实际上已经由程序高手审查了它的代码。另外,单纯依赖不相干的外部人士检查安全相关的代码会带来很多问题。例如,在某些情况下,第一个发现错误的人可能不作声张,而把这个错误用于不良甚至是破坏性的目的。
开放的安全模型
安全系统不应当依赖于源码封闭,而且单纯的开放源码也不是万能良方,那么怎样才能达到安全目的呢?我们建议构建如下的开放安全模型:开放安全模型 = 开放的设计 + 安全代码技术 + 开放的源码 + 市场激励机制
开放设计
现在的信息发展趋势是系统体系结构具有高度可扩展能力。如果缺少安全功能设计,与现存的错误所带来的攻击相比,可能会导致更多的攻击。例如Web浏览器支持插件(plug-ins),因为通过开放设计,可以让同行们对设计进行审查,利用形式化理论,错误假设方法,以及阅读设计文档,可以发现设计中存在的错误,这是开发安全系统和软件的一个非常重要环节。
安全代码技术
现在来看,计算机紧急事故反应小组(CERT)发现的多数错误都是由缓冲溢出问题引起的,因为好多软件是由C语言 + glib C库编写的,而它们提供的一些特性和函数都存在有安全漏洞。事实上,使用具有类型纠正检查特性的编程语言(如C++)即可防止此类错误。使用支持例外处理的现代编程语言也可以去除许多因为竞争条件导致的错误。
市场激励机制
国外曾经有所大学在国际互联网上作过安全评价试验,他们开放软件源码,但是后来并没有得到任何软件安全特性的反馈。这也说明了在开放源码模型中写代码对大多数人来说是很有趣的,但是读别人的代码则相反,枯燥乏味。开源模型中缺乏非开源模型中所具有的经济激励机制,如何吸引人来审查代码呢?这就要让市场激励机制起作用,一个比较好的办法是花钱雇人读代码。
主流的开源源码是什么意思
开源源码是开源源代码,开放源代码也称为源代码公开,指的是一种软件发布模式,一般的软件仅可取得已经过编译的二进制可执行档,通常只有软件的作者或著作权所有者等拥有程序的原始码,有些软件的作者会将原始码公开,称之为源代码公开,但这并不一定符合开放原代码的定义及条件,因为作者可能会设定公开原始码的条件限制,例如限制可阅读原始码的对象、限制衍生品等。
从发行角度定义的开源软件必须符合如下条件:
自由再发行;程序源代码程序必须包含源代码必须允许发行版在包含编译形式的同时也包含程序源代码;派生程序,许可证必须允许更改或派生程序,必须允许这些程序按与初始软件相同的许可证发行;作者源代码的完整性;无个人或团体歧视;许可证发行;许可证不能特制某个产品;许可证不能排斥其他软件;UNIX ,一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统。