无意间点到一个知乎的帖子,其中为了服务器操作系统的选择而进行互怼,居然有几年的跨度,还仅仅是在Debian/Ubuntu与CentOS之间而已,其他系统都还没参战……

 

看完以后我眼都花了,几个小时才看完……

 

题主肯定是不熟悉这几个系统的,至少不应该将Ubuntu和Debian划分为一组,因为Debian的理念是干净、方便、稳定、灵活……我在2007年从RedHat系切到Debian使用至今,它还是做到了这些目标的。

 

简单写一下自己的感觉吧,不精确,甚至不深入。

先确定服务器的需求:安全 > 稳定 > 性能。

 

Debian:优点基本没法具体表达,因为所有其他发行版的优点这货都有,而这货的优点却过于突出。之前若干次提过这货是最适合服务器的系统,因为他所追求的特性恰恰就是服务器所需要的。缺点么,帖子里有人说bcm系的网卡支持较差,反正我这些年没遇到过硬件兼容问题,但侧面推敲的话,目前几乎所有的arm系统与开发板首选系统都是它,理应说明一切,而且这货对不同硬件平台的支持方面也是各个发行版无法企及的。另个缺点就是stable版的软件包包版本较老,这一点我是深有感触的,也是深恶痛绝的,但是不是有testing和sid吗,这个按说属于个人选择问题,而且本身服务器是不应该追新的。Google推荐的是Debian,他自己用的贼多,同时他旗下的GCE默认就是这个系统,可以说明很多问题。

CentOS:优点稳定?贴近RHEL?我没有长期用过,最后一次用RH系的版本好像叫AS,大概是2005年的事了。缺点就是yum的恶心,以及软件版本的远古版本,这一点尤其恶心,按那些运维人员的说法,用这个系统的话,所有软件都需要自己编译安装。于是问题来了,那你干嘛不自己搞个发行版呢,Linux本身不就是一个核心而已吗……

Ubuntu:优点是软件版本很新。缺点不知道,我也长时间用过,也没感觉有什么不稳定,当然我属于不太喜欢折腾生产环境,同时服务器必须用LTS版本,这是常识。

FreeBSD:优点是最稳定、计算性能最强、网络性能最强、ZFS是最牛B的文件系统,文档最完善,这些都没有之一,同时软件版本跟进也很及时等等等等。缺点嘛,我想了一下,大概就是接触机会少,所以不那么容易上手,其实也不绝对,因为常规使用其实都差不多,真想不出有什么缺点。

 

 

首先,FreeBSD与Linux的区别是一个完整的操作系统,而Linux是一个内核。虽然理论起来的话其实也没什么大的差别,但实际干起来就不一样了。FreeBSD之所以最稳定,就是因为他维护的是一个系统,所以与系统息息相关的一切都会被维护,也就不会出现一次小升级就导致系统崩了;而Linux只是内核,各个发行版的质量不同,所以那些人的论据“RedHat对Linux核心的代码和补丁贡献率很牛B”其实也从另一个角度说明了Linux其实质量问题也挺糟糕的。这个话题又可以推导到现实社会中的现象来,Linux这种“自由民主”与FreeBSD这种“民主集中”的层次差距还是挺大的,呵呵,自由民主=傻逼。

然后,不妨从极端环境来证实系统品质。最低端来说,128M的机器,渣渣CPU,这样的硬件环境能流畅运行的系统只有FreeBSD和Debian,其他两个没戏。这说明这两者对硬件的需求较低,也可以间接说明这两者的系统是较精简的,也因为如此,可以证实这两个系统的效率、安全与稳定必然高于其他两个系统。早些年我们搞的硬件防火墙就是基于FreeBSD搞的,当时详细测试过所有主流系统的内核与网络层效率,差距巨大,FreeBSD一骑绝尘,根本没有敌手,足以甩Linux有100条街那么多。最高端来说,Unix系一统天下这个没有任何疑问,FreeBSD是有Unix血缘的,而Linux是仿造的,所以最高端应用全都是BSD系和IBM AIX/HP UX/Solaris这几个直系近支,没有Linux的事。或者简单的说,在目前能接触到的操作系统里面,Unix系的效率依然是最接近硬件物理极限的。

接着还是要提一下Debian和Ubuntu最主要的区别吧。前面说了Debian的追求目标其实就是服务器所应该具备的特性,而Ubuntu呢,我不知道他目标是什么,从其行为来看,应该是追求易用性,有点像当年的微软。我使用过程中奇葩的情况也遇到过,不算过分,但总觉得,服务器的首要目标应该是稳定,而Ubuntu的路与此背道而驰。或者引用前几天看到一篇文章里的评价:“Ubuntu这样的社区就是不断的把新版本软件拉进来让你们测试,遇到问题了就升级升级升级”。

至于CentOS,前些天装过,但没有长时间用过,最新版本的CentOS 7里的软件都老掉牙了,要用这样的系统肯定是需要自己捣鼓很多东西的,所以我理解不了的是,在一个“稳定”的Linux发行版上面自己捣鼓几乎所有需要的软件上去编译、运行,然后吼着:稳定稳定稳定,这不是笑话么?这管理员/运维人员真有这闲心,为什么不用FreeBSD?又或者有这么大毅力的话,那CentOS与其他发行版有什么区别?我不理解这样干的话,CentOS相对于其他发行版有什么必须选择的优势。照我猜想,估计也就是操作习惯而已。并不是说这个系统好或者不好,我十几年没碰过RH系了,所以应该属于不是很熟这个系统,但我看他们争论了几年也没提出一个具有说服力的理由,所有支持这个系统的人共通的一个理由就是习惯和生态。

 

 

最后嘛,选择建议方面。

低配机器(<=512M内存)没得选,只有FreeBSD和Debian可以稳定流畅运行。Ubuntu可以运行,但是多开几个程序或者站点的话,容易崩。CentOS不清楚。如果算上PHP+MySQL+Nginx+3个PHP站点的话,只有FB和Debian可以流程稳定运行,Ubuntu不行。

中配机器(<=1G内存),这几个应该都能流程稳定运行。

高于这些配置的就无所谓了。

 

性能排序,CentOS不熟,不参与:FreeBSD>Debian>Ubuntu。

安全性方面,因为安全本身并不是一个节点或者一个操作系统一个软件的事,在我看来这几个没什么区别,都有对应的管理工具和防火墙软件。而现在稍微上点规模的应用也都是前端各种proxy,后端各种负载各种轮询,所以各种高危漏洞爆出来以后,也没几个遭灾的。但硬要说的话,FreeBSD的安全性绝对完爆其他几个系统,因为FreeBSD是一个完整系统。同时FreeBSD的防火墙性能比Linux的高出太多。

稳定性方面,我也觉得没啥区别。简单的就看长时间负载的例子,BSD和Linux都有若干年运行的;同时基于BSD和Linux的软路由、防火墙也都很多,个人感觉没多大区别。但是在极高负载的时候,BSD的优势会表现出来,一样完爆所有Linux;在数百个CPU的机器上运行的Linux是很少的,这些能说明Unix系统至少在现在来看,依然是贼高端的玩意,但也不绝对,天河二号用的也是Ubuntu,也没见不稳定,哈哈。

 

反正个人看法,低配机器呢,FreeBSD和Debian选一个就行了。对新手而言,如果只是简单的搭建一个web运行环境什么的,这俩都很方便,都可以做到几行命令快速部署。如果是为了学习以后的工作技能,那么CentOS是首选,因为国内有这样的生态环境。如果打算出国什么的,则FreeBSD和Debian是首选,国外用这俩的多。

补充一点,FreeBSD官方自带的pkg库也有3万多包包,我能想到的东西里面都有了,但据说Java环境贼难搞,可能算是劣势之一。反正要装软件来搞个开发环境方便的话,Debian系的都不会差,一般都是一行命令搞定。

作者 听涛

《杂记:再议服务器操作系统的选择》有3条评论
    1. 不打算深究的话,centos和debian/ubuntu没多大区别,或者说除了小部分配置文件路径和一些细节,其他的基本也都相同,毕竟所谓的发行版也就是套了个皮肤/壳子,就是看各发行版的操作细节和习惯能覆盖哪部分人群罢了。我是从freebsd转linux的,烦透了unix那蠢爆的shell操作习惯,所以感觉debian系很爽,而且没有那么多被迫选择的东西,比如selinux什么的,我觉得服务器系统应该是需要某些软件的时候可以分分钟具备,而不是一上来给我整一堆,当年宁愿死磕freebsd也不愿用rhas就是这原因。

      1. 不过话说回来,如果习惯了centos也没什么不好,服务器这玩意,细节方面的经验有时候比底层系统的选择更重要。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注