ARM基础:linux运行态与ARM运行模式的对应
扫描二维码
随时随地手机看文章
问:
从某一个方面来看,核心态与软中断有些类似。
系统通常情况下在用户态运行。只有发生了特定的操作后才切换到核心态。
始终都有一个Idle进程(用户态)在运行。这个Idle进程保证了系统通常运行在用户态。
用户态切换到核心态的过程可以拿软中断的过程作比喻(压栈,存上下文,按照不同的体系结构切换寄存器组,切换地址映射范围...)。
看《linux kernel development》看得一知半解。
上面自己的一些说法可能很不准确。表达大概的意思。不知这样理解对不对?
另外有一个问题:
linux分用户态、核心态。两种状态;ARM处理器有7种运行模式。
这之间有什么联系吗?如果有,这两种状态和这7中运行模式是怎么对应的?切换的动作是怎么实现的?
答:
用户态 -- user
内核态 -- svc
vim arch/arm/kernel/entry-armv.S