[Arm프로세서] 하이퍼바이저 관점으로 익셉션 벡터 테이블 스팩 문서 확인
By Guillermo Austin Kim | 2022년 2월 11일 |
Armv8 아키텍처는 하이퍼바이저를 지원하기 위해 다양한 기능을 제공합니다. 이전 절에서 살펴 본 HCR_EL2 레지스터와 hvc, wfe, wfi와 같은 명령어가 가장 큰 예입니다. Armv8 아키텍처 관점으로 하이퍼바이저가 어떤 방식으로 동작하는지 파악하려면 알아야 하는 기능들이 있습니다. 이 중에 가장 중요한 내용은 바로 하이퍼바이저의 익셉션 벡터 핸들러입니다. 이번 절에서는 하이퍼바이저가 구동되는 EL2 관점으로 익셉션 벡터 테이블을 분석하고, XEN 하이퍼바이저의 익셉션 벡터 핸들러의 코드를 분석합니다.먼저 Armv8 아키텍처에서 정의한 익셉션 벡터 테이블 스팩을 보겠습니다. 그림 12.6 Armv8 아키텍처의 익셉션 벡터 테이블 <출처: DDI0487G_b_armv8_arm.pdf
[Arm프로세서] GIC는 왜 배워야 할까?
By Guillermo Austin Kim | 2022년 8월 16일 |
Arm 아키텍처와 관련된 주제로 세미나를 진행하면 참석자들은 다음과 같은 질문을 종종 합니다. ● FIQ는 어떻게 설정할까? ● 시큐어 인터럽트는 어떻게 설정해야 할까? 이런 질문에 대해 답하려면 GIC(Generic Interrupt Controller)를 알아야 합니다. GIC를 구성하는 주요 기능(레지스터, 명령어)을 배우면 위에서 소개한 질문에 모두 답할 수 있습니다. 이 밖에도 리눅스 커널 드라이버의 세부 동작 방식을 파악하려면 GIC를 알아야 합니다. ● IPI(Inter-Processor Interrupt Call)의 세부 동작 원리 ● Arch 타이머의 구동 원리 Arm 아키텍처를 이루는 주요 기능을 심도있게 파악하거나
[Arm프로세서] Armv7: 익셉션 핸들러란
By Guillermo Austin Kim | 2020년 12월 27일 |
처음 익셉션 벡터 테이블을 분석하면 다음과 같은 의문이 생기는 경우가 많습니다. "이와 관련된 코드는 어디에 구현돼 있을까?" 이 질문에 답을 하려면 익셉션 벡터와 관련된 코드가 무엇인지 알아야 하는데, 이를 익셉션 벡터 핸들러라고 합니다. 익셉션 벡터 핸들러는 익셉션의 종류 별로 소프트웨어적으로 처리되는 목적의 명령어로 구성돼 있는데 익셉션 벡터 주소에서 브랜치됩니다. 익셉션 핸들러 코드 분석하기 이제부터 오픈 소스 기반의 운영체제인 리눅스 커널에서 확인된 익셉션 벡터와 익셉션 백터 핸들러의 코드를 보면서 배운 내용을 다져봅시다. 다음은 익셉션 벡터와 익셉션 핸들러를 브랜치하는 코드입니다. 01 ffff0000: ea0003ff b 0xffff1004 <vecto
[Arm프로세서] 트러스트존(TrustZone)이 필요한 이유
By Guillermo Austin Kim | 2021년 12월 20일 |
IT 기술이 발전하면서 사회 전반적으로 많은 분야에 소프트웨어가 활용되고 있습니다. 인터넷 뱅킹에서 학교 수업까지 우리 생활에서 프로그램을 자연스럽게 사용하고 있습니다. 이에 비례해 하드웨어에서 소프트웨어에 이르기 까지 보안을 위협하는 요소들이 늘어나고 있습니다. 시스템을 해킹할 수 있는 기법도 업그레이드 되고 있어, 개인정보와 국가 및 기업의 기밀 유출 방지를 위한 IT 보안(Security) 기술의 필요성이 계속 강조되고 있습니다. 그래서 IT 산업을 구성하는 다양한 업체와 학계에서 해킹과 같은 공격에 대응할 수 있는 안전 체계나 실행 환경(TEE: Trusted Execution Environment)을 구축하려는 노력을 기울여 왔습니다. IT 업체 중 메이저 CPU 프로세서 설계 업체 중 하나인 a