03 2016 档案
摘要:第三章 进程管理 一、进程 1.进程 进程就是处于执行期的程序。 进程就是正在执行的程序代码的实时结果。 进程是处于执行期的程序以及相关的资源的总称。 进程包括代码段和其他资源。 2.线程 执行线程,简称线程,是在进程中活动的对象。 内核调度的对象是线程而不是进程。 Linux对线程并不特别区分,视
阅读全文
摘要:十八章 调试 一、内核调试概述 1.需要面对的 一个确定的bug 一个藏匿bug的内核版本 相关的内核代码的知识和运气 2.艰难的调试工作 重现bug很困难:大部分bug通常都不是行为可靠而且定义明确的。 确定bug最初出现的内核版本很困难:内核版本更新快,难以确定bug从哪个版本开始出现的。 3.
阅读全文
摘要:一、实验相关 1.下载老师最新的menu文件,并在其中添加上周所编写的代码,并运行 下载 添加 运行 2.gdb调试跟踪 gdb设置跟踪文件(先进入linux 3.18.6所在的文件) gdb设置断点 二、流程图 三、遇到的问题 进入gdb调试时,执行file linux 3.18.6/vmlinu
阅读全文
摘要:第五章 系统调用 一、与内核通信 系统调用在用户控件进程和硬件设备之间添加了一个中间层,作用有: 为用户空间提供了一种硬件的抽象接口 系统调用保证了系统的稳定和安全 每个进程都运行在虚拟系统中,而在用户控件和系统的其余部分提供这样一层公共接口 在Linux中,系统调用是用户控件访问内核的唯一手段;除
阅读全文
摘要:一、系统调用的三层皮 1. 内核态、用户态 Intel x86 CPU有四个权限分级,0 3。Linux只取两种,0是内核态,3是用户态。 0xc0000000以上的空间只能在内核态下访问 0x00000000 0xbfffffff两种状态下都可以访问 2. API、中断向量、中断服务程序 中断向量
阅读全文
摘要:一、linux历史 20世纪60年代,MIT开发分时操作系统(Compatible TIme Sharing System),支持30台终端访问主机; 1965年,Bell实验室、MIT、GE(通用电气公司)准备开发Multics系统,为了同时支持300个终端访问主机,但是1969年失败了; ~刚开
阅读全文
摘要:一、Linux内核源码(简单分析) 1. README 一开始刚接触内核源码的时候,不知道代码文件是什么功能、不清楚如何使用文件的时候,就需要打开README。 README提供了内核的各种编译方法、生成文件的查看方法。 2. arch arch目录中包含和硬件体系结构相关的代码,每种平台有自己相应
阅读全文
摘要:一、实验截图 网络太卡,实验楼的实验没有太多的截图,下面的代码是看着老师的视频分析的。 二、代码解析 1.mymain.c asm volatile( "movl %1,%%esp\n\t" // 将进程的task[pid].thread.sp,即esp赋给esp寄存器 "pushl %1\n\t"
阅读全文