一、 给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返回后进入汇编代码处理gdb无法继续跟踪。
  • 执行int 0x80之后system_call对应的代码

三、系统调用在内和代码中的工作机制和初始化

回顾: 用户态和内核态的转变和匹配

系统调用机制的初始化

- `\init\main.c start_kernel

  • trap_init();

- \arch\x86\kernel\traps.c

#ifdef CONFIGX8632 set systemtrapgate(SYSCALLVECTER,&systemcall);

setbit(SYSCALLVECTOR,used_vectors);

endif

四、简化后便于理解的sys_call伪代码

关键的信息

- 在系统调用之前它有可能会形成进程调度

总结:内核可以看成很多种中断处理不同的集合。

简单浏览system_call到iret之间的主要的代码

  1. save all:保存现场
  2. iterrupet return 实际上就是irq_return宏。
  3. work pending 里面的work notifysig是用来处理pending signal信号的。
  4. schedule是个重要的代码,决定了进程调度的代码。

总结

本周就是继续去学代码,还有一个上周的巩固,很充实。

20135239 益西拉姆 linux内核分析 扒开系统调用的三层皮(下)的更多相关文章

  1. 20135239 益西拉姆 linux内核分析 可执行程序的装载

    益西拉姆 + 原创作品请勿转载 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ” week 7 可 ...

  2. 20135239益西拉姆 Linux内核分析 进程的描述和进程的创建

    [益西拉姆 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000] 第六周 进程的描述 ...

  3. 20135239益西拉姆 Linux内核分析 汇编一个简单的c程序并分析其指令过程

    益西拉姆+<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 第一周linux内核分析 学习笔记 一.计算机 ...

  4. 20135239益西拉姆 Linux内核分析 操作系统是怎样工作的?

    益西拉姆+ 原创作品+ <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ” 堆栈 堆栈是C语言程序运行时 ...

  5. 20135239 益西拉姆 linux内核分析 进程的切换和系统的一般执行过程

    week 8 进程的切换和系统的一般执行过程 [ 20135239 原文请转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course ...

  6. linux内核分析——扒开系统调用的三层皮(下)

    20135125陈智威 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ” 实验 ...

  7. linux内核分析——扒开系统调用的三层皮(上)

    20135125陈智威 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 系统调用 ...

  8. linux内核分析——扒开系统调用的三层皮

    万子惠 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验部分 选择2 ...

  9. Linux内核分析— —扒开系统调用的三层皮(上)

    实验部分 根据系统调用表,选取一个系统调用.我选得是mkdir这个系统调用,其系统调用号为39,即0x27 由于mkdir函数的原型为int mkdir (const char *filename, ...

随机推荐

  1. PHP核心技术——接口

    接口: 接口这样描述自己:对于实现我的所有类,看起来都应该像我现在这个样子 接口含义:采用一个特定接口的所有代码都知道对于那个接口会调用什么方法. interface mobile{ public f ...

  2. Leetcode_6. Zigzag convertion

    6. Zigzag convertion 对输入的字符串做锯齿形变换,并输出新的字符串,所谓zigzag变化如下图所示. 将"ABCDEFGHIJKL"做4行的锯齿变换,新的字符串 ...

  3. python的多路复用实现聊天群

    在我的<python高级编程和异步io编程>中我讲解了socket编程,这里贴一段用socket实现聊天室的功能的源码,因为最近工作比较忙,后期我会将这里的代码细节分析出来,目前先把代码贴 ...

  4. linux获得命令使用帮助

    1. 内部命令: help CMD 2. 外部命令: CMD --help 3. 命令手册: manual(所有命令) man CMD 分章节: 1: 用户命令(User Commands - /bi ...

  5. 互评Alpha作品——Hello World!团队作品空天猎

    基于NABCD评论作品 1.Need需求:市面上同类型的手机及PC端飞行射击类游戏有很多,所以从需求方面来说,这款游戏的潜在客户非常有局限性.近些年较火的飞行射击类游戏,例如腾讯14年发行的<全 ...

  6. No.1011_第八次团队会议

    罗老师和Bigman助教: 一直以来没看博客页面,我们的博客负责人不是没写博客,而是不小心把博客发到草稿上了.. 请您再次看一下我们的博客,并批评指正! 今天大家的情绪依旧很低落,离第一轮迭代完成距离 ...

  7. wdatepicker控件de使用小方法汇总

    在总结wdatepicker控件的使用前,先插播一条吧,下午刚心血来潮百度的一条 问?C#中Int16.Int32.Int64.之间的区别,:::嘿嘿其实百度知道就有,但还是写上吧! Int16 表示 ...

  8. 使用myeclipse2014整合ss2h

    使用myeclipse2014整合ssh 新建一个webproject 创建过程中注意选择生成web.Xml   先添加struts2的能力 选择都添加过滤器的选项 Core dojo Dwr spr ...

  9. 22_IO_第22天(File、递归)_讲义

    今日内容介绍 1.File 2.递归 xmind:下载地址: 链接:https://pan.baidu.com/s/1Eaj9yP5i0x4PiJsZA4StQg 密码:845a 01IO技术概述 * ...

  10. angularJS1笔记-(4)-自定义服务

    html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...