缺点: 太过自由,以致於发散掉了,维护方面比 FreeBSD 麻烦(对一般人来说)。
-> 适合喜欢「玩 PC」,更甚於「玩 UNIX(Network)」的人。
缺点: 太过 UNIX,以致於玩下去很难收手 ^^;;
-> 适合喜欢 UNIX,有心好好经营 service 的人;也是 programmer 的理想 OS。
UNIX ?
笔者只能以非正式的说法说说笔者的个人意见,希望这些意见不要引起争论
各个作业系统优缺点的大战。
的典范。 也因此,i386 在里面只算是 13 种中的一种,自然无法取得全力的发展,再加上其 core team 比较不活跃,所以在 i386 上的硬体支援并不是很好。
前景还不明朗。
原始程式码会有一致性,会有组织的被更新,但是整个 OS 的活力也操在 core team 的手中,这就是 NetBSD 在笔者眼中无法兴盛的原因。而没有 core team(如 Linux),好处是全世界每个人都可以发表自己的修正(patch) 不须经由 core team 的审核,但缺点是 source code 杂乱无章且可能会 不同步。所以 Linux 在更新东东的时候,必须由使用者自己注意 kernel、 gcc、library、net-tool、modules、甚至各种 kernel patch 版本的一致性。
(或许在 RetHat Linux 已经稍微好一点了)
而这些可怜的情形在 FreeBSD 身上都不会发生。
(其实只要不怕 format 硬碟,吃饱撑著,装什麽东西、装几次都好说嘛)
一个作业系统最重要的就是稳定性,比方说能连续开机多久,能忍受 多少系统负荷,网路不稳时会不会当掉,网路负荷太大时网路会不会 死掉,笔者个人觉得 FreeBSD > Linux。
尤其许多研究已经提出,Linux 在高系统负荷下的表现相当不好,而
FreeBSD 却不会。要知道世界上最大的 ftp site - wcarchive.cdrom.com 是一台跑著
more than 1200 ftp users allowed)
争夺封包(packet)的速度,除了网路卡好坏之外,最重要的还是作业系统跟 驱动程式,使用一样的网路卡 FreeBSD > Linux >>> DOS+NCSA. 而且
FreeBSD 在 RPC 及 NFS 上都比 Linux 来的稳定及快速。毕竟 BSD 在网路
这方面是始祖.
现今一般的软体大多是为 BSD 写的,所以一般软体在 BSD 上会比在SYSV 上容易编译。而 FreeBSD 是 4.4BSD based,Linux 是 SYSV 加 上BSD-extension,所以在 Linux 上编译东西有时是个梦靥 (不是很 SYSV 也不是很 Posix 也不是很 BSD)。不过现在越来越多的软体会注 意到 Linux,因为 Linux 使用者太多了。
FreeBSD 有收集数百种软体的 ports,只要打个 make 就可以轻松编译,不然也有编译好的 binary 可以直接安装使用。
Linux 支援最多种的硬体,NetBSD 最少,而 FreeBSD 夹在中间正急起
直追中,而且许多 FreeBSD 的 driver 都写的相当棒,反而後来被
移植到 NetBSD 跟 Linux。
Linux 的磁碟 I/O 速度是一流的,因为一来 Linux 的 ext2fs 是 async-mount 的,写入资料时不须一直更新 meta-data,最主要还是 Linux 会把目前没用到的记忆体尽量拿来做 I/O buffer。一般传统 BSD(如 SunOS,NetBSD)都只有固定大小的 buffer,而 FreeBSD 自己发展出类似 Linux 的 Merged VM/buffer cache,大大提高了 I/O 时的效率以及记忆体利用率,而且现在 FreeBSD 已支援 async-mount, 使得 FreeBSD 的档案系统已经跟 Linux 不相上下,甚至更胜一筹。
现在 Linux 要用超过 64 个 tty 除了必须更改应用程式的原始程式码, 还必须做 kernel patch,而 FreeBSD 内定支援 tty[pqrsPQRS][0-9a-v] 总共 256 个 tty,只要到 /dev 下用 MAKEDEV 把 tty 建出来,在 /etc/ttys 加入新的 tty 设定,再到 kernel config file 中把 pty 的数目打入 256 就好了,要使用超过 256 tty 也相当容易修改。
一般人使用的 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 可以使用。
FreeBSD 根据 4.4BSD 规范,什麽档案应该在那里,应该是什麽权限,
编译时应该连结(link)成 static 或 dynamic,都非常的严谨,该有的
manpages 绝对不会少。不像 Linux,写 kernel 一个人、写 library
另一个,写 manpages 又另一个、整理 utility 又另一个,各自为政
不同步,常常档案到处乱放或是重覆,manpages 不完整,许多目录档案
为了新旧版本的相容性而 link 来 link 去。
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 的 core team 非常活跃而且谦虚,带动整个 FreeBSD 迅速
发展,每天都有新的 patch 出来,让使用者以 sup/ctm 来定时自动
更新原始程式码。
由於 FreeBSD 是基於 4.4BSD-lite 的,因此带来了许多 BSD 的好处,
像网路速度稳定、容易移植软体、安全快速等。
FreeBSD 正在把 Linux 的 dosemu 移植过来,甚至可以直接执行 linux
的 binary (linux emulator),还有移植 Linux 支援的一些驱动程式。
FreeBSD 支援 Loadable kernel module,也就是说许多驱动程式
在编译 kernel 时可以不必做进去,一旦你要用到时,kernel 会自动
从 /lkm/*.o 载入该 driver,这样可以提高弹性并减小 kernel 使用的
记忆体空间。未来 FreeBSD 会朝向 LKM device 迈进,就像 Solaris
一样不需编译 kernel。
FreeBSD 可以直接执行 gzip 的程式,如果你把所有的执行档都 gzip
起来,不就等於用 stacker/doublespace 一样了 ?!
kernel 支援 tty snoop,可以监控线上使用者 (不像 linux 那个半调子
ttysnoop,会导致许多问题)。
支援 MFS (Memory File System),类似 SunOS tmpfs 的东东,还有
许多 4.4BSD 定义的档案系统,如 LFS、NULLFS、PORTALFS、UMAPFS
、UNIONFS。
当你有一个以上的 swap 装置时,会同时使用以增加速度 (尤其是使用
SCSI 装置时),而不是像 Linux 一个接著一个使用。
新的 slice 观念使得 FreeBSD 对其他 OS 的 partition 相容性比
传统的 BSD 好很多,在安装上也较为容易。
FreeBSD 可以执行 NetBSD-static,BSDI-static,Linux-a.out/elf,
SCO-static 等等的 binary code,增加不少相容性。
Concatenated disk (ccd) 驱动程式能让你拥有 Strip、Mirror,甚至
Parity 等 RAID card 才有的功能。
FreeBSD 的 localization 是所有免费作业系统中做的最好的,甚至已经
有了亚洲语系(中文、日文)的安装介面。
FreeBSD 的程式开发者在撰写程式码的时候,会去参考各种 RFC 规范以及 新的理论文献,因此 FreeBSD 的程式码有条不紊、层次鲜明;反观 Linux
常常为了急就章而走捷径写出来的东西,到最後开发新功能时又必须改来
改去。
越来越好自然是乐见其成的。
用过 FreeBSD 才知道,『PC 不只是很便宜的工作站』
FreeBSD 极易入手。玩过 FreeBSD 的人一定知道光要新增 partitions 就已经是一件麻烦的事。堂堂一个 FreeBSD 的 fdisk 介面连 MDOS 的都不如, 可见 FreeBSD core team 之目标不在一般连 ls, cp, tar 都不懂的newbie。 另外一个动机是假如你必须要架一台超稳定的 Internet server,那 FreeBSD 是目前的 best choice。
可以如鱼得水。我的 office 中同时有一台 FreeBSD,一台 Linux,各做各的事, 也是很快乐。。。。
为 NFS 或 high load netserver 还是显得略有不顺 (所谓 "不顺" 与 "不稳" 无关). 毕竟, 考查 linux 的发展历史, 的确是先在 x86-embeded scheduler, fs, 等核心process 执行部分, 最後才加进网路部分, process 执行最佳而网路稍逊乃是合理 的结果.