익셉션
Posts
27 posts[Arm프로세서] XEN 하이퍼바이저: 익셉션 핸들러 코드 소개
운영체제나 RTOS 커널의 세부 동작을 파악하려면 익셉션이 유발되면 처리되는 익셉션 벡터 핸들러를 잘 알아야 합니다. 익셉션 벡터 핸들러의 코드를 보면 Armv8 아키텍처에서 정의된 스팩에 따라 익셉션 벡터 핸들러가 구현됐다는 사실을 알 수 있습니다. XEN 하이퍼바이저의 익셉션 벡터 핸들러 코드도 예외는 아닙니다. 게스트 OS와 하이퍼바이저와 통신하는 주요 인터페이스가 XEN 하이퍼바이저의 익셉션 벡터 핸들러이니 잘 익혀둘 필요가 있습니다. 익셉션 핸들러 코드 소개 포스트에서 분석할 XEN 하이퍼바이저의 익셉션 벡터 핸들러 전체 어셈블리 코드를 소개합니다. 1 000000000026a800 :2 26a800:17fffc00 b269800 <
[Arm프로세서] Armv7: 익셉션 핸들러란
처음 익셉션 벡터 테이블을 분석하면 다음과 같은 의문이 생기는 경우가 많습니다. "이와 관련된 코드는 어디에 구현돼 있을까?" 이 질문에 답을 하려면 익셉션 벡터와 관련된 코드가 무엇인지 알아야 하는데, 이를 익셉션 벡터 핸들러라고 합니다. 익셉션 벡터 핸들러는 익셉션의 종류 별로 소프트웨어적으로 처리되는 목적의 명령어로 구성돼 있는데 익셉션 벡터 주소에서 브랜치됩니다. 익셉션 핸들러 코드 분석하기 이제부터 오픈 소스 기반의 운영체제인 리눅스 커널에서 확인된 익셉션 벡터와 익셉션 백터 핸들러의 코드를 보면서 배운 내용을 다져봅시다. 다음은 익셉션 벡터와 익셉션 핸들러를 브랜치하는 코드입니다. 01 ffff0000: ea0003ff b 0xffff1004
[Arm프로세서] Armv7: 익셉션 벡터 테이블이란
익셉션이 발생하면 ARM 프로세서는 익셉션 별로 지정된 주소로 프로그램 카운터를 브랜치합니다. 익셉션 별로 지정된 주소를 익셉션 벡터라고 하는데, 익셉션 벡터는 8개의 연속된 4바이트 단위의 주소로 구성돼 있습니다. 이 8개의 익셉션 벡터를 익셉션 벡터 테이블이라고 합니다. 먼저 다음 표를 보면서 익셉션 벡터 테이블을 배워 봅시다. 표 8.4 익셉션 벡터 테이블 표의 왼쪽 행은 익셉션 벡터 베이스 주소 기준의 오프셋인데, 오른쪽 행을 보면 오프셋 별에 대응되는 익셉션의 종류가 보입니다. 이로써, 익셉션 벡터의 주소는 익셉션의 종류에 따라 다르다는 점을 확인할 수 있습니다. 가장 왼쪽 행의 윗 부분은 '익셉션 벡터 테이블의 베이스' 주소인데, 먼저 이 내용부터 알아봅시다. ARM 프로세서는 익셉션의
[Arm프로세서] 익셉션(Exception) 동작 슈도 코드 소개
Armv8 문서를 보면 Arm 코어에서 하드웨어적으로 처리하는 동작을 슈도 코드로 표기한 부분을 볼 수 있습니다.문서 이름과 해당 절은 다음과 같습니다. * 문서 이름: DDI0487Fc_armv8_arm.pdf * 해당 절 Part J Architectural Pseudocode J1.1 Pseudocode for AArch64 operation J1-7612 J1.1.1 aarch64/debug J1.1.2 aarch64/exceptions J1.2 Pseudocode for AArch32 operation 샘플 코드에 익숙한 소프트웨어 개발자들에게 샘플 혹은 슈도 코드는 유익한 정보입니다.특히 하이퍼바이저나 트러스트존과 같은 Arm Extention 기능의 동작 원리

![[일상] Eave 65와 목새 택타일 | 토프레 무접점 느낌 | 타건 영상 있음](https://img.zoomtrend.com/2026/06/07/1780838085-SE-77297eb3-90bf-43a7-9629-75fd8530e370.jpg)

