首先请教各位玩家,不要最近玩新的东西就觉得什么好,然后推荐什么好!承担一些责任,好吗?人是服务器,有时候选错release版本会害死一群人!是的,你终于发现有一个版本叫Ubuntu,好酷,这么多包,就apt-get,3万个包没编译就躺在仓库里。惊人的!几乎所有软件都有***版本!出色地?过了两天,你发现Ubuntu原来是从Debian来的。Debian被称为牛。它完全由社区运营,并且有很多包。这两天发现了Gentoo,哇,太棒了!性能的最佳优化,编译、编译和重新编译、配置、配置再配置,精简到绝对最低限度。这两天Gentoo玩腻了,不就是编译嘛~嗯?原来还有Arch,不错。如果要编译,不想编译的有默认包。然后pacman2个月没更新的系统,一更新就全部挂了。你的意识形态,在任何阶段,都认为这个阶段是最好的选择。但事实并非如此,这只是你的兴趣。要讨论这个问题,首先要知道两大版本的区别。红帽和Debian。1.版本定义RedHat是由RedHat维护的发行版本。它的RedHat9是唯一以RedHat为名的发行版。RH9之后版本开始分为社区维护的Fedora和企业使用的EL。而我们所说的CentOSX就是从RHELX编译而来的。所以本质上,CentOS的目标用户就是企业的服务器。CentOS有release的概念,release是什么概念?当某个版本定型时,它的大部分软件包,包括Kernel,都已经确定了版本。在此版本下,没有特殊情况,主版本号没有变化。比如CentOS6的某个Kernel版本:2.6.32-358.el6.x86_642.6.32是内核版本号,358是打包版本号,打包版本表示这个包被打包了多少次。对于RHEL,一个内核打包500-700次是正常的。再比如一些软件,1.1.3是版本,如果软件本身的定义,最后一个是bugfix版本,倒数第二个是功能版本,那么你在RHEL中很少会看到功能更新!通常只看到bugfix更新!也就是说,只会看到次要版本号更新。Debian是由社区维护和贡献的发行版。其选包和打包由社区组织,去中心化。Debian没有真正的发布概念。Debian有很多仓库,包括stable、testing、unstable和experimental。Debian组织系统的方式是,一个软件先进入experimental,放一段时间,有bug就修复bug,没bug一段时间后就移到unstable。以稳定内部。所以在这种情况下,Debian系统中是没有稳定版的概念的。如果您今天使用内核3.2.1-87,明天将更新到内核3.3.2-5。--------补充内容--------我想我已经把我所谓的release概念解释的很清楚了,但是评论里有人告诉我Debian是有releases的。我说的发布不是画个时间线然后起个名字的概念。就是版本维护的概念。@刘世伟说Debian也是这样,好吧,我证明给你看。您可以从Debian获取当前的Debian稳定版Linux内核——wheezy中的linux-image-3.2.0-4-amd64包详细信息,将其打包、下载、解压并存储在usr/share/doc/linux中-image-3.2.0-4-amd64目录下有一个changelog.Debian,grep:grepwheezychangelog.Debianlinux(3.2.57-3)wheezy;urgency=mediumlinux(3.2.57-2)wheezy;urgency=mediumlinux(3.2.57-1)wheezy;urgency=mediumlinux(3.2.54-2)wheezy;urgency=highlinux(3.2.54-1)wheezy;urgency=highlinux(3.2.53-2)wheezy;urgency=highlinux(3.2.53-1)wheezy;urgency=mediumlinux(3.2.51-1)wheezy;urgency=lowlinux(3.2.46-1+deb7u1)wheezy-security;urgency=lowlinux(3.2.46-1)wheezy;urgency=lowlinux(3.2.41-2+deb7u2)wheezy-security;urgency=highlinux(3.2.41-2+deb7u1)wheezy-security;urgency=high至少在wheezy(stable),他从3.2.41到3.2.57,同时...可以看到每个版本打包1-2次,1-2次!而Debian从unstable到stable真的是随机游走。linux(3.2.41-2+deb7u1)是第一个稳定版,它之前的版本是linux(3.2.41-2)unstable,嗯,3.2.41是第二次打包,打补丁后会变它变成了stablelinux(3.2.41-1)unstable,所以,41命中linux(3.2.39-2)unstable一次,39命中两次。从这个过程可以看出Debian总体上还是遵循KernelSource的,为什么呢?没有人!靠Kernel本身的小版本更新比靠零散的人打补丁要好。红帽呢?放一个RHEL6.4的ReleaseNotehttps://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/6.4_Technical_Notes/kernel.htmlRHEL,它不跟内核源码的次要版本号,自己集成bugfix,主要是安全相关的补丁。为什么不遵循内核源代码?主要原因是目标用户不同,我将在下面的驱动程序部分进行说明。RHEL的目标用户是企业的服务器,它的Kernel里面替换了太多东西。磁盘、网卡、各种驱动程序。内核源不是很可靠,即使它只使用次要版本号。经常服用也有风险。其实内核到了2.6之后,就没有真正稳定的概念了。不管怎样,一路向前就好了。当然,2.6.32.xx确实是基于bug修复的。但是这个量太大了,各种鸡毛蒜皮,不是RHEL都能带进来的。你一定要和我争论版本,好吧,我不和你争论,DebianStable有版本~你满意吗?这种一个内核被打包两次的状态,大家可以随意使用。不要紧。但是只有稳定版,没见过测试。老实说,我真的花时间寻找有关Debian的更多信息。6.0于2011年进入稳定版,最近确实有更新,2014年4月8日。http://metadata.ftp-master.debian.org/changelogs//main/l/linux-2.6/linux-2.6_2.6.32-48squeeze5_changelog2009年发布的Lenny是5.0,连资料都难找。如果谁能找到lenny,请给个kernelchangelog-----endofsupplement-----及其后继Ubuntu,他有release的概念,比如9.04,10.06等,他确认release的时候之后,他不会在这个版本做太多的版本改动。但问题是他学到了CentOS的外形,却没有学到CentOS的精髓。为什么?因为他要追求创新(一年两个版本),要学别人吃服务器市场。这是完全矛盾的事情。新的,好办,只要你跟着Debian,实验仓库里总会有新的东西。获取它,测试它,重新打包它,发布它!稳定?(Ubuntu-Server)这很难,它需要不断的人工输入,Debian不会帮助你。自己做?在Ubuntu上尝试了几次,到目前为止我还没有看到成功。几乎都草草放弃了。#p#二、维护的力量你知道维护一个服务器的发布版本意味着什么吗?CentOS4.02005-03-09CentOS4.92011-03-026Ubuntu8.04LTSApril24,2008Ubuntu8.04.4LTSJanuary28,September2010你说的LTS怎么样???Ubuntu10.04LTS2010年4月29日Ubuntu10.04.4LTS2012年2月16日LTS怎么样?说日期结束是3年是个笑话。下一个版本一出来,上一个版本收到的更新数量就少得可怜。这就是RedHat的强项!只要你用的是我的release版本,你就不用担心!Ubuntu呢?开个玩笑,就算是LTS,新版本出来后LTS也几乎不更新了。修补?以前从未见过!也就是说,LTS的真实寿命只有6个月到1年。你敢用吗?你敢为你的公司使用它吗?某天某软件爆出类似于最近openssl的漏洞,使用CentOS5的用户第二天就得到了升级的rpm。使用Debian的用户收到了主要版本更新,由于依赖关系,glibc、内核等软件包不得不更新。使用Ubuntu的用户会收到官方回复:“apt-getdist-upgrade”。这就是这些发行版在维护上的区别。再来说说RHEL。很多人不理解,认为Ubuntu是“新的”,RHEL是“旧的”。你的服务器上有Broadcom网卡,CentOS6(2.6.32-358.el6.x86_64)usermodinfofilename:/lib/modules/2.6.32-358.6.1.el6.x86_64/kernel/drivers/net/tg3.ko固件:tigon/tg3_tso5.bin固件:tigon/tg3_tso.bin固件:tigon/tg3.bin版本:3.124Debian测试(3.12-1)用户modinfo检查文件名:/lib/modules/3.12-1-amd64/kernel/drivers/net/ethernet/broadcom/tg3.kofirmware:tigon/tg3_tso5.binfirmware:tigon/tg3_tso.binfirmware:tigon/tg3.binversion:3.133你知道http://kernel.org是哪个版本的***2.6.32自带tg3驱动吗?#defineDRV_MODULE_VERSION"3.102"#defineDRV_MODULE_RELDATE"2009年9月1日"CentOS是“旧的”吗?谁将最新的驱动程序放入旧内核?谁在测试新驱动程序与旧内核的兼容性?RH啊!!这些是人力资源,这些是财务资源。RH在保证稳定性和兼容性的同时,力求为服务器用户提供最完善的设备匹配和完善的驱动支持。而这一切!你不必担心稳定性和兼容性问题,因为RH不会更新大版本,也不会带来巨大的功能更新。再举一个例子:Linux2.6.35中的linux内核RPS功能中的googleRFS补丁。这简直就是Linux服务器用户梦寐以求的功能好吗?您再也不用担心浪费多核CPU,也不需要花很多钱购买昂贵的multi-irq网卡。不过你需要2.6.35才能拥有~不过不用担心,CentOS6(2.6.32)已经将RPS整合进了2.6.32内核。你见过Ubuntu做过这种事吗?Ubuntu在做什么?今年我正忙着发布另一个版本!为什么RHEL会这样做?因为他的用户是服务器!RPS是PC根本不用的东西,好吗?我回到开头。我也用Ubuntu做过生产,虽然不是服务器。但是***的结果并不好。听说有个同事以前的公司用的是Ubuntu做服务器,千级量级。聊了一会儿,发现跟我预想的差不多,痛不欲生。基本的痛苦过程是这样的:遇到问题->发现只有更新软件版本才能解决->这个软件当前版本不提供这个软件版本->发现自己编译不了,依赖是太重了->决定dist-upgrade->发现需要跨越N个release->测试dist-upgrade->10台机器,2台成功,8台失败,失败现象各不相同->痛苦地解决了各种问题->成功dist-upgrade->发现公司业务程序需要重新编译->与开发者沟通说明升级的重要性->开发者重新调试测试一系列用到的库的新版本->交付一个新版CentOS用户基本上是这样的:下面是最近的一段真实对话《xxx,你看到openssl有漏洞的消息了吗?“啊?我不知道,我来看看。”傀儡运行10分钟后,《老大,补丁出来了,已经更新了,带ssl的apache可用,已经自动重启了》结束~本文来自:http://www.zhihu.com/问题/19599986
