首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    精致全景图 | 系统调用是如何实现的

    这张图画了挺久的,主要是想让大家可以从全局角度,看下linux内核中系统调用的实现。...先别急,先来看下struct pt_regs的定义: 你有没有发现,这里面的字段名都是寄存器的名字。...这里需要注意的是100行到121行这段逻辑,它将各寄存器的值压入到栈中,以此来构建struct pt_regs对象。 这就能构建出一个struct pt_regs对象了? 是的。...我们再想下,当我们要构建一个struct pt_regs对象时,我们要为其在内存中分配一块空间,然后用一个地址来指向这段空间,这个地址就是该struct pt_regs对象的指针,这里需要注意的是,这个指针里存放的地址...在构建完struct pt_regs对象后,123行将rax中存放的系统调用编号赋值到了rdx里,124行将rsp里存放的struct pt_regs对象的地址,即该对象的指针,赋值到了rsi中,接着后面执行了

    1.1K30
    领券