扒开系统调用的三层皮           20135311傅冬菁 一.内容分析 寄存器上下文(从用户态切换到内核态) 中断/int指令会在堆栈上保存一些寄存器的值(用户态栈顶地址..当时的状态字.当下的cs:eip的值) 系统调用概述 系统调用(操作系统为用户态进程与硬件设备进行交互提供了一组接口)的意义: 1.把用户从底层的硬件编程中解放出来2.极大的提高了系统的安全性3.使用户程序具有可移植性 应用编程接口和系统调用的关系: API只是一个被封装好的函数定义 系统调用通过软中断(trap)向…
20135125陈智威 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 系统调用:库函数封装了系统调用,通过库函数和系统调用打交道 用户态:低级别执行状态,代码的掌控范围会受到限制. 内核态:高执行级别,代码可移植性特权指令,访问任意物理地址 为什么划分级别:如果全部特权,系统容易崩溃 系统调用的三层皮:xyz,system_call,sys_xyz.即:API,中断向量,服务程序. x…
万子惠 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验部分 选择24号getuid /getuid/ #include <unistd.h> #include <stdio.h> int main() { pid_t uu; uu=getuid(); printf("uu = %d \n", uu); return 0; } 执行…
实验部分 根据系统调用表,选取一个系统调用.我选得是mkdir这个系统调用,其系统调用号为39,即0x27 由于mkdir函数的原型为int mkdir (const char *filename, mode_t mode) 所以根据其原型编写一下代码: #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> int main() { const  char *ch = "test&quo…
20135125陈智威 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ” 实验目的: 通过以一个简单的menu小程序,跟踪系统调用的过程,分析与总结系统调用的机制和三层进入的过程. 实验原理: 系统调用是通过软中断指令 INT 0x80 实现的,而这条INT 0x80指令就被封装在C库的函数中.(软中断和我们常说的硬中断不同之处在于,软中断是由指令触发的,而不是由硬件外设引起的.)IN…
课程主要内容有三点: 在MenuOS中通过添加代码增加自定义的系统调用命令 使用gdb跟踪调试内核 简单分析system_call代码了解系统调用在内核代码中的处理过程 实验——分析system_call中断处理过程 在MenuOS中添加上周所运用到的系统调用 克隆并自动编译 rm menu -rf 强制删除原menu文件 git clone https://github.com/mengning/menu.git      从github中克隆 cd menu 在test.c文件中,添加代码如…
一. 给MenuOS增加time-asm命令 代码解释 1.-rf:强制删除 2.clone :重新克隆 3.time-asm:显示系统时间的汇编形式 给MenuOS增加time和time-asm命令 更新menu代码到最新版 在main函数中增加MenuConfig 增加对应的Time函数和time-asm函数 make rootfs 二.使用gdb跟踪系统调用内核函数sys_time 解释得几点: 调试的时候一直按n单步执行会进入schedule函数 sys-time返回后进入汇编代码处理g…
[刘蔚然 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000] WEEK FOUR(3.14——3.20)扒开系统调用的“三层皮” SECTION 1 用户态.内核态和中断处理过程 1.用户态.内核态区别 在高级别的状态下,代码可以执行特权指令,访问任意的物理地址: 在相应的低级别执行状态下,代码的掌控范围会受到限制. 为什么会有这种级别划分? 没有访问权限划分容易使得系统混乱(毕竟普通程序…
[刘蔚然 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000] WEEK FIVE(3.21——3.27)扒开系统调用的“三层皮”(下) SECTION 1 给MenusOS增加time和time-asm命令 1.操作步骤 进入实验楼 首先,强制(即 -rf命令)删除当前的menu 克隆一个新的menu(其中已经含有time了).但是通过实践以及查询,实验楼中对连入外网进行了限制,所以在实验…
LINUX内核分析第五周学习总结--扒开系统调用的"三层皮"(下) 标签(空格分隔): 20135321余佳源 余佳源 原创作品转载请注明出处 <Linux内核分析>MOOC课程 http://mooc.study.163.com/course/USTC-1000029000 一.给MenuOS增加time和time-asm命令 1.克隆并自动编译MenuOS rm menu -rf //强制删除原menu文件 git clone https://github.com/me…