看到某人介绍了编译内核不懂问下
Tofloor
poster avatar
ldzlylbytom
deepin
2011-08-23 16:50
Author
是不是用自己电脑编出来的内核在自己电脑上最好最快,放到其它电脑上就不一样了?
Reply Favorite View the author
All Replies
stephen
deepin
2011-08-23 17:50
#1
是不是用自己电脑编出来的内核在自己电脑上最好最快,放到其它电脑上就不一样了?

1、大多数人完全没必要自己编译内核,除非在make menuconfig的过程中你能懂大多数的选项,知道自己为什么选这个不选那个。如果你不懂大多数的选项,说明你不需要自己编译,也不应该自己编译。如果你不懂那些选项,那你编译出来的内核只可能比发行版默认给你的更慢,不可能快。

2、如果你懂编译内核时的大多数选项,那其实我接下来的话也不用说了,你都懂的。不过还是说一下。自己编译的内核,即使自己懂所有的选项,做了最优化的配置,跑起来也不会快多少,这种提速是人感觉不到的。

3、什么人需要自己编译内核?如果你的某个硬件内核支持,但发行版并没有编译进去。如果你不是在桌面电脑上跑,而是在某个其他平台,比如路由器这类嵌入式平台上。如果你希望指定内核使用某个特定的算法,比如管理内存使用SLAB还是SLUB,当然,如果你有这种需求,很有可能你是一个内核开发者了。

综上,如果你有“我需要自己编译内核吗?”这类问题,那么答案很简单,你不需要也不应该自己编译内核。如果你需要自己编译内核的时候,说明你已经有了足够多的知识,知道自己在干什么了,也就不会有这样的疑问了。
Reply View the author
ldzlylbytom
deepin
2011-08-23 20:09
#2
[quote]是不是用自己电脑编出来的内核在自己电脑上最好最快,放到其它电脑上就不一样了?

1、大多数人完全没必要自己编译内核,除非在make menuconfig的过程中你能懂大多数的选项,知道自己为什么选这个不选那个。如果你不懂大多数的选项,说明你不需要自己编译,也不应该自己编译。如果你不懂那些选项,那你编译出来的内核只可能比发行版默认给你的更慢,不可能快。

2、如果你懂编译内核时的大多数选项,那其实我接下来的话也不用说了,你都懂的。不过还是说一下。自己编译的内核,即使自己懂所有的选项,做了最优化的配置,跑起来也不会快多少,这种提速是人感觉不到的。

3、什么人需要自己编译内核?如果你的某个硬件内核支持,但发行版并没有编译进去。如果你不是在桌面电脑上跑,而是在某个其他平台,比如路由器这类嵌入式平台上。如果你希望指定内核使用某个特定的算法,比如管理内存使用SLAB还是SLUB,当然,如果你有这种需求,很有可能你是一个内核开发者了。

综上,如果你有“我需要自己编译内核吗?”这类问题,那么答案很简单,你不需要也不应该自己编译内核。如果你需要自己编译内核的时候,说明你已经有了足够多的知识,知道自己在干什么了,也就不会有这样的疑问了。[/quote]
了解~谢谢你的回答,我还以为编译时它会跟据你的电脑配置硬件自动生成新核心呢...
Reply View the author
kikiki
deepin
2011-08-23 20:23
#3
了解~谢谢你的回答,我还以为编译时它会跟据你的电脑配置硬件自动生成新核心呢...

是的,它会根据你的电脑配置自动生新一个新的内核。
因为新版的内核在编译时,你如果直接make-kpkg它也会自动调用当前系统内核配置文件做蓝本的。
Reply View the author
stephen
deepin
2011-08-23 20:37
#4
[quote]
了解~谢谢你的回答,我还以为编译时它会跟据你的电脑配置硬件自动生成新核心呢...

是的,它会根据你的电脑配置自动生新一个新的内核。
因为新版的内核在编译时,你如果直接make-kpkg它也会自动调用当前系统内核配置文件做蓝本的。[/quote]

不要误导人,你应该说清楚“新的内核”是什么,不然别人以为自己编译的内核就是好的,其实大多数非内核开发者编译的内核,还不如发行版给的generic内核好用。
Reply View the author
kikiki
deepin
2011-08-23 21:08
#5
不要误导人,你应该说清楚“新的内核”是什么,不然别人以为自己编译的内核就是好的,其实大多数非内核开发者编译的内核,还不如发行版给的generic内核好用。

呵呵,我实在一下很难跟他说清这个新内核是什么,但我知道他肯定看到过我的那个编译内核的贴子,也应该知道了编译内核 前一定得有一个内核原码。你帮我跟他解释下行不?谢谢了!
编译内核时调用当前系统运行的内核配置文件这个说法有错?如果没错,那么按这个配置文件来编译不做任何调整(默认)这个核性能会下降?
Reply View the author
s.******[email protected]
deepin
2011-08-23 21:20
#6
[quote]
不要误导人,你应该说清楚“新的内核”是什么,不然别人以为自己编译的内核就是好的,其实大多数非内核开发者编译的内核,还不如发行版给的generic内核好用。

呵呵,我实在一下很难跟他说清这个新内核是什么,但我知道他肯定看到过我的那个编译内核的贴子,也应该知道了编译内核 前一定得有一个内核原码。你帮我跟他解释下行不?谢谢了!
编译内核时调用当前系统运行的内核配置文件这个说法有错?如果没错,那么按这个配置文件来编译不做任何调整(默认)这个核性能会下降?[/quote]
呃,有可能……
Reply View the author
stephen
deepin
2011-08-23 21:27
#7
[quote]
不要误导人,你应该说清楚“新的内核”是什么,不然别人以为自己编译的内核就是好的,其实大多数非内核开发者编译的内核,还不如发行版给的generic内核好用。

呵呵,我实在一下很难跟他说清这个新内核是什么,但我知道他肯定看到过我的那个编译内核的贴子,也应该知道了编译内核 前一定得有一个内核原码。你帮我跟他解释下行不?谢谢了!
编译内核时调用当前系统运行的内核配置文件这个说法有错?如果没错,那么按这个配置文件来编译不做任何调整(默认)这个核性能会下降?[/quote]

你说不清楚,只能说明你根本不知道自己编译内核的真正意义,也不知道自己编译内核究竟对性能有什么样的提升,也许只是心理上觉得快了些,觉得这是你“专属”的内核。

我几乎每天都从kernel的git tree中编译一次内核,我选择的编译选项中,超过一半我都理解是什么以及为什么那么选。我相信你理解的可能不超过20条吧?
Reply View the author
kikiki
deepin
2011-08-23 22:58
#8
[quote][quote]
不要误导人,你应该说清楚“新的内核”是什么,不然别人以为自己编译的内核就是好的,其实大多数非内核开发者编译的内核,还不如发行版给的generic内核好用。

呵呵,我实在一下很难跟他说清这个新内核是什么,但我知道他肯定看到过我的那个编译内核的贴子,也应该知道了编译内核 前一定得有一个内核原码。你帮我跟他解释下行不?谢谢了!
编译内核时调用当前系统运行的内核配置文件这个说法有错?如果没错,那么按这个配置文件来编译不做任何调整(默认)这个核性能会下降?[/quote]

你说不清楚,只能说明你根本不知道自己编译内核的真正意义,也不知道自己编译内核究竟对性能有什么样的提升,也许只是心理上觉得快了些,觉得这是你“专属”的内核。

我几乎每天都从kernel的git tree中编译一次内核,我选择的编译选项中,超过一半我都理解是什么以及为什么那么选。我相信你理解的可能不超过20条吧?[/quote]
------------------------------------------------------------
还真让您老人家说着了,我连一条都不能理解,我说的是真的,老大!
Reply View the author
s.******[email protected]
deepin
2011-08-24 00:13
#9
------------------------------------------------------------
还真让您老人家说着了,我连一条都不能理解,我说的是真的,老大!

有人翻译过比较旧的版本的内核配置文档,你感兴趣的话可以去瞅瞅。
Reply View the author
debian
deepin
2011-08-26 04:22
#10
二位班主联手好强硬啊!你们是以专业化的角度再谈,他是以“平民”化的思想在交流……
世界上哪有这么多的“真正意义”啊,自己喜欢做就是了。
Reply View the author
CarpetDiem
deepin
2011-08-26 04:52
#11
先声明:本人菜鸟,linux源代码都没看过,更别谈自己编译了(不过这学期选了linux内核导读,希望能有所帮助吧)

但我认为,在当下,作为一个非专业人士,自己学习编译linux内核对于电脑端而言不会有多大改进,用不着费那个劲,但对自己android手机端系统升级或许就大有裨益了。众所周知,现在android手机版本混乱,大多数手机都不再受官方支持以升级至最新android版本。如果自己能略精通linux内核,那就可以自己为手机升级系统内核,然后学点java移植android最新版本了(当然,android版本和linux内核关系不是很大,老内核也可以用新android,但会有功能缺失)(如果自己机子配置还足够差的话,还可以利用linux内核知识为它做swap之类的)
不过,前提是官方放出了手机的驱动。。。
像我那款手机pulse,华为不放驱动(以使机子尽快老化让用户买新机子),现在用的都是.29内核。。。
但pulse的民间社区V5啊,09年机子,现在还有个国外dev在为它移植cm7 2.3版本
大概是他们第一个android机子,割舍不下那情感吧
Reply View the author
stephen
deepin
2011-08-26 05:50
#12
二位班主联手好强硬啊!你们是以专业化的角度再谈,他是以“平民”化的思想在交流……
世界上哪有这么多的“真正意义”啊,自己喜欢做就是了。

这并不是喜欢不喜欢的事。一个新人在问是否要编译内核,能不能提高性能,当然要给他正确的引导,如果你不懂内核,那么编译内核是不会对性能带来提高的,只有可能降低性能。

我并不反对大家自己编译内核,但我觉得,不应该给新手这样一种错觉,必须要自己编译内核才能把性能做到最好,这样的错觉会吓跑一些人,觉得Linux不折腾就不能用。我所努力想表达的只是告诉一个新人,如果你不理解的话,没有必要去编译内核。万一编译失败了,那种挫败感也许也会打消大家使用Linux的积极性,而这些都是可以避免的。
Reply View the author