Linux内核省电社区,Linux 内核社区补丁对比
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 安装,详见这里。
Linux内核省电社区,Linux 内核社区补丁对比相关推荐
- linux补丁rt ck pf zen,Linux 内核社区补丁对比
Linux 内核主线总体而言兼具了性能.稳定和安全于一身,不过总有些 Geek 不满足主线中的种种限制,使用各自社区的补丁为它添砖加瓦. 概述 pf内核,这算是一个非常为人熟知的内核.包含了ck补丁( ...
- Linux驱动 | HC-SR501红外热释电驱动(中断内核线程)
HC-SR501红外热释电驱动 参考:HC-SR501热释电红外传感器驱动(STM32)_一灯大师_Alex的博客-CSDN博客_stm32hc-sr501 https://blog.csdn.net ...
- linux内核7大功能,Linux Kernel5.10十个值得关注的功能
Linux Kernel 5.10 有望在本周末发布,外媒 Phoronix 盘点了 10 个值得关注的改进和新功能.5.10 不仅是 2020 年最后一个内核版本,而且还是长期支持(LTS)版本. ...
- linux 内核地址随机化,GNU/Linux内核的地址随机化
地址空间布局随机化(ASLR)是一项增加安全性的技术,***者发现漏洞之后开始编写exploit时如果要考虑绕过ASLR这会增加编写exploit的难度,最早是2001年Grsecurity社区(强悍 ...
- linux内核设计与实现---从内核出发
获取.编译.安装内核 1 获取内核源码 安装内核源代码 何处安装源码 使用补丁 2 内核源码树 3 编译内核 减少编译的垃圾信息 衍生多个编译作业 安装内核 启用指定内核作为引导 4 内核开发的特点 ...
- 实时Linux内核调度器 | Real-Time Linux Kernel Scheduler
<Real-Time Linux Kernel Scheduler> HOWTOs by Ankita Garg on August 1, 2009 目录 Design Goal 设计目标 ...
- 一文了解linux内核,一文了解Linux的系统结构
什么是 Linux ? 如果你以前从未接触过Linux,可能就不清楚为什么会有这么多不同的Linux发行版.在查看Linux软件包时,你肯定被发行版.LiveCD和GNU之类的术语搞晕过.初次进入Li ...
- 【操作系统】Linux内核和Windows系统的内核有什么区别?
本文内容转载自"拉勾教育"的讲义,更多课程信息请关注拉勾教育.本人在学习之余记记笔记,顺便当当搬运工! 目录 Linux内核和Windows系统的内核有什么区别? 什么是内核? 内 ...
- 安卓与linux内核版本的关系,Linux内核是如何定义版本的?
我们平时常用到的Linux系统包括CentOS.Ubuntu等,其实这些都是Linux的发行版本,Linux还有一个版本是内核版本. 内核版本的命名规则 在Linux官网(kernel.org)上,我 ...
最新文章
- MySQL 最新8.0版本windows系统下数据库的安装、配置与使用实例演示,客户端使用ip连接数据库失败问题处理
- html ppt文件在线播放,[2018年最新整理]如何在PPT中插入html网页.ppt
- 百万农民创大业-农业大健康:产业融合谋定振兴乡村唱大戏
- HTML与CSS基础之常用选择器(一)
- 视觉研究的前世今生(中)王天珍(武汉理工大学)
- 用Canvas画圆环百分比进度条
- 谷歌浏览器该扩展程序未列在Chrome网上应用店中解决方法
- Bezier(贝塞尔)曲线(三阶)的轨迹规划在自动驾驶中的应用(四)
- C#.Net工作笔记012---c# 文件操作_文件路径操作_随时更新
- elk错误:Too Many Requests
- 图谱特征与卷积神经网络的名优大米无损鉴别
- 第二次课动手动脑的问题以及课后实验性的问题
- java二进制八进制十六进制写法,java 二进制,八进制,十进制,十六进制间相互转换的步骤...
- 如何在spring框架中解决多数据源的问题[转]
- pwnable.kr 第一题fd
- Flash 第二篇 AS影片剪辑
- 2015070610 - 看到很多所谓的大牛
- for in在python中什么意思_python中for in的用法详解
- Fix ‘Clearing orphaned inodes’ on Ubuntu
- adc0808模数转换实验报告_模数转换实验报告
热门文章
- oracle存储过程生成单号,Oracle生成单据编号存储过程的实例代码
- Git Worktree 高级使用,这样清爽多了|新技能
- 儿童版「微信」要来了?
- 每日一皮:史上最直观的单向循环链表,还不懂算我输!
- 注意:宝塔曝未授权访问数据库漏洞,尽快升级版本!
- 80%的Oracle JDK用户另有想法
- 进栈顺序为abcd则出栈顺序为_线性表之顺序表示
- PyTorch ToTensor解读
- ProxylessNAS pytorch
- Layout of the output array img is incompatible with cv::Mat (step[ndims-1] !