陈巧然 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一、实验过程 登陆实验楼虚拟机http://www.shiyanlou.com/courses/195 打开shell终端,执行以下命令 ...
分类:
系统相关 时间:
2016-03-29 21:22:38
阅读次数:
203
第18章 调试 18.1 准备开始 准备工作需要的是: 一个bug 一个藏匿bug的内核版本 相关内核代码的知识和运气 18.2 内核中的bug 内核中bug的产生原因 从明白无误的错误代码——没有把正确的值存放在恰当的位置 同步时发生的错误——共享变量锁定不当 错误地管理硬件——错误的控制寄存器发 ...
分类:
系统相关 时间:
2016-03-29 00:51:48
阅读次数:
297
1.内核中的bug 内核调试的难点 2. 内核调试的工具和方法 2.1 输出 LOG 输出LOG不光是内核调试, 即使是在用户态程序的调试中, 也是经常使用的一个调试手段. 通过在可疑的代码周围加上一些LOG输出, 可以准确的了解bug发生前后的一些重要信息. linux内核中输出LOG的函数是 p ...
分类:
系统相关 时间:
2016-03-28 21:45:12
阅读次数:
260
第十八章调试 18.1 准备开始 需要准备的东西: l 一个bug:大部分bug通常都不是行为可靠而且定义明确的 l 一个藏匿bug的内核版本:找出bug首先出现的版本 l 相关内核代码的知识和运气 最好能让bug重现,有一些bug存在而且有人没办法让他重现,因为内核与用户程序和硬件间的交互很微妙。 ...
分类:
系统相关 时间:
2016-03-27 18:09:30
阅读次数:
229
CHAPTER 18 调试 18.1 准备开始 需要的是准备是: - 一个bug - 一个藏匿bug的内核版本 - 相关内核代码的知识和运气 重点: 想要成功的进行调试,就取决于是否能让这些错误重现。如若不能,消灭bug就只能通过抽象出问题,再从代码中寻找蛛丝马迹来进行了。 18.2 内核中的bug ...
分类:
系统相关 时间:
2016-03-27 18:00:25
阅读次数:
240
《第五章 系统调用》笔记 5.1 与内核通信 系统调用在用户空间和硬件设备之间提供了一个中间层。 中间层的作用: 为用户空间提供一种硬件的抽象接口;保证系统稳定和安全;除异常和陷入,是内核唯一的合法入口。 5.2 API、POSIX和C库 API定义了应用程序使用的编程接口(可实现系统调用)。 AP ...
分类:
系统相关 时间:
2016-03-27 18:00:15
阅读次数:
216
第一章 Linux内核简介 1.1Unix历史 Unix特点:1、很简洁 2、所有东西都被当成文件对待 3、Unix内核和相关的系统工具软件都是用C语言编写而成 4、进程创建非常迅速 所以Unix很强大。 1.2追寻Linus足迹:linux简介 Linus开发。Linux是类Unix系统。Linu ...
分类:
系统相关 时间:
2016-03-27 17:51:59
阅读次数:
185
《Linux内核设计与实现》读书笔记 第五章 系统调用 第五章系统调用 系统调用是用户进程与内核进行交互的接口。为了保护系统稳定可靠,避免应用程序恣意忘形。 5.1与内核通信 系统调用在用户空间进程和硬件设备间添加了一个中间层, 作用:为用户空间提供了一种硬件的抽象接口;保证了系统的稳定和安全,避免 ...
分类:
系统相关 时间:
2016-03-27 12:29:13
阅读次数:
204
输出LOG不光是内核调试, 即使是在用户态程序的调试中, 也是经常使用的一个调试手段. 通过在可疑的代码周围加上一些LOG输出, 可以准确的了解bug发生前后的一些重要信息. linux内核中输出LOG的函数是 printk (语法和printf几乎雷同, 唯一的区别是printk可以指定日志级别) ...
分类:
系统相关 时间:
2016-03-24 16:20:37
阅读次数:
226
第十八章 调试 一、调试开始前的准备 1.准备开始 成功调试的关键在于能否将错误重现 2.内核中的bug 其产生原因无数,表象变化也多种多样。从隐藏在源代码中的错误到出现的bug,可能是由一系列连锁反应触发的。 二、通过打印调试 1.健壮性 printk()函数的健壮性特质使得任何时候、任何地方都能
分类:
系统相关 时间:
2016-03-23 19:41:39
阅读次数:
186