BBS水木清华站∶精华区

------chenlh (某人....)------- 
 
以下是台湾的jdli 所写的FreeBSD.FAQ中的一篇 
        嗯...现在有许多免费的 i386 UNIX, 例如 Linux, NetBSD, FreeBSD 
        386BSD 等, 究竟你要如何选择属於你的 UNIX ?! 
        玩了两年多的 UNIX (一年半 Linux, 一个月 NetBSD, 一年半 FreeBSD) 
        我只能以非正式的说法说说我个人的意见, 希望这些意见不要引起争论 
        各个作业系统优缺点的大战. 
        Linux,   是我心目中最简单最好玩的作业系统, 也是最多人玩的, 正因 
                 为它太好装了, 加上云观三的CDROM, 只要硬体没问题闭著眼 
                 睛都装的起来, 因此如果你是 i386 UNIX 的新手, 这是你入 
                 门的最佳试金石. 
        NetBSD,  支援 9 种硬体架构, 这也是它的强处, 算是 multi-platform 
                 的典范. 也因此, i386 在里面只算是九种中的一种, 自然无法 
                 取得全力的发展, 再加上其 core team 比较不活跃, 所以在 
                 i386 上的硬体支援很差. 
        FreeBSD, 跟 NetBSD 一样都是 4.4 BSD-lite based, 但是 FreeBSD 现 
                 在只支援 i386.  在从前 NetBSD 跟 FreeBSD 的 core team 
                 是一起的, 後来分家了. 
                 FreeBSD 具有一般 BSD 系统的稳定, 又从 Linux 处学习了许 
                 多优点, 最主要是因为 core team 活跃又乐於接受使用者的 
                 意见并改进. 
      * 什麽是 core team ?! 
        core team 是一个专门对 source code 做发展跟维护的组织, Linux 没 
        有 core team, NetBSD 跟 FreeBSD 有. 有 core team 的优点是 source 
        code 会有一致性, 会有组织的被更新, 但是整个 OS 的活力也操在 core 
        team 的手中, 这就是 NetBSD 在我眼中无法兴盛的原因. 而没有 core 
        team, 如 Linux, 好处是全是界每个人都可以 announce 自己的 patch 
        不须经由 core team 的审核, 但缺点是 source code 杂乱无章且可能会 
        不同步. 所以 Linux 在更新东东时必须由使用者自己注意 kernel,gcc, 
        library,net-tool 甚至 quota-patch 等等的版本一致性. 
        而这些可怜的情形在 FreeBSD 都不会发生. 
      * 要选择怎样的 OS 必须看你自己的需求及能力, 还有周遭玩的人多不多, 
        多装几种, 多装几次, 自己感觉一下才是真的 ! 
        (其实只要不怕 format 硬碟, 有闲空, 装什麽装几次都好说) 
         
        以下就个人愚昧的观点做一些基本比较 : 
         
        1. 稳定性 
           一个作业系统最重要的就是稳定性, 比方说能连续开机多久, 能忍受 
           多少 load, 网路不稳时会不会当掉, 网路负荷太大时网路卡会不会 
           死掉, 我个人觉得 FreeBSD > Linux. 
           要知道世界上最大的 ftp site - wcarchive.cdrom.com 是一台跑著 
           FreeBSD 的 Pentium pro 机器 (P-150, 512MB RAM, 72GB HDs online 
           more than 1000 ftp users allowed) 
 
           注 : wcarchive.cdrom.com = ftp.cdrom.com 
            
        2. 网路 
           争 packet 的速度, 除了网路卡好坏外最重要的还是 OS 跟 driver, 
           一样的网路卡 FreeBSD > Linux >>> DOS+NCSA. 而且 FreeBSD 在一 
           些 RPC 及 NFS 上都比 Linux 来的稳定及快速.  毕竟 BSD 在网路 
           这方面是始祖. 
            
        3. port 东东的难易程度 
           现今一般的软体大多是为 BSD 写的, 所以一般软体在 BSD 上会比在 
           SYSV 上容易编译. 而 FreeBSD 是 4.4BSD based, Linux 是 SYSV 加 
           上 BSD-extension, 所以在 Linux 上编译东西有时是个梦靥 (不是很 
           SYSV 也不是很 Posix 也不是很 BSD). 不过现在越来越多的软体会注 
           意到 Linux, 因为 Linux 使用者太多了. 
            
        4. 硬体支援 
           Linux 支援最多种的硬体, NetBSD 最少, 而 FreeBSD 夹在中间正急 
           起直追中, 毕竟 Linux 有的 driver port 过来就好了, 不是吗? 
            
        5. Merged VM/buffer cache 
           Linux 的 disk I/O 速度是一流的, 因为一来 Linux 的 ext2fs 是 
           async-mount 的, 写入资料时不须一直更新 meta-data, 最主要还是 
           Linux 会把目前没用到的记忆体尽量拿来做 I/O buffer.  一般传统 
           BSD 如 SunOS,NetBSD 都只有固定大小的 buffer, 而 FreeBSD 自己 
           发展出类似 Linux 的 Merged VM/buffer cache, 大大提高了 I/O 
           时的 peformance, 而且现在 FreeBSD 已支援 async-mount, 使得 
           FreeBSD 的档案系统已经跟 Linux 不相上下了 (甚至在大档案上 
           更胜一筹) 
            
        6. tty 限制 
           现在 Linux 要用超过 64 个 tty 除了必须更改 source 外, 还必须 
           做一个 patch, 而 FreeBSD 内定支援 tty[pqrsPQRStuTU][0-9a-v] 
           总共 420 个 tty, 只要到 /dev 下用 MAKEDEV 把 tty 建出来, 在 
           kernel config file 中把 pty 的数目打入 420 就好了. 
            
        7. 完整 source code 取得 
           一般人使用的 Slackware 版 Linux 是由 Slackware 公司整理, 所 
           以一般人要取得完整 source 必须自己东抓西抓, 这也是 Linux 在 
           NCTUCCCA 的 mirror 量这麽大的缘故, 但往往 Linux 使用者找不到 
           自己须要的 source.  如果没有那些整理 Linux packages 的公司, 
           以及帮忙 Linux 发展 util/library 的人, Linux 充其量算是只有 
           Linus 写的 kernel 而已, 不过最大的问题还是各家写出来的东东 
           一致性的问题 (见 8) 
           而 FreeBSD 提供完整的 system source, 从 /bin /sbin /usr/bin 
           /usr/sbin /usr/lib ... 甚至 /etc /usr/share/FAQ 都在里面, 
           让你可以很容易的更改自己想要的东东, 要更新系统时也可以抓取 
           最新的 source 打个 make world 就成了 (当然也可以用 core team 
           做好的 binary), 它甚至会检查各目录的权限是否正确. 
           简单一句, 就是非常的有组织! 
            
        8. 目录档案组织化 
           FreeBSD 根据 4.4BSD 规范, 什麽档案应该在那里, 应该是什麽权限, 
           应该 link 成 static 或 dynamic, 都非常的严谨, 该有的 manpages 
           绝不会少. 不像 Linux, 写 kernel 一个人, 写 library 另一个, 写 
           manpages 又另一个, 整理 utility 又另一个, 各自为政不同步, 常常 
           档案乱丢或重覆, manpages 不完整, 许多目录档案为了新的旧的相容 
           性而 link 来 link 去. 
            
        9. secure 
           FreeBSD 使用 shadow password, 也支援 secure-RPC, 支援 secure 
           NFS, 不像 Linux 要自己安装 shadow password, 将来编译 ftpd, 
           sudo 时又得改来改去. 
           FreeBSD 为了广大的 non-USA 使用者, 在密码系统上内定使用 MD5, 
           它比 DES 来的安全, 如果你不跟 SunOS 类的 YP server 跑 NIS, 那 
           你是不须要 DES 的. 如果你要使用 DES, 你可以安装可以自由流动的 
           DES 版本 (非 USA 版), 在 /usr/share/FAQ/Text/FreeBSD.FAQ 中有 
           提及那里可以取得.  (USA 的 DES 禁止 export) 
           FreeBSD 的 core team 会注意 source code 跟 security 的同步性, 
           一有新的问题或 sendmail bug, 就会立刻 patch/upgrade source. 
            
        8. core team 活跃 
           FreeBSD 的 core team 非常活跃而且谦虚, 带动整个 FreeBSD 迅速 
           发展, 每天都有新的 patch 出来, 并可让使用者以 sup 来定时自动 
           更新 source. 
            
        9. 4.4BSD-lite based 
           由於 FreeBSD 是基於 4.4BSD-lite 的, 因此带来了许多 BSD 的好处, 
           像网路速度, 稳定, 易 porting, secure...等. 
            
       10. 从 Linux 而来的优点 
           FreeBSD 从 Linux 得到了 merged VM/buffer cache 的 idea, 也正 
           在把 Linux 的 dosemu 移植过来, 甚至以後可以直接执行 linux 的 
           binary (linux emulator), 还有 Linux 支援的许多 driver. 
            
       11. FreeBSD 支援 Loadable kernel module, 也就是说许多 driver 可 
           在编译 kernel 时可以不必做进去, 一旦你要用到时 kernel 会自动 
           从 /lkm/*.o 载入该 driver, 不用时 kernel 会自动 unload, 这样 
           可以提高弹性并减小 kernel 占记忆体空间.  未来 FreeBSD 会朝向 
           LKM device 迈进, 就像 Solaris 一样不需编译 kernel.  :) 
           虽然 NetBSD,Linux 也支援 LKM, 但是只有 FreeBSD 大量的应用. 
 
       12. FreeBSD 可以直接执行 gzip 的程式, 如果你把所有的执行档都 gzip 
           起来, 不就等於用 stacker 一样了 ?!  :) 
        
       13. kernel 支援 tty snoop, 可以监看使用者 (不像 linux 那个半调子 
           ttysnoop, 会导致许多问题) 
        
       14. 支援 MFS (Memory File System), 类似 SunOS tmpfs 的东东, 还有 
           许多 4.4BSD 定义的档案系统, 如 LFS,NULLFS,PORTAL,UMAPFS,UNION 
            
       15. Interleaved swap, 当你有一个以上的 swap device 时, 会同时使用 
           以增加速度, 而不是像 Linux 一个接著一个使用. 
            
       16. New slice code, 使得 FreeBSD 对其他 OS 的 partition 相容性比 
           传统的 BSD 好很多, 在安装上也较为容易. 
            
       17. Binary 相容性, FreeBSD 可以执行 NetBSD-static, BSDI-static, 
           Linux-a.out, SCO-static 等等的 binary code, 增加不少相容性. 
 
       不过随著时间的发展, Linux, *BSD 都有进步, 对於免费的作业系统能 
       越来越好自然是乐见其成的. 
 
       FreeBSD 或许不会成为像 Linux 般地成为国民车, 大家都会开; 
       但它绝对是台 BMW, 又强又猛又硬 !! 

BBS水木清华站∶精华区