操作系统在用户态和内核态之间进行切换时,从EL0进入到EL1(即从用户态进入内核态)时,书中写了3种方式:
0x80
调用0x80号中断是x86,arm是svc。但svc只是切换的一种。 书本的三种方式是按异常的来源划分的,不同的来源决定了不同的处理方式。虽然所有的异常最后都是调用异常向量表中的subroutine来处理,但具体的异常细节也同样重要。而且在arm中并不仅仅是用户态、OS,还有EL2,EL3,这两层的异常也要考虑,不单单是的用户态到内核态这么简单。