int $0x80系统调用的idea

本文介绍了int $0x80系统调用的基础知识,包括用户态和内核态的概念,详细讲解了int $0x80汇编指令的执行过程,以及该指令如何实现用户态到内核态的切换,并在系统调用结束后如何恢复用户程序的执行。
摘要由CSDN通过智能技术生成

1、基础知识

     用户态和内核态

          一般现代CPU都有几种不同的指令执行级别,Linux总共划分为4个指令执行级别:内核运行在0级别上,1,2级别默认不运行,用户程序运行在3级别上。
          在内核指令执行级别上,代码可以执行特权指令,访问任意的物理地址。
          在用户指令执行级别上,代码的掌控范围会受到限制。只能在对应级别允许的范围内活动。
          cs寄存器的最低两位表明了当前代码的特权级:CPU每条指令的读取都是通过cs:eip这两个寄存器:其中cs是代码段选择寄存器,eip是偏移量寄存器。

         上述判断由硬件完成。

          一般来说在Linux
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值