arch-00. 하드웨어 — CPU, 캐시, 버스, 인터럽트, 특권 레벨, VT-x
OS와 VM이 추상화하는 대상의 실체. CPU 내부(레지스터·파이프라인·캐시 계층·MESI), 메모리 버스와 DMA, 인터럽트 컨트롤러(APIC), CPU 특권 레벨(ring 0-3), 하드웨어 가상화 지원(VT-x·EPT·IOMMU), NUMA까지 정리한다.
OS와 VM이 추상화하는 대상의 실체. CPU 내부(레지스터·파이프라인·캐시 계층·MESI), 메모리 버스와 DMA, 인터럽트 컨트롤러(APIC), CPU 특권 레벨(ring 0-3), 하드웨어 가상화 지원(VT-x·EPT·IOMMU), NUMA까지 정리한다.
커널이 하드웨어 위에서 어떻게 구성되는지. 부트 과정, 커널 메모리 레이아웃(direct map/vmalloc/fixmap), 커널 스택, 동기화 원시 연산(spinlock/mutex/RCU), 커널 자료구조(list_head/rbtree/radix_tree), 모듈 시스템, eBPF까지 정리한다.
ring 3에서 돌아가는 세계의 전체 지도. ELF 바이너리 구조, execve에서 main()까지의 과정, 동적 링킹(PLT/GOT/lazy binding), libc와 syscall 래핑, vDSO, 64비트 유저 공간 주소 레이아웃, ASLR/PIE/Stack canary까지 정리한다.
커널이 프로세스를 어떻게 표현하고 관리하는지. task_struct의 핵심 필드, fork/exec/clone의 내부 동작, 프로세스 상태 전이, mm_struct와 vm_area_struct, Copy-on-Write 메커니즘, 프로세스 종료와 zombie reaping까지 정리한다.
프로세스 가상 메모리의 두 레이어. 커널 소프트웨어 레이어(mm_struct/vm_area_struct)와 하드웨어 레이어(4단계 페이지 테이블/MMU/TLB). 페이지 폴트 핸들러 흐름, mmap/brk 내부 동작, Huge Pages(THP vs HugeTLB), NUMA 메모리 정책까지 정리한다.
VM이 무엇으로 이뤄지고 어떻게 동작하는지. vCPU/vMem/vDisk/vNIC 구성, Type 1 vs Type 2 하이퍼바이저, KVM 아키텍처(Linux 커널 모듈), QEMU와 KVM의 분업, vCPU 스케줄링, VM 라이프사이클, 이미지 포맷(qcow2), 라이브 마이그레이션까지 정리한다.
VM 안의 프로세스가 쓰는 메모리가 물리 메모리에 닿기까지의 두 단계 변환. Guest 페이지 테이블(GVA→GPA), EPT(GPA→HPA), Shadow Page Table(EPT 이전), EPT violation 처리, 메모리 오버커밋(balloon/KSM), vNUMA까지 정리한다.
Guest 커널과 하이퍼바이저가 어떻게 경계를 나누고 서로 통신하는지. VMX root/non-root mode, VMCS 구조, VM entry/exit 흐름, VM exit 주요 원인, 반가상화(hypercall/virtio), 인터럽트 가상화(vAPIC), I/O 가상화(emulation/virtio/VFIO/SR-IOV), 보안(VM escape/TDX/SEV-SNP)까지 정리한다.