摘要:
源:http://blog.csdn.net/f22jay/article/details/7925531Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。Linux内核地址映射模型x86 CPU采用了段页式地址映射模型。进程代码中的地址为逻辑地址,经过段页式地址映射后,才真正访问物理内存。段页式机制如下图。(看到这个图回想下实模式和保护模式以,内存分配算法【伙伴系统/内碎片和外碎片的算法】与GDT,LDT,页表的级数和线性空间 阅读全文
摘要:
Linux进程通过一个task_struct结构体描述,在linux/sched.h中定义,通过理解该结构,可更清楚的理解linux进程模型。 包含进程所有信息的task_struct数据结构是比较庞大的,但是该数据结构本身并不复杂,我们将它的所有域按其功能可做如下划分:进程状态(State)进程调度信息(Scheduling Information)各种标识符(Identifiers)进程通信有关信息(IPC:Inter_Process Communication)时间和定时器信息(Times and Timers)进程链接信息(Links)文件系统信息(File System)虚拟内存信. 阅读全文