热门标签 | 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


推荐阅读
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • 小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限
    小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限 ... [详细]
  • 作为软件工程专业的学生,我深知课堂上教师讲解速度之快,很多时候需要课后自行消化和巩固。因此,撰写这篇Java Web开发入门教程,旨在帮助初学者更好地理解和掌握基础知识。通过详细记录学习过程,希望能为更多像我一样在基础方面还有待提升的学员提供有益的参考。 ... [详细]
  • 在 Ubuntu 22.04 LTS 系统中安装 HPLIP 的详细步骤与注意事项
    HPLIP 是 HP 官方提供的软件套件,旨在支持多种 HP 打印机型号,如 Deskjet、Officejet、Photosmart、PSC、Business Inkjet 和 LaserJet 等。本文详细介绍了在 Ubuntu 22.04 LTS 系统中安装 HPLIP 的步骤,并提供了重要的注意事项,确保用户能够顺利配置和使用 HP 打印设备。 ... [详细]
  • 在探讨Hibernate框架的高级特性时,缓存机制和懒加载策略是提升数据操作效率的关键要素。缓存策略能够显著减少数据库访问次数,从而提高应用性能,特别是在处理频繁访问的数据时。Hibernate提供了多层次的缓存支持,包括一级缓存和二级缓存,以满足不同场景下的需求。懒加载策略则通过按需加载关联对象,进一步优化了资源利用和响应时间。本文将深入分析这些机制的实现原理及其最佳实践。 ... [详细]
  • CTF竞赛中文件上传技巧与安全绕过方法深入解析
    CTF竞赛中文件上传技巧与安全绕过方法深入解析 ... [详细]
  • PHP自学必备:从零开始的准备工作与工具选择 ... [详细]
  • 第六章:枚举类型与switch结构的应用分析
    第六章深入探讨了枚举类型与 `switch` 结构在编程中的应用。枚举类型(`enum`)是一种将一组相关常量组织在一起的数据类型,广泛存在于多种编程语言中。例如,在 Cocoa 框架中,处理文本对齐时常用 `NSTextAlignment` 枚举来表示不同的对齐方式。通过结合 `switch` 结构,可以更清晰、高效地实现基于枚举值的逻辑分支,提高代码的可读性和维护性。 ... [详细]
  • 初探性能优化:入门指南与实践技巧
    在编程领域,常有“尚未精通编码便急于优化”的声音。为了从性能优化的角度提升代码质量,本文将带领读者初步探索性能优化的基本概念与实践技巧。即使程序看似运行良好,数据处理效率仍有待提高,通过系统学习性能优化,能够帮助开发者编写更加高效、稳定的代码。文章不仅介绍了性能优化的基础知识,还提供了实用的调优方法和工具,帮助读者在实际项目中应用这些技术。 ... [详细]
  • 在重新安装Ubuntu并配置Django和PyCharm后,忘记测试MySQL连接,导致在后续配置过程中遇到错误:ERROR 2003 (HY000) - 无法连接到本地服务器 ‘127.0.0.1’ (111)。本文将详细介绍该错误的原因及解决步骤,帮助用户快速恢复MySQL服务的正常运行。我们将从检查网络配置、验证MySQL服务状态、配置防火墙规则等方面入手,提供全面的故障排除指南。 ... [详细]
  • 本文深入探讨了 Linux 系统中字符集配置的问题及其解决方案,重点介绍了 `locale` 设置的方法和常见错误的修复技巧。通过详细分析 `locale` 变量的配置,如 `LANG`、`LC_COLLATE`、`LC_CTYPE` 和 `LC_MESSAGES`,帮助用户解决字符显示不正常、命令执行出错等问题,提升系统稳定性和用户体验。 ... [详细]
  • 本文详细探讨了在ASP.NET环境中通过加密数据库连接字符串来提升数据安全性的方法。加密技术不仅能够有效防止敏感信息泄露,还能增强应用程序的整体安全性。文中介绍了多种加密手段及其实施步骤,帮助开发者在日常开发过程中更好地保护数据库连接信息,确保数据传输的安全可靠。 ... [详细]
  • REST与RPC:选择哪种API架构风格?
    在探讨REST与RPC这两种API架构风格的选择时,本文首先介绍了RPC(远程过程调用)的概念。RPC允许客户端通过网络调用远程服务器上的函数或方法,从而实现分布式系统的功能调用。相比之下,REST(Representational State Transfer)则基于资源的交互模型,通过HTTP协议进行数据传输和操作。本文将详细分析两种架构风格的特点、适用场景及其优缺点,帮助开发者根据具体需求做出合适的选择。 ... [详细]
  • 深入解析HTTPS:保障Web安全的加密协议
    本文详细探讨了HTTPS协议在保障Web安全中的重要作用。首先分析了HTTP协议的不足之处,包括数据传输过程中的安全性问题和内容加密的缺失。接着介绍了HTTPS如何通过使用公钥和私钥的非对称加密技术以及混合加密机制,确保数据的完整性和机密性。最后强调了HTTPS的安全性和可靠性,为现代网络通信提供了坚实的基础。 ... [详细]
  • 近期,针对Axis2默认凭据漏洞的攻击案例在安全社区引起了广泛关注。这些攻击通常利用Axis2的默认用户名和密码进行渗透测试,技术手段相对固定。本文在综合分析多个案例的基础上,详细探讨了该漏洞的安全风险,并提出了有效的防范措施,以帮助企业和开发者加强Web服务的安全防护。 ... [详细]
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社区 版权所有