linux内核面试题[2]-Linux用户模式和内核模式

linux内核面试题[2]-Linux用户模式和内核模式

Kernel mode下运行的程序能够访问所有的memory,能够处理interrupt;
user mode的程序只能访问有限的memory,不能直接处理中断.

<1>ARM体系下的7种工作模式

当前程序状态寄存器Current Program Status Register (CPSR)的bit4:0决定的:

CPSR[4:0处理器模式可访问的寄存器
0b10000UserR0~R14;PC;CPSR
0b11111SystemR0~R14;PC;CPSR
0b10001FIQR0~R7;R8_FIQ-R14_fiq;PC;CPSR;SPSR_fiq
0b10010IRQR0~R12;R13_irq-R14_irq;PC;CPSR;SPSR_irq
0b10011SupervisorR0~R12;R13_svc-R14_svc;PC;CPSR;SPSR_svc
0b10111AbortR0~R12;R13_abt-R14_abt;PC;CPSR;SPSR_abt
0b11011UndifinedR0~R12;R13_und-R14_und;PC;CPSR;SPSR_und

用户(User)模式:ARM处理器正常的程序执行状态
系统(System)模式:运行具有特权的操作系统任务
快速中断(FIQ)模式:用于处理紧急的中断,如高速数据传输或通道处理
普通中断(IRQ)模式:用于处理通用的中断,通常在硬件中断信号后进入该模式
管理(Supervisor)模式:操作系统使用的保护模式,是CPU上电后的默认模式,主要用于系统的初始化
数据访问终止(Abort)模式:用于虚拟存储及存储保护,当访问非法地址或读取无权限内存地址时进入该模式
未定义指令中止(Undifined)模式:当执行未定义的指令时进入该模式,用于支持硬件协处理器的软件仿真

<2>ARM体系下的2种工作状态

1> ARM state :此时处理器执行 32 位的字对齐的ARM指令。
2> Thumb state :此时处理器执行的 16 位的半字对齐的Thumb指令。
注:使用Thumb指令集,就是为了减小程序使用的空间

3130292827...876543210
NZCVIFTM4M3M2M1M0

M0-M4: ARM的7种工作模式
T: ARM CPU的2种工作状态,1:CPU处于Thumb状态;0表示处于ARM状态
F: FIQ快中断禁止位,1表示被禁止
I: IRQ中断禁止位,1表示被禁止
V: 溢出标志位(overflow)
C: 进位/借位/移位溢出标志位
Z: 运算结果是否为0
N: 运算结果是否为负数
bit 8-17:保留位

参考资料:
https://www.cnblogs.com/JmZd/p/8809997.html
https://blog.csdn.net/cosmoslhf/article/details/17282777

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值