작성
·
46
·
수정됨
0
exception handler 는 어느 공간에서 실행될까?
를 듣고 hypervisor, trusted zone 을 듣고 나니
일단 process 가 EL0 에서 실행되고 있었을 때 에는 프로세스 공간에서 스택에 쌓아 나간다는 사실(이게 프로세스 스택인가요, 커널 스택인가요?)을 알았는데요,
이 때 과연 hypervisor , trusted zone 의 level EL2, EL3 에서는 어떻게 처리가 되는지? 궁금해졌습니다.
EL0 -> EL1 의 흐름에서는 유저 프로세스 스택에서 다 담을 수 있다고 해도, EL1 이나 EL2, EL3 가 관여하게 되면 프로세스라는 개념이 사실 커널(EL1) 단에서 에러 처리한다는 개념하고는 조금 달라져야 할 것 같아서요,
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. platf님.
질문 주신 “exception handler”는 ARM 아키텍처에서 인터럽트나 예외 상황을 처리하는 핵심적인 요소입니다. 이 부분이 하이퍼바이저와 트러스트 존과 관련되어 어떻게 동작하는지 궁금해하시는 것 같아, 각 예외 레벨에서의 예외 처리 방식에 대해서 설명드리겠습니다.
EL0 -> EL1의 흐름:
EL0에서는 일반적으로 유저 프로세스가 실행됩니다. 예외가 발생하면 프로세스는 EL1로 전환되어 커널 모드에서 예외를 처리하게 됩니다. 여기서는 사용자 프로세스의 스택이 아니라, 커널 스택이 사용됩니다. 커널 모드로 전환된 후에는 커널이 제공하는 다양한 시스템 리소스를 통해 오류 및 예외 처리를 수행합니다.
EL2 (Hypervisor)에서의 예외 처리:
하이퍼바이저 레벨(EL2)에서는 하드웨어 가상화를 지원하기 때문에, 예외 처리 역시 커널과 다소 다르게 다루어집니다. 여기에선 VM(가상 머신)들이 많은 경우 실행되며, 하이퍼바이저는 여러 VM의 자원을 효율적으로 관리합니다. 따라서, EL2에서는 하이퍼바이저 스택을 이용하여 예외를 처리하고, 각 VM에 독립된 예외 처리 환경을 제공합니다.
EL3 (Trusted Zone)에서의 예외 처리:
EL3은 보안 환경을 다루는 트러스트 존의 레벨입니다. 이 레벨에서는 보안과 관련된 중요한 작업들이 수행되며, 예외가 발생할 경우 시스템 보안에 직접적인 영향이 있을 수 있으므로 철저한 검증과 통제가 필요합니다. EL3에서는 Secure Monitor라는 소프트웨어가 예외 처리를 담당하며, 이를 통해 보안 관련 예외를 처리하고, 칩의 보안 레벨 전환도 이루어집니다.
각 레벨의 예외 처리 방식을 이해하는 것은 가상화와 보안 환경에서 특히 중요합니다. 더 깊이 있는 정보는 다음의 관련 질문을 참고하세요:
이 링크들에서는 ARM 아키텍처의 익셉션 레벨과 인터럽트 처리 흐름에 대해 더 구체적으로 설명하고 있으니, 참고하시면 도움이 될 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.