BlogJava 联系 聚合 管理  

Blog Stats

随笔分类(196)

随笔档案(209)

文章档案(4)

相册

CRM&ERP

Google

SOA


BlackStone SOA Group

gnu-head.jpg

Project GNU来自十年前,由Richard Stallman在网络讨论区的一篇文章http://www.cs.pdx.edu/~trent/gnu/begin发起的。Richard Stallman在这篇文章中明白的说明了他为什么要发起这个计划。这篇文章就是后来的GNU Manifesto。而Richard Stallman后来成立Free Software Foundation全力投入Project GNU的工作,是FSF的终身仪工。
GNU是GNU's Not Unix的缩写(GNU是一种大型的哺乳动物--牛羚),在Manifesto内Stallman提到UNIX虽然不是最好的操作系统,但是至少不会太差,而他自信有能力把UNIX不足的地方补全, 使它成为一个优良的操作系统, 就是名为 GNU 的操作系统。
GNU当初的策略就是先发展UNIX现有的程式。(因为确定GNU会是一个与UNIX相容的系统,而UNIX下的标准介面都已经蛮完备了,只要照著标准完成的程式,将来GNU Kernel完成后,立刻可以有所有 UNIX 的公用程式),因此会先有 emacs,gcc等utility出来。 其中gcc更是Project GNU能够自立更生的主力(不需要依靠Non-Free Software来产生/编译自己)。
gcc是FSF最有名的程式之一,目前是C,C++,Pbkectove C三合一的compiler。gcc的作法是有一个先导程式(front end),把C,C++,Objective C的语法转换成一个内部的型式(一个类似lisp的高阶组合语言,称为RTL,或者说先把高阶语言转成一个想像的CPU的组合语言),再由backend对这个虚拟组合语言进行最佳化,最后产生目的CPU(target)的组合语言码,如此架构下,只要写好一个新的语言的frontend,那么因为gcc backend己经支援不少架构,该语言立刻就可以在不少不同架构下的机器编绎执行。有了一种新的CPU,也只要完成把虚拟ASM转换成真正asm的部份,立即就有多种语言的最佳化编译器。除了C家族之外,gcc还有Fortran 90,ada9x,Pascal的frontend,其中Fortran是最晚问世的 frontend,版本号码0.5。
说到GNU就不能不说GPL。

GPL -- General Public License
GNU 的精神就是认为软体的源代码应该要自由流通,软体公司该做的,不应该是把源代码据为己有,赚取发行binary 的金钱,而是整合与服务的费用而已,因为源代码自由流通的软件才能让软件的品质提高,让软件设计师可以自由的与他人交换心得,不受智慧财产权的约束。但是现实的环境是恶劣的,为了怕有好利之徒把自由流通的软件占为己有,FSF制定的GPL,先依著作权法获得软体的智慧财产权,再透过GPL释放此权力给大众:只要你遵守GPL,不把源代码,以及你对源代码所作的修改据为己有,你就拥有使用GPL软体的权力。GPL的规定不怎么适用于Library(太严格),为了能够鼓励更多人使用GNU软件,FSF另外制定了LGPL--Library GPL,限制比较松一点。
GNU manifesto/GNU General Public License/Library GPL皆可在GNU mirror sites找到(其中GPL放在目录名为COPYING的文件内,LGPL则在COPYING.LIB内)。另外,FSF每年的1月与7月都会定期公布一份名为GNU bulletin的文件,说明FSF现况与动态。GNU bulletin电子版只公告在gnu announce上。

                                                  田晟
                                                2006-5-9
posted on 2006-05-11 21:07 BlackStone SOA 阅读(444) 评论(0)  编辑  收藏 所属分类: Thinking of IT

只有注册用户登录后才能发表评论。


网站导航: