Chapter 726. ACRN 하이퍼바이저 (ACRN Hypervisor) Chapter 726. ACRN 하이퍼바이저 (ACRN Hypervisor) 726.1ACRN의 정의와 개념 726.2ACRN의 발전 역사 726.3ACRN 프로젝트의 목표와 설계 철학 726.4Linux Foundation 프로젝트로서의 ACRN 726.5ACRN의 전체 아키텍처 개요 726.6ACRN 하이퍼바이저 계층 구조 726.7Type-1 하이퍼바이저로서의 ACRN 특성 726.8ACRN과 다른 Type-1 하이퍼바이저 비교 726.9ACRN의 파티셔닝 모델 726.10사전 실행(Pre-launched) VM 개념 726.11서비스(Service) VM 개념 726.12사후 실행(Post-launched) VM 개념 726.13ACRN의 CPU 가상화 726.14Intel VT-x 기반 CPU 가상화 726.15가상 CPU(vCPU) 관리 726.16vCPU 스케줄링 정책 726.17BVT(Borrowed Virtual Time) 스케줄러 726.18IORR(Immediate Output Rate Regulation) 스케줄러 726.19PRIO(Priority-Based) 스케줄러 726.20CPU 선점(Preemption) 지원 726.21CPU 핀닝(CPU Pinning) 구성 726.22PCPU 할당 전략 726.23ACRN의 메모리 가상화 726.24EPT(Extended Page Table) 기반 메모리 관리 726.25GPA-HPA 주소 변환 726.26메모리 파티셔닝 정책 726.27정적 메모리 할당 726.28거대 페이지(Huge Page) 지원 726.29캐시 할당 기술(CAT) 지원 726.30메모리 격리 메커니즘 726.31ACRN의 I/O 가상화 726.32I/O 에뮬레이션 모델 726.33디바이스 모델(Device Model) 아키텍처 726.34acrn-dm(ACRN Device Model) 구조 726.35VirtIO 프레임워크 지원 726.36VirtIO-net 네트워크 가상화 726.37VirtIO-blk 블록 장치 가상화 726.38VirtIO-console 시리얼 가상화 726.39VirtIO-input 입력 장치 가상화 726.40VirtIO-gpu 그래픽 가상화 726.41디바이스 패스스루(Passthrough) 지원 726.42PCI 패스스루 구성 726.43USB 패스스루 구성 726.44GPU 패스스루(GVT-d) 726.45GPU 공유(GVT-g) 726.46SR-IOV(Single Root I/O Virtualization) 지원 726.47IOMMU(VT-d) 기반 DMA 격리 726.48ACRN의 인터럽트 가상화 726.49가상 LAPIC 관리 726.50MSI/MSI-X 가상화 726.51인터럽트 리매핑(Interrupt Remapping) 726.52포스티드 인터럽트(Posted Interrupt) 지원 726.53가상 타이머 관리 726.54ACRN의 실시간 성능 726.55실시간 지연 시간 최적화 기법 726.56캐시 잠금(Cache Locking) 726.57소프트웨어 SRAM(Software SRAM) 활용 726.58CPU 선호도(Affinity) 설정 726.59인터럽트 친화도 설정 726.60LAPIC 패스스루 726.61TSC(Time Stamp Counter) 동기화 726.62실시간 지연 시간 측정 726.63cyclictest 기반 성능 측정 726.64인터럽트 지연 시간 측정 726.65최악 실행 시간(WCET) 분석 726.66ACRN의 보안 메커니즘 726.67Secure Boot 지원 726.68하드웨어 보안 모듈(TPM) 통합 726.69VM 간 격리 보장 726.70최소 권한 원칙 적용 726.71ACRN의 전원 관리 726.72ACPI 가상화 726.73S3/S5 전원 상태 관리 726.74CPU P-State/C-State 관리 726.75열 관리(Thermal Management) 726.76ACRN의 디버깅 및 추적 726.77하이퍼바이저 로깅 시스템 726.78하이퍼바이저 쉘(Hypervisor Shell) 726.79acrntrace 추적 도구 726.80acrnlog 로그 수집 도구 726.81ACRN 시나리오 구성 726.82시나리오 정의 파일 구조 726.83산업용 시나리오 726.84혼합 임계 시나리오 726.85하이브리드(Hybrid) 시나리오 726.86SDC(Software Defined Cockpit) 시나리오 726.87시나리오 구성 도구(ACRN Configurator) 726.88ACRN 빌드 시스템 726.89빌드 환경 구성 726.90하이퍼바이저 빌드 절차 726.91서비스 VM 커널 빌드 726.92보드 인스펙터(Board Inspector) 도구 726.93ACRN의 게스트 OS 지원 726.94Linux 게스트 OS 구성 726.95PREEMPT_RT Linux 게스트 구성 726.96Zephyr RTOS 게스트 구성 726.97VxWorks 게스트 구성 726.98Windows 게스트 구성 726.99Android 게스트 구성 726.100ACRN의 로봇 시스템 응용 726.101실시간 제어 VM 구성 726.102비실시간 AI/비전 처리 VM 구성 726.103안전-비안전 도메인 분리 726.104로봇 제어기에서의 ACRN 활용 726.105드론 시스템에서의 ACRN 활용 726.106자율 주행 플랫폼에서의 ACRN 활용 726.107GPU 패스스루 기반 AI 가속 726.108센서 디바이스 패스스루 구성 726.109CAN 버스 패스스루 구성 726.110EtherCAT 패스스루 구성 726.111ACRN의 산업용 IoT 응용 726.112에지 컴퓨팅 게이트웨이 726.113산업 제어 시스템(ICS) 통합 726.114기능 안전(Functional Safety) 지원 726.115ACRN의 네트워킹 구성 726.116가상 네트워크 브리지 726.117VM 간 통신(Inter-VM Communication) 726.118IVSHMEM(Inter-VM Shared Memory) 726.119Virtio-net 기반 네트워크 구성 726.120ACRN 관리 도구 726.121acrnctl 명령행 도구 726.122acrnd 데몬 관리 726.123ACRN Life Cycle Manager 726.124VM 시작 및 종료 관리 726.125ACRN 플랫폼 지원 726.126지원 하드웨어 플랫폼 목록 726.127Intel Apollo Lake 플랫폼 726.128Intel Whiskey Lake 플랫폼 726.129Intel Tiger Lake 플랫폼 726.130Intel Alder Lake 플랫폼 726.131Intel Raptor Lake 플랫폼 726.132ACRN과 다른 하이퍼바이저 비교 726.133ACRN 대 Jailhouse 비교 726.134ACRN 대 Xen 비교 726.135ACRN 대 KVM 비교 726.136ACRN 대 seL4 비교 726.137하이퍼바이저 선택 기준 726.138ACRN 성능 벤치마킹 726.139CPU 연산 벤치마크 726.140메모리 접근 벤치마크 726.141I/O 처리량 벤치마크 726.142실시간 지연 벤치마크 726.143ACRN 기술 동향과 발전 방향 726.144Rust 기반 하이퍼바이저 재작성 726.145RISC-V 플랫폼 확장 726.146Confidential Computing 통합 726.147멀티 아키텍처 지원 전망 726.148ACRN 커뮤니티와 생태계