Quantcast
Channel: Kernel内核分析 – JasonLe's TechBlog
Browsing latest articles
Browse All 4 View Live

内核开发特点&进程管理(读书笔记)

在看内核编程前,几点重要的建议: 1.内核编程是不能访问C库。使用printk() 而不是printf()头文件使用<linux/string.h> 2.内核编程必须使用GNU C。使用static inline 限定,C语言中嵌入汇编,要知道对应的体系结构。 3.内核编程缺乏用户空间那样的内存保护机制。用户态有SIGSEGV,内核错误导致oops,内核的内存不会分页,用掉就少一个字节。...

View Article



Kernel中定时器与时间管理

linux kernel时钟就是系统定时器以某种频率自行触发,当时钟中断发生时,内核就通过一种特殊的中断处理程序对其进行处理。 利用时钟中断做的事情: 更新系统运行时间 update_wall_time(ticks) 更新实际时间 在SMP系统上,均衡调度各处理器上的运行队列 检查自己时间片是否用尽,耗尽的花,就是用schedule()调度 更新资源消耗负载,比如top右上方统计值...

View Article

内核函数copy_process()分析

内核通过调用函数copy_process()创建进程,copy_process()函数主要用来创建子进程的描述符以及与子进程相关数据结构。这个函数内部实现较为复杂,在短时间内,对于内部详细代码原理和实现并不能全部理解。因此,接下来的分析侧重于copy_process()的执行流程。 1. 定义返回值变量和新的进程描述符。 2....

View Article

Image may be NSFW.
Clik here to view.

用 qemu 来调试 Kernel

引言 kgdb 方式 kgdb 的方式需要两台电脑,一台是宿主机,另一台是开发机,在开发机上编译打好补丁的内核代码,然后拷贝到宿主机上运行。注:目前 kgdb 支持的版本比较低了,好像在 2.6.19 左右,如果需要调试高版本的内核比较麻烦,而且需要通过串口方式调试,必须需要两台电脑,安装配置也比较麻烦,不过该方式调试比较准确,不会因为优化问题而无法查看变量。 uml 方式 uml ( user...

View Article
Browsing latest articles
Browse All 4 View Live




Latest Images