FreeBSD与Linux再比较

时间:2021-09-14 10:39:46
传说中 FreeBSDlinux稳定,大型网站几乎都建立在FreeBSD系统上,我一直疑惑难道linux是否真的不能做大型网站。于是用netcraft网站做了个测试:
http://toolbar.netcraft.com/site_report?url=www.phpchina.com
按照上面的链接你就可以查询任何一个网站的服务器架构,当然,可信度和准确度我不能保证。下面是我测试的案例:
www.phpchina.com清一色linux;
www.tencent.com清一色linux;
www.qq.com清一色linux;
www.taobao.com linux;
www.ebay.com.cn 查询显示OS清一色linux,WebServer清一色IIS,令人费解;
www.alibaba.com 清一色linux;
www.bokee.com清一色的linux;
www.google.com清一色linux;
www.pconline.com.cn linux;
www.yninfo.com清一色的linux;
www.tom.com 清一色Debian;
www.cctv.com linux+sun的服务器;
www.126.com 清一色linux
www.163.com清一色linux,大家或许都认为网易是使用FreeBSD的,
但163/126就全部用上了linux,令人费解。

   看来用linux做大站的也不少啊!!!谁说linux不能做大站呢?

  另外又发现两个奇怪的东东:
www.ebay.com 居然清一色的win2000!!!
http://www.myspace.com 全美访问量第一,居然也清一色的win2003;

    在我印象中,大型网站是压根不能用windos系统的。但这两个案例给我的理论一个有力的回击:系统稳定与否,关键还是在人!
    无论是Windows还是FreeBSD还是Linux都可以做大型网站,只要人足够牛X就行。这里不谈windows了,还是从大家口水仗打得最厉害的linux和freebsd分析分析吧。
    首先说明一点:为什么不拿linux和windows比较,而只是和freebsd比较呢?答案在于linux或是freebsd都感觉到了对方带来的压力,都认定对方是自己的竞争对手。既然称得上是对手,自然是各有所长,难分轩轾,谁也不能把谁压倒罢了。

   论坛里争论FreeBSD和linux谁谁更好,其实是从一个静态的角度来看的,在某个特定时间里,FreeBSD或许比linux更稳定,linux或许比FreeBSD更快捷,但两家都在动态发展,没有谁永远领先,没有谁永远落后,FreeBSD稳定的特性,Linux2.6可以超越它;而linux快捷的优势,FreeBSD也会迅速居上。我就不信,linus和他的黑客团队在技术上会输给学院派的FreeBSD团队?或者FreeBSD的高手们比不上一群黑客,?他们谁都可以暂时领先,谁都可以暂时落后,但谁都不是吃干饭的!

   目前流行这么一种传说:linux和freebsd内核性能上相比:linux2.2比freebsd要差,linux2.4和freebsd难分伯仲,而linux2.6比freebsd好得多。这里freebsd被静态化了,以一个动态发展的linux去比较某个固定版本的freebsd,显然是有失公平的。有道是:士别三日,即更刮目相看,更何况是技术日新月异的IT行业! 
    又有这么一种说法:LINUX被黑的多而FreeBSD被黑的少,盖出于安全性较逊?这也是无稽之谈,用liunx的人基数比freebsd大,菜鸟自然也就更多了。系统安不安全关键在人,如果你不信,可以尝试去黑一下www.ebay.comwww.myspace.com,他们的服务器可都是windows哟。

    其实两家最根本的差别不在技术,而在于设计理念:linux不求最稳,但求最新;FreeBSD不求最新,只求最稳——这样说也许不对,但也能反映一些问题。
   我对FreeBSD与Linux比较的最终结论是:谁好谁稳定都只是暂时的,两家的存在状态,是一个“既生瑜何生亮”的问题,在长久的发展过程中,技术上的常胜将军并不存在,双方只有此消彼长,各领风骚。至于大家为什么非要证明FreeBSD比Linux好或Linux比FreeBSD好,我想程序员普遍都喜欢追求完美,非要用最好最完美的系统才甘心吧!

   FreeBSD和Linux我都用过,不在超大型应用中,很难感受两者的差别。个人选择的linux,考虑到使用linux的人比较多,商机自然也就更多吧,钱在哪眼光就看哪,至少linux的就业机会比FreeBSD多。当然,这是非技术因素的考虑了。

------------------------------------------------------------------------------------------------------

从linux 迁移到 freebsd

FreeBSD和各种Linux发行版一样,是一种免费的Unix类操作系统。由于FreeBSD的推出稍晚于Linux,因此国内介绍FreeBSD的文章较少,而且由于某些煤体不负责任的推波助澜,Linux被过分夸大、神化了。实际上,很多大网站都在用FreeBSD,如Yahoo,甚至包括Microsoft的Hotmail(Microsoft收购Hotmail4年了,但直到去年11月Microsoft才宣布Hotmail向Windows/IIS迁移,而且,至今Hotmail主机群中依然包括FreeBSDBoxes,可见Microsoft对于Windows并不是真的很放心,这一事实也证明了FreeBSD引以为耀的稳定性)等等。和Linux各种混乱不堪的发行版相比,FreeBSD只有唯一的版本,同时,FreeBSD关注的是操作系统的稳定性、性能和品质,适合作为服务器的操作系统。当然,对于选择FreeBSD还是某种Linux发行版本作为操作系统,不同的人肯定有不同的偏爱,但译者认为,FreeBSD作为服务器来说,比Linux更好一些,当然,如果不考虑开发成本,仅仅考虑运行效率,也更远好于Windows。原因很多,有机会的话,我会在今后的文章中一一提到。

需要说明的是,译者不认为最近一两年之内免费操作系统阵营能够和Microsoft等商业系统阵营决出胜负高下,因为他们的操作系统的设计理念存在差别。我自己很喜欢命令行方式的操作,然而在图形界面方面,XWindow的效率是很难超过Windows的,这是因为X是以用户模式运行图形界面,而Windows则是以核心模式运行,这实际上就造成了Unix类操作系统在图形界面上的先天不足。而且,由于Microsoft的产品是要卖钱的,因此它为了维护自己的市场地位,会为客户提供比较好的服务,而免费Unix操作系统在这一点则比较困难,而且,它对用户的要求较高。在这里我不想给出一个确切的建议,如桌面操作系统应该选择什么,服务器操作系统应该选择什么,一切要从实际情况出发。请大家注意这样的事实:专业人员维护的Windows服务器的安全性未必就差,非专业人员维护的*nix服务器的安全性也肯定是无法接受。在抨击Nimda横行的同时,也请注意,Microsoft早在Nimda出现前半年的时候就已经推出了预防性的补丁;*nix一样也有非常让人难堪的安全问题,同样的,他们也会及时推出补丁,因此,绝大多数服务器的安全问题是由于管理员的疏忽造成的。选择操作系统之前,最好是先想好:什么样的配置对于您最有利,请考虑整体拥有成本(TCO)而不仅仅是操作系统的价格。目前很多网站采用的、非常流行的Windows2000+Apache+Php+MySQL组合实际上就同时牺牲了IIS开发周期短和Apache+Unix组合相对比较容易定制的优点,可谓竹篮打水一场空。

这篇文章比较客观地对FreeBSD和Linux进行了对比,值得一读,所以我决定把它介绍给国内的读者。总之,Think different,决定选择什么东西之前,最好先尝试一番,特别是那些同类产品。

简介:即使是和IT不沾什么边的企业信息技术人士大概也都听说过Linux。有些人可能用过,或正在使用它,原因五花八门,有的甚至只是为了看看那些大肆吹嘘它的人到底说的是不是实话。然而,GNU/Linux并不是可用的唯一一个“free”的Unix类操作系统。FreeBSD和它的堂兄弟,OpenBSD和NetBSD都是商业UNIX版本——Berkeley SoftwareDistribution免费的分支产品。这篇文章让您更多地了解FreeBSD,也帮助您更轻松地进行潜在的迁移过程。

与Linux使用的GPL授权不同,BSD家族的操作系统使用BSD风格的授权。用一句话来概括两种授权的不同就是,GPL要求源代码的任何衍生物也是公有的,并且使用GPL授权,而BSD授权没有这个要求。

FreeBSD和主要的Linux发行版本的工作方式有一定区别。这篇文章将告诉你我自己认为在把我的桌面操作系统由Linux切换到FreeBSD时的收获。

当然,肯定会有人坚持这样的观点:Linux指的仅仅是操作系统的内核,而不是其他什么东西。在你的RedHat或Debian匣子中,每天使用的应用程序是由相应的发行版本提供的。而FreeBSD,则包括了操作系统内核和整个操作系统中的那些基本的应用程序,例如复制、移动文件的命令等等。这一区别的结果是,Linux由不同的发行版本,例如Mandrake, SuSE,Debian和Slackware。任何使用过Mandrake和Debian的人都会告诉你这两套发行版本的世界有多么大的区别。相反,只有一个FreeBSD,我的FreeBSD和你拥有的FreeBSD是完全一样的,只要他们的版本一样。

三中最主要的Linux发行版本,RedHat、Mandrake和SuSE使用了RPM安装包管理器。RPM处理安装、升级、卸载,并检查安装在这些操作系统上的应用程序依赖关系。虽然在安装程序之前检查依赖关系的错误,但RPM遗留了比我们期待的更多的问题。例如,它不能自动地下载它需要的其他RPM。我知道至少3个项目试图解决这个问题,urpmi,Debian的apt-get,当然,附带说一句,只是一个“仅Debian采用”的特性,而且是一个RPM和apt-get的混血儿。所以,除非你打算是用上面的方法,否则你将不得不手工寻找、下载所需要的RPM。听起来很简单么?直到你用RPM安装Gnome或者升级Xfree的时候你才会知道事情有多么严重。而且,即使你找到了正确的RPM,如果他们是为SuSE设计的,而你运行的是Red Hat,那么你的麻烦课就大了。

每一个Linux发行版本都存在一些差异,而它们之间最大的差异则在于文件系统的结构。我肯定绝大多数人都听说过SuSE把KDE放到/opt,而RedHat则放到/usr文件夹中。更糟糕的是,RPM不能识别从源代码中编译得到的程序。所以,如果你拥有最新编译的程序,RPM甚至无法知道他们的存在。

FreeBSD使用“包”来安装、卸载和升级应用程序。‘pkg_add’命令被用于安装一个你手工下载到计算机的包。你也可以用‘-r’开关来让它自动的从Internet获取,当然,也包括这个包所依赖的一切。不过,FreeBSD包的真正美妙之处在于“连接点”(Ports)树。连接点树是——FreeBSD包含的应用程序之间的继承关系。每一个文件夹都包含Makefile,以及让特定应用程序能够在FreeBSD上正确运行所需要的补丁。例如,如果我想安装Apache web服务器,我所需要做的只是cd到/usr/ports/www/apache文件夹,然后运行‘make&& makeinstall’,然后去小吃售卖机前。如果我拥有一台速度够快的电脑,同时拥有一个足够大方的Internet连接,当我回来的时候Apache源代码的下载、补丁、编译和安装肯定都已经做完了。连接点树也能够处理Apache运行依赖的那些程序,无论我用连接点树安装、手工编译,还是通过安装已经编译好的二进制包。连接点树能够通过$PATH找到它需要的东西。

Linux和FreeBSD的另一个区别在于,对于FreeBSD而言,你安装的连接点或者包99%都会被放到/usr/local,而在Linux上有时是/usr,有时是/opt。这可能只是一个很小的区别,但你至少可以知道你的程序安装到了/usr/local,而不是扩散到了文件系统的各个地方。

FreeBSD系统使用cvsup来保持它是最新的。一旦你建立了‘sup-file’,cvsup将会把你本地的系统和cvsup服务器上的进行比较,并且下载那些修改过的东西。你可以用它来确保你的本地连接点树和FreeBSD源代码都是最新的。和Linux不同,Linux通常只有内核被半正规性的下载和变异。使用cvsup,你可以很容易地下载整个FreeBSD操作系统的源代码。这样做的主要理由是,它使得FreeBSD从一个版本升级到另一个的过程变的简单。Cvsup之后,你可以用make world来编译整个操作系统,或者编译新的操作系统内核。这些都非常的简单。

处理分区的方式也有区别。Linux将一个硬盘分为不同的分区,在这些分区中,有些又包括逻辑分去。我们常说的分区在FreeBSD中称为片断(Slices),没个片断中包括一个或多个BSD分去。BSD分区在/etc/fstab中可以找到。

也许Linux和FreeBSD的下一个最大的区别就是操作系统设计的基本理念。Linux强调最新的操作系统特性和驱动程序(例如不开放源代码的nVidia图形卡驱动程序)。FreeBSD在这些方面比较保守。他们喜欢经过时间考验和测试过的东西,甚于最新特性。他们倾向于等待主要的bug被修正。对于桌面操作系统来说,如果你使用最新的硬件,追求最新的驱动程序,或那些更酷的特性,保守是FreeBSD的一个毛病。然而在服务器中,你肯定希望更加稳定的代码。另外,你会把一块价值200美元的显示卡放到你的不包括显示器的服务器上么?

另一个区别是默认安装的内容。如果你接受SuSE的默认安装选项,那么你至少会装上1GB的软件。而FreeBSD只是安装那些最基本的系统(注意,我知道你会告诉SuSE仅仅安装‘基本系统’,但我说的是‘默认’安装)。他带给你那些最本质的东西,而你可以在以后通过连接点树安装4000多种应用程序中的任何一个。几乎所有在Linux中运行的程序都已经被移植,并且能够正常运行于FreeBSD,唯一的区别在于在Linux上,应用程序要么被“默认安装”,要么,除非你用Debian,你就必须手工下载它们。在FreeBSD上他们只是可选的,而且绝大多数过程已经被自动化了。另一些区别就是,Linux上默认的命令行外壳是bash,而FreeBSD上则是tcsh。

对于商业应用程序,如Oracle或HPOpenmail,FreeBSD提供了一个“Linux兼容”层。简而言之,它让FreeBSD能够以接近在Linux上运行的速度直接运行Linux的二进制应用。应用程序是否能够在FreeBSD上全速运行完全取决于它是否真的愿意在Linux上运行。兼容层比模拟更进一步。需要的Linux库被以二进制形式安装在BSD系统中。当你试图运行Linux程序时,FreeBSD识别它是Linux程序,并简单地指明它需要的Linux运行库的位置。同时,FreeBSD夜提供了商业BSD、NetBSD、OpenBSD和SCO的模拟。每种不同的操作系统获得不同的支持,其中最完善的是商业BSD、NetBSD和OpenBSD。

尽管BSD开发者更重视软件的品质和数量,但这并不意味着FreeBSD缺乏某些功能。预定于2002年11月推出的FreeBSD5.0包括了更加精细的进程控制机制,这允许它更加有效地运行于最多32个处理器。版本5.0也将提供一个完整的DEVDFS设备文件系统。虽然这些在Linux上已经存在了一段时间,但你也许还没有听说过。DEVDFS大体上是一个允许动态变化的设备文件系统。例如,如果你接入了一个USB键盘,它将‘魔术般地’加入到/dev文件夹。在日志文件系统方面,4.4稳定版提供了‘softupdates’特性。尽管在技术上它也许不能北郊做日志文件系统,但它可以做得比你对日志文件系统的要求更好。

1998-1999年.com爆炸中,Linux是真正的关键词。所有地方的电脑用户都听说了一种*免费*的,正在服务器领域和桌面领域挑战Microsoft地位的操作系统。即使在今天,Linux的忠实用户仍然在增加。但是,很多人只是刚刚听说FreeBSD。希望这篇文章能够帮助你对FreeBSD有一个初步的了解,并且把它作为满足你的需求的一种选择。在最后我想说的时,既然它们都是免费的,为什么不都试一试,看看谁更满足你的需要呢?