上一页 1 ··· 153 154 155 156 157 158 159 160 161 ··· 280 下一页
摘要: 让我们快速看一段 scull 内存管理代码. 在写逻辑的深处, scull 必须决定它请求的内 存是否已经分配. 处理这个任务的代码是: if (!dptr->data[s_pos]) { dptr->data[s_pos] = kmalloc(quantum, GFP_KERNEL); if (! 阅读全文
posted @ 2019-07-06 09:33 樊伟胜 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 用户模式 Linux (UML) 是一个有趣的概念. 它被构建为一个分开的 Linux 内核移植, 有 它自己的 arch/um 子目录. 它不在一个新的硬件类型上运行, 但是; 相反, 它运行在一 个由 Linux 系统调用接口实现的虚拟机上. 如此, UML 使用 Linux 内核来运行, 作为 阅读全文
posted @ 2019-07-06 09:32 樊伟胜 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 目前为止我们看到的 2 个交互式调试方法( 使用 gdb 于 /proc/kcore 和 kdb) 都缺乏 应用程序开发者已经熟悉的那种环境. 如果有一个真正的内核调试器支持改变变量, 断点 等特色, 不是很好? 确实, 有这样一个解决方案 2 个分开的补丁在流通中, 它允许 gdb, 具 备完全功 阅读全文
posted @ 2019-07-06 09:29 樊伟胜 阅读(359) 评论(0) 推荐(0) 编辑
摘要: 许多读者可能奇怪为什么内核没有建立更多高级的调试特性在里面.答案, 非常简单, 是 Linus 不相信交互式的调试器. 他担心它们会导致不好的修改, 这些修改给问题打了补丁 而不是找到问题的真正原因. 因此, 没有内嵌的调试器. 其他内核开发者, 但是, 见到了交互式调试工具的一个临时使用. 一个这 阅读全文
posted @ 2019-07-06 09:28 樊伟胜 阅读(1393) 评论(0) 推荐(0) 编辑
摘要: gdb 对于看系统内部是非常有用. 在这个级别精通调试器的使用要求对 gdb 命令有信心, 需要理解目标平台的汇编代码, 以及对应源码和优化的汇编码的能力. gdb 对于看系统内部是非常有用. 在这个级别精通调试器的使用要求对 gdb 命令有信心, 需要理解目标平台的汇编代码, 以及对应源码和优化的 阅读全文
posted @ 2019-07-06 09:17 樊伟胜 阅读(493) 评论(0) 推荐(0) 编辑
摘要: 尽管内核代码的大部分 bug 以 oops 消息结束, 有时候它们可能完全挂起系统. 如果系 统挂起, 没有消息打印. 例如, 如果代码进入一个无限循环, 内核停止调度,[15]15 并且系 统不会响应任何动作, 包括魔术 Ctrl-Alt-Del 组合键. 你有 2 个选择来处理系统挂起- - 或 阅读全文
posted @ 2019-07-06 09:14 樊伟胜 阅读(1203) 评论(0) 推荐(0) 编辑
摘要: 大部分 bug 以解引用 NULL 指针或者使用其他不正确指针值来表现自己的. 此类 bug 通 常的输出是一个 oops 消息. 处理器使用的任何地址几乎都是一个虚拟地址, 通过一个复杂的页表结构映射为物理地址 (例外是内存管理子系统自己使用的物理地址). 当解引用一个无效的指针, 分页机制无法 阅读全文
posted @ 2019-07-06 09:13 樊伟胜 阅读(647) 评论(0) 推荐(0) 编辑
摘要: 有时小问题可以通过观察用户空间的应用程序的行为来追踪. 监视程序也有助于建立对驱 动正确工作的信心. 例如, 我们能够对 scull 感到有信心, 在看了它的读实现如何响应 不同数量数据的读请求之后. 73 有时小问题可以通过观察用户空间的应用程序的行为来追踪. 监视程序也有助于建立对驱 动正确工作 阅读全文
posted @ 2019-07-06 09:12 樊伟胜 阅读(358) 评论(0) 推荐(0) 编辑
摘要: ioctl, 我们在第 1 章展示给你如何使用, 是一个系统调用, 作用于一个文件描述符; 它 接收一个确定要进行的命令的数字和(可选地)另一个参数, 常常是一个指针. 作为一个使 用 /proc 文件系统的替代, 你可以实现几个用来调试用的 ioctl 命令. 这些命令可以从 驱动拷贝相关的数据结 阅读全文
posted @ 2019-07-06 08:53 樊伟胜 阅读(1693) 评论(0) 推荐(0) 编辑
摘要: 如我们上面提到的, 在 /proc 下的大文件的实现有点麻烦. 一直以来, /proc 方法因为 当输出数量变大时的错误实现变得声名狼藉. 作为一种清理 /proc 代码以及使内核开发 者活得轻松些的方法, 添加了 seq_file 接口. 这个接口提供了简单的一套函数来实现大 内核虚拟文件. se 阅读全文
posted @ 2019-07-06 08:52 樊伟胜 阅读(519) 评论(0) 推荐(0) 编辑
上一页 1 ··· 153 154 155 156 157 158 159 160 161 ··· 280 下一页