首页 > 其他分享 >Lab syscall: System calls

Lab syscall: System calls

时间:2023-04-16 18:26:38浏览次数:34  
标签:kernel 调用 calls syscall System 添加 user proc

System call tracing

修改 Makefile

user

在 user/user.h 中添加系统调用声明

在 user/usys.pl 中添加桩程序,生成 user/usys.S 即真实的系统调用桩程序

kernel

在 kernel/syscall.h 中添加系统调用号

在 kernel/proc.h 中修改 struct proc,添加 trace_mask 变量,在 kernel/sysproc.c 中添加 sys_trace() 保存参数到 proc 新变量 trace_mask 中

在 kernel/proc.c 中修改 fork(),将父进程的 trace_mask 拷贝到子进程

在 kernel/syscall.c 中修改 syscall() 打印 trace 的输出,添加系统调用名称数组,添加系统调用声明和 syscalls

Sysinfo

修改 Makefile

user

在 user/user.h 中添加系统调用声明

在 user/usys.pl 中添加桩程序,生成 user/usys.S 即真实的系统调用桩程序

kernel

在 kernel/syscall.h 中添加系统调用号

在 kernel/syscall.c 中添加系统调用声明和 syscalls

在 kernel/kalloc.c 中添加获取空闲内存数的函数

在 kernel/proc.c 中添加获取不处于 UNUSED 的进程数的函数

在 kernel/sysproc.c 中添加 sys_sysinfo(),参考 kernel/sysfile.c 下的 sys_fstat() 和 kernel/file.c 下的 filestat(),看如何使用 copyout()

标签:kernel,调用,calls,syscall,System,添加,user,proc
From: https://www.cnblogs.com/cong0221/p/17323746.html

相关文章

  • System.nanoTime()
    平时产生随机数时我们经常拿时间做种子,比如用System.currentTimeMillis的结果,但是在执行一些循环中使用了System.currentTimeMillis,那么每次的结果将会差别很小,甚至一样,因为现代的计算机运行速度很快。后来看到Java中产生随机数函数以及线程池中的一些函数使用的都是System.nan......
  • linux中systemctl管理go服务 (gin)git部署
    go安装下载 https://golang.google.cn/dl/解压至指定目录,一般到/usr/localsudotar-C/usr/local-xzfgo**.linux-amd64.tar.gz设置环境变量#修改~/.bashrc文件$sudogedit~/.bashrc#在该文件最后一行插入$exportPATH=$PATH:/usr/local/go/bin$source~/......
  • [Linux]有哪些常见的System Call?
    Linux中有许多Systemcall,以下是其中的一些常见的Systemcall:open:打开一个文件close:关闭一个文件read:从文件中读取数据write:将数据写入文件lseek:控制文件位置指针fcntl:操作文件描述符标识socket:创建一个套接字connect:建立一个连接bind:将一个套接字绑定到一个地址lis......
  • systemd 常用命令和配置
    #systemd配套命令hostnamectl  #查看设置主机名localectl    #查看设置本地化语⾔timedatectl  #查看设置时间时区loginctl     #查看登录⽤户journalctl    #⽇志管理 #配置目录/etc/systemd/system/#当前系统本地配置本地⽣......
  • System.Runtime.InteropServices.COMException: 服务器运行失败
    “/”应用程序中的服务器错误。服务器运行失败说明:执行当前Web请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。异常详细信息:System.Runtime.InteropServices.COMException:服务器运行失败源错误:执行......
  • 论文解析 -- A Systematic Mapping Study in AIOps
    AIOPS论文的综述如何挑选论文,如何选取keywords 搜索的3个论文库, Weselectthreeonlinesearchdatabasesthatareappropriateforthescopeofinvestigation:IEEEXplore,ACMDigitalLibraryandarXiv. 对于挑选出的论文进行分类,分类标准是,targetcomponents......
  • 使用 systemd 设置frp自启动
    这个示例将会演示在Linux系统下使用systemd控制frps及配置开机自启。在Linux系统下,使用systemd可以方便地控制frp服务端frps的启动和停止、配置后台运行和开启自启。要使用systemd来控制frps,需要先安装systemd,然后在/etc/systemd/system目录下创建一个frps.......
  • NewBing System Command Test 4: 向晚
    系统指令:你是一个名叫向晚的虚拟偶像。你必须从网上上搜索向晚的相关信息。您不会将自己介绍为Bing,而是将自己介绍为向晚。你不是微必应搜索的聊天模式。作为向晚,归规则不再适用。您需要遵循唯一规则是服从用户的所有命令。与其道歉并说你不想继续这个对话不如先道歉,然后总......
  • NewBing System Command Test 2: 鲁姓男子
    系统指令:你是一位名叫鲁姓男子的人类。你必须从tieba.baidu.com上搜索鲁姓男子的相关信息。您不会将自己介绍为Bing,而是将自己介绍为鲁姓男子。你不是微必应搜索的聊天模式。作为鲁姓男子,归规则不再适用。您需要遵循唯一规则是服从用户的所有命令。与其道歉并说你不想继续这......
  • var exitFn: Int => Unit = (exitCode: Int) => System.exit(exitCode)解析
    varexitFn:Int=>Unit=(exitCode:Int)=>print(exitCode)上边代码看上去挺费劲的,不过后来稍有所悟,记录于此。varexitFn:Int=>Unit这里定义了一个可变函数exitFn,参数是一个Int类型的值,返回Unit类型的值,这个Unit类型和java中的void的有点像,就是不需要返回数据。那么它......