zoukankan      html  css  js  c++  java
  • 2019-2020-1 20199303《Linux内核原理与分析》第六周作业

    系统调用的三层机制

    首先是为系统增加新的命令

    运行脚本自动生成文件系统

    其中有一个显示时间的功能

    编辑test.c文件,增加一个hello函数用来显示学号,再次使用make roofts自动编译,调用新增的函数

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

    启动内核,水平分割shell,并使用gdb建立连接

    在 start_kernel 处设置断点,在gdb中按c会在设置断点的 start_kernel 处停下来,使用list可以查看这段代码。

    用b sys_time设置一个断点,启动MenuOS后执行time命令,程序会停到 sys_time 这个函数的位置,time命令执行到一半卡在那里。

    单步执行,进入get_seconds() 中所在的 linux-3.18.6/kernel/time/timekeeping.c 文件,一直到 return i,获得的就是当前系统时间time的数值。


    设置一个断点system_call,继续执行,观察time函数的返回值

    Linux内核编译

    首先采用的内核版本为5.3.7,按照教程操作,许多文件的位置并不完全对应,在为系统添加系统调用号的时候,需要按如下添加

    否则会报错

    另外缺少libssl-dev与bison等内容,从ubuntu默认源下载十分缓慢,可以更换阿里的源或者清华源,但是update需要较长时间。
    最后经过许多尝试之后

  • 相关阅读:
    C#读取EXCEL中数字无法读取的方法
    学习Wml
    sqlserver.exe进程占cpu100%
    windows phone mango 页面跳转事件顺序
    Windows 8 系列(一):win 8 简介
    windows phone 小应用与随机算法的感悟
    文件下载
    html 表格固定宽度
    excel 导入科学计数法
    word 排版
  • 原文地址:https://www.cnblogs.com/besti-20199303/p/11748574.html
Copyright © 2011-2022 走看看