自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 Linux内核学习总结

刘森林 原创作品转载请注明出处 《Linux内核分析》MOOC课程博客目录第一周:计算机是如何工作的 第二周:完成一个简单的时间片轮转多道程序内核代码 第三周:Linux内核启动分析过程 第四周:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用 第五周:分析system_call中断处理过程 第六周: 分析fork函数对应的系统调用处理过程 第七周:分析exec*函数

2016-04-28 19:24:12 3120

原创 Linux进程调度——schedule()函数分析

刘森林 原创作品转载请注明出处 《Linux内核分析》MOOC课程 打开终端中输入qemu –kernel linux-3.18.6/arch/x86/boot/bzImage –initrd rootfs.img –S –s 然后打开另一个终端输入gdb(gdb)file linux-3.18.6/vmlinux(gdb)target remote:1234(gdb)b schedul

2016-04-14 21:46:01 9539

原创 分析exec*函数对应的系统调用处理过程

刘森林 原创作品转载请注明出处 《Linux内核分析》MOOC课程) 分析linux系统如何装载和启动一个可执行程序,也就是分析一个重要的系统调用execveexecve函数原型:#include <unistd.h>int execve (const char* path,char* const argv[],char* const envp[]);参数说明:path 表示启动程序所在的路

2016-04-09 21:22:33 2757

原创 分析fork函数对应的系统调用处理过程

阅读理解task_struct数据结构http://codelab.shiyanlou.com/xref/linux-3.18.6/include/linux/sched.h#1235;进程是计算机中已运行程序的实体。在面向线程设计的系统(Linux 2.6及更新的版本)中,进程本身不是基本运行单位,而是线程的容器。在Linux中,task_struct其实就是通常所说的PCB。该结构定义位于:

2016-03-31 22:14:35 2402

原创 分析system_call中断处理过程

刘森林原创作品转载请注明出处 《Linux内核分析》MOOC课程 上周我们使用gcc内嵌汇编调用系统调用,这次我们具体分析下过程。将getpid嵌入menuos 增加一个函数,getpid 在main中添加MenuConfig(“getpid”,”Show Pid”, Getpid); 重新编译 make roofs 此时启动 执行getpid就可以看到打印出pid为1

2016-03-23 21:21:56 622

原创 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

刘森林 原创作品转载请注明出处《Linux内核分析》MOOC课程实验目的使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用,理解系统调用的工作机制。实验过程这一次的实验使用的是我的Linux虚拟机Ubuntu 14.04.2 LTS 64bit 实验截图 time的系统调用号为13,获取当前的系统时间。编写两段代码,分别使用库函数API和C代码中嵌入汇编代码,源码如下:tim

2016-03-19 20:35:24 792 1

原创 Linux内核启动分析过程

环境搭建使用实验楼的环境 start_kernel从start_kernel开始,才真正进入了Linux内核的启动过程。我们可以把start_kernel看做平时用C编程时的main函数。 在平时应用程序编程中,main函数并不是一开始就启动的,而是先使用汇编和C准备一些变量,例如我们使用的argc和argv参数,以及一些全局变量的初始化。所以我们使用gdb调试程序时,使用bt打印栈痕迹,发现最

2016-03-13 20:01:44 612

原创 Linux内核分析-完成一个简单的时间片轮转多道程序内核代码

1、实验图 这次试验的内核由Linux3.9.4修改而来,详情见https://github.com/mengning/mykernel2、代码分析mypcb.h#define MAX_TASK_NUM 4 //最大的任务数#define KERNEL_STACK_SIZE 1024*8 //每个进程堆栈的大小/*

2016-03-03 21:27:42 873

原创 Linux内核分析(堆栈)

网易云课堂的第一周笔记 刘森林 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ”汇编语言的寻址模式movl %eax,%edx edx=eax 寄存器寻址 registermode(相当于c地址指针赋值)mo

2016-02-27 16:27:35 2712

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除