Free BSD,Linux之比较

来源:互联网 发布:淘宝服装订单怎么接单 编辑:程序博客网 时间:2024/06/05 20:52

Free BSD,Linux之比较(1

 

1. Linux

优点:充分发挥 PC的功能,花样极多,玩起来很有趣,各方面的表现都不错。
缺点: 太过自由,以致於发散掉了,维护方面比FreeBSD 麻烦(对一般人来说)
-> 适合喜欢「玩PC」,更甚於「玩Unix(Network)」的人。

2.FreeBSD

优点: 非常UNIX、非常 Free、非常BSD -- UNIX 的理想归宿!!
缺点: 太过UNIX,以致於玩下去很难收手^^;;
-> 适合喜欢UNIX,有心好好经营 service的人;也是 programmer 的理想OS

FreeBSD CoreTeam 并不是刻意忽略「入门的方便性」,只是人力有限,把主力投注在「UNIX风味的主题」上。

FreeBSD对硬体的需求实在也不会太严刻,对刚接触的人,建议使用「最一般化」的硬体,像是:IDE (BigFoot)ne2000 compatible杂牌卡,S3Trito64,最烂的14VGA(atapi-cdrom)

想说明的是,希望对FreeBSD 有兴趣的人,别买些「太高档(或者说奇怪:p)」的硬体,到时候装不起来就骂FreeBSD 怎麽这麽烂 ^^;;

可以想一下,到底想试试自己的PC能跑多少东西,还是真的有心进入UNIX 的世界 :-)

===为什麽要选择 FreeBSD?! ===

...现在有许多免费的i386 UNIX (386 以上PC 执行的UNIX),例如LinuxNetBSDFreeBSDOpenBSD386BSD等,究竟你要如何选择属於你的UNIX?

玩了三年多的 UNIX(一年半 Linux,两个月NetBSD,两年 FreeBSD)笔者只能以非正式的说法说说笔者的个人意见,希望这些意见不要引起争论各个作业系统优缺点的大战。

Linux是容易上手而且好玩的作业系统,也是现今最多人玩的,正因为它太好装了,只要硬体没问题闭著眼睛都装的起来,因此如果你是i386 UNIX 的新手,这可说是你入门的最佳试金石。

NetBSD 支援 13种硬体架构,这也是它的强处,算是multi-platform 的典范。 也因此,i386在里面只算是 13种中的一种,自然无法取得全力的发展,再加上其core team 比较不活跃,所以在i386上的硬体支援并不是很好。

OpenBSD 源自NetBSD,刚出来半年左右,专门把NetBSD FreeBSD的新功能跟修正加在一起,算是NetBSD+FreeBSD 的混血儿,由於其core team 人数少,加上程式码很少是自己开发的,因此现在前景还不明朗。

FreeBSD NetBSD一样都是基於 4.4 BSD-lite,但是FreeBSD 现在只支援 i386,所以在PC 上来说要比 NetBSD/OpenBSD好太多了,在从前NetBSD FreeBSD core team是一起的,後来分家了。FreeBSD具有一般 BSD系统的稳定,又从其他作业系统学习了许多优点,再加上自己开发的各种新功能,时时改进演算法以增加执行效率,现在已是免费BSD 系列中效率最好的,最主要是因为coreteam 活跃又乐於接受使用者的意见并改进。

* 什麽是 coreteam ?

core team 是一个专门对原始程式码做发展跟维护的组织,Linux没有 coreteamNetBSD/OpenBSD/FreeBSD 有。有core team 的优点是原始程式码会有一致性,会有组织的被更新,但是整个OS 的活力也操在core team的手中,这就是 NetBSD在笔者眼中无法兴盛的原因。而没有coreteam(Linux),好处是全世界每个人都可以发表自己的修正(patch)不须经由 core team 的审核,但缺点是source code 杂乱无章且可能会不同步。所以Linux 在更新东东的时候,必须由使用者自己注意kernelgcclibrarynet-toolmodules、甚至各种kernel patch 版本的一致性。(或许在RetHat Linux 已经稍微好一点了)而这些可怜的情形在FreeBSD 身上都不会发生。


* 要选择怎样的 OS必须看你自己的需求及能力,还有周遭玩的人多不多,多装几种,多装几次,自己感觉一下才是真的!

(其实只要不怕 format硬碟,吃饱撑著,装什麽东西、装几次都好说嘛)

1. 稳定性

一个作业系统最重要的就是稳定性,比方说能连续开机多久,能忍受多少系统负荷,网路不稳时会不会当掉,网路负荷太大时网路会不会死掉,笔者个人觉得FreeBSD > Linux

尤其许多研究已经提出,Linux在高系统负荷下的表现相当不好,而FreeBSD却不会。

要知道世界上最大的 ftp site - wcarchive.cdrom.com是一台跑著FreeBSD Pentium pro 机器 (P6-150512MBRAM72GB HDs online more than 1200ftp users allowed)

:wcarchive.cdrom.com = ftp.cdrom.com

2. 网路

争夺封包(packet)的速度,除了网路卡好坏之外,最重要的还是作业系统跟驱动程式,使用一样的网路卡FreeBSD > Linux >>> DOS+NCSA.而且FreeBSD RPC NFS 上都比Linux 来的稳定及快速。毕竟BSD 在网路这方面是始祖.

3. 移植软体的难易程度

现 今一般的软体大多是为BSD 写的,所以一般软体在BSD 上会比在SYSV 上容易编译。而FreeBSD 4.4BSD basedLinuxSYSV 加上BSD-extension,所以在 Linux上编译东西有时是个梦靥 (不是很SYSV也不是很 Posix 也不是很BSD)。不过现在越来越多的软体会注意到Linux,因为 Linux 使用者太多了。

FreeBSD 有收集数百种软体的ports,只要打个 make就可以轻松编译,不然也有编译好的binary 可以直接安装使用。

4. 硬体支援

Linux 支援最多种的硬体,NetBSD最少,而 FreeBSD 夹在中间正急起直追中,而且许多FreeBSD driver都写的相当棒,反而後来被移植到NetBSD Linux

5. Merged VM/buffer cache

Linux的磁碟 I/O 速度是一流的,因为一来Linux ext2fs async-mount的,写入资料时不须一直更新meta-data,最主要还是Linux会把目前没用到的记忆体尽量拿来做I/O buffer。一般传统BSD(SunOSNetBSD)都只有固定大小的buffer,而 FreeBSD 自己发展出类似Linux Merged VM/buffercache,大大提高了 I/O时的效率以及记忆体利用率,而且现在FreeBSD 已支援 async-mount,使得FreeBSD 的档案系统已经跟Linux 不相上下,甚至更胜一筹。

6. tty 限制

现 在 Linux 要用超过64 tty除了必须更改应用程式的原始程式码,还必须做kernel patch,而 FreeBSD内定支援 tty[pqrsPQRS][0-9a-v]总共256 tty,只要到/dev 下用 MAKEDEV tty 建出来,在/etc/ttys加入新的 tty 设定,再到kernel config file 中把 pty的数目打入256 就好了,要使用超过 256tty 也相当容易修改。

7.完整原始程式码取得

一般人使用的 SlackwareLinux 是由Slackware 公司整理,所以一般人要取得完整原始程式码必须自己东抓西抓,这也是Linux NCTUCCCAmirror 量这麽大的缘故。但往往Linux 使用者找不到自己须要的原始程式码,如果没有那些整理Linux packages 的公司,以及帮忙Linux 发展系统工具及函式库的人,Linux充其量算是只有Linus 写的kernel 而已,不过最大的问题还是各家写出来的东东一致性的问题。不过新出来的RedHat 已经提供一个简单的软体同步与更新的方法- RPM,也算是稍微抒解这一类问题的严重性。

FreeBSD提供完整的系统原始程式码, /bin/sbin /usr/bin /usr/sbin /usr/lib ... 甚至/etc /usr/share/FAQ 都在里面,让你可以很容易的更改自己想要的东东,要更新系统时也可以抓取最新的source 打个 make world 就成了(当然也可以用 core team做好的binary),它甚至会自动检查各目录的权限是否正确。简单一句,就是非常的有组织!利用 binary 来升级只要不到一小时就可以完成,甚至有写好的script 可以使用。

8.目录档案组织化

FreeBSD根据 4.4BSD规范,什麽档案应该在那里,应该是什麽权限,编译时应该连结(link)static dynamic,都非常的严谨,该有的
manpages 绝对不会少。不像Linux,写 kernel 一个人、写library 另一个,写 manpages又另一个、整理 utility又另一个,各自为政不同步,常常档案到处乱放或是重覆,manpages不完整,许多目录档案为了新旧版本的相容性而link link 去。

9. 系统安全

FreeBSD 使用shadow passWord,支援 secure NFS,不像 Linux要自己安装 shadow password,将来编译ftpdsudo 时又得改来改去。因为USA版的 DES 禁止输出到美加以外地区,FreeBSD为了全世界广大的使用者,在密码系统上内定使用MD5 编码,它比 DES来的安全,如果你不跟 SunOS类的 YP server NIS,那你是不须要安装 DES的。如果你要使用 DES,你可以安装可以自由流动的DES 版本 (USA ),在/usr/share/FAQ/Text/FreeBSD.FAQ中有提及那里可以取得,或是到台湾任何一个FTP 站取得。

此外,FreeBSD的使用者登入控制,以及档案安全层级保护都比其他作业系统来的好(kernel secure level)

FreeBSDcore team 会注意source code security的同步性,一有新的问题或sendmail 漏洞,就会立刻更新程式码,已达到最佳的系统安全。
FreeBSD coreteam 非常活跃而且谦虚,带动整个FreeBSD 迅速发展,每天都有新的patch 出来,让使用者以sup/ctm 来定时自动更新原始程式码。
由於FreeBSD 是基於 4.4BSD-lite的,因此带来了许多 BSD的好处,像网路速度稳定、容易移植软体、安全快速等。

10. Linux而来的优点

FreeBSD正在把 Linux dosemu 移植过来,甚至可以直接执行linux binary (linuxemulator),还有移植 Linux支援的一些驱动程式。

11.支援 LKM

FreeBSD 支援 Loadablekernel module,也就是说许多驱动程式在编译kernel 时可以不必做进去,一旦你要用到时,kernel会自动 /lkm/*.o 载入该driver,这样可以提高弹性并减小kernel 使用的记忆体空间。未来FreeBSD 会朝向 LKM device迈进,就像 Solaris一样不需编译kernel:)

12.直接执行 gzip的程式

FreeBSD可以直接执行 gzip的程式,如果你把所有的执行档都gzip 起来,不就等於用stacker/doublespace 一样了 ?!:)

13. 线上监控

kernel 支援 ttysnoop,可以监控线上使用者 (不像linux 那个半调子ttysnoop,会导致许多问题)

 

14. 众多档案系统

支援 MFS (MemoryFile System),类似 SunOS tmpfs的东东,还有许多 4.4BSD定义的档案系统,如LFSNULLFSPORTALFSUMAPFSUNIONFS

15. Interleaved swap

当你有一个以上的swap 装置时,会同时使用以增加速度(尤其是使用SCSI 装置时),而不是像Linux 一个接著一个使用。

16. 新的 slice观念

新的slice 观念使得 FreeBSD 对其他OS partition 相容性比传统的BSD 好很多,在安装上也较为容易。

17. Binary 相容性

FreeBSD 可以执行NetBSD-staticBSDI-staticLinux-a.out/elfSCO-static等等的 binary code,增加不少相容性。

18. ccd (软体 RAID)

Concatenated disk (ccd) 驱动程式能让你拥有StripMirror,甚至ParityRAID card 才有的功能。

19. 多国语言的支援

FreeBSD localization是所有免费作业系统中做的最好的,甚至已经有了亚洲语系(中文、日文)的安装介面。

20. 有组织的原始程式码

FreeBSD的程式开发者在撰写程式码的时候,会去参考各种RFC 规范以及新的理论文献,因此FreeBSD 的程式码有条不紊、层次鲜明;反观Linux常常为了急就章而走捷径写出来的东西,到最後开发新功能时又必须改来改去。

不过随著时间的发展,Linux*BSD都会进步,对於免费的作业系统能越来越好自然是乐见其成的。

一般而言,如果你须要一台稳定快速的Internet ServerFreeBSD是你绝对的选择;如果你是个人使用或只是想学习UNIXLinux FreeBSD 都是很好的试金石。

Linux 浮上台面已经四年了,而FreeBSD 以短短的两年时间就拥有了众多的使用者人口(尤其是伺服器,以及程式开发者),高手的选择必有他的道理。

用过 FreeBSD 才知道,『PC不只是很便宜的工作站』 :)

但 是,Linux 的优点是『好玩』,而且随著kernel 日渐更新,很多东西也越来越稳定。我们系上从两年前开始就用Linux mail, acounts, ftp,gopher, terminal, ppp, slip, BBS servers, 最近又加入WWW server,服务几百位师生。

目前系上已经有好几台Linux PC 一起运作,其中包含NFS,与 WinNTWin95的连线与资源共享(bySAMBA packages),我们也在测试用其中一台摹拟Novell Server.

我们的同时上线人数一般不会超过 100 人,用Linux 来应付绰绰有馀。如果你想开的是一次几百人上线的BBS 大站,那可能 FreeBSD会比较适合。不过话说回来,能开这种大站的单位都很有钱,大都拿SUN 或其他 workstation 级的来run

Linux 另一个优点是全球的Linux users 远超过 FreeBSD,这使得Linux 上面新的软体跟硬体drivers 更新数目及速度远超过FreeBSD。例如,DOSEMU 可以摹拟DOSWINE 可以摹拟Windows 3.1smbfs 可以将Win95 WinNT 上的partition拿来用:这些在 FreeBSD上面都还在发展中,甚至没有。新电脑硬体drivers 的更新也是如此,几乎任何新的硬体都会有Linux 迷很快地帮大家写好drivers。你如果用过 FreeBSDLinux,你就会发现FreeBSD 目前对硬体要求仍然比较『严格』(其实是还没有人写drivers)。我用的 scanner,还有voice modem,都已经有 Linux迷写好程式,让我可以在 Linuxscan 以及有语音信箱。


 

我个人的建议是,如果你是个人使用,或者网路同时上线人数不超过一百人以上,Linux的确是好玩又实用,而且新的硬体很快地几乎都可以在Linux 上使用。如果你要架的是几百人上站的机器,又没钱买workstation,那 FreeBSD在网路壅塞时的 performance的确不错。如果是个人要『玩』,我并不建议FreeBSD,那会使你觉得提不起兴致(纯属个人观点)

csie gopher 中有关Linux FreeBSD 的比较中,有一项是FreeBSD software porting 比较easy。但是这个 comment 随著Linux users 群日渐庞大,我觉得已经有些改变:现在在Linux 很多东西根本用不著porting,因为很多软体根本就是Linux fans 专门为 Linux设计写出来的,反而要用这些东西需要额外费心去修改以便能在FreeBSD 上使用。DOSEMUsmbfs即是其中几个例子。据最近的newsgroupsFreeBSD core team有五十多人,但是 Linuxfans散布在全球各地的 programmers其数量根本无法计算。有心的话,比较一下Linux FreeBSD announcenewsgroups 就可知一二。

所以,我并不是很赞同一个UNIX 的新手去玩FreeBSD。但是,假如有人已经玩过Linux ,或者在其他工作站级机器有过简单管理经验,那他们会发现FreeBSD极易入手。玩过 FreeBSD的人一定知道光要新增 partitions就已经是一件麻烦的事。堂堂一个FreeBSD fdisk 介面连M$DOS 的都不如,可见 FreeBSDcore team 之目标不在一般连 ls,cp, tar 都不懂的 newbie
另外一个动机是假如你必须要架一台超稳定的Internet server,那 FreeBSD是目前的 best choice

其实呢,如果有心要玩,大可弄个大点的硬碟,同时装上两个系统,一定可以如鱼得水。我的office 中同时有一台 FreeBSD,一台Linux,各做各的事,也是很快乐。。。。

就 目前使用者能观察到的来看,一般相信 linuxdata-path-consumed process 的执行速度,是众多x86 作业系统中最快的;high load 下的网路则令人不能感到非常满意.虽然 linux 第二版後网路部分有了很大的改善,Linus 本人的说法,linux 在传 single package 已比FreeBSD 还优胜, 但作为NFS high load netserver还是显得略有不顺(所谓"不顺" "不稳" 无关).毕竟, 考查linux 的发展历史, 的确是先在x86-embededscheduler, fs, 等核心process执行部分, 最後才加进网路部分,process 执行最佳而网路稍逊乃是合理的结果.

一般建议如果机器用来执行程式(如跑 project) 为主,跑各式怪模怪样的小程式及 server,或有非正统硬体者使用 linux可能较佳.

 

原创粉丝点击