王一+ 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一、task_struct 操作系统的三大核心功能:1、进程管理 2、内存管理 3、 文件系统 struct task_struct{ volatile lon ...
分类:
系统相关 时间:
2017-04-03 00:29:39
阅读次数:
163
王康 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 1,预处理,编译,链接和目标文件的格式: 1, 预处理为cpp预处理文件 hello.s汇编代码--hello.o二进制目标文件( ...
分类:
其他好文 时间:
2017-04-03 00:19:14
阅读次数:
347
分析Linux内核创建一个新进程的过程 首先更新MenuOS的代码,加入调用fork的命令。吐槽一句,实验楼免费用户无法连网。还好只要去github复制一段代码即可 先观察一下fork命令的实现 根据fork系统调用的返回值,可以区分出当前是父进程还是子进程,或者调用失败。然后父进程通过wait系统 ...
分类:
系统相关 时间:
2017-04-02 16:18:40
阅读次数:
182
李亚健 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一、实验过程: 使用gdb跟踪分析一个系统调用内核函数(上周选择的那一个系统调用) 1.进入实验楼环境,进入LinuxKernel: rm menu -rf g ...
分类:
其他好文 时间:
2017-03-26 00:09:43
阅读次数:
221
王康 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 1,进程的描述 操作系统三大功能:进程管理(核心),内存管理,文件系统 1,进程控制块PCB——task_struct 也叫进程描 ...
分类:
系统相关 时间:
2017-03-21 19:38:42
阅读次数:
843
王一 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一、linux 系统的状态 Linux在x86平台下支持0内核态和3用户态。在内核态32位平台能访问0x00000000以上的空间,而用户 ...
分类:
系统相关 时间:
2017-03-19 23:33:09
阅读次数:
233
分析system_call中断处理过程 这次的目标是通过gdb来跟踪上周选择的uname系统调用。因为系统调用是通过中断在内核态实现的,gdb无法调试本机的系统调用。所以必须像之前的内核跟踪那样,用gdb远程连接至qemu虚拟机进行跟踪。 1. 首先修改之前的MenuOS,添加一个myuname函数 ...
分类:
系统相关 时间:
2017-03-19 01:44:58
阅读次数:
297
钟晶晶 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 工作过程 以41号进程dup为例,说明在应用程序如何使用Linux的系统调用。dup()复制一个打开的文件描述符,并返回一个新描 ...
分类:
其他好文 时间:
2017-03-17 15:57:45
阅读次数:
263
使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用 首先从系统调用表中选择一个系统调用,我选择了122号系统调用——uname 先用man查一下api是怎么使用的 这里的2表示查询系统调用uname(2),否则默认查的是uname(1),也就是在shell中运行的uname程序。 可以 ...
分类:
系统相关 时间:
2017-03-11 18:52:29
阅读次数:
211
李亚健 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一、实验过程: 实验内容为使用gdb跟踪调试内核从start_kernel到init进程启动 1.根据实验指导按照过程,在实验楼环境下打开shell: cd L ...
分类:
系统相关 时间:
2017-03-09 22:35:32
阅读次数:
257