zhuan :http://bbs.chinaunix.net/thread-1940276-1-1.html

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

下面是我个人的一些总结。我学习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)

内核版常见问题和精华贴总结(VER 0.1) [相关推荐

  1. [转贴]内核版之OS设计

    hyl (enthusiast) 10/06/02 10:28 [精华] 内核版之OS设计   本贴是索引页, 其回贴是早期系统的一些介绍. 了解最新进展 新闻和进展 Join us 参与问题的解决 ...

  2. 金蝶k3rpc服务器不可用_金蝶KIS商贸版常见问题这样解决

    在使用金蝶KIS商贸版软件的时候,这些问题往往会出现,那么,这些问题你都会解决吗? 金蝶KIS商贸版常见问题这样解决1. 用着用着正式变试用了怎么办? 互联网时代,License需要每个月更新一次(专 ...

  3. 修图软件 Pixelmator Pro Mac版常见问题

    Pixelmator Pro是一种图像编辑器,旨在使每个人都可以使用最强大的专业图像编辑工具.今天小编给大家带来了修图软件Pixelmator Pro Mac版常见问题,一起来看看吧.Pixelmat ...

  4. ShopNum1网店系统标准版常见问题总结

    ShopNum1网店系统标准版常见问题总结 请问,什么是ShopNum1标准版啊? 答: ShopNum1标准版就是帮助您快速搭建B2C模式的网上销售平台的网店系统  用ShopNum1标准版开网店可 ...

  5. 辐射4核能选项用计算机失败,玩游戏出问题了?《辐射4》PC版常见问题汇总和解决方案...

    玩游戏出问题了?<辐射4>PC版常见问题汇总和解决方案 2015-11-10 15:50:43来源:游戏下载编辑:评论(0) 万众期待的<辐射4>终于和我们见面了,但游戏刚刚发 ...

  6. 电脑饥荒服务器未响应,《饥荒》联机版常见问题及解决方法一览

    <饥荒>联机版常见问题及解决方法一览 2014-10-24 13:37:46来源:饥荒吧编辑:评论(0) <饥荒>联机内测版终于与各位玩家见面了,接下来介绍的是联机版中大家经常 ...

  7. 饥荒进入服务器一直连接,《饥荒》联机版常见问题及解决方法一览

    <饥荒>联机版常见问题及解决方法一览 2014-10-24 13:37:46来源:饥荒吧编辑:评论(0) <饥荒>联机内测版终于与各位玩家见面了,接下来介绍的是联机版中大家经常 ...

  8. 饥荒联机版 服务器未响应,饥荒联机版常见问题汇_饥荒联机版常见问题大全_快吧单机游戏...

    饥荒联机版常见问题大全,饥荒游戏自从开放联机之后,各位玩家也相继遇到了很多各式各样的问题,而今天笔者要给大家介绍的就是饥荒联机版常见问题大全.希望能给大家带来一些帮助. 3.找不到没有房间:右边的页面 ...

  9. 鸿蒙系统浏览器内核,四大浏览器横评出炉:Chromium 内核版 Edge 四项夺冠,优于原生 Chrome...

    四大浏览器横评出炉:Chromium 内核版 Edge 四项夺冠,优于原生 Chrome 2020-01-16 14:04:30 51点赞 382收藏 243评论 如此前所预告的一样,微软于美国时间 ...

最新文章

  1. MySQL关于事务控制、视图、存储过程和函数
  2. asio boost 异步错误处理_boost::asio::error的用法浅析
  3. 武鸣高中2021高考成绩查询,2019年广西两大重点高中成绩大比拼
  4. azure 部署java_jClarity:在Azure上升级到Java
  5. React开发(215):React中的Fragments的动机
  6. 启动tomcat后无法访问
  7. CRC 冗余校验计算
  8. ZYNQ研究----(2)基于开发板制作串口测试程序
  9. ue4蓝图运行顺序_UE4蓝图编程的第一步
  10. Python——Dict类型
  11. 盘锦哪家计算机学校好,盘锦这所学校上了全国自主招生500强榜单
  12. C#,ASP.NAT基于腾讯服务器实现自动发送邮件功能的几种方法及遇到的坑
  13. cuDNN免官网创建账户登陆迅雷下载网址
  14. 灵敏度分享码显示服务器不可用,和平精英S11最稳灵敏度分享码有哪些?和平精英灵敏度设置分享码...
  15. 图像增广 || 通过仿射变换实现图像的平移、缩放、旋转、翻转、错切,及MATLAB实现与分析
  16. 一个无损连接和保持函数依赖性的3nf分解
  17. 清除IE浏览器input后面的删除图标
  18. 【转载】Linux常用命令大全之文件处理命令(一)
  19. Python之禅this
  20. leetCode594

热门文章

  1. 为什么居住的地方离上班的地方很远
  2. 8-7复习 stl常用算法
  3. 考oracle ocm,Oracle数据库OCM考试系列教程与总结_OCM考试实验笔记
  4. git 忽略文件失效
  5. Application Virtualization 4.5 部署之(三)(
  6. python之文件目录和路径
  7. 《树莓派Python编程入门与实战(第2版)》——3.4 关于Python解释器
  8. 打造GTD style的办公环境 V1.0
  9. debian6 xen4.0安装 guest半虚拟化--debootstrap安装
  10. 组信箱共享及挂载介绍