<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[Free BSD,Linux之比较 ]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[生活笔记]]></category>
<pubDate>Tue, 01 Jul 2008 06:02:47 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	Free BSD,Linux之比较 <br/>1. Linux <br/><br/>优点: 充分发挥 PC 的功能，花样极多，玩起来很有趣，各方面的表现都不错。 <br/>缺点: 太过自由，以致於发散掉了，维护方面比 FreeBSD 麻烦(对一般人来说)。 <br/>-&gt; 适合喜欢「玩 PC」，更甚於「玩 UNIX(Network)」的人。 <br/><br/>2. FreeBSD <br/><br/>优点: 非常 UNIX、非常 Free、非常 BSD -- UNIX 的理想归宿!! <br/>缺点: 太过 UNIX，以致於玩下去很难收手 ^^;; <br/>-&gt; 适合喜欢 UNIX，有心好好经营 service 的人；也是 programmer 的理想 OS。 <br/><br/>FreeBSD Core Team 并不是刻意忽略「入门的方便性」，只是人力有限，把主力投注在「UNIX 风味的主题」上。 <br/><br/>FreeBSD 对硬体的需求实在也不会太严刻，对刚接触的人，建议使用「最一般化」的 硬体，像是: IDE (BigFoot)、ne2000 compatible 杂牌卡,S3Trito64，最烂的14寸 VGA，(atapi-cdrom)。 <br/><br/>想说明的是，希望对 FreeBSD 有兴趣的人，别买些「太高档(或者说奇怪)」的硬体， 到时候装不起来就骂 FreeBSD 怎麽这麽烂 ^^;; <br/><br/>可以想一下，到底想试试自己的PC能跑多少东西，还是真的有心进入 UNIX 的世界。<br/><br/><br/><br/>=== 为什麽要选择 FreeBSD ?! === <br/><br/>嗯...现在有许多免费的 i386 UNIX (在 386 以上 PC 执行的 UNIX)，例如 Linux、NetBSD、FreeBSD、OpenBSD、386BSD 等，究竟你要如何选择属於你的 <br/>UNIX ? <br/><br/>玩了三年多的 UNIX (一年半 Linux，两个月 NetBSD，两年 FreeBSD) <br/>笔者只能以非正式的说法说说笔者的个人意见，希望这些意见不要引起争论 <br/>各个作业系统优缺点的大战。 <br/><br/>Linux 是容易上手而且好玩的作业系统，也是现今最多人玩的，正因 为它太好装了，只要硬体没问题闭著眼睛都装的起来，因此 如果你是 i386 UNIX 的新手，这可说是你入门的最佳试金石。 <br/><br/>NetBSD 支援 13 种硬体架构，这也是它的强处，算是 multi-platform <br/>的典范。 也因此，i386 在里面只算是 13 种中的一种，自然无法取得全力的发展，再加上其 core team 比较不活跃，所以在 i386 上的硬体支援并不是很好。 <br/><br/>OpenBSD 源自 NetBSD，刚出来半年左右，专门把 NetBSD 跟 FreeBSD 的 新功能跟修正加在一起，算是 NetBSD+FreeBSD 的混血儿，由於 其 core team 人数少，加上程式码很少是自己开发的，因此现在 <br/>前景还不明朗。 <br/><br/>FreeBSD 跟 NetBSD 一样都是基於 4.4 BSD-lite，但是 FreeBSD 现在只支援 i386，所以在 PC 上来说要比 NetBSD/OpenBSD 好太多了， 在从前NetBSD 跟 FreeBSD 的 core team 是一起的，後来分家了。 FreeBSD 具有一般 BSD 系统的稳定，又从其他作业系统学习了许 多优点，再加上自己开发的各种新功能，时时改进演算法以增加 执行效率，现在已是免费 BSD 系列中效率最好的，最主要是因为core team 活跃又乐於接受使用者的意见并改进。 <br/><br/>* 什麽是 core team ? <br/><br/>core team 是一个专门对原始程式码做发展跟维护的组织，Linux 没有 core team，NetBSD/OpenBSD/FreeBSD 有。有 core team 的优点是 <br/>原始程式码会有一致性，会有组织的被更新，但是整个 OS 的活力也操在 core team 的手中，这就是 NetBSD 在笔者眼中无法兴盛的原因。而没有 core team(如 Linux)，好处是全世界每个人都可以发表自己的修正(patch) 不须经由 core team 的审核，但缺点是 source code 杂乱无章且可能会 不同步。所以 Linux 在更新东东的时候，必须由使用者自己注意 kernel、 gcc、library、net-tool、modules、甚至各种 kernel patch 版本的一致性。 <br/>(或许在 RetHat Linux 已经稍微好一点了) <br/>而这些可怜的情形在 FreeBSD 身上都不会发生。 <br/><br/>* 要选择怎样的 OS 必须看你自己的需求及能力，还有周遭玩的人多不多， 多装几种，多装几次，自己感觉一下才是真的 ! <br/>(其实只要不怕 format 硬碟，吃饱撑著，装什麽东西、装几次都好说嘛) <br/><br/>1. 稳定性 <br/>一个作业系统最重要的就是稳定性，比方说能连续开机多久，能忍受 多少系统负荷，网路不稳时会不会当掉，网路负荷太大时网路会不会 死掉，笔者个人觉得 FreeBSD &gt; Linux。 <br/>尤其许多研究已经提出，Linux 在高系统负荷下的表现相当不好，而 <br/>FreeBSD 却不会。要知道世界上最大的 ftp site - wcarchive.cdrom.com 是一台跑著 <br/><br/>FreeBSD 的 Pentium pro 机器 (P6-150，512MB RAM，72GB HDs online <br/>more than 1200 ftp users allowed) <br/><br/>注 : wcarchive.cdrom.com = ftp.cdrom.com <br/><br/>2. 网路 <br/>争夺封包(packet)的速度，除了网路卡好坏之外，最重要的还是作业系统跟 驱动程式，使用一样的网路卡 FreeBSD &gt; Linux &gt;&gt;&gt; DOS+NCSA. 而且 <br/>FreeBSD 在 RPC 及 NFS 上都比 Linux 来的稳定及快速。毕竟 BSD 在网路 <br/>这方面是始祖. <br/><br/>3. 移植软体的难易程度 <br/>现今一般的软体大多是为 BSD 写的，所以一般软体在 BSD 上会比在SYSV 上容易编译。而 FreeBSD 是 4.4BSD based，Linux 是 SYSV 加 上BSD-extension，所以在 Linux 上编译东西有时是个梦靥 (不是很 SYSV 也不是很 Posix 也不是很 BSD)。不过现在越来越多的软体会注 意到 Linux，因为 Linux 使用者太多了。 <br/>FreeBSD 有收集数百种软体的 ports，只要打个 make 就可以轻松编译，不然也有编译好的 binary 可以直接安装使用。 <br/><br/>4. 硬体支援 <br/>Linux 支援最多种的硬体，NetBSD 最少，而 FreeBSD 夹在中间正急起 <br/>直追中，而且许多 FreeBSD 的 driver 都写的相当棒，反而後来被 <br/>移植到 NetBSD 跟 Linux。 <br/><br/>5. Merged VM/buffer cache <br/>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 不相上下，甚至更胜一筹。 <br/><br/>6. tty 限制 <br/>现在 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 也相当容易修改。 <br/><br/>7. 完整原始程式码取得 <br/>一般人使用的 Slackware 版 Linux 是由 Slackware 公司整理，所 以一般人要取得完整原始程式码必须自己东抓西抓，这也是 Linux 在 NCTUCCCA 的 mirror 量这麽大的缘故。但往往 Linux 使用者找不到 自己须要的原始程式码，如果没有那些整理 Linux packages 的公司， 以及帮忙 Linux 发展系统工具及函式库的人，Linux 充其量算是只有 Linus 写的 kernel 而已，不过最大的问题还是各家写出来的东东 一致性的问题。不过新出来的 RedHat 已经提供一个简单的软体同步 与更新的方法 - RPM，也算是稍微抒解这一类问题的严重性。 而 FreeBSD 提供完整的系统原始程式码，从 /bin /sbin /usr/bin <br/>/usr/sbin /usr/lib ... 甚至 /etc /usr/share/FAQ 都在里面， 让你可以很容易的更改自己想要的东东，要更新系统时也可以抓取 最新的 source 打个 make world 就成了 (当然也可以用 core team 做好的 binary)，它甚至会自动检查各目录的权限是否正确。 简单一句，就是非常的有组织! 利用 binary 来升级只要不到一小时就可以完成，甚至有写好的 script 可以使用。 <br/><br/>8. 目录档案组织化 <br/>FreeBSD 根据 4.4BSD 规范，什麽档案应该在那里，应该是什麽权限， <br/>编译时应该连结(link)成 static 或 dynamic，都非常的严谨，该有的 <br/>manpages 绝对不会少。不像 Linux，写 kernel 一个人、写 library <br/>另一个，写 manpages 又另一个、整理 utility 又另一个，各自为政 <br/>不同步，常常档案到处乱放或是重覆，manpages 不完整，许多目录档案 <br/>为了新旧版本的相容性而 link 来 link 去。 <br/><br/>9. 系统安全 <br/>FreeBSD 使用 shadow password，支援 secure NFS，不像 Linux 要 自己安装 shadow password，将来编译 ftpd，sudo 时又得改来改去。 <br/>因为USA 版的 DES 禁止输出到美加以外地区，FreeBSD 为了全世界广大 <br/>的使用者，在密码系统上内定使用 MD5 编码，它比 DES 来的安全，如果 <br/>你不跟 SunOS 类的 YP server 跑 NIS，那你是不须要安装 DES 的。如果 <br/>你要使用 DES，你可以安装可以自由流动的 DES 版本 (非 USA 版)，在 <br/>/usr/share/FAQ/Text/FreeBSD.FAQ 中有提及那里可以取得，或是到台湾 <br/>任何一个 FTP 站取得。 <br/>此外，FreeBSD 的使用者登入控制，以及档案安全层级保护都比其他 <br/>作业系统来的好 (kernel secure level)。 <br/>FreeBSD 的 core team 会注意 source code 跟 security 的同步性， <br/>一有新的问题或 sendmail 漏洞，就会立刻更新程式码，已达到最佳的 <br/>系统安全。 <br/><br/>8. core team 活跃 <br/>FreeBSD 的 core team 非常活跃而且谦虚，带动整个 FreeBSD 迅速 <br/>发展，每天都有新的 patch 出来，让使用者以 sup/ctm 来定时自动 <br/>更新原始程式码。 <br/><br/>9. 4.4BSD-lite based <br/>由於 FreeBSD 是基於 4.4BSD-lite 的，因此带来了许多 BSD 的好处， <br/>像网路速度稳定、容易移植软体、安全快速等。 <br/><br/>10. 从 Linux 而来的优点 <br/>FreeBSD 正在把 Linux 的 dosemu 移植过来，甚至可以直接执行 linux <br/>的 binary (linux emulator)，还有移植 Linux 支援的一些驱动程式。 <br/><br/>11. 支援 LKM <br/>FreeBSD 支援 Loadable kernel module，也就是说许多驱动程式 <br/>在编译 kernel 时可以不必做进去，一旦你要用到时，kernel 会自动 <br/>从 /lkm/*.o 载入该 driver，这样可以提高弹性并减小 kernel 使用的 <br/>记忆体空间。未来 FreeBSD 会朝向 LKM device 迈进，就像 Solaris <br/>一样不需编译 kernel。 <br/><br/>12. 直接执行 gzip 的程式 <br/>FreeBSD 可以直接执行 gzip 的程式，如果你把所有的执行档都 gzip <br/>起来，不就等於用 stacker/doublespace 一样了 ?! <br/><br/>13. 线上监控 <br/>kernel 支援 tty snoop，可以监控线上使用者 (不像 linux 那个半调子 <br/>ttysnoop，会导致许多问题)。 <br/><br/>14. 众多档案系统 <br/>支援 MFS (Memory File System)，类似 SunOS tmpfs 的东东，还有 <br/>许多 4.4BSD 定义的档案系统，如 LFS、NULLFS、PORTALFS、UMAPFS <br/>、UNIONFS。 <br/><br/>15. Interleaved swap <br/>当你有一个以上的 swap 装置时，会同时使用以增加速度 (尤其是使用 <br/>SCSI 装置时)，而不是像 Linux 一个接著一个使用。 <br/><br/>16. 新的 slice 观念 <br/>新的 slice 观念使得 FreeBSD 对其他 OS 的 partition 相容性比 <br/>传统的 BSD 好很多，在安装上也较为容易。 <br/><br/>17. Binary 相容性 <br/>FreeBSD 可以执行 NetBSD-static，BSDI-static，Linux-a.out/elf， <br/>SCO-static 等等的 binary code，增加不少相容性。 <br/><br/>18. ccd (软体 RAID) <br/>Concatenated disk (ccd) 驱动程式能让你拥有 Strip、Mirror，甚至 <br/>Parity 等 RAID card 才有的功能。 <br/><br/>19. 多国语言的支援 <br/>FreeBSD 的 localization 是所有免费作业系统中做的最好的，甚至已经 <br/>有了亚洲语系(中文、日文)的安装介面。 <br/><br/>20. 有组织的原始程式码 <br/>FreeBSD 的程式开发者在撰写程式码的时候，会去参考各种 RFC 规范以及 新的理论文献，因此 FreeBSD 的程式码有条不紊、层次鲜明；反观 Linux <br/>常常为了急就章而走捷径写出来的东西，到最後开发新功能时又必须改来 <br/>改去。 <br/><br/>不过随著时间的发展，Linux、*BSD 都会进步，对於免费的作业系统能 <br/>越来越好自然是乐见其成的。 <br/><br/>一般而言，如果你须要一台稳定快速的 Internet Server，FreeBSD 是你绝对 的选择；如果你是个人使用或只是想学习 UNIX，Linux 跟 FreeBSD 都是很好 的试金石。 <br/><br/>Linux 浮上台面已经四年了，而 FreeBSD 以短短的两年时间就拥有了众多的 使用者人口 (尤其是伺服器，以及程式开发者)，高手的选择必有他的道理。 <br/>用过 FreeBSD 才知道，『PC 不只是很便宜的工作站』 <br/><br/>但是，Linux 的优点是『好玩』，而且随著 kernel 日渐更新，很多东西也 越来越稳定。我们系上从两年前开始就用 Linux 当 mail, acounts, ftp, gopher, terminal, ppp, slip, BBS servers, 最近又加入 WWW server，服务几百位师生。 目前系上已经有好几台 Linux PC 一起运作，其中包含 NFS，与 WinNT，Win95 的连线与资源共享(by SAMBA packages)，我们也在测试用其中一台摹拟 Novell Server. <br/><br/>我们的同时上线人数一般不会超过 100 人，用 Linux 来应付绰绰有馀。如果你想开 的是一次几百人上线的 BBS 大站，那可能 FreeBSD 会比较适合。不过话说 回来，能开这种大站的单位都很有钱，大都拿 SUN 或其他 workstation 级的来 run。 <br/><br/>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 以及有语音信箱。 <br/><br/>我个人的建议是，如果你是个人使用，或者网路同时上线人数不超过一百人以上， Linux 的确是好玩又实用，而且新的硬体很快地几乎都可以在 Linux 上使用。 如果你要架的是几百人上站的机器，又没钱买 workstation，那 FreeBSD 在 网路壅塞时的 performance 的确不错。如果是个人要『玩』，我并不建议 FreeBSD，那会使你觉得提不起兴致(纯属个人观点)。 <br/><br/>在 csie gopher 中有关 Linux 与 FreeBSD 的比较中，有一项是 FreeBSD 上 software porting 比较 easy。但是这个 comment 随著 Linux users 群日渐庞大， 我觉得已经有些改变：现在在 Linux 很多东西根本用不著 porting，因为很多 软体根本就是 Linux fans 专门为 Linux 设计写出来的，反而要用这些东西 需要额外费心去修改以便能在 FreeBSD 上使用。DOSEMU，smbfs 即是其中几个 <br/><br/>例子。据最近的 newsgroups，FreeBSD core team 有五十多人，但是 Linux fans 散布在全球各地的 programmers 其数量根本无法计算。有心的话， 比较下 Linux 跟 FreeBSD announce newsgroups 就可知一二。 <br/><br/>所以，我并不是很赞同一个 UNIX 的新手去玩 FreeBSD。但是，假如有人已经玩过 Linux ，或者在其他工作站级机器有过简单管理经验，那他们会发现 <br/>FreeBSD 极易入手。玩过 FreeBSD 的人一定知道光要新增 partitions 就已经是一件麻烦的事。堂堂一个 FreeBSD 的 fdisk 介面连 M$DOS 的都不如， 可见 FreeBSD core team 之目标不在一般连 ls, cp, tar 都不懂的newbie。 另外一个动机是假如你必须要架一台超稳定的 Internet server，那 FreeBSD 是目前的 best choice。 <br/><br/>其实呢，如果有心要玩，大可弄个大点的硬碟，同时装上两个系统，一定 <br/>可以如鱼得水。我的 office 中同时有一台 FreeBSD，一台 Linux，各做各的事， 也是很快乐。。。。 <br/><br/>就目前使用者能观察到的来看, 一般相信 linux 的 data-path-consumed process 的执行速度, 是众多 x86 作业系统中最快的; 而 high load 下的网路则 令人不能感到非常满意. 虽然 linux 第二版後网路 部分有了很大的改善, 据 Linus 本人的说法, linux 在传 single package 已比 FreeBSD 还优胜, 但作 <br/>为 NFS 或 high load netserver 还是显得略有不顺 (所谓 &quot;不顺&quot; 与 &quot;不稳&quot; 无关). 毕竟, 考查 linux 的发展历史, 的确是先在 x86-embeded scheduler, fs, 等核心process 执行部分, 最後才加进网路部分, process 执行最佳而网路稍逊乃是合理 的结果. <br/><br/>一般建议如果机器用来执行程式 (如跑 project) 为主, 跑各式怪模怪样的小程式及 server, 或有非正统硬体者 使用 linux 可能较佳.
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] Free BSD,Linux之比较 ]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>