V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
taoshaoz1
V2EX  ›  问与答

关于 Linux 5.15 内核编写系统调用的问题(HELP!)

  •  
  •   taoshaoz1 · 2022-12-05 15:04:13 +08:00 · 659 次点击
    这是一个创建于 698 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Goal: 设计一个系统调用函数,用来统计系统中所有系统调用的次数

    实验环境:OS:Ubuntu 20.04.2 LTS (GNU/Linux 5.15.0-53-generic x86_64)

    目前已完成:编写一个普通的带参数的系统调用,并通过 syscall()函数调用成功

    遇到的难点

    1. 不知道全局数组存放的位置,无从下手。因为按照以往的旧内核( v2.6 ),是在 sys_i386.c 文件中编写代码创建一个 NR_syscalls 的数组,但是在新版的内核中系统调用似乎已经不再跟以往的一样。我在实现有参调用时仅修改了三个文件就完成了,分别是:
      • kernel/sys.c // 编写函数

      • include/linux/syscalls.h //声明函数 ,asmlinage..

      • arch/x86/entry/syscalls/syscall_64.tbl //调用号表

    这种局部的好处理,全局的还能统计每个调用次数的又该怎么实现呢? 求大佬解答,看源码看不懂..关于新版内核的系统调用研究目前能找到的资讯也很少

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2467 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 10:36 · PVG 18:36 · LAX 03:36 · JFK 06:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.