一天一点学习Linux之开源软件及其相关组织
开源软件及其特点
开放源化码软件(Open Source Software, OSS)简称开源软件,是指一种公开源代码的软件。用户可以修改、使用、复制、分发软件的源代码。
开源软件的特点:开源软件一般是免费发布的,你可以在Internet上自由下载,用户无需缴纳License费用。开源软件由一个核心组织领导,通常由一个很大的社区在Internet上协作开发完成。这种“集市”式的开发模式使其通常有着比封闭源代码软件更高的质量。用户可以得到软件的源代码,更容易根据自己的特殊要求进行定制。开源软件的生命周期不依附于某个公司,因此有更强的生命力。
>GNU计划的发展
Richard Mathew Stallman(史托曼)在1984年发起的GNU计划,对于现今的自由软件风潮, 有着不可磨灭的地位。这个计划的目的是:建立一个自由、开放的Unix操作系统(Free Unix)。但是建立一个操作系统谈何容易啊?而且在当时的GNU是仅有自己一个人单打独斗的史托曼, 这实在太麻烦,但又不想放弃这个计划,于是聪明的史托曼干脆反其道而行,既然操作系统太复杂,我就先写可以在Unix上面运行的小程序。在这个想法上,史托曼开始参考Unix上面现有的软件,并依据这些软件的作用开发出功能相同的软件,且开发期间史托曼绝不看其他软件的原始码, 以避免吃上官司。后来一堆人知道免费的GNU软件,并且实际使用后发现与原有的专利软件也差不了太多,于是便转而使用GNU软件,于是GNU计划逐渐打开知名度。但是能见度还是不够,这时史托曼又想:不论是什么软件, 都得要进行编译成为二进制文件(binary program)后才能够执行,如果能够写出一个不错的编译程序,那不就是大家都需要的软件了吗? 因此他便开始撰写C语言的编译程序,那就是现在相当有名的GNU C Compiler(gcc)!C语言编译程序版本众多,但都是专利软件, 如果他写的C编译程序够棒,效能够佳,那么将会大大的让GNU计划出现在众人眼前!
但开始撰写GCC时并不顺利,为此,他先转而将他原先就已经写过的Emacs编辑器写成可以在Unix上面跑的软件,并公布原始码。Emacs是一种程序编辑器,他可以在用户撰写程序的过程中就进行程序语法的检验,此一功能可以减少程序设计师除错的时间! 因为Emacs太优秀了,因此,很多人便直接向他购买。
此时因特网尚未流行,所以,史托曼便借着Emacs以磁带(tape)出售,赚了一点钱 ,进而开始全力撰写其他软件。并且成立自由软件基金会(FSF, Free Software Foundation),请更多工程师与志工撰写软件。终于还是完成了GCC。此外,他还撰写了更多可以被呼叫的C函式库(GNU C library),以及可以被使用来操作操作系统的基本接口BASH shell! 这些都在1990年左右完成了!
到了1985年,为了避免GNU所开发的自由软件被其他人所利用而成为专利软件, 所以他与律师草拟了有名的通用公共许可证(General Public License, GPL), 并且称呼他为copyleft(相对于专利软件的copyright!)。
在这里,必须要说明的是, 由于有GNU所开发的几个重要软件,如:Emacs、GNU C (GCC)、GNU C Library (glibc)、Bash shell造成后来很多的软件开发者可以藉由这些基础的工具来进行程序开发, 进一步壮大了自由软件团体。不过,对于GNU的最初构想 『建立一个自由的Unix操作系统』来说,有这些优秀的程序是仍无法满足, 因为,当下并没有自由的Unix核心存在,所以这些软件仍只能在那些有专利的Unix平台上工作,一直到Linux的出现…
1984年创立GNU计划与FSF基金会的Stallman先生认为,写程序最大的快乐就是让自己发展的良好的软件让大家来使用了, 而既然程序是想要分享给大家使用的,不过,每个人所使用的计算机软硬件并不相同, 既然如此的话,那么该程序的原始码(Source code)就应该要同时释出, 这样才能方便大家修改而适用于每个人的计算机中呢?这个将原始码连同软件程序释出的举动,就称为自由软件(Free Software)运动。
此外,史托曼同时认为,如果你将你程序的Source code分享出来时,若该程序是很优秀的,那么将会有很多人使用, 而每个人对于该程序都可以查阅source code,无形之中,就会有一群人帮助除错, 这支程序将会越来越壮大,越来越优秀。
而为了避免自己的开发出来的Open source自由软件被拿去做成专利软件, 于是Stallman同时将GNU与FSF发展出来的软件,都挂上GPL的版权宣告。这个FSF的核心观念是:版权制度是促进社会进步的手段, 版权本身不是自然权力。
为什么要称为GNU呢?其实GNU是GNU’s Not Unix的缩写,意思是说,GNU并不是Unix啊!那么GNU又是什么呢? 就是GNU’s Not Unix嘛!…..如果你写过程序就会知道,这个GNU = GNU’s Not Unix可是无穷循环!
另外,什么是Open Source
相关新闻>>
- 发表评论
-
- 最新评论 更多>>