GNU,Linux,自由软件和开源软件

来源:互联网 发布:云端软件平台 win10 编辑:程序博客网 时间:2024/04/29 04:07
GNULinux,自由软件和开源软件
--学习笔记

        GNU最初和Linux是分开的,GNU是一个庞大的软件工程,是一个模仿Uuix的操作系统和工作于Uuix系统平台的软件开发计划,开发操作系统只是它的一部分,并且这个计划也在开发自己的操作系统内核,而linux是一个与Uuix兼容的操作系统内核,它的表现很好并且其作者在GPL协议下发布, 1992Linux与其他GNU软件结合,完全自由的操作系统正式诞生。该操作系统往往被称为“GNU/Linux”或简称Linux。(尽管如此GNU计划自己的内核Hurd依然在开发中,目前已经发布Beta版本),二者的结合应该是他们的宿命和他们与Uuix的渊源吧!

 

GNU计划

牛羚:GNULOGO

01

Richard Stallman:自由软件运动的精神领袖、GNU计划以及自由软件基金会的创立者

02

         GNU计划,又称革奴计划,是由Richard Stallman1983927公开发起的。它的目标是创建一套完全自由的操作系统。

         Richard Stallman最早是在net.Uuix-wizards新闻组上公布该消息,并附带一份《GNU宣言》等解释为何发起该计划的文章,其中一个理由就是要“重现当年软件界合作互助的团结精神”,因为在80年代,要使用一个主流的电脑,必须得到一个授权的操作系统,并且必须签署协议保证不和他人共享。“This is wrong,I am not going to live this way! Richard Stallman said。并且他对软件知识产权的观念产生了强烈的反感,他决定开发自己的操作系统,自己的软件,并鼓励他人分享,form a new community,这样就不会受知识产权所限制,他意识到这是他毕生要从事的事业,结果就着手制定的GNU计划,有了后来的只有自由软件基金会!

        GNU是“GNU's Not Uuix”的递归缩写。Richard Stallman 解释说GNU是一种hack说法,它意味着要开发的系统很像Uuix,但又是一个与Uuix完全不同的OS,由于Uuix是受保护的而无法共享代码,所以要重写一个新的替代系统来实施计划。与此同时加州大学伯克利分校的科学家也在开发他们自己的自由操作系统:Berkeley UuixBSD)不过它基于从AT&获得授权的Uuix内核。

         Uuix是一种广泛使用的商业操作系统的名称。由于GNU将要实现Uuix系统的接口标准,因此GNU计划可以分别开发不同的操作系统部件。GNU计划采用了部分当时已经可自由使用的软件,例如TeX排版系统和X Window视窗系统等。不过GNU计划也开发了大批其他的自由软件。为保证GNU软件可以自由地“使用、复制、修改和发布”,所有GNU软件都在一份在禁止其他人添加任何限制的情况下授权所有权利给任何人的协议条款,GNU通用公共许可证(GNU General Public LicenseGPL)。这个就是被称为“反版权”(或称Copyleft)的概念。

 

Linux

Tux:Linux官方的吉祥物

03

                        

Linus Torvalds Linux核心的作者

04

                

         Linux的历史是和GNU紧密联系在一起的,因此这个词的含义也很复杂。严格来讲,Linux这个词本身只表示Linux内核,Linux内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学读书时出于个人爱好而编写的,因它基于GPL并且这个操作系统内核写的很好,运行非常稳定,在1992Linux与其他GNU软件结合,所以本人倾向于Linux专指Linus写的内核。但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统(也被称为GNU/Linux),而基于这些组件的Linux软件被称为Linux发行版。所以称呼我们使用的基于linux内核的操作系统为XXX Linux发行版比较合适,严格的称呼当然会浪费些气力,呵呵呵!

 

自由软件:

 GNU计划的自由软件之标志

05

    自由软件,根据自由软件基金会的定义,是一种可以不受限制地自由使用、复制、研究、修改和分发的软件。这方面的不受限制正是自由软件最重要的本质,与自由软件相对的是非自由软件(proprietary software),也常被称为私有软件、封闭软件(其定义与是否收取费用无关)。要将软件以自由软件的形式发表,通常是让软件以“自由软件授权协议”的方式被分配发布(或是放置在公共领域),以及公开的软件原始码。 自由软件对全世界的商业发展有巨大的贡献。 从装饰性的绸带的制造者到从事研究的科学家, 自由软件使成千上万的人的日常工作更加便利, 为了满足用户的各种应用需要,它以一种不可思议的速度发展。自由软件的主要许可证有GPL许可证和BSD许可证两种。

    自由软件的英文为“free software”,“free”一词有“自由”、“免费”的双重含意,自由软件运动的创始人——理查德·斯托曼提供了以下的定义:‘自由软件的重点在于自由权,而非价格。要了解其所代表的概念,你应该将“自由”想成是“自由演讲”,而不是“免费啤酒”’。更精确的说,自由软件代表电脑使用者拥有选择和任何人合作之自由、拥有掌控他们所用的软件之自由。在GNU宣言(GNU Manifesto)中包含了斯托曼在一开始对自由软件使用定义的混淆。大部分的自由软件都是在在线(online)发布,并且不收任何费用;或是以离线(off-line)实体的方式发行,有时会酌收最低限度的费用(例如:工本费),而人们可用任何价格来贩售这些软件。然而,自由软件与商业软件是可以共同并立存在的︰因为禁止贩卖软件是违反了自由软件的定义。最早的开放源代碼(Open source)定义是在1998年创建,来自Debian的自由软件指引。当时大多数的开放源代碼软件同时也是自由软件,反之亦然。

 

开源软件:

开放源代码发起者Bruce Perens 

06

 

开放源代码运动的主要理论家,开放源代码促进会主要创办人之一:

Eric Steven Raymond

07

    开放原始码的定义由Bruce Perens(曾是Debian的创始人之一)提出,指的是一种软件散布模式。一般的软件仅可取得已经过编译的二进制可执行文件,通常只有软件的作者或著作权所有者等拥有程序的原始代码。有些软件的作者会将原始码公开,此称之为“原始码公开”,但这并不一定符合“开放原始代码”的定义及条件,因为作者可能会设定公开原始码的条件限制,例如限制可阅读原始码的对象、限制衍生品等。

    自由软件仅是开放原始代码软件的一种,也就是自由软件的定义较开放原始码更为严格,并非开放原始码的软件就可称为自由软件,要视该软件的授权条件是否合乎自由软件基金会对自由软件所下的定义。

 

u       自由再散布(Free Distribution):允许获得原始码的人可自由再将此原始码散布。

u       原始码(Source Code):程序的可执行档在散布时,必需以随附完整原始码或是可让人方便的事后取得原始码。

u       衍生著作(Derived Works):让人可依此原始码修改后,在依照同一授权条款的情形下再散布。

u       原创作者程序原始码的完整性(Integrity of The Authors Source Code):意即修改后的版本,需以不同的版本号码以与原始的程序码做分别,保障原始的程序码完整性。

u       不得对任何人或团体有差别待遇(No Discrimination Against Persons or Groups):开放原始码软件不得因性别、团体、国家、族群等设定限制,但若是因为法律规定的情形则为例外(如:美国政府限制高加密软件的出口)。

u       对程序在任何领域内的利用不得有差别待遇(No Discrimination Against Fields of Endeavor):意即不得限制商业使用。

u       散布授权条款(Distribution of License):若软件再散布,必需以同一条款散布之。

u       授权条款不得专属于特定产品(License Must Not Be Specific to a Product):若多个程序组合成一套软件,则当某一开放原始码的程序单独散布时,也必需要符合开放原始码的条件。

u       授权条款不得限制其他软件(License Must Not Restrict Other Software):当某一开放原始码软件与其他非开放原始码软件一起散布时(例如放在同一光碟片),不得限制其他软件的授权条件也要遵照开放原始码的授权。

u       授权条款必须技术中立(License Must Be Technology-Neutral):意即授权条款不得限制为电子格式才有效,若是纸本的授权条款也应视为有效。

GNU/Linux

 

GNU/LinuxGNU计划的支持者与开发者,特别是其创立者Richard Stallman对于

一个以Linux闻名的类Uuix操作系统的称呼。由Linus Torvalds及其他人士开发的Linux并不是一个完整的操作系统,而仅仅是一个类Uuix内核。事实上,Linux一开始是以完成Minix内核的功能为目标,Linus想做一个“比Minix更好的Minix”。而GNU计划始于1984年,终极目标是完成一套基于自由软件的完整作业操作系统。到1991Linux的第一个版本公开发行时,GNU计划已经完成除了操作系统内核之外的大部分软件,其中包括了一个外壳程序(shell),C语言程序库以及一个C语言编译器。Linus Torvalds及其他早期Linux开发人员加入了这些工具,而完成了Linux操作系统。但是尽管Linux是在GNU通用公共许可证下发行,它却不是GNU计划的一部分。

正是由于Linux使用了许多GNU程序,Richard Stallman认为应该将该操作系统称为“GNU/Linux”比较恰当。有部分Linux套件,包括了Debian,采用了“GNU/Linux”的称呼。但大多数商业Linux套件依然将操作系统称为Linux。有些人也认为“操作系统”一词指的应该只是系统的内核,其他程序都只能算是应用软件,这么一来,该操作系统的内核应叫Linux,而Linux套件是在Linux内核的基础上加入各种GNU工具。一些人拒绝使用“GNU/Linux”作为操作系统名称的人认为:1)Linux朗朗上口;名字较短又好记;2)Richard Stallman直到1990年代中期,Linux开始流行后才要求更名。

        一直敬仰黑客思想,关注开源软件,把自己学习的东西总结下写在这里!
在与以微软为代表的软件厂商之外的世界,我们看到了计算机世界或者说程序设计领域的另一种思想,就是黑客那种自由和共享的哲学,从GUN工程到linux的开发,以及与此同时的开源软件和自由软件,就像看黑客帝国给人的启发一样,让我们看到了世界的另一片天空。
自由软件之歌结束本文:

The Free Software Song

Performed by The GNU.Stallmans
Lyrics by Richard Stallman

 


Hi,we're the GNU/Stallmans,and this is "The Free Software Song";


Join us now and share the software;


You'll be free,hackers,you'll be free;


Hoarders may get piles of money,


That‘s true,hackers,that is true.


But they cannot help their neighbors;


That's ain't good,hackers,That's ain't good.


That's ain't good,hackers,That's ain't good.


At our call,hackers,at our call,


We'll throw out those dirty licenses.


Ever more,hackers,ever more.


 

 

 
原创粉丝点击