GUN项目计划
Linux操作系统也被称为GUN/Linux,学习Linux操作系统,就不得不提GNU项目计划。
1984年,哈佛大学的学生Richard Stallman组织开发了一个完全基于自由软件的体系计划——GNU,并拟定了一份普遍公共许可(Gengeral Public License,简称GPL),后来被称为“公共版权”。GNU是“GNU’s Not Unix”的递归编写。这个项目的宗旨是试图创建一个与Unix系统兼容,但并不受Unix名字和源代码私有限制的操作系统和开发环境。也就是说,每一个人都可以在前人工作的基础上加以复用、修改或添加新内容,但必须公开源代码,允许其他人在这些基础上继续工作,以重现当年软件界合作互助的团结精神。
1985年,Stallman又创立了自由软件基金会(Free Software Foundation)来为GUN计划提供技术、法律及财政支持。当GNU计划开始逐渐获得成功时,一些商业公司开始介入开发和技术支持。
GNU项目为软件社区提供了许多Uinx系统上应用程序的仿制品。所有这些程序,即GNU软件都是在GNU通用公共许可证(GPL)的条款下发布的。下面是GPL条款下发布的一些主要的GNU的项目软件。
● GCC:GNU编绎器集,它包括主要的GNU项目软件。
● G++:C++编绎器,是GCC的一部分。
● GDB:源代码级的调试器。
● GUN make:Unix make命令的免费版本。
● Bison:与Unix yacc兼容的语法分析程序生成器。
● bash:命令解释器(shell)。
● GNU Emacs:文本编辑器及环境。
许多其它的软件包也是在遵守自由软件的原则和GPL条款的情况下开发和发行的,包括电子表格、源代码控制工具、编绎器和解释器、因特网工具、图形图像处理工具等。
Linux正是诞生在这样一个背景下,Linux自诞生之初便一直遵循“自由软件”的思想,正因如此,Linux才得以迅速健康的发展。1994年,Linus发布的Linux1.0便是按完全自由发布版权进行发布的。它要求所有的源代码必须公开,而且任何人均不得从Linux交易中获利。
但是后来他意识到这种纯粹的自由软件的方式并不利于Linux的发展,因为它限制了Linux以磁盘拷贝或者CD-ROM等媒体形式进行发布的可能,也限制了一些商业公司参与Linux的进一步开发并提供技术支持的良好愿望。于是Linus决定转向GPL版权,这一版权除了规定有自由软件的各项许可权之外,还允许用户出售自己的程序拷贝,并从中赢利。
这一版权上的转变对Linux后来的发展至关重要。此后,便有多家技术力量雄厚又善于市场运作的商业软件公司加入了这场原先完全由业余爱好者和网络黑客所参与的自由软件运动,开发出了多种Linux的发布版本,增加了更易于用户使用的图形界面和众多的软件开发工具,极大的拓展了Linux的性能与适用性,并有多家著名的商业软件开发公司开发了基于Linux的商业软件,如ORACLE、INFORMIX等。
多学一招:POSIX标准
POSIX(Portable Operating System Interface for Computing Systems,可移植性操作系统接口)是由IEEE和ISO/IEC开发的关于信息技术的标准。它的初衷是为了提高Unix环境下应用程序可移植性,即用于保证应用程序的源代码可以移植到多种操作系统上并正常运行。
这套标准于1980年由一个早期的Unix用户组(usr/group)在早期工作的基础上取得。该Unix用户组原来试图将AT&T的System V和伯克利的BSD系统的调用接口之间的区别重新调用和集成,从而于1984年产生了/usr/group标准。
1985年,IEEE操作系统技术委员会标准小组委员会(TCOS-SS)开始在ANSI的支持下责成IEEE标准委员制定有关程序源代码可移植性操作系统服务接口正式标准。
1988年9月,第一个正式标准制定成功并获得批准,也就是后来经常提到的POSIX.1标准。POSIX.1仅规定了系统服务应用程序编程接口(API),概括了基本的系统服务标准。
1989年,POSIX的工作被转移至IOS/IEC社团,由社团继续将其制作成ISO标准。
1990年,POSIX.1与已经通过的C语言标准联合,正式被批准为IEEE 100 3.1-1990和ISO/IEC 99 45-1:1990标准。
此后POSIX标准不断发展更新。1991~1993年间,正是Linux刚刚起步的时候,POSIX标准为Linux提供了极为重要的信息,使得Linux在标准的指导下开发,能够与绝大多数Unix系统兼容。