精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>● FreeBSD>>《FreeBSD使用大全》第二版>>1.3 其他相关系统和组织

主题:1.3 其他相关系统和组织
发信人: sungang(笨刚)
整理人: sungang(2003-09-16 10:39:30), 站内信件
1.3 其他相关系统和组织

自由使用和免费是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系统,这个荣誉属于Linux。这主要由于Linux出现得早两年,那时BSD的源代码还受AT&T许可权的限制,不能自由获得,而Intel的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的使用者仍要少于Linux的使用者,FreeBSD的使用者多数为网络和计算机专业人士,普及程度较低。

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

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

虽然FreeBSD和Linux的开发过程都是非常开放的方式,每个开发者独立进行自己的工作,通过Internet来互相交流。任何对系统开发有兴趣的人都能贡献新的想法,并组建一个开发队伍或加入现有开发队伍将自己的想法实现。但是FreeBSD与Linux开发方式的不同是,FreeBSD有一个开发者组成的核心小组(FreeBSD core team)对整个FreeBSD负责。任何人都可以利用FreeBSD提出自己的开发计划,但只有FreeBSD核心小组认为这个计划对整个FreeBSD发展有益,这个计划才能列入FreeBSD计划本身。所有的FreeBSD开发者共享同一个源代码树,使用并发版本维护工具CVS进行维护。有了FreeBSD核心小组从整体上规划FreeBSD,并邀请其他开发者加入核心小组,因此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/OS
商业版本的BSD/OS也是一个非常优秀的操作系统,它是由原BSD Unix的部分开发人员组成的BSDI公司的产品。BSD/OS主要运行在intel 386平台上,在Internet服务器领域内占有一定的市场。

由于存在商业支持,因此在某些方面具备免费的FreeBSD不具备的优势。例如能够获得某些硬件厂家不愿意公开的硬件资料(或者是有条件的公开),因而FreeBSD无法支持的硬件,而BSDI可以获得资料以供开发驱动程序。一些不能理解自由软件,或者要使用FreeBSD不支持但BSDI支持的硬件,或对服务和技术支持提出较高要求的使用者,可以选择使用BSD/OS。

BSDI与FreeBSD的关系也非常紧密,一方面是在开发人员自身的合作,另一方面BSDI公司也与FreeBSD的支持公司和基金有紧密关系。事实上,BSDI曾经收购了FreeBSD的商业支持公司Walnet CDROM,负责出版FreeBSD的书籍、光盘、提供网络服务,甚至为FreeBSD核心开发小组的一些成员提供工作机会。但由于2001年,BSDI公司被Wind River所收购,这部分业务被Wind River所放弃,而卖给了freebsdmall。

Wind River的主要产品为嵌入式操作系统,未来他们将和BSDI的服务器结合,提供更完整的产品和解决方案。

★      NetBSD
NetBSD也是基于4.4BSD的自由Unix操作系统,很多科学研究人员使用RISC工作站,但是由于技术的发展,这些工作站上运行的操作系统缺乏必要的应用软件,例如TCP/IP,而原始工作站的制造商又不再支持该硬件或其操作系统软件,例如Sun将其操作系统从基于4.2BSD的SunOS 4转变为AT&T system V的Sun OS 5/Solaris之后,很多运行Sun OS 4的工作站的软件就存在升级问题。因此,研究人员将4.3BSD,后来将4.4BSD移植到这些硬件平台上,就发展出了NetBSD。

NetBSD可以算是FreeBSD的兄弟。甚至在最初,NetBSD和FreeBSD的大部分开发者都完全相同,同样的开发者同时为两个系统进行开发,FreeBSD下的很多应用程序和特性来自NetBSD,同样NetBSD的很多应用程序也借鉴自FreeBSD。而开发者和使用者都是将这两个系统作为BSD Unix在不同硬件平台的实现来看待的,FreeBSD用于Intel平台,而NetBSD面向多种硬件平台,主要用于RISC工作站硬件。随着两个系统的不断发展,两者逐渐相分离,但开发者之间的相互合作、交流的关系没有改变。

虽然FreeBSD是主要为个人计算机平台设计的,后来也有人尝试将它移植到其他平台上,其中由于得到了Compaq公司的部分技术人员的支持,因此除了Intel x86平台之外,Alpha芯片下的FreeBSD系统也得到了FreeBSD开发小组的正式支持,其他正在开发中的还有sparc芯片下的FreeBSD系统,但无论如何,FreeBSD的支持平台是非常有限的,主要还是面向个人计算机用户,而NetBSD一开始就设计为能够运行在多系统平台上,包括各种RISC工作站,NetBSD的设计目标就是研究操作系统的最大可移植性,NetBSD可以运行在大约30多种硬件平台上,从StrongARM到大型计算机,是目前支持的平台数目最多的操作系统。

NetBSD的当前版本为1.5.1。

★       OpenBSD
OpenBSD是NetBSD的一个派生版本,其开发者对NetBSD的开发思路不太赞同,他们希望能开发出一种高度安全的操作系统。因此,他们就从NetBSD下独立出来,并为了避开美国对安全软件和加密算法的限制,将开发位置放在了加拿大,就形成了OpenBSD。

OpenBSD为了确保系统的安全,第一件事就是对所有的代码进行一行行的审计,排除所有的代码级可能出现漏洞的可能。此外,为了避免系统管理员的疏忽,OpenBSD的缺省设置都倾向于最大安全性的设置,例如,将安全连接工具ssh作为缺省的设置。

OpenBSD的当前版本为3.0。

★       Mac OS/X Darwin
Apple公司的最新的操作系统被命名为OS X,这时因为在进行这个下一代操作系统计划开发的时候,还不清楚原始的Mac OS会发展到哪个版本,当前的Macintosh操作系统版本已经是Mac OS 9,因此可能OS X有可能是OS 10。

Mac OS X的内核被命名为Darwin,它部分基于FreeBSD系统,很多应用系统来源于FreeBSD。因此,Darwin是可以从Apple公司获得,并具备X86版本。当然,Apple的优势是他们的极其友好的界面,这个界面系统没有X86版本。

尤其值得注意的是,FreeBSD核心小组的成员,Jordan K. Hubbard目前在Apple公司工作,使得Darwin和FreeBSD的关系通过开发者,更紧密的联系起来了。

Apple公司通过Darwin计划,获得开发源代码的优势,并通过FreeBSD将他们的研究回馈开发源代码社区。

以上这些BSD Unix系统中,如果排除Mac OS X之外,其他种类的使用者数量要少于FreeBSD系统。FreeBSD由于专注于Intel平台,支持Intel平台上的硬件种类最多,性能也最优秀,并且对易用性作了很大改善。加上个人计算机硬件的普及,因而FreeBSD使用范围更广泛,是最常见的BSD Unix系统。但是由于这些系统同属BSD来源,在开发过程中常常相互交流,因此使用方法和管理基本相同。在FreeBSD、NetBSD、OpenBSD之间进行选择的决定性因素常常是安装BSD系统的硬件平台。

如果考虑了Mac OS X,那么BSD Unix事实上就是目前最流行的Unix系统,用户数量最多,但显然,Mac OS X用户和传统的Unix用户实际上是有差别的。

[关闭][返回]