扒开系统调用的三层皮(下)

一,给MenuOS增加time和time-asm命令

把time和time-asm添加到MenuOS里面去 作为命令。扩展MenuOS的功能。本周把上周增加的系统调用添加进MenuOS系统里面来。

所以这周我们要把 getpid 添加进来。

1.先执行rm menu -rf,强制删除原有的menu文件夹,使用git命令更新menu代码至最新版

2.test.c中main函数里,增加MenuConfig()

3.增加对应的两个函数,Getpid和GetpidAsm

4.make rootfs

5.输入help,可以看到当前的系统调用:

6.可以看到,我自己写的getpid和getpid_asm已经加进去了,分别执行这两个系统调用:

二,使用gdb跟踪系统调用内核函数

三,从system_call开始到iret结束之间过程

Linux内核分析 05的更多相关文章

  1. Linux内核分析 笔记七 可执行程序的装载 ——by王玥

    一.预处理.编译.链接和目标文件的格式 (一)可执行程序是怎么得来的? 1. 2.可执行文件的创建——预处理.编译和链接 shiyanlou:~/ $ cd Code                  ...

  2. LINUX内核分析第五周学习总结——扒开应用系统的三层皮(下)

    LINUX内核分析第五周学习总结——扒开应用系统的三层皮(下) 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163.com/cou ...

  3. linux内核分析作业8:理解进程调度时机跟踪分析进程调度与进程切换的过程

    1. 实验目的 选择一个系统调用(13号系统调用time除外),系统调用列表,使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用 分析汇编代码调用系统调用的工作过程,特别是参数的传递的方 ...

  4. Linux内核分析作业7:Linux内核如何装载和启动一个可执行程序

            1.可执行文件的格式 在 Linux 平台下主要有以下三种可执行文件格式: 1.a.out(assembler and link editor output 汇编器和链接编辑器的输出) ...

  5. linux内核分析作业6:分析Linux内核创建一个新进程的过程

    task_struct结构: struct task_struct {   volatile long state;进程状态  void *stack; 堆栈  pid_t pid; 进程标识符  u ...

  6. linux内核分析作业5:分析system_call中断处理过程

    1.增加 Menu 内核命令行 调试系统调用. 步骤:删除menu git clone        (tab) make rootfs 这就是我们将 fork 函数写入 Menu 系统内核后的效果, ...

  7. linux内核分析作业:以一简单C程序为例,分析汇编代码理解计算机如何工作

    一.实验 使用gcc –S –o main.s main.c -m32 命令编译成汇编代码,如下代码中的数字请自行修改以防与他人雷同 int g(int x) { return x + 3; } in ...

  8. linux内核分析作业:操作系统是如何工作的进行:完成一个简单的时间片轮转多道程序内核代码

    计算机如何工作 三个法宝:存储程序计算机.函数调用堆栈.中断机制. 堆栈 函数调用框架 传递参数 保存返回地址 提供局部变量空间 堆栈相关的寄存器 Esp 堆栈指针  (stack pointer) ...

  9. linux内核分析作业3:跟踪分析Linux内核的启动过程

    内核源码目录 1. arch:录下x86重点关注 2. init:目录下main.c中的start_kernel是启动内核的起点 3. ipc:进程间通信的目录 实验 使用实验楼的虚拟机打开shell ...

随机推荐

  1. Jquery checkbox选中问题

    checkbox中有.checked的写法,判断当前是否是选中状态,不过这种是针对[object HTMLInputElement]这种类型的,而对于[object Object]这种类型是不能使用的 ...

  2. MQTT的学习研究(十二) MQTT moquette 的 Future API 消息发布订阅的实现

    MQTT moquette 的Server发布主题 package com.etrip.mqtt.future; import java.net.URISyntaxException; import  ...

  3. Java可视化JVM监控软件

    jdk自带.jdk安装目录下 1.JConsole 选择 不安全 可用不多 2.VisualVM

  4. bond的操作方式

    本文转自网上,版权归属原作者,原文地址 :https://www.cnblogs.com/5201351/p/4898342.html 操作系统:CentOS Linux release 7.1.15 ...

  5. 批量远程执行linux服务器程序--基于paramiko(多线程版)

    批量远程执行linux服务器程序--基于paramiko paramiko模块是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接 具体安装方法这里不写,网 ...

  6. nginx如何利用自定义的conf文件启动?

    1.进入nginx的安装目录; 2.nginx -s -c conf/my.conf  (校验该文件是否有效)   nginx -s -c conf/my.conf 命令会卡死,存疑 3.start ...

  7. 在线预览文档(支持word、excel、ppt、pdf)+在线预览文档html版(转)

    1.首先上网搜索一下有什么解决方案 (1).将文档转换为html,只支持支持office文档 (2).将文档转换为flash,实现类似百度文库的效果,除支持office文档外还支持pdf (1) a. ...

  8. ffmpeg 推送、保存rtmp 流命令

    1.将文件当做直播送至live ffmpeg -re -i localFile.mp4 -c copy -f flv rtmp://server/live/streamName 2.将直播媒体保存至本 ...

  9. sql 将一张表中的数据插入到另一张表

    将表T_wz_wz中的部分数据插入到表t_wz_kc: insert into t_wz_kc(wzid,jldwid,kcsl,yfpkcsl,cshwcbz) select wzid,jldwid ...

  10. Oracle Schema Objects——Index

    索引主要的作用是查询优化. Oracle Schema Objects 查看执行计划的权限:查看执行计划plustrace:set autotrace trace exp stat(SP2-0618. ...