免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 57983 | 回复: 65
打印 上一主题 下一主题

内核版常见问题和精华贴总结(VER 0.1) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-15 11:01 |只看该作者 |倒序浏览
本帖最后由 accessory 于 2011-03-04 03:27 编辑

内核版常见问题和精华贴总结

下面是我个人的一些总结。我学习LINUX KERNEL也才1,2年。文中难免有不对的地方,欢迎大家指正。

我的目标是写的比较完善,然后版主可以置顶。方便新人。

现在只是第一版,还不是很全面,欢迎大家在后面补充,我会及时更新到一楼。多谢。


一、常见问题:

1、如何开始学习LINUX KERNEL:

我觉得首先要有操作系统的基本知识,比如上过课,或者看过一本操作系统方面的书。起码要理解进程,虚拟内存,分页,分段等这些基本概念。如果这些你都搞不懂,看后面的会更加头疼。另外,至少要了解C语言,汇编最好也有些概念。

操作系统的书我只看过这本《Operating Systems: Internals and Design Principles》。现在已经出到了第六版。

然后看LINUX内核的书,看下面3本书,按顺序看。

前面是全名,中间是版本,再后面是缩写。如果有新版的看最新的。。
1)LINUX KERNEL DEVELOPMENT, 2ND EDITION (LKD)(注:非常好的入门书籍)
2) LINUX DEVICE DRIVERS, 3RD EDITION  (LDD)(注:很好的实战书籍,对KERNEL HACKER一样有帮助)
3) UNDERSTANDING LINUX KERNEL. 3RD EDITION (ULK) (注:从硬件讲到上层,内容丰富,大观念清楚)

我一般优先看英文原版书,一个是练习英语,另外一个也是英文经典的书多一些。中文的好书也有,不过我不是很了解。

上面说的总共4本书如果你都看完了,大概理解了。那么你已经可以算是高手了,论坛里的60%以上的问题基本都可以回答,或者参与讨论了。

我觉得另外一个初学者经常面临的问题就是不知道该看哪方面的书和资料。这其中一部分原因就是基础不够扎实。解决的办法也是从基础的书看起。同时在论坛上多问问。

另外,光看书也是不够的,还要多动手实践。刚学的时候起码要学习下怎么编译内核,内核模块。然后写一些小内核模块啥的。或者参与些项目。

BTW:在本版页面上面直接点“精华”,就可以看到所有的精华贴,很方便。

如果后面想做硬件相关的话,那么建议看看各种规范。比如INTEL CPU IA32-64手册,PCI SPEC, PCI EXPRESS SPEC,ACPI SPEC等。


2、如何调试KERNEL

最常用也最方便的还是用PRINTK。具体介绍在LDD里说的很清楚。另外,新的KERNEL 2.6.2x? 之后也开始支持KGDB。还有一个方法是用QEMU或者VMWARE之类的虚拟机来调试。参考下面2个帖子:


VMWare Workstation 6.0调试Linux Kernel,竟如此方便
(作者:albcamus)

用QEMU+GDB 调试LINUX KERNEL的方法 (作者:accessory)


3、什么是虚拟地址,线性地址?

看下面这个精华贴:我理解的逻辑地址、线性地址、物理地址和虚拟地址 (作者:独孤九贱)(注:在ULK3中也有详细介绍)

4、系统调用是如何实现的?
在ULK3中有对INT 80和SYSENTER的解释。不过LINUX中还有一种VSYSCALL,主要用来提高效率,适合那些只是读取信息的SYSCALL,比如GETTIMEOFDAY. 等我找找精华贴,或者啥时总结下。

5、内核中常出现的do { } while (0)是做什么用的?


6、Segmentation Fault in Linux (作者:zx_wing)

7、关于LINUX在中断(硬软)中不能睡眠的真正原因


8、Linux汇编语言开发指南(zt) (转载者:mmgg00)

9、如何看源代码?
我一般喜欢用LXR, 常去 http://lxr.linux.no/+trees 这里看。如果你觉得前面这个网站慢的话,也可以自己搭一个LXR,或者搜下其他离你比较近的LXR. 还有很多人喜欢用SOURCE INSIGHT (SI)。不过它是个商业软件。

二、网络相关问题

1、基于2.6内核的《追踪LINUX TCP/IP代码运行》 (作者:qinjiana0786)

2、教你修改以及重构skb (作者:ubuntuer)

3、Linux内核IP Queue机制的分析 (作者:Godbach)

【FIXME:还有很多其他内容】


三、硬件相关

1、什么是总线地址?软件如何配置硬件?APIC?

2、INTEL手册中,APIC部分阅读笔记 (作者:accessory)

3、写一个块设备驱动 (作者:赵磊. 网名:OstrichFly )(注:由浅到深,非常详细)

4、Interrupt in Linux(硬件篇)(作者:zx_wing)

5、RTL8139网卡驱动程序分析[转] (转载者:Godbach)

6、改写drivers/net/8139too.c (作者:xiongce )

7、Linux-千兆网卡驱动实现机制浅析 (作者:Minit )



四、安全相关

1、Linux下实现劫持系统调用的总结 (作者:Godbach)

2、破linux内核模块验证 (作者:W.Z.T)

3、Snort 入侵检测系统源码分析 (作者:Godbach)

4、Adore-ng-0.56源码分析 (作者:ubuntuer)

5、新爆内核高危漏洞sock_sendpage的利用分析的讨论 (作者:独孤九贱)(注:首发于2009.8.18)

6、剖析一个由sendfile引发的linux内核BUG (作者:kouu)


五、其他

1、Linker Script in Linux (作者:zx_wing)(注:介绍内核文件是怎么连接的)

2、Linux内存:内存管理的实质 (作者:frank_seng )

3、linux内存管理报告 (作者:kendyke )

4、一个简单文件系统的实现 (作者:goter  )

5、内核模块中对文件的读写 (作者:ubuntuer)

6、说一说:关于数据传送中 address bus 的工作原理 (作者:mik)(详细介绍读写内存时跨边界的问题)

7、关于 atomic 的话题(作者:mik)

8、基于S3C2410的Linux全线移植文档(作者:dozec)(嵌入式,ARM)



最后:感谢各位原创作者和转载者的辛勤劳动。

(UPDATE: 1.16.2010.  加入了作者或者转载者的名字。有些是集体讨论贴,没有加。)
(UPDATE: 1.28.2010.  加入了MIK老兄的2篇)
(UPDATE: 2.7.2010.    更改了超级连接格式)
(UPDATE: 4.29.2010.  加入五.8 )

评分

参与人数 2可用积分 +60 收起 理由
fender0107401 + 30 写的很好!
Godbach + 30 我很赞同

查看全部评分

论坛徽章:
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
2 [报告]
发表于 2010-01-15 11:03 |只看该作者
多谢accessory 兄的辛勤总结啊。

论坛徽章:
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
3 [报告]
发表于 2010-01-15 11:08 |只看该作者
置顶了。以后大家觉得那些好贴需要添加上去的,就由我或LZ编辑一下一楼的帖子。

论坛徽章:
0
4 [报告]
发表于 2010-01-15 11:10 |只看该作者
多谢GOD兄支持

论坛徽章:
0
5 [报告]
发表于 2010-01-15 12:43 |只看该作者
不错不错   还有我两篇文章
不可要是有时间方便的话 可以整理为chm版  把内容也弄过来^_^
shell板就有个这么总结的  还不错!!!
无聊的时候 断网的时候可以看看

论坛徽章:
0
6 [报告]
发表于 2010-01-15 13:37 |只看该作者

回复 #5 ubuntuer 的帖子

ubuntuer 老兄也是牛人啊。

CHM 版制作起来有什么方便的工具么?我以前用过一个“耶书制造”,不过那个要先把每个帖子弄成一个独立的HTML文件。

我觉得弄成PDF文件似乎更方便些。而且也支持目录,图片之类的。

论坛徽章:
0
7 [报告]
发表于 2010-01-15 14:14 |只看该作者
呵呵  那么期待你的新作了^_^

论坛徽章:
0
8 [报告]
发表于 2010-01-15 14:18 |只看该作者
呵呵。既感到压力,也感到了动力,呵呵。

也好,总比我没事时看武侠小说好。:wink:

论坛徽章:
0
9 [报告]
发表于 2010-01-15 19:36 |只看该作者
最好把题目直接做成链接就行了,不要下面再一行贴上了,看着有点乱。

论坛徽章:
0
10 [报告]
发表于 2010-01-16 02:21 |只看该作者

回复 #9 emmoblin 的帖子

收到
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP