- 博客(10)
- 资源 (1)
- 收藏
- 关注
原创 linux内核分析总结
版权声明:本文为博主原创文章,未经博主允许不得转载。 姓名:周毅原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 下面是linux内核学习的博客: 1、通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的 2、完成一个简单的时间片轮转多道程序内核代码 3、分析Linux
2017-04-23 22:55:39 461
原创 8、理解进程调度时机跟踪分析进程调度与进程切换的过程
版权声明:本文为博主原创文章,未经博主允许不得转载。 姓名:周毅原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一、进程的切换 我们以前分析过中断的大致过程如下图: 而进程的切换过程就在如图所示中主要通过schedule来完成切换: 最一般的情况:正在运行的用户态
2017-04-16 19:10:24 294
原创 7、Linux内核如何装载和启动一个可执行程序
姓名:周毅原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 这篇文章主要分析linux调用fork系统调用时,执行了哪些过程。 一、可执行文件的创建——预处理、编译和链接 预处理,替换宏定义等等:gcc -E -o hello.cpp hello.c 编译,编译成汇编文本代码:
2017-04-09 19:19:47 411
原创 6、分析Linux内核创建一个新进程的过程
姓名:周毅原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 这篇文章主要分析linux调用fork系统调用时,执行了哪些过程。 一、fork系统调用代码分析 fork()允许用户态下创建新的进程, fork 创造的子进程复制了父亲进程的资源,包括内存的内容和task_str
2017-04-02 18:24:25 607
原创 5、分析system_call中断处理过程
姓名:周毅原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一、Fork调用 我们把fork调用添加到menu系统中去: 然后启动menu,发现有了fork命令,执行后: 对fork命令进行跟踪调试,我们在sys_fork处设置断点: 发现无法对sys
2017-03-26 12:15:05 436
原创 4、使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
姓名:周毅原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一、基础知识 1、操作系统的主要功能是为管理硬件资源和为应用程序开发人员提供良好的环境来使应用程序具有更好的兼容性,为了达到这个目的,内核提供一系列具备预定功能的多内核函数,通过一组称为系统调用(system call
2017-03-19 01:43:20 372
原创 3、分析Linux内核的启动过程
姓名:周毅 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一、基础知识 1、计算机通电后,CPU开始从一个固定的地址加载代码并开始执行,这个地址就是BIOS的驱动程序所在的位置,于是BIOS的驱动开始执行,BIOS会初始化启动许多硬件(硬盘、网卡等
2017-03-12 02:31:18 808
原创 2、完成一个简单的时间片轮转多道程序内核代码
姓名:周毅 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一、实验原理主要由 1、时间片轮转法是一种最常见的进程调度算法,它为每个进程分配一个时间片,然后每个进程轮流执行来完成并发执行; 2、进程的调度是通过中断完成,切换进程需要保留上一个进程的现场(本
2017-03-04 19:51:14 406
原创 1、通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
姓名:周毅 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一、基础知识 1、计算机一条一条的执行指令; 2、寄存器%EIP总是存着下一条指令所在内存的地址; 3、本课程用到的3个寄存器(32位): %eax:默认“累加器”,也是一个通用寄存器,往往也是存
2017-02-26 19:45:27 889
原创 leetcode题解
研究生阶段发现自己动手能力还是很弱,所以用leetcode来练练算法,希望可以提高自己。 下面是按我自己做题的顺序解答(C++): 2016年9月13日00:02:44 344. Reverse String Write a function that takes a string as input and returns the string reversed. Exam
2016-09-12 23:59:33 236
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人