涂抹MySQL--第1章 开源运动与开源软件MySQL - 1.1开源软件的故事(2)

1.1.1 GNU 说,我代表着一个梦想

GNU的全称是Gnu's Not UNIX,看名称就知道与UNIX 脱不开关系,事实也确实如此,GNU 不管是形式上还是实际上都与UNIX 有很大的关联。

话说甭管什么样的设备,如大型机、中型机或小型机,对于终端用户来说,要想操作它都离不开操作系统。而且在当时,操作系统并不仅仅是内核,还包括编译器、电子邮件、各类常用工具等,那会儿UNIX 占据着主流地位,可是当商业软件的浪潮袭来,UNIX 开始要收费了(而在之前则是免费发布甚至开放源码的,由此还产生众多UNIX 发行版,比如著名的BSD 系统)。

源码不再开放,大家不能再随意改写,使用也要受诸多许可限制。于是Stallman 立下宏愿,要推出一套Free 的系统(这里提到的Free,意义可能跟大家的理解不同,后面会阐述这方面的背景)。

开发一套完整的操作系统是项极其宏大的工作,单单实现它就已经很不容易了,开发出来还要有人愿意用,这就更有难度了。君不见微软那么大势力,投入这么多资源搞了Windows Phone,各大手机厂商还不是该用安卓用安卓,用iOS 的是iPhone。考虑到在当时UNIX 系统占据的主流地位,为了能够让UNIX 用户使用GNU 时快速上手和平滑过渡,新系统不仅要Free,还得尽可能地兼容UNIX。当然这个兼容只是两者看起来像,实质还是有差异的,就如同WPS 为了占领市场,也兼容微软Office 的文件格式,但它跟MicrosoftOffice 完全是两套系统一个道理。

Richard Stallman 是个理想主义者,但他同时也是个实干派,即使那会儿没有“总理”对他谆谆教诲,他也知道仰望星空,脚踏实地。为了发展这个类UNIX 的操作系统,RichardStallman 以及由他发起的FSF,开始收集及开发组成系统的各种必备软件,包括库、编译器、调试工具、编辑器等,准备工作做了很多,输出的各类软件也不少,但是系统内核的开发较为缓慢。最初,他们开发出了一套内核,名叫GNU HURD,但是并不太理想,直到一位芬兰的大学生—Linus Torvalds,开发出Linux(最初名叫Freax),他们才算具备一个基本可用的底层环境,等到1.0 版本的Linux 正式发布时,时间的指针已经指向了1994年。这期间波折很多,细节这里不详细阐述,推荐两部影片—代码和操作系统革命,从中可以看到一些有意思的故事。

那么Linux 和GNU 有什么关系呢?简单来讲,Linux 是操作系统内核(并不是一个完整的系统哟),上面运行着众多GNU 程序(GNU 程序如今不仅运行在Linux 环境上,UNIX/Windows 平台上也都有),它们共同组合出一套可用的系统,因此FSF(尤其是RichardStallman 本人)将这套组合定义为GNU/Linux。只是这个命名存在争议,有一部分Linux发行版,比如Debian 采用了“GNU/Linux”的说法,但更多企业以及开发人员还是直接称其为Linux。

关于名称,我个人觉着GNU 项目发展到现在,无需再用什么来为其正名,它的存在本身就已经代表着影响力和成功。提及这段历史,也是希望大家以后见到或者跟人说起GNU/Linux 或是Linux 时,心中明白它们指的都是同一个东西。

1.1.2 FSF 说,兄弟我顶你

FSF(Free Software Foundation,自由软件基金会)是个民间的非营利性组织,于1985年由Richard Stallman 发起和创建,致力于推进和推广自由软件(Free Software)的发展和传播。

俗话说,钱不是万能的,但没钱是万万不能的。尽管高呼着自由的口号,但毕竟不比在中国做慈善项目来钱那么容易,宣传需要成本,推广需要费用,GNU 项目加入者逐渐增多后,项目的正常运作也是需要银子的,甚至某些GNU 的开发者也需要资助。

为了寻求资金上的支持,成立基金会也就成为必然(总不能以Richard Stallman 的名义直接要求捐款吧,实话实说,Stallman 的主要收入来源还是四处演讲的酬劳)。自由软件基金会接受捐助,不过也有一部分收入是来自销售与自由软件相关的物品,比如销售刻录有自由软件(源码及二进制程序)的光盘,提供技术服务的收入等。

1.1.3 兄弟,你是“自由软件”吗

注意,这里说的是“自由”软件,而非“免费”软件。有些朋友看到Free Software 就直译为免费软件,这是不对的,也与Richard Stallman 所倡导的Free 本质相去甚远。同一个Free,不一样的理念,大家要提高思想境界,不能动不动就想money。

免费的软件不一定是自由的,自由软件也不一定都免费。这里所说的自由软件,必须开放源代码,可以被自由地使用,不受限制地复制、研究、修改和发布。之所以做这种设定,需要结合传统闭源的商业软件现状来谈起。

提 示:自由软件是开源软件(Open Source)吗?先留个问号,后面再来阐述这个话题。

在20 世纪80 年代初期,就当时的情况来看,微软软件帝国的种子才刚发芽(当时仍是UNIX 平台占主流,Intel x86 架构的普通PC 尚属新生事物),但很多软件都已经是私有的,并不开放源代码,用户使用时还有诸多的限制。比如说一份软件只能在同一台计算机上使用,如果想在不同的计算机上使用,可能就得额外付费;有些软件的授权还限制了使用时间,到期后必须另缴费用;甚至有些软件连升级都是需要收费的;至于商业软件的源代码,这可是他们的核心资产,敢打他们的主意(逆向工程)就是犯罪。我所说的这些,大家应该并不陌生,因为这些直到现在我们也仍在亲身经历。

前面提到的几个问题还好处理,都是花钱就能解决的事。俗话说能用钱解决的都不是问题,如果花钱也解决不了,那才是麻烦大了。比如说,软件的某个功能与实际需求有异,想进行定制化开发,通用软件企业哪会管个体的需求,即便运气好,有大批用户都有此类需求,那么商业软件最快也是在下个版本才会响应,想自己改改连门都没有啊!再者,商业软件都是逐利而为,当软件销售不畅,或者前景不佳时,开发者有可能放弃维护,甚至企业直接倒闭,届时软件的使用者再遇到问题,又能找谁去?

Richard Stallman 所倡导的自由软件,核心就在于程序必须开放源代码,同时授予用户各种权利(与此相反,闭源软件几乎不会授予用户任何权利,仅有的使用权还有限制条件),允许对软件进行修改和再次发布。任何人都可以根据实际需要改进程序,并且可以将修改后的程序再发布出来,供其他有需要的人下载和使用。不过在发布时,除了二进制程序,还必须提供源代码,甚至在发布时只需提供源代码,二进制程序都可以不提供(用户拿到源码后自行编译)。这种设定完全基于Stallman 的理想,就是为了让用户在软件使用过程中完全自由。

可是,要怎么保证用户使用、修改和分发自由软件的自由呢?如何保证修改后的软件再次发布时,仍然遵守开放源码等各方面的要求?不仅GNU 项目下的自由软件有这个问题,实际上在20 世纪80 年代初,并非只有Stallman 独身反抗闭源的商业软件,还有其他“同路人”在做类似的事情,有些开发者会在开放自己的程序源代码时,进行相应的说明,以免由此衍生出的程序代码被封闭。但对于GNU 项目来说,面临的不是几个软件,如前面介绍GNU 时所说,这是一整套解决方案,包括各种各样的程序,每个程序各自声明相应权利,针对性太强,覆盖范围有限,具体执行也有问题。针对这些情况,Richard Stallman为GNU 项目撰写了GPL 授权协议。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7607759/viewspace-1176375/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7607759/viewspace-1176375/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值