其他相关系统和组织

其他相关系统和组织
  自由使用和免费是FreeBSD的特征,在英文里都可以使用 “free” 来表示。这表
示使用者不仅仅可以免费使用这个系统,还可以对软件进行适合自己需要的改动,并能
够影响这个软件的发展等等,这正是free这个词更深一层的含义。

  支持自由软件的人通常认为,每个计算机的使用者都有自己特定的需要,不可能有
一个包罗万象、适合所有需求的软件系统。因此软件开发者和系统管理员希望了解软件
内部的情况,以便可以对软件进行定制和扩展。而商业软件只提供软件的二进制代码,
将软件内部的操作完全封闭起来,使用者就丧失了对软件的主动权。另外,任何软件产
品都存在各种BUG,商业软件的使用者在遇到软件产品的这些问题时,就只能被动的等
待厂商的补丁程序,整个软件系统不得不停顿或冒一定的风险继续使用。第三,计算机
的使用者并不会完全信赖商业软件,某些软件厂商会故意在软件中加入恶意代码,或加
入某种未公开的后门,对使用者造成危害。即使这些软件中的后门或恶意代码是打着防
止盗版、提供更方便的功能等旗号加入的,但也可能被偶然触发,危害使用者的利益。
而在提供软件源代码的软件中,就不会存在这种恶意的行为。

  这些问题对于一个普通用户或者不重要,但对于一个较大的系统或要求较高安全性
的系统中,就能表现出重要性了。支持自由软件的人认为,如果一个软件提供了源代
码,那么使用者就能根据情况自己修改或请他人修改软件,从而适合自己的最终需要,
并修正系统中因为有意或无意导致存在的问题。当前,开放源代码已经得到越来越多的
计算机使用者和厂商的认可,他们组成了开放源代码组织(Open Source),来进一步
推动这个思想。

  另一方面,由于某些种类的商业软件中不存在竞争,垄断的结果就造成软件的价格
昂贵,使得这些软件不是任何有需要的人都能够用得起的。而软件最大的价值是被人使
用,因此有很多人认为软件开发者要允许别人使用他的软件,应该从软件服务中获得收
益,而不是从软件本身中谋取暴利。他们认为计算机应该属于大众,而不应该由某些公
司垄断。因此这些崇尚自由软件的人员就想为所有用户开发一整套系统,使用户在现有
商业软件之外还可以进行选择,而不至于必须为商业软件支付额外的费用。这些人包括
FreeBSD的开发人员、Linux的开发人员、GNU计划的开发人员以及其他众多的自由软件
开发者,他们开发的软件构成了计算机领域内多姿多彩的一面,使得即使不使用任何商
业软件,使用者也同样能够在计算机上以更好的性能完成所有的工作。


GNU's Not Unix

GNU不是Unix,采用这种递归方式定义的GNU计划是由Richard Stallman提出的,他建立
自由软件基金会(FSF)并提出GNU计划的目的是开发一个完全自由的,与Unix类似但功
能更强大的操作系统,以便为所有的计算机使用者提供一个功能齐全,性能良好的基本
系统。GNU HURD为GNU操作系统的内核,但是当前还没有正式发布,仍处于测试阶段。
很多人使用Linux内核和GNU的应用软件组成了GNU/Linux系统。右图为GNU的标志。
  FSF开发了大量的自由软件来达到这个目的,这些软件与Unix上原有的软件功能相
同,但由于GNU开发软件的时候硬件的处理能力更强了,因此GNU软件充分利用计算机的
硬件能力,比Unix中的同样的软件功能更强,因此非常流行。这些软件在GNU通用公共
许可的保护下允许任何人免费使用和传播(但必须同时提供源程序),因此被大量的用
在其他的Unix中,FreeBSD上也提供了很多GNU软件。

  Stallman创造了一个词copyleft,由于通常意义上的版权copyright是用来限制别
人在没有许可的条件下不能使用和传播软件,而copyleft则鼓励任何人可以使用和传播
软件。copyleft限制妨碍使用和传播GNU软件的行为,例如不提供GNU软件的源代码。然
而copyleft与copyright并不冲突,因为 copyleft是针对软件的传播者而非针对最终使
用者的。GNU软件必须使用copyleft保护,限制将GNU软件本身用于牟利目的,而其他软
件仍然可以使用copyright保护版权不被侵犯。Stallman进一步使用GNU 通用公共许可
来详细阐述copyleft的观念,要求传播GNU软件必须同时传播其源代码。由于GNU通用公
共许可十分流行,因此很多非自由软件基金会的自由软件也使用GNU通用公共许可来保
护自己软件,不被商业公司用于获利。

  GNU软件许可相当宽松,有很多公司利用GNU软件进行商业活动,但只要同时提供了
GNU软件的源代码,就没有违反GNU软件许可。

  FreeBSD本身是在BSD许可的保护下,BSD许可权与GNU通用公共许可略有不同,一些
方面的限制甚至更为宽松。GNU通用公共许可要求传播(包括销售)任何符合GNU软件应
该包括源代码,反对利用保守GNU软件的源代码的方式牟利,而BSD许可则允许以二进制
形式发布软件,对于某些不打算公开源代码的商业运用并没有进行限制。


GNU/Linux

  FreeBSD并不是唯一的免费 “Unix” 操作系统,也不是最流行的Unix系统,这个
荣誉属于Lin ux。这主要由于Linux出现得早两年,那时BSD的源代码还受AT&T许可权的
限制,不能自由获得,而I ntel的32位处理器386的普及已经使Internet上诸多Unix爱
好者对PC平台上的免费Unix系统提出了需求,Linux应时而生。近来在Netscape等商业
公司的倡导下,Linux得到众多商业公司的支持,无形中成为了反Microsfot联盟的一杆
旗帜,声势更为浩大。

  Linux是由芬兰人Linus Torvalds编写的Unix兼容系统。由Linus Torvalds 负责核
心开发和维护,其他组织和商业公司负责将Linux的核心和应用程序组织在一起发布,
由于大部分程序为GNU软件,因此更严格的说Linux应该被称为GNU/Linux。当前流行的
Linux版本有slackware 3.6 ,Debian 2.0,RedHat 5.1等。

  Linux和FreeBSD同为英特尔平台上的Unix操作系统,因此有很多相似之处。几乎所
有的自由软件都同时支持Linux和FreeBSD,因此在应用方面他们也很相似。但Linux和
FreeBSD也有相当大的不同之处,可以说各具特色。

  从历史渊源上讲,FreeBSD继承了BSD Unix的代码,因此代码相当成熟和稳定。而
Linux是一个全新的系统,是遵循POSIX规范开发的一个独立操作系统,但又提供了与
BSD Unix或Unix System V的兼容性。因此Linux完全没有受到1992年的AT&T诉讼的影
响,结果成为了最流行的自由操作系统。虽然今天那次法律纠纷已经解决,4.4BSD
Lite的代码可以自由获得,但FreeBSD的使用者仍要少于Lin ux的使用者,FreeBSD的使
用者多数为网络和计算机专业人士,普及程度较低。

  出于这个历史渊源的原因,FreeBSD是一个完整的系统,从系统核心到系统提供的
程序均来自BSD Uni x,部分GNU软件是用于代替BSD Unix中的一些老版本软件。而
Linux仅仅只是一个操作系统的内核,其应用程序大部分为GNU软件,然后由不同的组织
或个人将这些GNU软件与Linux内核整合在一起的。因此就存在多个不同的Linux版本,而
且不同的Linux版本使用不同的组合方式,因此各种Linux版本之间有很大的差异,并且
可以预计这些版本会随着发展进一步增大彼此的差异。而FreeBSD的版本比较整齐清
晰,只有一个FreeBSD版本。

  通常FreeBSD更关心稳定性,而Linux具备的各种新特性更多。由于Linux得到了更
多的商业公司支持,因而Linux下的商业软件也更多。但是这些商业软件均可以通过
FreeBSD对Linux执行文件的支持,也能够运行在FreeBSD上。这个不同主要是由于Linux
和FreeBSD的开发过程的差异造成。

  虽然FreeBSD和Linux的开发过程都是非常开放的方式,每个开发者独立进行自己的
工作,通过Inte rnet来互相交流。任何对系统开发有兴趣的人都能贡献新的想法,并
组建一个开发队伍或加入现有开发队伍将自己的想法实现。但是FreeBSD与Linux开发方
式的不同是,FreeBSD有一个开发者组成的核心小组(FreeBSD core team)对整个
FreeBSD负责。任何人都可以利用FreeBSD提出自己的开发计划,但只有Free BSD核心小
组认为这个计划对整个FreeBSD发展有益,这个计划才能列入FreeBSD计划本身。所有的
Free BSD开发者共享同一个源代码树,使用并发版本维护工具CVS进行维护。有了
FreeBSD核心小组从整体上规划Fr eeBSD,并邀请其他开发者加入核心小组,因此
FreeBSD显的更简洁和干净,版本发展也比较稳定。而Linux 仅由Linus对内核进行维
护,任何人都可以组织自己的计划,贡献自己的代码,没有一个统一的源代码树,只是
在最后由 Linus进行整合和发布正式内核。由于没有严格的控制,并且Linux的开发者
很多,因此Linux中虽然有更多的新特性,却显得略为杂乱,并且有些新特性的代码没
有经过时间验证,可能存在有问题。

  一个新功能没有进入FreeBSD正式版本的原因很多,有的是由于这个功能不够成
熟,有的是由于核心小组认为这个特性意义不大,还有的是因为正式内核已经有类似功
能,或者由于专利或版权问题(例如,该软件的作者不打算让该软件成为自由软件),
使得十分成熟的功能也不能被列入正式发行的版本。

  由于Linux和FreeBSD互为竞争对手,在Internet上关于Linux和FreeBSD的争论很
多,然而这种争论一般不会得到什么明显的结果。事实上他们都能完成各种应用需求,
但各有自己的侧重点,至于那种系统最适合自己,需要根据具体情况而定,使用者的个
人喜好也是影响选择的一个重要因素。一般FreeBSD的使用者也曾经(或同时)是Linux
的使用者,然而有Linux的使用经验对学习和使用FreeBSD也有不少帮助。只有竞争才能
促进发展,Linux和FreeBSD不但是竞争的关系,也是相互学习的关系,只有如此各自才
能不断发展。

  在作者个人的使用经验中,FreeBSD仅有过一次崩溃,并且这种崩溃不是随机出现
的,其原因是使用了所有优化选项来编译内核,编译器某项优化造成了内核的BUG,结
果就在执行某项操作时就被触发。在降低了优化级别之后,问题就消失了。因此这个问
题应归结为编译器的问题而非内核的问题。在Linux中,问题更为严重一些,过于求新
求功能的多样性,使得系统崩溃更频繁,并且很多系统崩溃无法找到原因。

  注意:系统崩溃和系统死锁不同,一些情况下一些应用软件死锁会造成键盘或显示
没有响应,然而仍然可以通过网络或其他终端设备登录进系统杀死死锁进程。例如在
FreeBSD下执行Linux的X Server时,进行切换虚拟控制台的操作就会导致键盘死锁。

  当前Linux的一个发展热点是各个商业公司的参与,这的确丰富了Linux下的软件。
然而另一方面,商业公司也试图把专有设计引入Linux,将原有开放的环境变为商品化
的环境,以便从中牟利。当前不同版本的Linux之间的差异已经相当大了,很多人已经
意识到了Linux面临的分裂危险,可以想象以后某个版本的Linux会与其他版本存在兼容
性问题。而FreeBSD有统一的源代码树,不存在分裂的问题。


其他BSD系统

  商业版本的BSD/OS也是一个非常优秀的操作系统,它是由原BSD Unix的部分开发人
员组成的BSDI 公司的产品。由于存在商业支持,因此在某些方面具备免费的FreeBSD不
具备的优势。例如某些硬件厂家不愿意公开自己的硬件资料(或者是有条件的公开),
因而使得FreeBSD无法支持他们的硬件,而他们可以为BSDI提供资料以供开发驱动程
序。一些不能理解自由软件、要使用FreeBSD不支持但BSDI支持的硬件,或对服务和技
术支持提出较高要求的使用者,可以选择使用BSDI。

  NetBSD和OpenBSD也是基于4.4BSD的自由Unix操作系统,可以算是FreeBSD的兄弟。
甚至在最初,NetBSD和FreeBSD的大部分开发者都完全相同,同样的开发者同时为两个
系统进行开发。而开发者和使用者都是将这两个系统作为BSD Unix在不同硬件平台的实
现来看待的,FreeBSD用于Intel平台,而 NetBSD用于多硬件平台,主要用于RISC工作
站硬件。随着两个系统的不断发展,两者逐渐相分离,而OpenBS D是从NetBSD分出的一
个分支。但FreeBSD是为个人计算机平台设计的,后来才尝试移植到其他平台上(已经
有 Alpha和Sparc芯片下的FreeBSD系统,但还不十分成熟),因此更适合个人计算机用
户,而NetBSD和 OpenBSD一开始就设计为能够运行在多系统平台上,包括各种RISC工作
站,因而NetBSD和OpenBSD的使用范围就更窄一些。

  以上这些BSD Unix系统的使用数量要少于FreeBSD系统。FreeBSD由于专注于Intel
平台,支持Intel平台上的硬件种类最多,并对易用性作了很大改善,因而使用范围更
广泛,是最常见的BSD Unix系统。但是由于这些系统同属BSD来源,在开发过程中常常
相互交流,因此使用方法和管理基本相同。在FreeBSD、N etBSD、OpenBSD之间进行选
择的决定性因素常常是安装BSD系统的硬件平台。

posted on 2004-08-26 10:50  笨笨  阅读(469)  评论(0编辑  收藏  举报

导航