热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Fedora与Ubuntu内核比较

红帽的JoshBoyer充满好奇心的比较了Fedora18和Ubuntu13.04所搭载的Kernel3.8在配置上的不同,发现了一些有趣的地方。注意:下文为意译JoshBoyer分别选用当下Fedora18中的3.8.11-200.fc18和Ubuntu13.04中的linux-image-3.8.0-19-generic在X86

红帽的 Josh Boyer 充满好奇心的比较了 Fedora 18 和 Ubuntu 13.04 所搭载的 Kernel 3.8 在配置上的不同,发现了一些有趣的地方。

注意:下文为意译

Josh Boyer 分别选用当下 Fedora 18 中的 3.8.11-200.fc18 和 Ubuntu 13.04 中的 linux-image-3.8.0-19-generic 在 X86 64 位环境下进行比较,两者使用相同的上游内核。

底层设置

Ubuntu 将最大可使用内核数设定为 256 而 Fedora 仅为 128;同时 Ubuntu 启用了更多 NUMA(非一致性内存访问)支持,并且设定了更高 NUMA 可支持数。考虑到 Canonical 打算统一 Ubuntu 桌面版和服务器版中的内核,Ubuntu 启用这些 SMP 相关的选项完全可以理解。

在计时器中断唤醒次数上 Fedora 设为 1000,而 Ubuntu 设为 250。通常来说较大的值意味着能提供更快的交互响应,更适用于桌面应用;较小的值则更便于服务器能更加专注的完成工作,而非响应中断。不过两者都启用了按需响应,CPU 在空闲时不会被无用的计时器唤醒打扰。未来估计两者都会逐步迁移到 3.10 内核引入的零计时器唤醒,更好的降低休眠时能耗。

同时 Ubuntu 也默认启用了快速无 HZ 选项,增加了内核进入空闲状态的机会,可以减少能耗。Fedora 曾在该选项刚刚引入上游时启用过,但是后续的诸多问题又使其被禁用了。经过几个内核的修订该功能相比当初稳定许多,值得重新考虑。

默认选择

Ubuntu 的默认 I/O 调度器为 deadline 而 Fedora 为 CFQ (Completely Fair Queueing)。

默认 CPU 频率控制策略方面,Fedora 遵循常规的为按需调控,而 Ubuntu 则稍显异类为性能优先。

不过这两项都是可以在运行时调整的,这里所说的只是默认设置。

Linux 安全模块

Fedora 毫不惊讶的仅仅在内核中启用了对 SELinux 的支持。

Ubuntu 则更为“友好”的启用了所有安全模块的支持,而不仅仅是它默认支持的 AppArmor。尽管这不会带来任何安全性上的提升,不过这给予了系统管理员在默认安全模块之外更多的选择。

模块签名

Fedora 和 Ubuntu 都使用了模块签名,不过在具体应用上则有差异。

Fedora 使用了 SHA256 进行模块签名,因为这是 UEFI 通常使用的校验方式。

Ubuntu 则使用了模块版本,通过在载入模块时比较它的 CRC 与内核中的记录来判断模块是否安全。同时 Ubuntu 也启用了“来源版本”域,在一定程度上允许针对不同的内核版本编译模块并载入,如果明确知道其对应关系的话。

遗留系统支持

相比 Fedora,Ubuntu 启用了更多对异常少见或遗弃的设备、分区和网络的支持,比如 atari 和 sysv68 分区、DECNET 和 ARCNET 网络以及并行 IDE 接口(编者注:Linux 大概在 8 年前就使用 SATA 驱动实现 IDE 支持了)。不过 Fedora 也启用了一些遗留系统的支持,比如 OSS,而 Ubuntu 已经完全禁用它了。

此外 Ubuntu 内核也默认启用了更多的 SoC 支持,比如各种嵌入式领域才能见到的键盘、GPIOLIB、MFD 驱动等,以及 JFFS2 和 F2FS 文件系统等。这似乎和 Canonical 所说的合并桌面版和服务器版不符(编者注:或许也想涉足 X86 嵌入式?),不过这也意味着 Ubuntu 或许能在某些少见的 X86 SoC 设备上启动起来。

在开源显卡驱动支持方面,Fedora 仅启用了支持 KMS 的那些和少量 FB 驱动,而 Ubuntu 则默认启用了几乎全部。

最后 Ubuntu 默认启用不少处于 Staging 状态的内核驱动。Staging 保存那些由于质量问题而无法进入主线维护的开源驱动,启用它或许带来更广泛的硬件支持,但是其由于质量也对系统稳定性引入了隐患。

总结

两者内核在配置上并不存在能导致性能明显差异的部分,不过其中的部分细节值得双方重新审视。

更多Ubuntu相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2

更多Fedora相关信息见Fedora 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=5


推荐阅读
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 如何基于ggplot2构建相关系数矩阵热图以及一个友情故事
    本文介绍了如何在rstudio中安装ggplot2,并使用ggplot2构建相关系数矩阵热图。同时,通过一个友情故事,讲述了真爱难觅的故事背后的数据量化和皮尔逊相关系数的概念。故事中的小伙伴们在本科时参加各种考试,其中有些沉迷网络游戏,有些热爱体育,通过他们的故事,展示了不同兴趣和特长对学习和成绩的影响。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
author-avatar
ywf158
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有