自由使用和免费是FreeBSD的特征 , 在英文里都可以使用 “free 来表示 。这表示使用者不仅仅可以免费使用这个系统 , 还可以对软件进行适合自己需要的改动 , 并能够影响这个软件的发展等等 , 这正是free这个词更深一层的含义 。
支持自由软件的人通常认为 , 每个计算机的使用者都有自己特定的需要 , 不可能有一个包罗万象、适合所有需求的软件系统 。因此软件开发者和系统管理员希望了解软件内部的情况 , 以便可以对软件进行定制和扩展 。而商业软件只提供软件的二进制代码 , 将软件内部的操作完全封闭起来 , 使用者就丧失了对软件的主动权 。另外 , 任何软件产品都存在各种BUG , 商业软件的使用者在遇到软件产品的这些问题时 , 就只能被动的等待厂商的补丁程序 , 整个软件系统不得不停顿或冒一定的风险继续使用 。第三 , 计算机的使用者并不会完全信赖商业软件 , 某些软件厂商会故意在软件中加入恶意代码 , 或加入某种未公开的后门 , 对使用者造成危害 。即使这些软件中的后门或恶意代码是打着防止盗版、提供更方便的功能等旗号加入的 , 但也可能被偶然触发 , 危害使用者的利益 。而在提供软件源代码的软件中 , 就不会存在这种恶意的行为 。
这些问题对于一个普通用户或者不重要 , 但对于一个较大的系统或要求较高安全性的系统中 , 就能表现出重要性了 。支持自由软件的人认为 , 如果一个软件提供了源代码 , 那么使用者就能根据情况自己修改或请他人修改软件 , 从而适合自己的最终需要 , 并修正系统中因为有意或无意导致存在的问题 。当前 , 开放源代码已经得到越来越多的计算机使用者和厂商的认可 , 他们组成了开放源代码组织(Open Source) , 来进一步推动这个思想 。
另一方面 , 由于某些种类的商业软件中不存在竞争 , 垄断的结果就造成软件的价格昂贵 , 使得这些软件不是任何有需要的人都能够用得起的 。而软件最大的价值是被人使用 , 因此有很多人认为软件开发者要允许别人使用他的软件 , 应该从软件服务中获得收益 , 而不是从软件本身中谋取暴利 。他们认为计算机应该属于大众 , 而不应该由某些公司垄断 。因此这些崇尚自由软件的人员就想为所有用户开发一整套系统 , 使用户在现有商业软件之外还可以进行选择 , 而不至于必须为商业软件支付额外的费用 。这些人包括FreeBSD的开发人员、Linux的开发人员、GNU计划的开发人员以及其他众多的自由软件开发者 , 他们开发的软件构成了计算机领域内多姿多彩的一面 , 使得即使不使用任何商业软件 , 使用者也同样能够在计算机上以更好的性能完成所有的工作 。
GNU's Not UnixGNU不是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/LinuxFreeBSD并不是唯一的免费 “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正式版本的原因很多 , 有的是由于这个功能不够成熟 , 有的是由于核心小组认为这个特性意义不大 , 还有的是因为正式内核已经有类似功能 , 或者由于专利或版权问题(例如 , 该软件的作者不打算让该软件成为自由软件) , 使得十分成熟的功能也不能被列入正式发行的版本 。
【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系统的硬件平台 。
- 数学题中的相遇是什么意思
- 数码相机照相怎么能显示时间
- 索爱全新移动相机MCA-30性能评测
- 数码相机的规格类型是什么意思
- 数码相机如何拍出光斑
- 查找我的iphone怎么用?查找我的iphone使用方法
- r5m330相当于什么显卡
- iPhone手机私密相册在哪 苹果手机私密相册在哪里
- 三字经
- 苹果Apple Pay怎么用?苹果Apple Pay绑定设置方法
