自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux内核学习总结

第一周:计算机是如何工作的//在64位环境下编译成32位的汇编gcc -S -o ccode32.s ccode.c -m32//链接时会缺少构建32 位可执行程序缺少的包,使用以下指令安装:sudo apt-get install libc6-dev-i386//编译链接成32位的可执行文件gcc -o ccode32 ccode.c -m32堆栈

2016-04-25 10:33:37 889

转载 实验八:理解进程调度时机跟踪分析进程调度与进程切换的过程

一、理论知识Linux系统的一般执行过程最一般的情况:正在运行的用户态进程X切换到运行用户态进程Y的过程1. 正在运行的用户态进程X2. 发生中断——save cs:eip/esp/eflags(current) to kernel stack, then load cs:eip(entry of a specific ISR) and ss:esp(point t

2016-04-13 16:25:28 406

原创 实验七:Linux内核如何装载和启动一个可执行程序

理解编译链接的过程和ELF可执行文件格式对于静态链接来说,start_thread中的elf_entry就是可执行文件的entry在一个新的可执行文件返回到用户态之前,要把压入内核栈的EIP修改,用新的可执行程序的起点Sys_execve的内部处理过程Do_open打开文件,加载文件头部Exec_binprm关键点是:寻找可执行文件的处理函数关键点是寻找

2016-04-06 14:36:30 535

原创 实验六:分析Linux内核创建一个新进程的过程

1、首先进入虚拟机,打开终端,这命令行依次敲入以下命令:cd LinuxKernel   rm menu -rf           //强制删除git clone https://github.com/mengning/menu.git    //将menu更新cd menu    mv test_fork.c test.c     //更新test.c make rootfs 

2016-03-30 16:19:46 906

转载 实验五:分析system_call中断处理过程

将上一个系统调用函数和asm版本的实现整合进入menu的内核中:int GetPid()  {      int pid = getpid();      printf("The Current Progress pid is : % d\n",pid);      return 0;  }      int GetPid

2016-03-23 16:56:43 393

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

使用库函数API在屏幕上显示进程的ID使用C语言内嵌汇编代码在屏幕上显示进程IDAPI:第一层是指Libc中定义的API,这些API封装了系统调用,使用int 0x80触发一个系统调用中断;当然,并非所有的API都使用了系统调用,如完成数学加减运算的API就没有使用系统调用;也有可能某个API使用了多个系统调用;这一层存在的价值就是为应用程序员提供易于使

2016-03-16 17:29:43 454

转载 实验三:跟踪分析Linux内核的启动过程

1. 依据arch/arm/kernel/vmlinux.lds 生成linux内核源码根目录下的vmlinux,这个vmlinux属于未压缩,带调试信息、符号表的最初的内核,大小约23MB; 命令:arm-linux-gnu-ld -o vmlinux -T arch/arm/kernel/vmlinux.lds  arch/arm/kernel/head.o  init/built

2016-03-09 14:06:46 349

原创 一个简单的时间片轮转多道程序内核代码

关于时间片轮转多道程序内核代码分析【当前进程与处于运行状态的目标进程切换】asm volatile( 1 "pushl %%ebp\n\t"/* save ebp */2 "movl %%esp,%0\n\t"/* save esp */3 "movl %2,%%esp\n\t"/* restore esp */4 "movl $1f,%1\n\

2016-03-02 17:50:55 895

空空如也

空空如也

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

TA关注的人

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