周子轩 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验目的: 使用gdb跟踪分析一个schedule()函数,理解Linux系统中进程调度的时机。 实验过程: 登陆实验楼虚拟机http: ...
分类:
系统相关 时间:
2016-04-11 23:58:48
阅读次数:
378
陈巧然 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一、视频内容 Linux系统的一般执行过程 最一般的情况:正在运行的用户态进程X切换到运行用户态进程Y的过程 1. 正在运行的用户态进程 ...
分类:
系统相关 时间:
2016-04-11 23:55:12
阅读次数:
297
进程的切换和系统的一般执行过程 一、进程切换的关键代码switch_to分析 1.进程调度与其时机分析 分类: 第一种分类 I/O-bound:频繁的进行I/O;会花很多时间等待I/O操作完成 CPU-bound:计算密集型;需要大量cpu时间进行计算 第二种分类 批处理进程:不必与用户交互,通常在 ...
分类:
系统相关 时间:
2016-04-11 20:24:09
阅读次数:
220
原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 这一周的主要内容是可执行程序的装载。 一、那么首先来看一下编译链接的过程和ELF可执行文件格式 1、这张图简明扼要的说明了可执行程序的产生。 ...
分类:
系统相关 时间:
2016-04-11 00:14:06
阅读次数:
270
李俊锋 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.实验原理 1.elf可执行文件格式 ELF文件由4部分组成,分别是ELF头(ELF header)、程序头表(Program ...
分类:
系统相关 时间:
2016-04-10 21:29:34
阅读次数:
332
链接的过程 首先运行C预处理器cpp,将C的源程序(a.c)翻译成ASCII码的中间文件(a.i) 接着C编译器ccl,将a.i翻译成ASCII汇编语言文件a.s 接着运行汇编器as,将a.s翻译成可重定位的目标文件a.o 最终完全链接成可执行文件a.out 目标文件 目标文件有三种形式: 可重定位 ...
分类:
系统相关 时间:
2016-04-10 21:29:33
阅读次数:
227
王昭(与最后申请证书的姓名务必一致) + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 Linux内核如何装载和启动一个可执行程序 总结部分:Linux内核装载时首先对相应的可执行程序分 ...
分类:
系统相关 时间:
2016-04-10 21:19:57
阅读次数:
250
原创作品 转载请注明出处 贺邦 《Linux内核分析》MOOC课程:http://mooc.study.163.com/course/USTC-1000029000 第七讲 Linux内核如何装载和启动一个可执行程序 一、理论知识 Linux中,可以从c源代码生产一个可执行程序,这其中要经过预处理、 ...
分类:
系统相关 时间:
2016-04-10 18:06:08
阅读次数:
176
20135103王海宁 原创作品转载请注明出处《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 这周的实验是关于Linux内核如何加载一个可执行程序的。下面开始实验: 打开实验楼环境,重新下载编译内核,然后小s大s,启 ...
分类:
其他好文 时间:
2016-04-10 16:20:29
阅读次数:
163
一、得到一个可执行程序 1. 预处理、编译、链接 gcc hello.c -o hello.exegcc编译源代码生成最终可执行的二进制程序,GCC后台隐含执行了四个阶段步骤。预处理 => 编译 => 汇编 => 链接预处理:编译器将C源代码中包含的头文件编译进来和执行宏替换等工作。gcc -E h ...
分类:
系统相关 时间:
2016-04-10 16:14:28
阅读次数:
241