V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
lzwt806
V2EX  ›  Linux

近两年 Linux LTS kernel 对比请教,知道的前辈请分享下经验

  •  
  •   lzwt806 · 2019-11-07 22:31:29 +08:00 · 9810 次点击
    这是一个创建于 1841 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近打算更新一下自己的系统,在内核版本的选择上犹豫了很久,特请有经验的朋友 /前辈给点意见,感谢!

    需求信息:

    1,个人偏向于长期支持版( LTS ) 2,既想老旧的硬件上跑得快,又想支持较新的硬件 3,希望内核稳定可靠

    已知信息:

    近两年的长期支持内核有 3.10 、3.18 、4.1、4.4、4.9、4.14 、4.19 A:4.4 支持期为 6 年,意味着 API 长期不会变化,但也不会有新功能加入,奇怪的是很多大企不选用它商用 B:4.17 之后删除了老旧架构的 CPU 代码,比如 K8 啥的(可能记错),但我想保留这部份代码 C:据老赵说,4.1 之后的内核比较臃肿,变得慢 D:测试了一些发行版本,4.4~4.12 之间的版本,明显的能体验到感觉反应偏慢,但 4.13 之后好像又快起来了 E:2.6.32 据说坚如磐石,今天和一位朋友聊天,他说好多新特性都没有,可能好多新硬件不支持,好多驱动和软件都编译不过

    于是,望从事 Linux 系统方面工作或对内核比较了解的朋友 /前辈给点意见,简单说:就以上几个 LTS,您认为哪个版本最好或比较好(为什么)?我这样要求 /期望的效果,哪个版本最适合我?

    51 条回复    2020-12-25 19:37:19 +08:00
    CYKun
        1
    CYKun  
       2019-11-07 22:42:00 +08:00
    仅讨论 D:
    你测试的时候是否排除了内核之外的因素?从经验来说发行版自身基础软件对速度的影响不会比内核版本更小。说到这里忍不住又要推销 manjaro,manjaro 自带一个管理工具可以方便的切换内核,实乃居家旅行之必备良品。
    likuku
        2
    likuku  
       2019-11-07 22:46:28 +08:00
    老硬件?跑啥的?常见应用的话,不妨换成 freebsd
    codehz
        3
    codehz  
       2019-11-07 22:52:12 +08:00
    不说用途一律主线内核)
    lzwt806
        4
    lzwt806  
    OP
       2019-11-07 22:55:19 +08:00
    @likuku @codehz 用于桌面操作系统、移动操作系统( LiveCD )
    lzwt806
        5
    lzwt806  
    OP
       2019-11-07 22:57:41 +08:00
    @likuku 回前辈:

    最新的 GhostBSD 是基于 FreeBSD 的,LiveCD 我测试了 2 个小时,给我的感觉是:还在不能使用的阶段,驱动,性能,兼容性和 Linux 比差太多了。Linux 跑得很快的电脑,它打开个东西要等 10-20 秒不等,用着用着系统就错误,是我操作不对?

    我是以 dd 命令写入 U 盘和直接量产到慧荣 SLC U 盘里测试的。还是说非要安装到硬盘上才能体现它的稳定可靠性?

    以上纯属个人疑点和真实体验感受,无他意,如果是我操作不对,还请赐教

    另外,FreeBSD 有没有带桌面的 LiveCD 可以体验?
    feather12315
        6
    feather12315  
       2019-11-07 23:02:37 +08:00 via Android
    有商业支持的发行版,比如 CentOS、openSUSE,会 backports 一些有用的新 feature 进入自己维护的 lts 内核(比如 CentOS 8 是 4.18 ,openSUSE 是 4.14 )。
    像 Debian 这种发行版,使用的是社区的 lts,社区的 lts 见 kernel.org

    因为一些漏洞的原因(比如 specter 与 meltdown ),的确在修复后的版本中会变慢。但是可以通过一些启动参数关闭它。

    对于既想在老旧的硬件上跑得快,又想支持较新的硬件:对于前者,使用新版本内核,自定义编译选项,把没用的 config 都关了;对于后者,交钱保平安。
    codehz
        7
    codehz  
       2019-11-07 23:03:25 +08:00   ❤️ 1
    正常使用直接跑主线就好了((
    你桌面的稳定性主要不是内核造成的,基本都是垃圾驱动和垃圾桌面环境导致,折腾内核版本属于那种主次没搞清楚)))
    换句话说,桌面使用出问题 99%的原因都不在于内核。。。
    ooxxcc
        8
    ooxxcc  
       2019-11-07 23:28:24 +08:00
    表示完全不理解桌面系统用这么老的内核干啥…
    lzwt806
        9
    lzwt806  
    OP
       2019-11-07 23:41:04 +08:00
    @feather12315 你好前辈,请教:对于后者,交钱保平安,这句话怎么理解? ISO 只有一个,AMD64 的,既要兼顾旧硬件,又想支持新硬件(主要是 AMD 新出的 Ryzen 9 39xxX,Intel 的 9 代 CPU,好像某些 wifi 和网卡驱动也对内核版本有要求),你的经验是哪个版本更适合?换种方式提问:最新的 5.x 内核,对老旧的硬件支持好吗?

    @codehz 回前辈,一直选择主线,我个人认为就是追新,老是更新系统其实意义不大,浪费时间,选用 LTS 就是不想变得太快,而且新版本我总是认为测试还不够。假如 2.6.3x 能安装所有的软件和所有的驱动,那我宁可选择 2.6.xx ,但实际上是不现实的。现在的系统用得很好,就是新的硬件没有驱动,如果能无限解决驱动问题,100 年不升级我都愿意。
    likuku
        10
    likuku  
       2019-11-07 23:55:48 +08:00
    原来是跑桌面?

    我刚还在我 macbook pro 2012mid 上用 U 盘起来跑这 Ubuntu 15.10 GNOME 来测个外置硬盘,
    所有硬件都支持良好(触控板,摄像头,macbook 自己的快捷键功能)
    likuku
        11
    likuku  
       2019-11-07 23:57:31 +08:00
    愿意折腾,那就标准 freebsd 自己装喜欢的桌面环境,省事还是装主流的 桌面 linux 发行版,尽量新的
    codehz
        12
    codehz  
       2019-11-08 00:00:30 +08:00
    @lzwt806 实际上你这个是不可能实现的需求,能实现是只是没遇到边界条件。
    这里的所谓不可能三角就是稳定,新设备支持,省钱
    要求新设备支持又要省钱,就用主线,稳定性也就那样
    要求稳定且不付费,那就别想有新设备的支持了(谁帮你移植,然后完善测试呢)
    要求稳定和新设备,就得付费请团队维护,而且成本理论上没有上限,越往后越贵,比如要一直用 2.6,最后的成本可能比重新开发一个新系统还高

    理论上还存在第 4 个可能性,就是自己维护,确实可以省钱,但是这种情况势必要花费很多精力,然后也别想做事情了

    ----
    然后我怀疑你对桌面环境有什么误解,你之前有遇到过桌面环境 bug,然后还不是用户态程序的锅的情况么。。。
    然后桌面环境难道还需要保持 7*24 小时持续运行不间断的恐怖条件么(我甚至怀疑主流桌面环境能不能保证内存不泄漏,例如 GNOME3 和 KDE,多个版本都有被报告的内存泄漏 bug )
    lzwt806
        13
    lzwt806  
    OP
       2019-11-08 00:02:41 +08:00
    @likuku 2015 年的系统在 2012 年的硬件上当然跑得很好了,我的经验是:常用 /通用 /广泛使用的硬件(不是太偏门的)一般半年内 Linux 就会跟上,不常用的,不超过 2 年也会跟上,大企(华为,AMD,Intel 等)在 Linux 内核发布前半年基本都会提交代码。

    我现在的系统能在 2017 年之前的硬件上跑得很好,但现在是 2019 年了,马上要 2020 年,硬件更新换代太快,现在的系统在新硬件上驱动已经明显跟不上了。
    lzwt806
        14
    lzwt806  
    OP
       2019-11-08 00:11:16 +08:00
    @codehz 要求没那您说得那么高,能找到的支持 Linux 的驱动,然后自己编译安装,主要是越来越多这种驱动对内核版本有要求了。这里最大的茅盾是对新旧设备的支持上。
    codehz
        15
    codehz  
       2019-11-08 00:19:21 +08:00   ❤️ 1
    @lzwt806 #14 然后你会发现,自行编译驱动就是不稳定的来源。。。
    所以你都要自行编译了,还谈啥稳定不稳定的,哪个发行版维护的预编译版本不是一堆 patch 的。。。(每个 patch 都象征着前人踩的坑,你自行编译了多半还得踩坑)
    这种情况建议直接准备多套内核,看前文你是要做 livecd 这种,那你可以准备个 grub2,然后搭配从低到高一系列内核版本,反正动态加载模块是支持版本区分的。。最后主线版本肯定要留一个(全部还在维护的 LTS+主线,也就 6 个,加起来百来兆,当然实际情况你可以先测试,再裁剪不需要的版本)
    ps1aniuge
        16
    ps1aniuge  
       2019-11-08 00:57:29 +08:00   ❤️ 1
    ---困扰我多年的内核疑问!!!:---
    内核甚至是 linux,是(脱袜子)脱老板发明并维护的。但为神马大家都不屌,脱老板的 lts 呢?难道说都拿 lts 当狗,屁么?

    1 我的根本问题是:
    为什么那么多牛 x 的 linux 发行版,不管是桌面版,企业服务器版,都不用最新 lts,次新 lts ?

    2 我的想法是,所有厂家都应该用最新的 lts 版即 4.19,或次新的 lts 版即 4.14 。而
    大便是好的,大便是基于最新版的 lts 内核。

    3 为什么 ubuntu 1604lts,1804lts,都不基于 kernel 的 lts ?

    4 为什么红帽企业版 678,从来都基于 [中国不出,外国不造的] 小众 kernel 版本。centos7=3.10 ,centos8=4.18 版内核。
    以 rhel8 为例,别告诉我要基于 fedora28 的内核,不基于此版内核不就行了么?


    5 往祖坟上刨根问底:
    大企业的发行版,不基于 lts 是一种分裂,各自为政,不尊重脱袜子。
    令 linux 增加驱动,修复补丁,都变得很复杂。
    而理想情况是大家都基于某个最新,次新 lts,做分支。比如 4.14.ubuntu,4.14.centos
    ps1aniuge
        17
    ps1aniuge  
       2019-11-08 00:59:13 +08:00
    3 为什么 ubuntu 1604lts,1804lts,都不基于 lts 的 kernel ?
    neoblackcap
        18
    neoblackcap  
       2019-11-08 01:07:57 +08:00
    @ps1aniuge 我来回答你为什么 RedHat 为什么选一个版本,不选 LTS ?因为它不需要。它内部可能有上百个 Linux 工程师,内核专家可能都有几十位。稳定?你买了订阅服务,3.0 的版本都给你搞 backport。跟商业公司有良好合作,硬件厂商都拿 RHEL 跟 Suse 去当测试平台,出厂就是保证能跑的。
    至于个人用户,那都是社区的事情,源码给你了,都是开源的。又没收你的钱,你想怎么搞就怎么搞。
    mikeguan
        19
    mikeguan  
       2019-11-08 01:10:50 +08:00 via Android
    漏了 3.16 也是长期支持,4.9,4.14 都是 6 年支持
    你可以用到什么设备?没有具体设备没法继续讨论。另外你自己用随意就好
    felixcode
        20
    felixcode  
       2019-11-08 01:40:07 +08:00 via Android
    @lzwt806 楼主经常遇到因为内核造成系统不稳定的情况吗?
    shutongxinq
        21
    shutongxinq  
       2019-11-08 04:23:10 +08:00
    @ps1aniuge 商业公司选择的 LTS 和社区选择的 LTS 本来就没要求一致。商业公司有自己的发布时间表,都等社区两年一次的 LTS,那灵活度太低。比如 ubuntu 18.04 现在就升级到了 5.0,自然是因为现在硬件升级太快,4.19LTS 新硬件支持已经捉急了。等下一任 LTS 出来,花儿都谢了,用户体验不行,只能自己出钱维护一个新的 kernel,保证自己现在 active 的 LTS 发行版能够兼容新硬件。
    vhysug01
        22
    vhysug01  
       2019-11-08 08:48:29 +08:00
    跑桌面,建议 arch 系的 manjaro,滚动更新更稳定些
    我之前是 ubuntu18,为了求新,升级到 ubuntu19 之后,桌面有点卡卡的, 删除一个文件得 1s,其他还好,就给换了 manjaro
    Rasphino
        23
    Rasphino  
       2019-11-08 10:31:18 +08:00
    「 ISO 只有一个,AMD64 的,既要兼顾旧硬件,又想支持新硬件(主要是 AMD 新出的 Ryzen 9 39xxX,Intel 的 9 代 CPU...)」现在想要支持新 CPU,就只能先用最新的 stable (除非你有能力 backport 那些驱动)

    「 4.17 之后删除了老旧架构的 CPU 代码,比如 K8 啥的(可能记错),但我想保留这部份代码」不是很能理解你的目的,这种架构的机器一般人一辈子都没有接触的机会吧..

    「想老旧的硬件上跑得快」 加内核参数关闭幽灵、融断的补丁(有安全风险)
    purplewall
        24
    purplewall  
       2019-11-08 11:24:25 +08:00
    2.6.x 的不仅是驱动不能编译,连内核我都很少能直接编译成功。
    如果懒得升级可以试试看自己编译内核,配置下 grub2 往 /boot 文件夹里面加点东西就行,没什么难度。
    桌面环境可以试试看 manjaro 配合这个
    https://wiki.archlinux.org/index.php/Linux-ck
    (具体即不清楚了,3.x 建议别选了,2017 年的 meltdown 需要 kalsr 和 kpti 缓解,3.x 之后的某个版本才开始默认提供这些特性的,所以从 4.x 开始选,想要用新硬件直接上 5.x stable 不香吗~)
    reus
        25
    reus  
       2019-11-08 11:30:44 +08:00
    越旧越折腾,你应该改变观念。
    arch / manjaro 这些滚动升级的,才是最不折腾的,因为有问题就会修,而非滚动更新的,有问题可能要等到下一个版本才修。
    不要迷信 LTS,不管什么 LTS,给了钱的才是大爷,才能得到最好的服务。个人桌面,LTS 是没有意义的。
    lzwt806
        26
    lzwt806  
    OP
       2019-11-08 12:30:41 +08:00
    @neoblackcap 说得有道理,他们有钱有实力,用哪个版本都行。但是维护一个小版本真的比维护一个 LTS 版本更容易?
    lzwt806
        27
    lzwt806  
    OP
       2019-11-08 12:31:30 +08:00
    @mikeguan 用于笔记本,台式机,说了 x86 架构的移动操作系统。
    lzwt806
        28
    lzwt806  
    OP
       2019-11-08 12:33:45 +08:00
    @shutongxinq 同意您的观点,可能出于发布时间表的原因,等不到下一下 LTS 了,就选了最新的 stable
    lzwt806
        29
    lzwt806  
    OP
       2019-11-08 12:39:16 +08:00
    @vhysug01 @reus 最不喜欢的就是滚动更新和频繁更新,我是希望一个系统打包好以后就能用一辈子不折腾,另外 Manjaro 的 LiveCD 给我的体验并不好,需要深度订制才能符合我的需求,于其这样,还不如把我现在的 CDLinux 添加上驱动来得容易些。
    lzwt806
        30
    lzwt806  
    OP
       2019-11-08 12:42:24 +08:00
    @Rasphino @purplewall 感谢 2 位前辈的回复,建议不错。

    看了 @Rasphino 前辈的回复,我认为比较理想的是选 4.14 。还能给点什么意见吗?
    lzwt806
        31
    lzwt806  
    OP
       2019-11-08 12:44:38 +08:00
    另外一提:这是我第三次提问求助了,给我的感觉是 v2 比知乎的环境好多了,真的是在讨论问题,知乎上发表一个观点,极易引来水口战。
    feather12315
        32
    feather12315  
       2019-11-08 12:53:37 +08:00   ❤️ 1
    @lzwt806 #9
    交钱保平安:买商业授权、技术支持,出了问题找支持方(开源软件就靠技术支持挣钱)。 只要不是古董级别(比如 k8 这种)硬件,支持都可以的。 对与新硬件,找个 linux release data 在硬件发布日期之后的用,基本不会有啥大问题。

    @ps1aniuge #16

    1. 内核甚至是 linux,是(脱袜子)脱老板发明并维护的。但为神马大家都不屌,脱老板的 lts 呢?难道说都拿 lts 当狗,屁么?
    大发行版不用社区维护的 LTS 原因是:他们有能力自己维护 kernel,社区的 LTS 的 commiter 不是自己人,往里面添加个 feature、修复个问题流程贼慢。
    LTS 的维护并不是 Linus Torvalds 来维护,具体由谁见 https://www.kernel.org/category/releases.html。大多数 LTS 的维护者是 Greg Kroah-Hartman,他维护的 LTS 见: https://github.com/gregkh/linux。

    根本问题是:
    - 为什么那么多牛 x 的 linux 发行版,不管是桌面版,企业服务器版,都不用最新 lts,次新 lts ?
    当前的发行版也在用最新的 LTS 了,时间点在 2017 年,openSUSE 15 使用 4.14 ,Debian 9 使用的是 4,19,CentOS 8 使用的是 4.18 (自己维护)。各大发行版有滚动更新,openSUSE 是 tumbleweed,Debian 是 testing / sid,CentOS 是 Stream。

    - 为什么 ubuntu 1604lts,1804lts,都不基于 kernel 的 lts ?
    人家家大业大,自己维护的自己说了算,方便加 feature、修复 bug。

    - 为什么红帽企业版 678,从来都基于 [中国不出,外国不造的] 小众 kernel 版本。centos7=3.10 ,centos8=4.18 版内核。以 rhel8 为例,别告诉我要基于 fedora28 的内核,不基于此版内核不就行了么?
    v3.10 是 LTS,2017.11 才结束支持,CentOS 对于基础软件的策略一向保守——使用古老的版本,使用越久 bug 越少。至于为什么使用 4.18 (实际上 backports 了许多更高版本内核的 feature ),这个得问他们内部的人。

    - 往祖坟上刨根问底:
    大企业的发行版,不基于 lts 是一种分裂,各自为政,不尊重脱袜子。
    令 linux 增加驱动,修复补丁,都变得很复杂。
    而理想情况是大家都基于某个最新,次新 lts,做分支。比如 4.14.ubuntu,4.14.centos
    为了话语权。变得复杂,不更好收保护费吗?
    ps1aniuge
        33
    ps1aniuge  
       2019-11-08 13:27:30 +08:00
    回 18 楼:
    ---我来回答你为什么 RedHat 为什么选一个版本,不选 LTS ?因为它不需要。它内部可能有上百个 Linux 工程师,内核专家可能都有几十位---
    设计台词:红帽就是这么任性,就是不鸟,脱袜子的 lts。


    回 21 楼:
    比如 ubuntu 18.04 现在就升级到了 5.0,只能自己出钱维护一个新的 kernel。
    lts 不够新,哪为什么不用比 lts 更新的 5.2stable 内核,5.3stable 内核?

    回 32 楼:
    大发行版不用社区维护的 LTS 原因是:他们有能力自己维护 kernel,社区的 LTS 的 commiter 不是自己人,往里面添加个 feature、修复个问题流程贼慢。

    而理想情况是大家都基于某个最新 lts,次新 lts,做分支。比如 4.14.ubuntu,4.14.centos,4.19.ubuntu

    我的结论:
    linux 内核之江湖,太分裂了,太军阀混战了,太春秋战国了。
    军阀混战=自相冲突。让法令,特性,错误,无法顺畅下达,修复,调整。

    假设你是一名司机,但是你的左右手互博,左眼看东,右眼看西。你能开好车么?
    基本上应该 90%一统江湖啊,这样才能指哪打哪。

    是否应该减少这种分裂? 10 年后的未来,内核是否能够走向统一,还有几家分裂?元芳谈谈你怎么看?
    abmin521
        34
    abmin521  
       2019-11-08 13:34:12 +08:00 via iPhone
    我选 ubuntu 4.15
    5long
        35
    5long  
       2019-11-08 15:04:50 +08:00   ❤️ 1
    这个事 LTS Kernel 的维护者 GKH 专门写了博客: http://kroah.com/log/blog/2018/08/24/what-stable-kernel-should-i-use/
    AstroProfundis
        36
    AstroProfundis  
       2019-11-08 15:43:44 +08:00   ❤️ 1
    除非你明确要用到某些特别偏门的上古硬件,否则原帖里面的需求 B 是不成立的,因为真正删掉支持的都是几乎没人遇得到的超小众硬件,你如果只是想兼容过去五到十年的主流设备那选最新的一个 LTS 是完全没问题的
    另外真的有个别特殊情况的时候,也可以像 #15 楼说的,在 livecd 里面多装一个老版本的定制内核就完了
    ScepterZ
        37
    ScepterZ  
       2019-11-08 15:48:54 +08:00   ❤️ 1
    仅仅说使用体验,个人觉得随着版本更新(不只是内核),桌面 Linux 蛋疼的问题越来越少了,实在没必要找旧版
    个人一直跟着 lts 的步伐,出了新 lts 就换内核
    liuxu
        38
    liuxu  
       2019-11-08 15:59:09 +08:00
    @abmin521 你牛逼,大佬。
    msg7086
        39
    msg7086  
       2019-11-09 01:57:14 +08:00   ❤️ 1
    @lzwt806 #24 维护小版本?想什么呢。
    首先,LTS 本身就是「小版本」。
    比如说 4.14 和 4.15 本身就是两个不同的「小版本」。维护 4.14 和维护 4.15 没有什么区别,都是把新版本上的 Patch backport 到之前的版本。换句话说,补丁打到 4.14.100 和 4.15.100 所需要的时间精力是类似的。

    社区版的 Linux 一般用社区版的 LTS,比如 3.16 内核是 Ben 维护的,因为 3.16 是 Jessie 在用的,所以等于是身为 Debian 和 Linux 维护者的 Ben 在同时为 Debian 和 Kernel 维护 LTS,共享成果。

    同理 4.4 内核是 Ubuntu 16.04 在用的,所以在 16.04 支持期内 Canonical 也会贡献他们自己的维护成果,而不是一味交给 Kernel 社区自己。等 16.04 EOL 以后,再变回仅有 Kernel 社区自己扛。

    换句话说,维护任何一个 Linux 版本所需要的精力都是差不多的,和是否 LTS 没有什么太大的关系,有关系的是花「谁」的精力。像 Redhat 这些企业级公司的版本,本身就是根据自己的需求定制的,移植的是自己决定的补丁集,加入的是自己有需要的驱动,发型周期也是自己定的,就算用了社区 LTS,也不会直接把社区版的补丁版本拿来用。万一就算这次 RHEL 用的是 4.19 ,那么 RH 的 4.19.100 和官方内核 4.19.100 根本就是两个东西。RH 打的这 100 个补丁包和官方打的这 100 个补丁包也根本就不是一套补丁。官方在增加某个家用 USB Wifi 驱动的时候,RH 可能会去修一个光纤通道卡的性能缺陷。

    回到主题,你需要的是一个「长期」维护的内核版本。现在维护时间比较长的,显然就是 RH 系的内核,所以要省事的话,抓个 CentOS 7 就得了,维护更新能到 2024 年,10 年的周期够稳定了。

    反正新和旧是矛盾的,你又要旧(稳定)又要新(不稳定)的话那还是洗洗睡了。LTS 相对来说已经是一个新旧的平衡点了。2.6.32 坚如磐石本来就是因为旧,旧得长毛了,没有新技术引入的潜在问题,当然稳了。(而且你说的 2.6.32 肯定是 RH 家的 2.6.32.x,和官方的 2.6.32.x 也根本不是一个版本。)

    简而言之,要旧,CentOS 7 内核( 3.10 ),要新,最新大厂内核( CentOS 8 的 4.18 ,Debian 的 4.19 ,Ubuntu 的 4.15 )或者官方内核( 5.4 ),要折中,旧一些的大厂内核( Debian 的 4.9,Ubuntu 的 4.4 )。
    msg7086
        40
    msg7086  
       2019-11-09 02:10:30 +08:00   ❤️ 1
    另外就算你要打包自己的系统,也绝对不应该把只读系统拿来长期用。大厂的安全团队会发布安全更新,没有安全更新的系统是非常危险的。如果你自己打包内核和应用程序,也最好是引自其他发行版。「一辈子不折腾」是不可能的,因为所有的软件都有 EOL,超过 EOL 没有了安全更新就是你风险自担,有漏洞没人修被人黑了数据清空电脑烧毁甚至偷来干违法犯罪的事情最后也要你自己承担后果。

    然后你还提到了自己编译驱动。我这里再提醒你一句,任何非发行版自带的内核包均不属于发行版,任何非官方内核带的源码编译出的内核均不属于官方内核。也就是说,如果你拿了 4.4 LTS 内核,再拿了个网卡驱动编译了进去运行,那么

    这个内核就不再是 4.4 LTS 官方版了。

    同理你上面说 2.6.32.x 上装上新的驱动,那么

    这个内核也就不再是 2.6.32.x 官方版了。

    这就是为什么大多数发行版的内核 都 不 是 官方内核,官方是不提供技术支持的。Arch 应该是用的官方,Gentoo 说不定也是,但是 Debian,Ubuntu,这些都不是。他们都叫做「发行版内核」。

    同理你加上了驱动以后,也是「自己修改过内核」了,稳定性可靠性都和官方内核不同了。很可能你打入的某个驱动有 Bug 然后导致你电脑死机甚至数据丢失,也是有可能的。
    CRVV
        41
    CRVV  
       2019-11-09 12:44:37 +08:00
    Linux 5.1 - 5.1.5 的 btrfs 有个 bug,我就把一台机器的内核换成 LTS 了
    Linux 的 5.2 的 Intel AX200 的驱动又有 bug 导致不能用,我的一台用这个网卡的机器被我换到了 5.1

    个人观点是,mainline 显然不适合,stable 通常没什么问题但偶尔也会出点事,用 LTS 通常不会有问题
    太新的硬件有可能所有版本的内核都出问题( Intel AX200 的驱动在所有版本上都有 bug,只是有的影响小一点)

    如果你的需求是 桌面操作系统、移动操作系统( LiveCD )
    那根本没必要考虑这个问题,直接用你选的发行版给的内核就完事了,出了问题再说
    lzwt806
        42
    lzwt806  
    OP
       2019-11-10 11:06:20 +08:00
    @msg7086 看了所有的回复,前辈的回复对我最有帮助,如果不是经验丰富或内部人士,不可能得到这些高深(偏门 /专业)见解的,所以深表感谢!

    另外回复前辈,Debian 10 和 ubuntu 19.10 刚出来我就测试了,最少我发现的都有 3 个以上问题,Debian 维护了 2 年才发部的 stable 版本,还有存在一些很基础或很不应该存在的 bug,我认为他们做事不够严慎,或者说他们没有以前那么认真负责了,于是选择了放弃。

    另外 2 年前,测试过 centos,gentoo,没几分钟桌面就挂了,印象极差。

    我不否认:大多数发行版本安装在硬盘上以后,有足够的内存和强劲的 CPU 资源,都很稳定
    也不否认:大多数 Linux 发版本只跑服务,就那么几个应用或进程,都很稳定

    但是:跑桌面有时比跑服务器更考验技术,对稳定性要求更严苛,因为通用 PC 不管算力还是 RAM 都非常有限,而且软件多,软件相互之间竞争有限的硬件资源,加上软件开发者水平参差不齐,代码质量有优有劣,所以跑服务器很稳定的,装上 DE 后不一定经得起考验。

    而:移动操作系统( LiveCD )比上面说的两种情况要求更严苛,因为他甚至不依赖硬盘,除了系统运行需要 RAM 之外,还要把很有限的 RAM 分一部份给用户当存储空间。

    就以我自己维护的 CDLinux 来说可以选择只载入主要的文件到内存以最小内存占用的方式运行,也可以选择完全把 squashfs 包载入内存中运行,不依赖硬盘,所以不管是内核还是软件的选择上都是反复考量了的。就如前面所说,最新的不一定是最好的最稳定的,相反,一个能在自己系统上运行得很好的软件才是适合自己的。为了尽可能的让系统更稳定可靠,这个提问的目的就是想从基础上一步步抓起。
    lzwt806
        43
    lzwt806  
    OP
       2019-11-10 11:08:37 +08:00
    @所有人 此帖到此为止,我已经找到自己想要的答案的了,感谢所有浏览以及参与回复本帖的朋友 /前辈们!
    msg7086
        44
    msg7086  
       2019-11-10 11:47:12 +08:00
    @lzwt806 很基础的 Bug 是指?
    其实没有任何一个系统敢说 Bug Free,就像是 RH 系营收几个亿但是依然每年都在出补丁修 Bug 的。
    同样也很少有发行版会把 Bug 修完以后再发布。因为,修不完的。
    至于你的特殊需求,我也没办法给出很好的建议,只能说没有什么完美的方案,尽量用 LTS 内核、用户量大的系统,可以最大程度规避问题。桌面版就是 Ubuntu,服务器就是 Debian / RH,用得人多,问题暴露得多,越有可能解决。我自己的 Linux Rescue LiveCD 就是基于 Debian。

    毕竟,花 200 刀买来的 Windows 和花 600 刀买来的 Windows Server 也不是 Bug Free 的呢。
    lilydjwg
        45
    lilydjwg  
       2019-11-10 20:19:05 +08:00
    毫无疑问你该用当前最新的那个 LTS。

    那些旧的 LTS 存在的意义是,你的设备在几年前已经在用当时最新的 LTS 版本了。因为不同内核版本之间会有差别(特别是内核驱动啥的),本来充分测试过的版本你不用,冒然升级可能导致系统出现问题,收到大量用户投诉。当然如果你有时间和财力去测试、匹配新版内核,就放手去做吧。
    lilydjwg
        46
    lilydjwg  
       2019-11-10 20:23:47 +08:00   ❤️ 1
    > 4.4~4.12 之间的版本,明显的能体验到感觉反应偏慢

    这是修那个 spectre 系列漏洞导致的性能下降吧。你如果不是云服务端、不跑不信任的代码,可以导致禁用掉它们。

    > 2.6.32 据说坚如磐石,今天和一位朋友聊天,他说好多新特性都没有,可能好多新硬件不支持,好多驱动和软件都编译不过

    2.6.32 早不支持了。你要用的话你得自己修复各种 bug。你有那个能力吗?执着于不支持的版本,你就是孤军奋战了。更不用说很多新的软件无法运行( systemd、docker 等),而使用旧版本不受支持的软件意味着更多没人修只有人尝试利用的漏洞。
    btchinainfo
        47
    btchinainfo  
       2019-11-12 19:23:13 +08:00 via iPhone
    manjaro 很一般吧,话说回来,distro Watch 排名真的靠谱么
    Cu635
        48
    Cu635  
       2020-12-24 11:04:50 +08:00
    @feather12315
    CentOS 不是商业支持的,而是社区支持。
    当然,现在 CentOS 已死……
    lzwt806
        49
    lzwt806  
    OP
       2020-12-25 00:04:11 +08:00
    @purplewall 前辈你好,昨天测试了最新的( 20201203 ) manjaro,驱动没得说,好多新硬件都支持。但我看了一下里面的文件结构,在 /MANJARO_XFCE_202/manjaro/x86_64/下有 desktopfs.sfs ,mhwdfs.sfs ,rootfs.sfs ,livefs.sfs ,相当于把整个系统分成了几个部份打包的。

    那么问题来了,我在订制 debian 时,就一个 filesystem.squashfs,直接解开是个完整的 rootfs,直接 chroot 到 squashfs-root 就能在下面 apt get 及各种操作,那像 manjaro 这样的分成了好几个模块的,我要如何 chroot 实面像 debian 一样的功能?有此问是因为分成了模块,就意味着文件很分散,可能一个软件的文件分解到了多个模块中。

    在 CDLinux 中,所有的更改都放到了 /.rw 目录中,我只需要把这些文件放在任意一个模块即可,但在 manjaro 中是否也把更改后的文件放在了某一个目录中?

    另外,假如内核不变的情况下,编译更新内核开源驱动,比如 4.8 的内核,编译 5.9 的内核驱动,如:/lib/modules/4.8.17_cdl0/kernel/drivers/gpu/drm/i915/,这个 i915 使用 5.9 的源码,在 4.8 的内核上编译,是否可行?如果能正常编译,是否也能正常安装到 4.8 的内核上并且正常工作?
    lzwt806
        50
    lzwt806  
    OP
       2020-12-25 00:14:12 +08:00
    @purplewall @所有人 意思是:我只想对现在的系统进行驱动升级,以支持最新的硬件。我试过,/lib/modules/4.8.17_cdl0/kernel/drivers/里面的驱动和 xorg 的驱动不是一回事,即便我把 xorg 的最新 amdgpu 驱动编译安装了,也不会支持最新的 amdgpu 显卡,加了 /lib/firmware/固件,一样不行,所以,应该是要编译内核模块的 admgpu 驱动才行。为什么不直接把内核升级到 5.9 ?因为我还没有那个能力。以我现在的水平,看能不能从简单的入手只升级驱动。望指教,感谢!
    purplewall
        51
    purplewall  
       2020-12-25 19:37:19 +08:00
    @lzwt806 不是很懂上面说到的 CD image 中的内容和定制有什么关系?第二个基本没明白怎么回事.....
    如果只是想要升级内核 manjaro 有很简单的办法,设置里面有一个 Manjaro Settings Manager,里面有专门的内核更换 GUI 可以直接修改,只要在启动时在 GRUB 处切换一下就行。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3360 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 10:36 · PVG 18:36 · LAX 02:36 · JFK 05:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.