免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 61449 | 回复: 11

[内核入门] 毛德操《情景分析》是不是确实有点落后了...... [复制链接]

论坛徽章:
2
2016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之广夏
日期:2016-12-07 08:32:11
发表于 2016-08-08 20:14 |显示全部楼层
操哥的书我现在正在看,我对文件系统之类的不太感兴趣,着重看的是内存管理。但是感觉情景分析这本书和现代内核差的确实有点大,有些.c文件在现代内核里直接没了,函数名大量的改变,我现在基本把内存管理看完了,但是看现代内核还是无从下手,请问大家有什么好的建议吗。这本书的进程那一张我也打算看来着,但是照现在这个样子看完了有什么帮助吗。。。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2016-08-08 20:49 |显示全部楼层
回复 1# 剑魂箫心

看 《深入理解 Linux 内核》 或者 《深入Linux内核架构》吧


   

论坛徽章:
13
程序设计版块每日发帖之星
日期:2016-06-29 06:20:00每日论坛发贴之星
日期:2016-08-14 06:20:00操作系统版块每日发帖之星
日期:2016-08-14 06:20:00每日论坛发贴之星
日期:2016-08-13 06:20:00数据库技术版块每日发帖之星
日期:2016-08-13 06:20:00程序设计版块每日发帖之星
日期:2016-08-13 06:20:00IT运维版块每日发帖之星
日期:2016-08-13 06:20:00每日论坛发贴之星
日期:2016-08-12 06:20:00数据库技术版块每日发帖之星
日期:2016-08-12 06:20:00程序设计版块每日发帖之星
日期:2016-08-12 06:20:00操作系统版块每日发帖之星
日期:2016-08-12 06:20:00综合交流区版块每日发帖之星
日期:2016-08-09 06:20:00
发表于 2016-08-09 10:54 |显示全部楼层
  感觉越往后,一些模块的进化和完善已经是体力上的,不是智力上的了。

论坛徽章:
2
2016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之广夏
日期:2016-12-07 08:32:11
发表于 2016-08-09 13:06 |显示全部楼层
回复 3# karma303


系统越来越复杂,菜鸟开发者入门要面临的障碍也是越来越大。
2001年毛德操写书的时候内核还是2.4,那时候开发者比现在少得多,而且开发进度也比现在慢,所以相对来说那时候参与开发的人走到现在都是大神了,他们给出的建议也并不一定适合现在的开发者入门,毕竟这都隔了十几年了。
反观现在,内核的庞杂已经超乎想象,现有书籍和资料的更新速度都被内核的极速迭代远远甩在后面,从2.4跨越到2.6,再到现在3.x、4.x,目测明年就能5.x了,这种开发速度下想要从新手成长为一名真正的内核开发者比2001年要难的多。
安卓入门、Web入门、渗透测试入门可能看完几本书就进到门里边了,但是内核入门即使把优秀的书籍都看了也依然发现自己已经被内核的开发速度抛弃了,连门框都摸不着。

现在从我自身的学习经历来讲,驱动开发似乎还好入门一点,也是一个很好的突破口,内核子系统(内存管理、进程调度、文件系统)的开发简直难于上青天。而不搞硬件的人似乎更偏向于内核子系统,由此看来,内核入门这个话题还需要更多的讨论来总结出更平滑更合理的学习路线。

各位怎么看。

评分

参与人数 1可用积分 +2 收起 理由
Godbach + 2 赞一个!

查看全部评分

论坛徽章:
3
15-16赛季CBA联赛之山东
日期:2016-10-30 08:47:3015-16赛季CBA联赛之佛山
日期:2016-12-17 00:06:31CU十四周年纪念徽章
日期:2017-12-03 01:04:02
发表于 2016-08-11 19:30 |显示全部楼层
个人的经验认为,学习内核的方式最好是这样:
1. 学内核之前应该搞定系统调用,这不用说
2. 先看驱动方面的书籍,学着写一些内核模块,在写内核模块的过程中熟悉一些常用的内核 API. 这样一件事情是必须要清楚的:现在的软件,在任何一个领域,在深入学习之前,首先要学会的其实是面向 API 编程。
3. 深入一些驱动 API,这些 API 实际上关联到了内核的一些功能和构架的知识
4. 嗯,没错当然就是看《深入Linux内核构架》之类
5. 注意内核的构建系统,要大概知道它究竟如何构建出来的,推荐《深度探索linux操作系统》一书,这本书建立起 kernel 到 app,也就是整个"发行版"的联系
6. 剩下的自由发挥了

由于 Linux kernel 的代码一直在不停地改改改,所以其实抠某些细节真的不重要,重要的是大概达到这样的程度:
1. 对 kernel 建立起整体的图景
2. 想抠某个特定细节的时候就一定能抠出来,对于一些构架相关的东西,无非就是查查构架相关的说明书,当然有的东西需要积累不少关于硬件构架本身的基础经验。不过我个人认为,对于学习 kernel 来说一定要清楚的事情是,kernel 的精华在于它的数据结构,也就是对于进程、内存、文件系统等等进行管理的一坨又一坨的东西,绝对不是某个特定细节的实现,然而对于学习 kernel 的人来说,确实也需要达到真要抠细节实现的时候就一定能抠出来。
3. 乘天地之正,御六气之辩,以游无穷

个人觉得达到上面的程度就差不多了吧。
需要说明一下,由于我生性散漫,不喜欢过于刻苦的东西,所以我当然是个大菜B,所以上面说的事情,觉得中肯就算,觉得不对劲的也不要难为我,^_^

评分

参与人数 1可用积分 +2 收起 理由
Godbach + 2 赞一个!

查看全部评分

论坛徽章:
3
15-16赛季CBA联赛之山东
日期:2016-10-30 08:47:3015-16赛季CBA联赛之佛山
日期:2016-12-17 00:06:31CU十四周年纪念徽章
日期:2017-12-03 01:04:02
发表于 2016-08-11 19:45 |显示全部楼层
毛德操《情景分析》某种程度上是落后了,有的地方看看即可,不必过份抠细节。
单内存管理子系统的话,更好的一本书是《深入理解linux虚拟内存管理》。问题是这本书也是 2.4 的^_^
但这些书还是有价值的。下一份 2.4 的代码,跟着书大概过一下是不错的(啊?我当然没过完)。
比如我看了虚存管理(哎,我当然也没过完),有个大体印象差不多了,反正下次找 API 我再查查书和源码大概还是能找到的。

驱动方面的话,其实我觉得《深入linux设备驱动内核机制》这本书挺不错的。
所谓“学而不思则罔,思而不学则殆”,同样的一味看书却不认真多写几个模块过过内核 API 的功能的话,那学内核来干嘛。

当然我其实并不知道 LZ 是哪个程度,也许 LZ 明明程度比我好,我却在这胡言乱语,O(∩_∩)O哈哈~

论坛徽章:
2
2016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之广夏
日期:2016-12-07 08:32:11
发表于 2016-08-11 20:38 |显示全部楼层
回复 6# captivated


    《深入理解linux虚拟内存管理》我曾经借来看过,不过只是当作情景分析的辅助读物,有的地方情景分析讲的不透彻我就看看《深入理解linux虚拟内存管理》。哎。。。书的更新进度完全跟不上开发速度啊

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2016-08-11 21:50 |显示全部楼层
回复 4# 剑魂箫心

网络子系统,netfilter 之类的,也算比较好入门。

内核毕竟支持 module,从 kernel module入手,算是学习内核不错的入门方式。


   

论坛徽章:
9
程序设计版块每日发帖之星
日期:2016-02-11 06:20:00程序设计版块每日发帖之星
日期:2016-02-14 06:20:00程序设计版块每日发帖之星
日期:2016-02-14 06:20:0015-16赛季CBA联赛之吉林
日期:2016-03-23 17:25:0015-16赛季CBA联赛之浙江
日期:2016-04-01 08:25:0615-16赛季CBA联赛之山西
日期:2016-04-01 10:09:1915-16赛季CBA联赛之广夏
日期:2016-06-03 15:58:212016科比退役纪念章
日期:2016-07-28 17:42:5215-16赛季CBA联赛之广东
日期:2017-02-20 23:32:43
发表于 2016-08-11 23:02 |显示全部楼层
《深入理解linux虚拟内存管理》 这本书相当不错

论坛徽章:
2
2016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之广夏
日期:2016-12-07 08:32:11
发表于 2016-08-12 08:46 |显示全部楼层
回复 8# Godbach


    多谢版主回复,我感觉我自从开始学内核之后看内存管理的资料看的最多,看多了也就成了最感兴趣的了,与之相对的是文件系统,这玩意儿实在是太复杂了。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP