Linux 内核主线总体而言兼具了性能、稳定和安全于一身,不过总有些 Geek 不满足主线中的种种限制,使用各自社区的补丁为它添砖加瓦。

概述

pf内核,这算是一个非常为人熟知的内核。包含了ck补丁(兼容4.8版本将是最后一个版本),详见:MuQSS - The Multiple Queue Skiplist Scheduler;bfq补丁和graysky gcc 优化CPU补丁。该内核没有为 Debian 系打包。

zen内核,这是一群 Geek 修改的内核,包括了 pf 内核在内的所有优化补丁,另外还加上 aufs 补丁。这个补丁的具体内容可以参见这里:aufs wiki。

grsecurity/pax内核,这个内核基本就是内核主线和 grsecurity/pax 补丁,因为其它补丁很难或者说极难打上。这个补丁主要目的在于安全强化,所以内核性能就放在第二位。更多内容可以参考:官方主页。

测试平台及社区内核

我自己使用的台式机,配置如下图:

使用测试的四个内核,分别是pf内核4.8.0.pf2版本,zen内核4.7.6版本,两个grsecurity/pax(下文简称GP,GP内核在图中都是带有-grsec的版本)内核版本,其中之一使用主线内核和GP补丁,另一个使用主线、GP补丁和Graysky2补丁。详见下图:

测试

C-Ray测试

从 C-Ray 的测试中,可以发现 GP 内核表现基本一致。4.7.7是GP+Graysky2的版本,如果说这个是比GP原生有所提升,这个微小的差距人类是无法感觉到的。另外,zen内核和pf内核虽然大版本不同,但差距非常小。

Parallel BZIP2 Compression 测试

这项测试的结果与上一个基本类似。

7-Zip Compression 测试

这项测试的结果也在预料之中。不过从以上三项测试,不难看出 GP 内核的性能确实较另外两个差些。

Loopback TCP Network Performance 测试

这个测试中对比两个 GP 和其它两个内核,发现GP几乎完败。

IOzone 测试

这项测试中除了 zen 内核明显领先,其他都差不多。

SQLite 测试

这项测试中 GP 内核有小幅领先,但差距不大。

Apache 测试

关于GP+graysky2的版本为什么跑下来还不如不优化的GP,猜测原因有可能是我后来将 kernel.grsecurity.harden_ipc 设置为0有关,待到后面总结详谈。

PostgreSQL pgbench 测试

这个测试中缺失GP原始版本的跑分,推测也和上一个测试中的异常得分有关。不过神奇的是在这个版本中,GP+graysky2的GP版本跑分超过了两个优化的内核。

总结

鱼和熊掌不可兼得,社区版本中,最注重安全的 Grsecurity/PaX 内核补丁的使用,提升的安全性却降低了性能,但是就降低的程度来说,除了TCP那个测试,其它降低的并不多,个人认为这个程度完全不影响正常使用。

就 Zen 内核,和 pf 内核而言,两者因为大版本号的不同,对比意义不大,不过总的来说,除了 Apache 那个测试,Zen 完胜 pf 之外,它们基本上都差不多,各有千秋。

一些其它需要注意的小插曲:

Zen 内核测试时,我将TCP无意间修改成 YeAH,而不是 pf 内核测试时的 Westwood,或许这个也是 TCP 测试中两个微小差距的原因!?

关于 kernel.grsecurity.harden_ipc 问题。关于 Grsecurity/PaX 内核的编译,我基本上完全参考了 《面向桌面的 PaX/Grsecurity 内核配置注释与评论》 一文,该文中提到关于 IPC 的问题,将该选项开启后,“让 PaX 禁止权限宽松到离谱的 IPC 被访问,以免 buggy 的 IPC 程序被攻击,但同时允许有 CAP_IPC_OWNER 权限的进程这么做。我从没见过这个特性导致问题,推荐编译时开启,运行时可以用 sysctl 关闭”。不过随着我开启该选项,大量 ipc 内容填充 dmesg 日志,目前我没有追踪到问题本质,随后的工作将更新到这里。

最后,我在 Ubuntu 论坛的编译打包板块为各位发烧友制作最新的 Zen 和 Grsecurity/PaX 内核,没有提供源,需要自行下载用 dpkg 安装,详见这里。

#

Tagged as

kernel ·

Edit on GitHub

linux补丁rt ck pf zen,Linux 内核社区补丁对比相关推荐

  1. Linux内核省电社区,Linux 内核社区补丁对比

    Linux 内核主线总体而言兼具了性能.稳定和安全于一身,不过总有些 Geek 不满足主线中的种种限制,使用各自社区的补丁为它添砖加瓦. 概述 pf内核,这算是一个非常为人熟知的内核.包含了ck补丁( ...

  2. Linux 内核实时补丁 PREEMPT_RT补丁 与 Linux4.1.15 + patch-4.1.15-rt18.patch 补丁,实测实时性差

    Linux4.1.15 + patch-4.1.15-rt18.patch 补丁,实测实时性差 开发环境 发行环境 该环境用于发行 Linux: 4.1.15 preempt_rt: patch-4. ...

  3. linux的rt补丁安装,微软发布补丁封杀允许Surface RT安装Linux的“漏洞”

    2012年诞生的Surface RT平板机就产品而言挺悲剧的,基于ARM架构跑Windows RT操作系统,但是不兼容x86环境,导致产品和市场定位混乱,消费者也很迷茫,最终在经历了两代之后就回到了x ...

  4. 怎样为Linux内核打补丁

    --------------------                        作者           :Jesper Juhl,2005年8月                        ...

  5. Linux内核热补丁方案对比

    Linux内核热补丁方案对比 荣涛 2021年10月13日 1. Linux 内核热补丁 1.1. linux 内核热补丁技术背景 1.1.1. update和upgrade的区别 1.1.1.1. ...

  6. 攻击者可提前检测到 Linux 内核的补丁并开发 exploit

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 宝马.西门子和两所德国大学的研究人员发现,他们可以在Linux 内核修复方案发布之前检测到这些方案,而这些信息可导致攻击者开发并部署e ...

  7. 怎样为Linux内核打补丁(中文版)

    文章来源:http://www.diybl.com/course/6_system/linux/Linuxjs/2008826/137710.html 在Linux内核邮件列表中一个经常被问到的问题就 ...

  8. Linux内核补丁降级,linux内核生成补丁和打补丁的方法

    linux内核源码较多,在修改完内核并发布新内核的时候,一般采用补丁的方式进行发布,而不是整个内核打包发布的. 采用补丁的方式发布有很多好处,1.首先体积很小,通常内核修改很小,生成补丁可能不到1k的 ...

  9. linux服务器补丁加载方法,Kpatch不重启给Linux内核打补丁

    搭建kpatch builder 以centos7.2为例. 默认centos7.2的安装的内核版本是3.10.0-327.el7.x86_64,这个内核版本当初是通过gcc 4.8.3编译的. 而c ...

最新文章

  1. python 可变参数 关键字参数_Python关键字及可变参数*args,**kw原理解析
  2. 糗事百科的网络爬虫(v0.2)源码及解析 .
  3. Java编程基础25——多线程上
  4. 如何处理APF框架的错误消息:Filter is too complex error
  5. A*B问题(信息学奥赛一本通-T1036)
  6. mybatis mysql 调用存储过程 多个返回值_MyBatis的SQL执行流程不清楚?很简单!
  7. Oracle中一把梭获取对象DDL创建语句
  8. .svc接口客户端调用_K8s:调用Java接口创建容器
  9. SharePoint 2010 整合Sil“.NET研究”verlight 4应用 - 任务管理
  10. X4扭曲字体或图形 coreldraw_CorelDRAW X4案例教程上-电子教案文档.ppt
  11. 六 Python 字典与集合
  12. 2021年高压电工考试技巧及高压电工模拟考试
  13. 【TIC6657 DSP学习笔记】02 RTSC平台配置组件创建
  14. cpc和ocpc,如果你是运营,你选哪个?
  15. 【前端CSS】offsetLeft,Left,clientLeft的区别
  16. 天荒地老修仙功-第六部第二篇:Spring Cloud Eureka自我保护机制
  17. 达观数据签约全国首家银行系基金公司工银瑞信
  18. 相似度计算——欧氏距离、汉明距离、余弦相似度
  19. RabbitMq启用插件管理
  20. python迭代器问题

热门文章

  1. 在word中输入文字后面的文字会被删除?原来是这么回事!
  2. 量化交易之HFT篇 - 高频做市模型源码(.h文件)
  3. StringUtils字符串工具类
  4. 华为3D建模服务(3D Modeling Kit),轻松构建高质量3D模型
  5. 苹果备忘录永久删除怎么恢复?分享2个找回备忘录的高效操作
  6. Win11 OneDrive登录遇到问题0x8004de40
  7. idea设置打开多个窗口
  8. Linux磁盘分区并永久挂载
  9. 交互设计课程1.0课程介绍
  10. 如何在Linux系统服务器中重命名目录