热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

GNU和Linux给GNU分裂分子上一堂历史课

 像Slashdot这样的论坛上常常有人在攻击GNU,他们的观点在我看来完全是缺乏历史知识和不尊重历史。当GNU倡导称Linux为GNU/Linux时,这些人声称GNU企图从Linus

 像Slashdot这样的论坛上常常有人在攻击GNU,他们的观点在我看来完全是缺乏历史知识和不尊重历史。当GNU倡导称Linux为GNU/Linux时,这些人声称GNU企图从Linus Torvalds 身上窃取荣誉,或者宣称GNU的所作所为有反商业的可疑动机。

我最后决定写下这篇文章,以避免出现更多的疑惑。

    下面是这些为数不多但大喊大叫的分裂分子必须牢记的一些简单事实:

    我们从GNU与Linux内核的关系开始说起:

    GNU的问世比Linus Torvalds开始从事后来成为Linux内核的工作要早得多,那时GNU早已创立构造OS所必需的一长列工具,包括像编译器、系统函数库之类的开发工具,像emacs 之类的编辑器,等等。像grep、ls和find等许多系统工具和命令也是源自GNU,至少它们当前的新生版本是这样。GNU项目的目标之一是替换常用的Unix工具,这儿所提的命令就属于这些工具。所有这些工具构成的代码量远比内核本身的代码量大,而内核则体现了GNU项目对于现在大家熟知的Linux现象的重要性。分裂分子应记住的另一个事实是,主动调整内核以配合GNU系统工作的正是Linus本人。而与GNU的紧密联系对于该内核在各方面的发展来说一直是相当重要的。Alan Cox这位最有前途的内核黑客之一说过,他开始钻研Linux内核而不是其他内核的原因之一在于Linux使用GPL许可证,他认为这要比BSD风格的许可证好。

    现在说说分裂分子宣称的GNU带共产主义性质并且反商业的问题。这个说法错得不能再错了。GNU几乎从一开始就通过销售作为GNU软件介质的磁带和CD-ROM以及印刷版的手册,基于自己开发的软件从事商业活动。他们还非书面地支持和鼓励以支持和/或开发自由软件为生的公司的创立,包括VA Research、Cygnus和Redhat.(最近RedHat和Cygnus宣布相互兼并。)以GNU许可证形式发行的软件改变了软件公司的商业运作方式,但并没有使得不可能做生意。从许多方面看,自由的GPL许可证形式的软件占主导地位的软件市场更体现了资本主义精神,因为它让善于做生意并且真正关心客户的公司受益,而不是让在技术的象牙塔上盘踞垄断地位的公司受益。后者与其说是现代资本主义的新生儿,到不如说是陈旧的重商主义体系的残余物。

    第三个批评的根据来自GNU不懈地大力提倡使用GNU许可证。这也许是在“开放源代码” 保护伞下推出的新的许可证近来引发的冲突的根源,但是我们看到,BSD倡导者正因强烈反对GNU许可证导致自己的系统缺乏群众基础而焦头烂额。

    GNU的批评者看问题的角度之一是,坚决强调GNU许可证会给自由软件引入太多的政治因素。对于他们我只能说,如果你对GNU许可证所体现的理想抱有怀疑,那就应该使用不是 Linux的另外某个OS,因为要不是这些许可证,也许不会诞生Linux OS,或者至少像她目前经历地那样得以广泛使用。不少公司正在尝试引入新类型的软件,这些软件的许可证将给当今遵循GPL的Linux系统以特殊的权力或优先考虑。有了这么多的尝试后,我可以相当自信地说,要是Linux使用像BSD许可证这样更为自由的许可证,商业公司就可能不会通过增加自己的专属特性来进行尝试,并在Unix取得竞争优势上取得成功。而我们都知道这已在市场上给Unix造成多大的危害。另一方面,要是Linux系统使用更为严格且不是copyleft的许可证,例如QPL或可怕的Sun许可证,那么对于大的软件开放者造成的限制就会更高,因为他们会感到自己不是在倡导一个给任何人以一定层次把玩平台的系统,而是在从一个发号施令者改换成另一个发号施令者,结果只能是另一个OS/2的命运。此外,这会使得Linux 的另一个成功因素即源代码共享几乎不可能。有些人看来忘记了,跟GNU许可证使得源代码可自由获取这一事实同样重要的是这些许可证所体现的copyleft原则。这与试图在Linux软件开发中作为一个大问题重新引入版权(copyright)的新出现的“开放源代码”许可证是背道而驶的。

    这么说来我是在积极倡导称这个OS为GNU/Linux了?不,实际上我个人并不称她为GNU/ Linux.我简单地称她为Linux,就像称Microsoft Windows为Windows一样。因此Stallman 和别人提倡使用GNU/Linux的说法时,你不应该攻击他们,相反应该像我那样把它作为警示物看待——它提醒大家GNU在让我们进入当今这个大家所期待的境界的过程中扮演着重要的角色。

    明白地说,我并不赞同Richard Stallman关于理想境界是所有软件都按照GPL原则发行的观点。我的观点是,我并不期待大家在任何细节上都赞同GNU和Stallman,确实如此,但是我的确期望乐意使用Linux的人们尊重并承认GNU在Linux社群中已扮演的而且将继续扮演的不可替代的角色


本文作者:

推荐阅读
  • mysql和php的关系理解(php技术和mysql怎么结合)
    本文目录一览:1、apachephpmysql他们是什么关系 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • Copyright(c)1985,1996,1998,2001,2002FreeSoftwareFoundation.Emacs指令通常包含有CONTROL键(有时候以CT ... [详细]
  • 本文详细介绍了GetModuleFileName函数的用法,该函数可以用于获取当前模块所在的路径,方便进行文件操作和读取配置信息。文章通过示例代码和详细的解释,帮助读者理解和使用该函数。同时,还提供了相关的API函数声明和说明。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • 本文介绍了在Linux中执行.sh脚本时出现/bin/sh^M: bad interpreter: No such file or directory异常的原因分析,并提供了两种解决方法:在Windows下进行编码格式转换,或在Linux中修改文件格式和执行权限。具体操作步骤也在摘要中给出。 ... [详细]
  • 第七课主要内容:多进程多线程FIFO,LIFO,优先队列线程局部变量进程与线程的选择线程池异步IO概念及twisted案例股票数据抓取 ... [详细]
  • 第四讲ApacheLAMP服务器基本配置Apache的编译安装从Apache的官方网站下载源码包:http:httpd.apache.orgdownload.cgi今 ... [详细]
  • 201720181 20155339 《信息安全系统设计基础》第六周学习总结
    2017-2018-120155339《信息安全系统设计基础》第六周学习总结教材学习内容总结控制转移:从ak指令到a(k1)指令的过渡。控制转移序列称为处理器的控制流 ... [详细]
  • oracle安装时找不到启动,Oracle没有开机自启是怎么回事?这一步骤很重要
    重启Oracle数据库重启Oracle数据库包括启动Oracle数据库服务进程和启动Oracle数据库两步,大家继续往下看。按照《【Oracle】什么?作为DBA&# ... [详细]
  • ANSI
    ANSI是什么编码?用Notepad创建一个文本文件text.txt,其默认编码格式为ANSI(乍看之下,还以为是ASCII ... [详细]
  • Emacs在minibuffer里的操作
    为什么80%的码农都做不了架构师?|Key|Description||--------------------------------------------- ... [详细]
author-avatar
ub皓祉
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有