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


推荐阅读
  • 随着Linux操作系统的广泛使用,确保用户账户及系统安全变得尤为重要。用户密码的复杂性直接关系到系统的整体安全性。本文将详细介绍如何在CentOS服务器上自定义密码规则,以增强系统的安全性。 ... [详细]
  • 搭建个人博客:WordPress安装详解
    计划建立个人博客来分享生活与工作的见解和经验,选择WordPress是因为它专为博客设计,功能强大且易于使用。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • Node.js在服务器上的多种部署策略
    本文探讨了Node.js应用程序在服务器上部署的几种有效方法,包括使用Screen、PM2以及通过宝塔面板进行简易管理。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • 解决PHP项目在服务器无法抓取远程网页内容的问题
    本文探讨了在使用PHP进行后端开发时,遇到的一个常见问题:即在本地环境中能够正常通过CURL获取远程网页内容,但在服务器上却无法实现。我们将分析可能的原因并提供解决方案。 ... [详细]
  • 实现Win10与Linux服务器的SSH无密码登录
    本文介绍了如何在Windows 10环境下使用Git工具,通过配置SSH密钥对,实现与Linux服务器的无密码登录。主要步骤包括生成本地公钥、上传至服务器以及配置服务器端的信任关系。 ... [详细]
  • PHP中Smarty模板引擎自定义函数详解
    本文详细介绍了如何在PHP的Smarty模板引擎中自定义函数,并通过具体示例演示了这些函数的使用方法和应用场景。适合PHP后端开发者学习。 ... [详细]
  • 本文探讨了Linux环境下线程私有数据(Thread-Specific Data, TSD)的概念及其重要性,介绍了如何通过TSD技术避免多线程间全局变量冲突的问题,并提供了具体的实现方法和示例代码。 ... [详细]
  • 本文探讨了服务器系统架构的性能评估方法,包括性能评估的目的、步骤以及如何选择合适的度量标准。文章还介绍了几种常用的基准测试程序及其应用,并详细说明了Web服务器性能评估的关键指标与测试方法。 ... [详细]
  • Java虚拟机及其发展历程
    Java虚拟机(JVM)是每个Java开发者日常工作中不可或缺的一部分,但其背后的运作机制却往往显得神秘莫测。本文将探讨Java及其虚拟机的发展历程,帮助读者深入了解这一关键技术。 ... [详细]
  • 服务器虚拟化存储设计,完美规划储存与资源,部署高性能虚拟化桌面
    规划部署虚拟桌面环境前,必须先估算目前所使用实体桌面环境的工作负载与IOPS性能,并慎选储存设备。唯有谨慎估算贴近实际的IOPS性能,才能 ... [详细]
  • 一文详解Linux
    Linuxnetfilter与VRF实验环境如下图所示:配置如下:#!binbashsudoipnetnsaddns1sudoiplinkaddns1veth1typevethpe ... [详细]
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
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社区 版权所有