商业的有Solaris、AIX、HU-UX、Irix和DEC的true64(大概是叫这个名字吧,我从来没用过的说),其他的象什么SCO、BSDI的就不算在内了,用的人相对要少的多了。
open source的有 linux(n种发行版)、freebsd、openbad、netbsd等,当然要说solaris是open的我也同意,勉强算是吧。
应用的广泛程度应是linux>*BSD(主要是freebsd)、Solaris>AIX>HU-UX>true64>Irix,这是个大概的顺序(或许是我认为的顺序,不一定准确,别计较)。
我就从其中选四种来比较比较(主要是我比较熟悉的):
redhat linux、freeBSD、Solaris和AIX。至于比较的方面有两个,一是新兴的企业级应用(如数据库,应用服务器等),二是传统的网络应用(比如邮件、域名等)。
先说企业应用吧,做企业级的应用的时候,你的选择机会(指操作系统)并不是很多的,比如说你要用IBM或者BEA的应用服务器产品的话,操作系统不是 Solaris就是AIX之类的商业系统,虽然linux现在也挤进了这个队伍,但是并不是主力,数据库也是这个样,比如你要用DB2,当然是AIX最好 了,而你要用Oracle,也不过是几个商业平台上来选(当然linux现在也行)。不过随着这些应用而来的是一些有关HA、存储和备份等问题,一般的解 决方案也都是比较商业化的,对于操作系统的选择余地不大,比如说用DB2的人大部分都用ADSM做备份的,没什么好想的。从这个角度来看Solaris、 AIX和HP-UX都没有什么太大的区别。
好,肯定有人要说我了,Solaris多不好管理,AIX的smit和HP-UX的sam多好啊。我可以猜到,这些朋友大多是做所谓的系统集成、 售前或者用时髦的话叫什么ASP的,而不是直接的7x24x365的做系统维护的。如果你真的7x24x365的维护系统的话,你就会体会到smit之类 的东西在出现复杂问题的时候并不是很有效的工具,而且用惯了smit的系统管理员在遇到复杂问题的时候几乎是没有什么办法,因为他们几乎从来就没有详细的 了解过自己的系统,这是问题的关键。极端的情形来讲,AIX(有时应该包括HP-UX)的系统管理员是相对比较差的UNIX系统管理员,很多时候他们说不 出配置文件的位置,至于编写脚本的能力就更不用说了(我见过很多IBM的人都是这样的),当然不能以偏盖全,也有很多好的,我见过的。
而Solaris的系统管理似乎象一种文化,有时候是对SUN的不满,比如说,为什么没有象smit之类的工具,为什么缺省的shell这么的 傻,为什么打patch这么费劲,Solaris 8带的Perl有这样或那样的问题,等等。但你如果注意的话你就会发现,针对这些问题,你总会找到类似的回答,你可以改某个配置文件,或者你到 sunfreeware去下载什么软件,等等,也是有很多的方法的。总之,问题都会解决的,而且没有想象的难,同时系统管理人员也逐渐成熟了。OK,也许 有的朋友可能说了,你说的这些和企业应用没什么关系,其实不然的,如果你是7x24x365的维护系统,那你就会知道,没有什么系统管理任务是你永远不会 遇到的,在这种环境下需要系统管理员了解系统。在这方面Solaris的系统管理员往往熟悉配置系统的每个细节,在出现问题的时候他们也可以马上解决。
从这方面看,我比较喜欢用Solaris。
再看看传统的网络服务吧,这些传统的网络服务程序往往都是free的,比如sendmail、BIND、apache等等。在这方面BSD系统有其较大的优势,主要是这些程序往往都是在BSD系统上发展起来的,当然现在其他平台也都不差。
在这里我先要淘汰出去的就是AIX。你也许可以找到AIX上的gcc程序(当然不是源代码,我可没兴趣做两次编译),不过我是没有用过,也不知道 是什么格式,不知道是安装包还是一个tgz文件,要是tgz就更坏了是先有鸡还是先有蛋呢,而且对于这些free的程序,我觉的还是用gcc比IBM C好,gcc肯定不会有问题。至于AIX带的BIND或者是sendmail,我是不敢用的,没有理由不升级到新的版本,除非你太懒了。总之,不太开放的 系统不适合做传统的网络服务。
剩下的就是linux、BSD和Solaris了,这些网络应用他们都可以完成,而且在难度上没有什么太大的区别。但是,linux和BSD是 IA架构上的系统,不说性能,单说硬件配置复杂程度PC就比SUN的麻烦的多,如果你要在PC服务器上用linux或者FreeBSD的话,十有八九你得 重新编译内核,从这方面看Solaris要好的多了。
在这里顺便说一件有趣的事情,这也是我对选择操作系统问题发生兴趣的原因,我们单位有一台alpha的服务器,以前运行openVMS,几乎没人 用了,所以我决定把它改成freeBSD,结果安装顺利,而且几乎没有从新编译内核的必要(当然不包括为提高性能而编译内核了,不过缺省的也不错的)。打 那以后我就对PC的乱七八糟的硬件类型没了兴趣。
言归正传,在安装linux、freeBSD和Solaris的时候,缺省安装软件最少的是Solairs,其次是linux,而freeBSD 是最多的(当然包括那些port了)。redhat安装软件的时候往往把程序缺省的目录改的一塌糊涂,如果你要用的程序找不到RPM包的话,你就有的忙 了,在编译前configure的时候得写一堆参数,而且说不定你编译后不能用,也是有可能的。freeBSD的安装要做的好多了,尤其是port,用的 很爽,不过我也发现过问题,主要是在编译port时候,程序之间关联的问题,比如有的程序(我记不清是什么了,好象和XML有关的东西)要用unzip, 但是我当时还没有编译unzip,照道理unzip应该被自动的编译吧,可是freeBSD就出错了,停在那里,没办法我只好先编译了unzip。而 Solaris就不一样了,你安装的时候几乎想要的什么程序都没有,然后你上sunsite或者sunfreeware找,实在没有的你就得编译了,不过 这也有好处的,系统的配置都是你自己完成的,只要你保证自己不出错,系统的稳定性就是绝对的一流,你可以随心所欲的配置系统。
从这方面看Solaris也是不错的。
当然,有时候Solaris也有问题,比如我在Solaris上编译openldap就很费劲,实际上现在很多free的项目都是在linux或者BSD上做的然后才port到其他的平台上的,从这方面来看,linux和BSD要比其他的系统好的多了。
另外声明,我不是SUN的人,有些攻击性很强的朋友千万不要说我在做广告,我和SUN没有任何的瓜葛,我甚至于可以说我目前的工作几乎没有什么商业色彩,我只是说说我的想法。