Introduction
BFS 全称 Brain Fuck Scheduler. 至于为什么叫这个名字,可以参考 BFS-FAQFAQ.
作者 Con Kolivas 在介绍中表示,BFS 的设计的初衷是带来更好的桌面交互式体验,特别是对于大多数的低规格机器.
Android 也曾经评估过 BFS, 测试的结果对用户体验没有明显的改进,因此并没有最终导入.
通过一些第三方机构的测试数据来看,低配置的硬件平台使用 BFS 带来的体验提升会更加明显.比如笔者正在用的这台 thinkpad t61 ( 所以手上有比较老的笔记本 / PC 尽管来体验吧 ).
Get Prepared
选择内核版本
从 http://www.kernel.org 选择下载需要的版本 , 比如 3.18.31.tx.gz解压缩该版本到你想要路径 , 网络上有建议放在 /usr/src 下 , 看起来更合理 , 因为内核的源代码默认就存放在该路径 , 但我就遇到了编译时空间不够的问题 , 因为我给 ‘/‘ 分配的空间是 20GB, 能用的不到 8GB 了 . 所以建议放在空间够的分区 , 至少有 15GB, 例如 ~/projects/3.18.31-ck1-bfs/
Apply BFS Patch
- 获取对应内核版本的 BFS patch, 从 BFS 作者 Con Kolivas 的个人站点 获得指定内核版本的 BFS patch, 例如
http://ck.kolivas.org/patches/bfs/3.0/3.18/
下面就有 3.18-sched-bfs-460.patch 等 - 进入到内核目录 ~/projects/3.18.31-ck1-bfs/,
patch -p1 <xxxx.patch
, patch 不止一个 , 建议都打上 , 省的后期再 tunning 了
Build Kernel with BFS patch
$ make menuconfig
注意再 General Setup 确认 BFS 是不是已经勾选上了,OK 之后就保存 .config 文件$ make bzImage -j4
这取决于机器的性能, 一般是 -jx 是 CPU core 的 2 倍 , 考虑到有些电脑太老了, 可以把源码的编译放在性能更好的机器上做 , 完事后 copy 过来就 OK 了$ make modules -j4
同上 , 完成这一步之后 , 可以把整个源码包复制到你想要的电脑上$ make modules_install
$ sudo mkinitramfs -o /boot/initrd.img-3.18.31-ck1-bfs
Configure New Kernel
Copy bzImage 到 /boot/
$ sudo cp arch/x86_64/boot/bzImage /boot/vmlinuz-3.18.31-ck1-bfs
具体取决于系统架构 , 也不一定是 x86_64 目录Copy System.map 到 /boot/, 建立新的软链接
$ sudo cp System.map /boot/System.map-3.18.31-ck1-bfs
$ sudo ln -s /boot/System.map-3.18.31-ck1-bfs /boot/System.map
配置引导文件
$ sudo update-grub2
至此 , 工作完成 , reboot 之后就可以体验啦
参考资料
FAQ. http://ck.kolivas.org/patches/bfs/bfs-faq.txt ↩
This is copyright.