摘要: 使用if (exp(a) || exp(b)) 当exp(a)结果为true时exp(b)就不会计算 但使用if (exp(a) + exp(b)) 即使exp(a)结果为true也会计算exp(b) 小技巧 看到内核里用到的 阅读全文
posted @ 2018-03-25 16:05 Five100Miles 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 很久以前挖的坑, 现在还没填上, 也许以后再详细分析吧. kprobe是内核提供的代码跟踪工具, 其使用方法见Documentation/kprobes.txt, 此处做个简要说明. kprobe允许你在任何内核程序位置动态打断并收集调试信息. 你可以在几乎热河内核代码地址陷入中断, 指定断点触发时 阅读全文
posted @ 2018-03-25 15:59 Five100Miles 阅读(3521) 评论(0) 推荐(0) 编辑
摘要: 当我们在linux编写用户态程序时并不需要考虑进程间是如何切换的, 即使当我们编写驱动程序时也只需调用一些阻塞接口来让渡cpu. 但是cpu究竟是如何切换进程的, 在进程切换过程中需要做什么, 今天我们通过分析内核schedule()的实现来看下内核是如何完成进程切换的. 先看下几个相关的数据结构: 阅读全文
posted @ 2018-03-25 15:48 Five100Miles 阅读(2019) 评论(0) 推荐(0) 编辑