Archive for the ‘C/C++’ category

Linux虚拟存储器系统(读书笔记)

April 14th, 2014

之前学了一段时间JOS的Env,对Linux的进程来说,每个进程有个进程控制块PCB。进程的消亡,就是Linux通过控制PCB进行的。

内核虚拟存储器包含内核中的代码和数据结构。内核虚拟存储器的某些区域被映射到所有进程共享的物理页面。例如,每个进程共享内核的代码和全局数据结构。下面这个图和JOS很像。高位属于kernel地址,低位留给user application。
» Read more: Linux虚拟存储器系统(读书笔记)

设定IDT表以及中断处理函数编写

March 26th, 2014

IDT本质是在kernel中的一个数组,是中断向量id到中断描述符(也即中断服务程序起始地址)的映射。
我画了一个图,图解IDT处理流程。
» Read more: 设定IDT表以及中断处理函数编写

中断下半部分(读书笔记)

January 15th, 2014

中断处理分为两个部分:上半部和下半部。中断处理程序属于上半部.
下半部的任务就是执行与中断处理程序密切相关但中断处理程序本身不执行,推后执行的工作。 » Read more: 中断下半部分(读书笔记)

Kernel中定时器与时间管理

December 24th, 2013

linux kernel时钟就是系统定时器以某种频率自行触发,当时钟中断发生时,内核就通过一种特殊的中断处理程序对其进行处理。 » Read more: Kernel中定时器与时间管理

SystemTap Kprobe原理

December 18th, 2013

想写这篇文章好长时间了,一直没有来得及总结,今天我把这个坑填上!

Systemtap是一种动态调试内核的工具,可以极大地方便内核开发人员对于内核的调试,过去,内核想要调试,必须在源码中打入print()然后进行编译,安装内核重启,这个导致内核调试复杂。 » Read more: SystemTap Kprobe原理