03 FreeBSD连载:其他相关系统和组织( 三 )


虽然FreeBSD和Linux的开发过程都是非常开放的方式 , 每个开发者独立进行自己的工作 , 通过Internet来互相交流 。任何对系统开发有兴趣的人都能贡献新的想法 , 并组建一个开发队伍或加入现有开发队伍将自己的想法实现 。但是FreeBSD与Linux开发方式的不同是 , FreeBSD有一个开发者组成的核心小组(FreeBSDcore 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系统
商业版本的BSD/OS也是一个非常优秀的操作系统 , 它是由原BSD Unix的部分开发人员组成的BSDI公司的产品 。由于存在商业支持 , 因此在某些方面具备免费的FreeBSD不具备的优势 。例如某些硬件厂家不愿意公开自己的硬件资料(或者是有条件的公开) , 因而使得FreeBSD无法支持他们的硬件 , 而他们可以为BSDI提供资料以供开发驱动程序 。一些不能理解自由软件、要使用FreeBSD不支持但BSDI支持的硬件 , 或对服务和技术支持提出较高要求的使用者 , 可以选择使用BSDI 。

推荐阅读