书的名字和内容的确有偏差,但请往里面看
这本书198页,但Greg Kroah-Hartman(以下简称gkh)真正写到86页,后面都是Documentation/kernel-parameters.txt的照抄。这个硬伤导致即使gkh是内核社区的大人物,以O'rielly的定价还是会引起读者的愤怒。
那么gkh在86页中写了些什么呢?如何**更好的**编译内核.
汗...
书名中"in a nutsehell"的意思简洁,只言片语,但问题是前面两个单词:Linux Kernel。这让冲着gkh名头和内核去的人光火,导致豆瓣上的评分很低(gkh另外一本Linux Device Driver > 9分)
两个硬伤说完,我开始推荐这本书好的地方。
首先,这本书适合从来没编译过内核,但又想以**最正确的**方式编译的同学。绝大多数发行版(Archlinux除外)都对Linus发布的内核tarball做很多的patchwork,例如Ubuntu就有自己专门kernel team(https://wiki.ubuntu.com/KernelTeam).
所以,初学者拿到的内核都已经严重不是Linus那个了,同时(注意关键来了),大众发行版如RHEL/CentOS/Ubuntu的rpm/deb包是很难理解的,而且版本命名和上游版本差异很大,有兴趣者看这里:http://kernel.ubuntu.com/~kernel-ppa/info/kernel-version-map.html. 这种情况直接导致初学者编译内核学习时无从下手,转而放弃。
搞不清楚`uname -r`那串数字,也就无法回答:“升级到这个版本的kernel,到底能给我的linux带来什么变化”。注意:发行版不会对内核的变化做详细解释,目前文档/新闻的对象都是mainline kernel. 最知名的LWN.net,都是针对Linus发布的kernel tarball分析.
gkh的方法是标准的上游内核开发风格,不用考虑发行版。额外的,(注意关键点2来了)他不是教你怎么make,是通过编译这个**目的**,把内核的发布流程,stable版本管理,config文件配置都串起来了,而且只写了100页不到(一天能看完)。
config文件部分,是本书最大的精华。编译内核成功不难,但要调出正确的.config很难。在陌生的硬件上,如何找出对应的CONFIG_XX_YY,gkh在第Part II里给了足够的trick(虽然部分命令有点瑕疵),这些trick是“渔”而非“鱼”。即使在Serverfault/Stackoverflow针对单个细节上的回答更详细,但本书给出的方法是基础,至少能帮助你更好的Google.
后面90页,如果说有什么作用,就是身处IDC机房,没有3G,没有Wifi,只有一本书却遭遇kernel panic能多点办法解决。
如果说,前面90页能再加一章,我希望gkh能讲讲针对git tree的编译策略,尤其是-next tree.
PS:想知道历史上,用root编译时的惨痛教训,请看第四页
那么gkh在86页中写了些什么呢?如何**更好的**编译内核.
汗...
书名中"in a nutsehell"的意思简洁,只言片语,但问题是前面两个单词:Linux Kernel。这让冲着gkh名头和内核去的人光火,导致豆瓣上的评分很低(gkh另外一本Linux Device Driver > 9分)
两个硬伤说完,我开始推荐这本书好的地方。
首先,这本书适合从来没编译过内核,但又想以**最正确的**方式编译的同学。绝大多数发行版(Archlinux除外)都对Linus发布的内核tarball做很多的patchwork,例如Ubuntu就有自己专门kernel team(https://wiki.ubuntu.com/KernelTeam).
所以,初学者拿到的内核都已经严重不是Linus那个了,同时(注意关键来了),大众发行版如RHEL/CentOS/Ubuntu的rpm/deb包是很难理解的,而且版本命名和上游版本差异很大,有兴趣者看这里:http://kernel.ubuntu.com/~kernel-ppa/info/kernel-version-map.html. 这种情况直接导致初学者编译内核学习时无从下手,转而放弃。
搞不清楚`uname -r`那串数字,也就无法回答:“升级到这个版本的kernel,到底能给我的linux带来什么变化”。注意:发行版不会对内核的变化做详细解释,目前文档/新闻的对象都是mainline kernel. 最知名的LWN.net,都是针对Linus发布的kernel tarball分析.
gkh的方法是标准的上游内核开发风格,不用考虑发行版。额外的,(注意关键点2来了)他不是教你怎么make,是通过编译这个**目的**,把内核的发布流程,stable版本管理,config文件配置都串起来了,而且只写了100页不到(一天能看完)。
config文件部分,是本书最大的精华。编译内核成功不难,但要调出正确的.config很难。在陌生的硬件上,如何找出对应的CONFIG_XX_YY,gkh在第Part II里给了足够的trick(虽然部分命令有点瑕疵),这些trick是“渔”而非“鱼”。即使在Serverfault/Stackoverflow针对单个细节上的回答更详细,但本书给出的方法是基础,至少能帮助你更好的Google.
后面90页,如果说有什么作用,就是身处IDC机房,没有3G,没有Wifi,只有一本书却遭遇kernel panic能多点办法解决。
如果说,前面90页能再加一章,我希望gkh能讲讲针对git tree的编译策略,尤其是-next tree.
PS:想知道历史上,用root编译时的惨痛教训,请看第四页
有关键情节透露