운영체제(OS, Operating System)는 컴퓨터 하드웨어와 사용자를 이어주는 기본 소프트웨어입니다.
🔹 운영체제의 주요 종류
1. 데스크톱 / 개인용 OS
- Windows
- 마이크로소프트(Microsoft)에서 개발.
- 가장 대중적, 소프트웨어 호환성 최고.
- 게임, 기업, 개인 PC에서 많이 사용.
- macOS
- 애플(Apple)에서 개발.
- 맥북, 아이맥 등 애플 컴퓨터 전용.
- 디자인·영상 편집·음악 작업에 강세.
- Linux
- 오픈소스 기반, 무료 배포.
- 다양한 배포판(우분투, 페도라, 데비안 등).
- 개발자, 서버, 연구 환경에서 인기.
2. 모바일 OS
- Android
- 구글에서 개발, 전 세계 스마트폰의 대다수 점유.
- 삼성, LG, 샤오미, 화웨이 등 다양한 기기에서 사용.
- iOS
- 애플의 아이폰, 아이패드 전용.
- 폐쇄적이지만 안정성과 최적화가 강점.
- 기타
- 과거 Windows Phone, BlackBerry OS 등이 있었지만 현재는 거의 소멸.
3. 서버 / 기업용 OS
- Linux (서버용)
- 웹 서버, 데이터베이스, 클라우드 환경에서 압도적 점유율.
- 안정성·보안성이 뛰어남.
- Windows Server
- 마이크로소프트에서 제공.
- 기업 환경에서 Active Directory, 파일 서버, ERP 등에 활용.
- UNIX
- 오래된 운영체제 계열.
- 안정성과 신뢰성이 뛰어나 은행, 통신사, 대형 서버에서 여전히 사용.
- 상용 버전: AIX(IBM), HP-UX(HPE), Solaris(Oracle).
4. 특수 목적 OS
- 임베디드 OS
- 가전제품, 자동차, IoT 기기 등에 탑재.
- 예: RTOS(실시간 운영체제), QNX, VxWorks.
- 슈퍼컴퓨터 OS
- 리눅스 기반 커스터마이즈 버전.
- 가상화 OS
- VMware ESXi, Hyper-V 등.
가상화 OS란?
- 물리 서버 위에서 여러 ‘가상 컴퓨터(가상머신, VM)’를 동시에 돌리게 해주는 기본 소프트웨어입니다.
- 이걸 흔히 하이퍼바이저(Hypervisor) 라고 부르고, 각 VM 안에는 보통의 게스트 OS(Windows, Linux 등) 가 설치됩니다.
[물리 하드웨어]
│
[하이퍼바이저 = 가상화 OS]
│───────────────┬───────────────┬───────────────
[VM #1] [VM #2] [VM #3]
(Linux) (Windows) (BSD 등)
하이퍼바이저 유형
1) Type-1 (베어메탈)
- 하드웨어 위에 직접 설치되는 순정 하이퍼바이저.
- 성능·안정성·보안성이 좋아서 서버/클라우드 표준.
- 예:
- VMware ESXi : VMware에서 출시한 Type1 하이퍼바이저이자 유닉스 계열 운영체제이다.[2]
- Microsoft Hyper-V(서버) : Windows Server 2008 R2 with Hyper-V 에디션부터 기본 제공되기 시작한 Type 1 하이퍼바이저. Windows 10 데스크탑은 Pro 에디션부터 사용 가능하다.
- KVM (Kernel-based Virtual Machine) : 리눅스 커널 안에 내장된 하이퍼바이저(Type-1)
- Xen : 2003년 케임브리지 대학에서 시작된 오픈소스 하이퍼바이저 프로젝트. XenServer 및 Xen Hypervisor는 반가상화(Para-Virtualization)를 통해 Bare Metal 서버의 성능과 거의 일치하는 성능을 제공하는 가상화 플랫폼이다.
2) Type-2 (호스티드)
- 일반 OS 위에서 앱처럼 돌아가는 하이퍼바이저.
- 설치·사용이 쉬워서 개발/테스트/개인용에 적합.
- 예: VirtualBox, VMware Workstation/Fusion, Parallels Desktop(맥).
| 구분 | Type-1 (베어메탈) | Type-2 (호스티드) |
|---|---|---|
| 위치 | HW 위에 직접 | 기존 OS 위에서 앱처럼 |
| 장점 | 고성능/안정/보안/스케일 | 설치 쉬움, 데스크톱 친화 |
| 용도 | 서버, 데이터센터, 클라우드 | 개발/테스트, 멀티 OS 사용 |
| 예 | ESXi, Hyper-V, KVM | VirtualBox, Parallels |
가상화가 작동하는 핵심 원리
- CPU 가상화: VT-x/AMD-V 같은 하드웨어 보조 가상화로 트랩/컨텍스트 전환을 효율화.
- 메모리 가상화: EPT/NPT로 2단계 주소 변환(게스트 가상→게스트 물리→호스트 물리).
- I/O 가상화: 가상 디스크/가상 NIC를 소프트웨어로 에뮬레이션, 또는 직접 할당(passthrough, SR-IOV)로 성능 향상.
- 스케줄링: 물리 CPU 코어들을 vCPU에게 시분할로 배분.
Type-1 하이퍼바이저의 자원 공유
🔹 1. CPU (연산 자원)
- 물리 CPU 코어 → vCPU(가상 CPU) 로 나눠서 VM에 할당.
- 스케줄러가 OS 프로세스처럼 vCPU를 물리 코어에 매핑.
- 오버커밋 가능 → 예: 물리 8코어인데 vCPU 16개 할당. (동시성↑, 성능은 나눠 씀)
- 고급 기능: CPU 핀닝(pinning) → 특정 VM에 특정 코어를 고정.
🔹 2. 메모리
- VM마다 고정된 vRAM을 할당 (예: VM1 = 4GB, VM2 = 8GB).
- 하이퍼바이저가 실제 물리 메모리 주소 ↔ 게스트의 가상 메모리 주소를 변환
- 오버커밋 기법:
- Ballooning: 사용하지 않는 메모리를 회수해 다른 VM에 재할당.
- Transparent Page Sharing (TPS): 여러 VM에서 동일한 메모리 페이지를 하나만 유지.
- 다만, 너무 오버하면 스왑 발생 → 성능 급락.
🔹 3. 디스크 (스토리지)
- VM은 가상 디스크 파일(VMDK, VHD, QCOW2 등) 을 실제 디스크 위에서 사용.
- 하이퍼바이저가 VM의 I/O 요청을 받아서 → 물리 디스크나 스토리지에 전달.
- 고급 기능:
- 씬 프로비저닝: 실제로 쓰는 만큼만 물리 디스크 차지.
- 스냅샷: 특정 시점 상태를 복제.
- 스토리지 QoS: VM별 IOPS 속도 제한.
🔹 4. 네트워크 (NIC, I/O)
- 물리 NIC → 가상 스위치(virtual switch) 로 추상화.
- 각 VM은 vNIC을 가지고, 가상 스위치를 통해 외부 네트워크와 통신.
- 하이퍼바이저가 패킷을 소프트웨어 레벨에서 스위칭/라우팅 처리.
- 고급 기능:
- VLAN/VXLAN 태깅 → VM 네트워크 분리.
- SR-IOV: 물리 NIC를 하드웨어적으로 나눠 VM이 직접 접근 (성능↑).
┌────────────────────────┐
│ 하드웨어(HW) │
│ CPU | RAM | Disk | NIC │
└──────┬─────────────────┘
│
┌──────▼───────────┐
│ Type-1 Hypervisor│
│ (자원 관리/스케줄링)│
└───┬───────────┬──┘
│ │
┌───▼───┐ ┌───▼───┐
│ VM #1 │ │ VM #2 │
│ vCPU │ │ vCPU │
│ vRAM │ │ vRAM │
│ vDisk │ │ vDisk │
│ vNIC │ │ vNIC │
└───────┘ └───────┘
✅ 정리
- CPU → vCPU로 스케줄링/분배
- RAM → vRAM으로 할당, 오버커밋·공유 기법 활용
- 디스크 → 가상 디스크 파일로 매핑, I/O는 하이퍼바이저가 중재
- 네트워크 → vNIC + 가상 스위치, 필요 시 SR-IOV로 직접 연결
필수 개념 & 기능
컴퓨팅
- vCPU / vRAM: VM에 할당하는 가상 코어·메모리.
- NUMA(Non-uniform memory access) 인지, CPU 핀닝(고정), HugePages로 성능 최적화.
스토리지
- 가상 디스크 포맷: VMDK(ESXi), VHD/VHDX(Hyper-V), QCOW2(KVM), RAW 등.
- 스냅샷: 시점 캡처/롤백. (DB·대규모 I/O 워크로드는 장시간 스냅샷 상주 금지 권장)
- 프로비저닝: 씬(필요 시 확장) / 씩(미리 할당).
- 공유 스토리지: iSCSI/NFS/FC → 라이브 마이그레이션과 클러스터 필수 인프라.
네트워킹
- 가상 스위치/브리지, VLAN, VXLAN/오버레이
- NIC 팀/본딩, SR-IOV(가상 함수로 고성능 I/O)
- 분산 스위치(예: vDS), 보안 그룹/포트 그룹으로 분리와 제어.
가용성/운영
- 라이브 마이그레이션(무중단 VM 이동: vMotion/Live Migration)
- HA(호스트 장애 시 VM 자동 재시작), DRS(부하 분산), 클러스터링
- 템플릿/클론으로 빠른 VM 배포, 골든 이미지 관리
- 백업: 에이전트리스 스냅샷 기반(예: VADP) + 애플리케이션 정합성(퀘슨스)
보안
- 격리(Isolation) 가 기본 장점이지만, 이따금 VM Escape 같은 취약점 대비 필요.
- Secure Boot, vTPM, 암호화(VM/디스크/스토리지/전송) 지원.
- 패치 관리와 권한 분리(멀티테넌시)가 핵심.
대표 제품 / 생태계 한눈에
- VMware ESXi + vCenter: 엔터프라이즈 표준급 기능 풍부(HA, DRS, vDS, NSX 등).
- Microsoft Hyper-V + System Center: Windows 생태계와 궁합, AD/파일서버와 매쉬.
- KVM(리눅스 내장) + libvirt/virt-manager/Proxmox/oVirt/OpenStack: 오픈소스, 유연하고 비용 효율.
- Xen: 클라우드 초창기부터 사용, 일부 퍼블릭 클라우드 구현체에 응용.
- Type-2: VirtualBox/Parallels/VMware Workstation—개발·교육·개인 멀티OS.
VM vs 컨테이너(도커 등)
[하드웨어]
└─[하이퍼바이저]
└─ VM(게스트 OS + 앱) ← 완전한 OS 단위 격리, 강한 분리/이식성, 오버헤드↑
[하드웨어]
└─[호스트 OS + 컨테이너 런타임]
└─ 컨테이너(앱 + 라이브러리) ← OS 커널 공유, 경량/빠른 배포, 커널 레벨 격리
- VM: 강한 격리/레거시 OS 실행/이질적 OS 혼합 가능.
- 컨테이너: 가벼움/빠른 스케일/마이크로서비스에 최적, 동일 커널 공유 제약.
- 실제 현장에선 VM 위에 쿠버네티스(컨테이너 오케스트레이션) 를 띄워 둘 다 쓴다.
GPU 가상화/패스스루
- Passthrough(VFIO): GPU를 특정 VM에 1:1 할당 → 네이티브급 성능.
- vGPU/SR-IOV: 하나의 물리 GPU를 여러 VM이 나눠씀. VDI, AI 추론 등에 유용.
- 워크로드(렌더링/AI 학습/VDI) 따라 패스스루 vs vGPU 선택.
흔한 활용 시나리오
- 서버 통합(여러 물리 서버 → 한 대의 고성능 서버에 VM 다수)
- 개발/테스트(다양한 OS·버전 스냅샷으로 빠르게 실험/롤백)
- VDI(가상 데스크톱 인프라)
- DR/백업(원격지 복제, 신속 복구)
- 레거시 유지(옛 OS/앱을 VM으로 보존)
설계·구축 체크리스트 (실무 팁)
- 워크로드 정의: CPU/메모리/디스크 IOPS/네트워크 요구 사항 먼저.
- 라이선스/비용: 하이퍼바이저, 게스트 OS, 백업 SW, vCenter/SCVMM 등 TCO 평가.
- 스토리지: IOPS·지연·용량 계획(캐시, RAID, NVMe, 씬/씩 전략).
- 네트워크: 대역폭·VLAN·보안·멀티NIC·LACP 설계.
- 가용성: 공유 스토리지 + 2대 이상 호스트 + HA/라이브 마이그레이션.
- 백업/복구: 스냅샷은 임시 수단, 정식 백업 솔루션으로 주기적 백업·복구 연습.
- 보안: 관리 평면 분리, RBAC, 패치, vTPM/암호화.
- 모니터링: 호스트/VM/스토리지/네트워크 전방위 계측(알람·대시보드).
- 성능 튜닝: NUMA 고려, CPU 오버커밋 한도, HugePages, 스토리지 큐딥스, MTU.
- 성장 계획: 노드/스토리지 수평 확장 시 무중단 증설 경로 확인.
선택 가이드 (짧게)
- 엔터프라이즈 기능·지원이 필요 → VMware ESXi 또는 Windows 중심이면 Hyper-V
- 오픈소스/비용 효율/유연성 → KVM 계열(Proxmox, oVirt, OpenStack)
- 개발·학습·개인용 멀티OS → VirtualBox/Parallels/VMware Workstation
Microsoft 가상화
Hyper-V
- 정식 하이퍼바이저(가상화 OS, Type-1)
- 윈도우 서버/프로에 들어있는 기능.
- 여러 개의 가상머신(Windows, Linux, BSD 등)을 독립적으로 실행.
- VM마다 CPU, 메모리, 디스크, 네트워크 등 리소스를 따로 할당.
- 관리 도구: Hyper-V Manager, PowerShell, 그리고 System Center 같은 엔터프라이즈 툴.
- 주 용도:
- 서버 통합
- 개발/테스트 환경
- 가상 데스크톱(VDI)
- 네트워크/보안 실험
👉 즉, “완전한 VM 플랫폼”.
WSL2
- Windows에 내장된 리눅스 호환 계층 (WSL1은 번역 계층, WSL2부터는 가상화 사용).
- 내부적으로는 가벼운 Hyper-V 기반 VM에 리눅스 커널을 올려서 돌림.
- 하지만 사용자는 “VM 같다”는 느낌을 거의 못 받음.
- 윈도우 파일시스템과 리눅스 파일시스템을 매끄럽게 공유하고,
윈도우 명령 프롬프트/PowerShell에서 바로 리눅스 명령을 실행 가능. - 주 용도:
- 개발자(특히 웹/리눅스 서버 환경)
- Docker Desktop, 리눅스 전용 툴 실행
- 리눅스 CLI 학습
👉 즉, “윈도우에서 바로 쓰는 개발용 리눅스 환경”.
핵심 차이 정리
| 구분 | Hyper-V | WSL2 |
|---|---|---|
| 성격 | 완전한 하이퍼바이저 (Type-1) | 윈도우 통합형 리눅스 서브시스템 |
| 실행 대상 | 여러 OS (Windows, Linux 등) | 리눅스 전용 |
| 격리 수준 | 완전 독립 VM | 윈도우와 긴밀히 연결 |
| 관리 방식 | Hyper-V Manager, PowerShell | 명령어 wsl, MS Store 배포판 |
| 리소스 사용 | VM 단위로 메모리/디스크 예약 | 동적 메모리 사용, 훨씬 가벼움 |
| 사용 목적 | 서버 가상화, 테스트, 기업 환경 | 개발자용 리눅스 환경, Docker |
| 체감 난이도 | VM처럼 OS 설치/관리 필요 | 설치 몇 분이면 바로 사용 |
✅ 요약
- Hyper-V = 무거워도 진짜 VM 환경 (기업/서버/인프라).
- WSL2 = Hyper-V 기술 위에서 돌아가는, 가볍고 개발 친화적인 리눅스 실행 환경.
AWS의 가상화 구조
1. 초창기 (2006년~)
- AWS EC2는 Xen 하이퍼바이저 기반으로 시작.
- Xen은 Type-1 (베어메탈) 하이퍼바이저 → 하드웨어 위에 직접 올라가는 구조.
- EC2 인스턴스는 Xen 위의 가상머신으로 실행됨.
2. 중간 (2017년~)
- AWS는 자체 개발한 Nitro Hypervisor 도입.
- Nitro는 사실상 경량화된 KVM (Linux 커널 기반 Type-1 하이퍼바이저)을 변형한 것.
- 기존의 많은 기능(I/O, 네트워크, 보안)을 전용 하드웨어 카드(Nitro 카드) 로 오프로드.
- 덕분에 성능은 네이티브(베어메탈)급, 보안·안정성↑.
3. 현재
- 대부분의 EC2 인스턴스는 Nitro System 위에서 실행.
- 즉, Type-1 하이퍼바이저 계열 임.
- 다만, 단순 소프트웨어 하이퍼바이저가 아니라 하드웨어+소프트웨어 결합 아키텍처라고 보는 게 정확함.
정리
- AWS = Type-1 하이퍼바이저 기반 (Xen → Nitro/KVM).
- 일반 사용자 입장에선 “EC2 인스턴스 = VM”이지만,
실제론 네트워크·스토리지·보안 같은 건 Nitro 전용 하드웨어가 맡고,
가상화는 최소한만 남겨서 베어메탈급 성능을 내는 방식.