11 2016 档案
摘要:本周主要是对课本的学习 对于进程地址空间 先回顾一下内核地址空间 直接映射区:线性空间中从3G开始最大896M的区间,为直接内存映射区,该区域的线性地址和物理地址存在线性转换关系:线性地址=3G+物理地址。 动态内存映射区:该区域由内核函数vmalloc来分配,特点是:线性空间连续,但是对应的物理空
阅读全文
摘要:对于本周的实验部分Linux内核如何装载和启动一个可执行程序,先理解一个可执行程序是如何创建的 C代码(.c) 经过编译器预处理,编译成汇编代码(.asm) 汇编器,生成目标代码(.o) 链接器,链接成可执行文件(.out) OS将可执行文件加载到内存里执行。 1. 预处理 gcc E o hell
阅读全文
摘要:本周的实验是分析Linux内核创建一个新进程的过程 开始先介绍了进程的描述,Linux中对一个进程的描述主要是通过进程描述符来进行描述的,进程描述符用来描述进程的数据结构,可以理解为进程的属性。比如进程的状态、进程的标识(PID)等,都被封装在了进程描述符这个数据结构中,该数据结构被定义为task_
阅读全文
摘要:对于本周的实验是使用gdb跟踪分析一个系统调用中断处理过程,分析系统调用从system_call开始到iret结束之间的整个过程。 首先进入实验楼虚拟机打开终端进入LinuxKernel中将原有的menu删除代码如下 再拷贝新的menu 进入到test.c中添加上周写的系统调用 添加后编译运行men
阅读全文