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,最烂的14寸VGA,(atapi-cdrom)。
想说明的是,希望对FreeBSD 有兴趣的人,别买些「太高档(或者说奇怪:p)」的硬体,到时候装不起来就骂FreeBSD 怎麽这麽烂 ^^;;
可以想一下,到底想试试自己的PC能跑多少东西,还是真的有心进入UNIX 的世界 :-)
===为什麽要选择 FreeBSD?! ===
嗯...现在有许多免费的i386 UNIX (在 386 以上PC 执行的UNIX),例如Linux、NetBSD、FreeBSD、OpenBSD、386BSD等,究竟你要如何选择属於你的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没有 coreteam,NetBSD/OpenBSD/FreeBSD 有。有core team 的优点是原始程式码会有一致性,会有组织的被更新,但是整个OS 的活力也操在core team的手中,这就是 NetBSD在笔者眼中无法兴盛的原因。而没有coreteam(如 Linux),好处是全世界每个人都可以发表自己的修正(patch)不须经由 core team 的审核,但缺点是source code 杂乱无章且可能会不同步。所以Linux 在更新东东的时候,必须由使用者自己注意kernel、gcc、library、net-tool、modules、甚至各种kernel patch 版本的一致性。(或许在RetHat Linux 已经稍微好一点了)而这些可怜的情形在FreeBSD 身上都不会发生。
* 要选择怎样的 OS必须看你自己的需求及能力,还有周遭玩的人多不多,多装几种,多装几次,自己感觉一下才是真的!
(其实只要不怕 format硬碟,吃饱撑著,装什麽东西、装几次都好说嘛)
1. 稳定性
一个作业系统最重要的就是稳定性,比方说能连续开机多久,能忍受多少系统负荷,网路不稳时会不会当掉,网路负荷太大时网路会不会死掉,笔者个人觉得FreeBSD > Linux。
尤其许多研究已经提出,Linux在高系统负荷下的表现相当不好,而FreeBSD却不会。
要知道世界上最大的 ftp site - wcarchive.cdrom.com是一台跑著FreeBSD 的Pentium pro 机器 (P6-150,512MBRAM,72GB 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 based,Linux是 SYSV 加上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(如SunOS,NetBSD)都只有固定大小的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.完整原始程式码取得
一般人使用的 Slackware版 Linux 是由Slackware 公司整理,所以一般人要取得完整原始程式码必须自己东抓西抓,这也是Linux 在NCTUCCCA的 mirror 量这麽大的缘故。但往往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,将来编译ftpd,sudo 时又得改来改去。因为USA版的 DES 禁止输出到美加以外地区,FreeBSD为了全世界广大的使用者,在密码系统上内定使用MD5 编码,它比 DES来的安全,如果你不跟 SunOS类的 YP server 跑NIS,那你是不须要安装 DES的。如果你要使用 DES,你可以安装可以自由流动的DES 版本 (非USA 版),在/usr/share/FAQ/Text/FreeBSD.FAQ中有提及那里可以取得,或是到台湾任何一个FTP 站取得。
此外,FreeBSD的使用者登入控制,以及档案安全层级保护都比其他作业系统来的好(kernel secure level)。
FreeBSD的 core 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定义的档案系统,如LFS、NULLFS、PORTALFS、UMAPFS、UNIONFS。
15. Interleaved swap
当你有一个以上的swap 装置时,会同时使用以增加速度(尤其是使用SCSI 装置时),而不是像Linux 一个接著一个使用。
16. 新的 slice观念
新的slice 观念使得 FreeBSD 对其他OS 的 partition 相容性比传统的BSD 好很多,在安装上也较为容易。
17. Binary 相容性
FreeBSD 可以执行NetBSD-static,BSDI-static,Linux-a.out/elf,SCO-static等等的 binary code,增加不少相容性。
18. ccd (软体 RAID)
Concatenated disk (ccd) 驱动程式能让你拥有Strip、Mirror,甚至Parity等 RAID card 才有的功能。
19. 多国语言的支援
FreeBSD 的 localization是所有免费作业系统中做的最好的,甚至已经有了亚洲语系(中文、日文)的安装介面。
20. 有组织的原始程式码
FreeBSD的程式开发者在撰写程式码的时候,会去参考各种RFC 规范以及新的理论文献,因此FreeBSD 的程式码有条不紊、层次鲜明;反观Linux常常为了急就章而走捷径写出来的东西,到最後开发新功能时又必须改来改去。
不过随著时间的发展,Linux、*BSD都会进步,对於免费的作业系统能越来越好自然是乐见其成的。
一般而言,如果你须要一台稳定快速的Internet Server,FreeBSD是你绝对的选择;如果你是个人使用或只是想学习UNIX,Linux 跟FreeBSD 都是很好的试金石。
Linux 浮上台面已经四年了,而FreeBSD 以短短的两年时间就拥有了众多的使用者人口(尤其是伺服器,以及程式开发者),高手的选择必有他的道理。
用过 FreeBSD 才知道,『PC不只是很便宜的工作站』 :)
但 是,Linux 的优点是『好玩』,而且随著kernel 日渐更新,很多东西也越来越稳定。我们系上从两年前开始就用Linux 当 mail, acounts, ftp,gopher, terminal, ppp, slip, BBS servers, 最近又加入WWW server,服务几百位师生。
目前系上已经有好几台Linux PC 一起运作,其中包含NFS,与 WinNT,Win95的连线与资源共享(bySAMBA packages),我们也在测试用其中一台摹拟Novell Server.
我们的同时上线人数一般不会超过 100 人,用Linux 来应付绰绰有馀。如果你想开的是一次几百人上线的BBS 大站,那可能 FreeBSD会比较适合。不过话说回来,能开这种大站的单位都很有钱,大都拿SUN 或其他 workstation 级的来run。
Linux 另一个优点是全球的Linux users 远超过 FreeBSD,这使得Linux 上面新的软体跟硬体drivers 更新数目及速度远超过FreeBSD。例如,DOSEMU 可以摹拟DOS,WINE 可以摹拟Windows 3.1,smbfs 可以将Win95 或 WinNT 上的partition拿来用:这些在 FreeBSD上面都还在发展中,甚至没有。新电脑硬体drivers 的更新也是如此,几乎任何新的硬体都会有Linux 迷很快地帮大家写好drivers。你如果用过 FreeBSD跟 Linux,你就会发现FreeBSD 目前对硬体要求仍然比较『严格』(其实是还没有人写drivers)。我用的 scanner,还有voice modem,都已经有 Linux迷写好程式,让我可以在 Linux上scan 以及有语音信箱。
我个人的建议是,如果你是个人使用,或者网路同时上线人数不超过一百人以上,Linux的确是好玩又实用,而且新的硬体很快地几乎都可以在Linux 上使用。如果你要架的是几百人上站的机器,又没钱买workstation,那 FreeBSD在网路壅塞时的 performance的确不错。如果是个人要『玩』,我并不建议FreeBSD,那会使你觉得提不起兴致(纯属个人观点)。
在 csie gopher 中有关Linux 与 FreeBSD 的比较中,有一项是FreeBSD 上software porting 比较easy。但是这个 comment 随著Linux users 群日渐庞大,我觉得已经有些改变:现在在Linux 很多东西根本用不著porting,因为很多软体根本就是Linux fans 专门为 Linux设计写出来的,反而要用这些东西需要额外费心去修改以便能在FreeBSD 上使用。DOSEMU,smbfs即是其中几个例子。据最近的newsgroups,FreeBSD 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,各做各的事,也是很快乐。。。。
就 目前使用者能观察到的来看,一般相信 linux的data-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可能较佳.
- Free BSD,Linux之比较
- Free BSD,Linux之比较
- Free BSD,Linux之比较
- Free BSD,Linux之比较
- Linux?Free BSD?Solaris
- 在Linux/Free BSD 下打开PDF文件
- Free BSD 用户手册
- Linux命令之free
- Linux之free命令
- Linux命令之free
- Linux命令之"free"
- Linux常用命令之free
- linux命令之free
- Free BSD常用指令简述
- linux, bsd
- Linux与BSD中TCP协议栈实现比较
- Linux与BSD中TCP协议栈实现比较
- linux性能监控之free
- JQuery笔记(二)-选择器
- 有关数据类型转换的总结
- 使用oracle 10g数据库创建脚本实现手动创建数据库
- VC小技巧收集
- 【转】使用Windows Live Writer发布日志
- Free BSD,Linux之比较
- 获取应用程序路径
- form2返回值给form1
- 我的新博客
- SQL注入原理,啊D明小子高手必看! 明小子4.1我已上传 可以下载
- InputPanel.CurrentInputMethod 属性获取或设置 Pocket PC 的输入法
- Linux集群
- 从零开始学Android
- 应用层上的同步问题(3)