说一说GNU软件是什么及GNU软件有什么用


说一说GNU软件是什么及GNU软件有什么用

文章插图
今天来说一下关于GNU软件是什么及GNU软件有什么用这方面的一些讯息,不少朋友对于GNU软件是什么及GNU软件有什么用这方面的信息颇感兴趣的 。小编今天就为此整理一些相关的讯息 , 希望对有需要的朋友有所帮助 。
【说一说GNU软件是什么及GNU软件有什么用】GNU 软件是通过 GNU 项目发布的软件,它是一种根据 GNU 软件包的 README 手册以及自由软件指南开发的软件 , 大多数 GNU 软件是免费分发的(copyleft),但不是所有的都这样,然而 , 所有的 GNU 软件必须是自由软件 。
GNU
简介
GNU 软件是 GNU 计划开发的软件,该软件可以充分利用计算机的硬件能力,比 Unix 中的同样的软件功能更强 , 因此非常流行,这些软件在 GNU 通用公共许可的保护下允许任何人免费使用和传播(但必须同时提供源程序),因此被大量的用在其他的 Unix 中,FreeBSD 上也提供了很多 GNU 软件 。
有一些 GNU 软件是由自由软件基金(Free Software Foundation)成员编写的,但大多数 GNU 软件是志愿者捐献的 。有些捐献软件是由自由软件基金免费分发 , 但有一些软件由作者享有版权 。
GNU 软件使用 copyleft 保护,限制将 GNU 软 件本身用于牟利目的 , 而其他软件仍然可以使用 copyright 保护版权不被侵犯 。Stallman 进一步使用 GNU 通用公共许可来详细阐述 copyleft 的观念,要求传播 GNU 软件必须同时传播其源代码 。由于 GNU 通用公共许可十 分流行,因此很多非自由软件基金会的自由软件也使用 GNU 通用公共许可来保护自己软件,不被商业公司用于获利 。
GNU 软件许可相当宽松,有很多公司利用 GNU 软件进行商业活动,但只要同时提供了 GNU 软件的源代码,就没 有违反 GNU 软件许可 。
发展过程
1983 年,理察·马修·斯托曼(Richard Stallman)创立了 GNU 计划(GNU Project) 。这个计划有一个目标是为了发展一个完全免费自由的 Unix-like 操作系统 。
GNU 大量的产生或收集各种系统所必备的元件,例如:函式库(libraries)、编译器(compilers)、侦错工具(debugs)、文字编辑器(text editors)、网页服务器(web server),以及一个 Unix 的使用者接口(Unix shell)——除了执行核心(kernel) 。
1990 年,GNU 计划开始在马赫微核(Mach microkernel)的架构之上开发系统核心,也就是所谓的 GNU Hurd , 但是这个基于 Mach 的设计异常复杂,发展进度则相对缓慢 。
2008 年,GNU 庆祝 25 岁生日,放出纪念短片 。
特点
可靠性
在 1990 到 1995 年期间,Barton r 和他的学生测试了 Unix 应用程序的可靠性 。每次 GNU 的应用程序的效用表现得相当领先 。他们测试了 GNU 和另外 7 个商业 Unix 系统 。通过随机的输入流,在使用基本的应用程序时,它们能使 40%(最坏的情况)的基本应用程序“崩溃(内核被破坏)或者中止(无限循环)” 。
这些研究者发现:商业版 Unix 系统故障率高达 15%到 43% , 与此形成鲜明对比的是,GNU 的故障率仅仅是 7% 。
Miller 说过:“在 1990 到 1995 年期间,比较的商业系统中有三个版本有了引人注目的改进,但是还是有重大的失败(GNU/Linux 基本应用程序仍然比商业系统有引人注目的好处) 。”
HTTP 头中有一个 Referer 字段 , 这个字段用以标明请求来源于哪个地址 。在处理敏感数据请求时,通常来说,Referer 字段应和请求的地址位于同一域名下 。以上文银行操作为例 , Referer 字段地址通常应该是转账按钮所在的网页地址 , 应该也位于之下 。而如果是 GNU软件 攻击传来的请求,Referer 字段会是包含恶意网址的地址,不会位于之下,这时候服务器就能识别出恶意的访问 。
这种办法简单易行,工作量低 , 仅需要在关键访问处增加一步校验 。但这种办法也有其局限性,因其完全依赖浏览器发送正确的 Referer 字段 。虽然 http 协议对此字段的内容有明确的规定,但并无法保证来访的浏览器的具体实现,亦无法保证浏览器没有安全漏洞影响到此字段 。并且也存在攻击者攻击某些浏览器,篡改其 Referer 字段的可能 。
添加校验 token
由于 GNU软件 的本质在于攻击者欺骗用户去访问自己设置的地址 , 所以如果要求在访问敏感数据请求时,要求用户浏览器提供不保存在 cookie 中,并且攻击者无法伪造的数据作为校验,那么攻击者就无法再运行 GNU软件 攻击 。这种数据通常是窗体中的一个数据项 。服务器将其生成并附加在窗体中,其内容是一个伪随机数 。当客户端通过窗体提交请求时,这个伪随机数也一并提交上去以供校验 。
正常的访问时,客户端浏览器能够正确得到并传回这个伪随机数,而通过 GNU软件 传来的欺骗性攻击中 , 攻击者无从事先得知这个伪随机数的值,服务端就会因为校验 token 的值为空或者错误 , 拒绝这个可疑请求 。
以上就是关于GNU软件是什么及GNU软件有什么用这方面的一些信息了 小编整理的这些讯息希望对童鞋们有所帮助