# Hyperlight WASM: 빠르고, 안전하고 OS-Free

> Clean Markdown view of GeekNews topic #20219. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=20219](https://news.hada.io/topic?id=20219)
- GeekNews Markdown: [https://news.hada.io/topic/20219.md](https://news.hada.io/topic/20219.md)
- Type: GN+
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2025-04-09T09:20:07+09:00
- Updated: 2025-04-09T09:20:07+09:00
- Original source: [opensource.microsoft.com](https://opensource.microsoft.com/blog/2025/03/26/hyperlight-wasm-fast-secure-and-os-free/)
- Points: 9
- Comments: 2

## Summary

Hyperlight Wasm은 Microsoft가 CNCF에 기부한 초경량 가상 머신 기술로, WebAssembly 워크로드를 빠르고 안전하게 실행하며, OS나 가상 디바이스 없이 메모리 슬라이스와 CPU만을 노출하여 1~2ms의 빠른 부팅 시간을 제공합니다. 다양한 언어로 작성된 wasm 컴포넌트를 하이퍼바이저 보호 하에 실행할 수 있으며, Wasm 샌드박스와 하이퍼바이저 기반 VM 샌드박스의 이중 보호 구조로 보안성을 강화합니다. Hyperlight Wasm은 x86뿐 아니라 Arm64 아키텍처도 지원할 예정이며, 오픈소스로 공개되어 클라우드 네이티브 컴퓨팅에 적합한 실행 환경을 목표로 하고 있습니다.

## Topic Body

- Hyperlight Wasm은 Microsoft가 CNCF에 기부한 **초경량 가상 머신(VM)** 기술 Hyperlight의 최신 확장 버전으로, **WebAssembly(Component Model 기반)** 워크로드를 빠르고 안전하게 실행함  
- 전통적인 VM과 달리 OS나 가상 디바이스 없이 **메모리 슬라이스와 CPU만 노출**, 1~2ms의 빠른 부팅 시간 제공  
- 다양한 언어(C, Rust, Go, Python, JS 등)로 작성된 wasm 컴포넌트를 **하이퍼바이저 보호 하에 실행** 가능  
  
### Hyperlight Wasm의 주요 특징  
- # 전통적인 VM 대비 빠른 성능  
  - 전통적인 VM: 디바이스 초기화 → 커널 로딩 → OS 부팅 → 애플리케이션 실행 (약 125ms)  
  - Hyperlight Wasm: **메모리 슬라이스 생성 + Wasm 로딩만으로 실행 가능** (1~2ms, 미래에는 <1ms 목표)  
  - 빠른 실행 속도는 **온디맨드 서버리스 실행** 또는 **최소한의 warm pool 구성**에 유리  
- # 운영체제 없이도 다양한 언어 실행  
  - 표준인 WASI와 WebAssembly Component Model 기반으로 대부분의 언어에서 작성된 컴포넌트 실행 가능  
  - wasmtime 런타임을 내장하여 Python, JavaScript, C# 등 **인터프리터 언어도 런타임 포함 형태로 실행 가능**  
  - 개발자 입장에서는 단순히 `wasm32-wasip2` 타겟으로 컴파일하면 Hyperlight에서 실행 가능  
- # 보안성 향상 (2중 샌드박스)  
  - **Wasm 샌드박스** + **하이퍼바이저 기반 VM 샌드박스**의 이중 보호 구조  
  - 공격자가 wasm을 탈출하더라도 VM 샌드박스를 추가로 우회해야 함  
  
### 개발 예시: Rust 기반 UDP Echo 서버 실행  
  
- `wkg` CLI로 wasm 바이너리 다운로드 및 컴파일  
- WASI 인터페이스 정의 파일(`.wit`)을 바이너리로 변환하여 바인딩 생성  
- `hyperlight_component_macro`와 `host_bindgen!`을 통해 **Wasm의 import/export 인터페이스 바인딩 자동 생성**  
- UdpSocket 인터페이스 구현을 통해 echo 서버 로직 정의  
- `hyperlight-wasm` 샌드박스를 생성해 wasm 컴포넌트 로딩 및 실행  
- # Ahead-of-Time 컴파일  
  - `hyperlight-wasm-aot` 도구를 이용해 wasm을 AOT 컴파일하여 실행 시간 단축  
  - `cargo run`으로 서버 실행, `nc -u` 명령으로 UDP 테스트 가능  
  
### 확장성 및 향후 계획  
  
- Hyperlight Wasm은 **x86뿐 아니라 Arm64 아키텍처 지원 예정**  
- 현재는 WASI 인터페이스를 직접 구현해야 하지만, 향후 **기본 바인딩 제공 예정**  
- HTTP 서버 등 간단한 서비스를 빠르게 샌드박싱 가능하게 할 계획  
  
### 오픈소스 커뮤니티 참여 안내  
  
- Hyperlight는 **Apache 2.0 라이선스**로 공개된 Microsoft의 오픈소스 프로젝트이며, CNCF Sandbox에 등록됨  
- Hyperlight Wasm은 **클라우드 네이티브 컴퓨팅에 적합한 빠르고 안전한 실행 환경 제공**을 목표로 함  
- GitHub 저장소를 통해 코드 확인 및 기여 가능  
  
👉 GitHub 저장소: [hyperlight-wasm](https://github.com/hyperlight-dev/hyperlight-wasm)

## Comments



### Comment 36982

- Author: galadbran
- Created: 2025-04-10T10:13:43+09:00
- Points: 1

[Hyperlight - 경량 가상 머신 관리자(VMM) | GeekNews](https://news.hada.io/topic?id=20189)

### Comment 36919

- Author: neo
- Created: 2025-04-09T09:20:07+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=43482556) 
* 몇 달 전부터 WebAssembly를 본격적으로 사용하여 여러 언어에서 작동하는 백엔드 인증 라이브러리를 만들기 시작했음
  - Extism을 기반으로 하여 인터페이스 복잡성을 줄였음
  - 마법 같은 경험이었음
  - WASM은 흥미로운 위치에 있음
  - 최소한의 핵심 사양으로 가치를 증명했음
  - 이제 WASI와 Component Model을 위한 더 큰 API 표면을 구현하려는 큰 추진력이 있음
  - 커뮤니티의 많은 사람들이 이 방향에 대해 우려하고 있음
  - 개인적으로 WASM이 너무 복잡해져서 대형 기술 기업만 구현과 실험이 가능한 웹 브라우저의 길을 걷지 않기를 바람

* 몇 달 전 Hyperlight라는 경량 VMM을 발표했음
  - 약 1밀리초 만에 새로운 VM을 생성할 수 있음
  - 오늘 Wasmtime 런타임 기반의 Hyperlight Wasm 게스트를 발표하게 되어 기쁨
  - VM의 게스트 OS 없이 WASI 인터페이스 위에서 Wasm Component 바이너리를 실행할 수 있게 됨
  - 이 게시물에서 작동 방식을 설명하고 예제를 통해 설명함

* 매우 기대됨
  - WASM/WASI가 90년대 JVM의 꿈으로 성장하길 바람
  - 여러 플랫폼에서 쉽게 포팅하고 테스트할 수 있는 메모리 안전 개발 타겟이 될 수 있음
  - WASM은 브라우저 이상의 많은 것들을 위해 사용될 수 있기를 바람

* 흥미로워 보임
  - WASM으로 Cloudflare Workers나 Lambda와 같은 것을 직접 구현하고 싶을 때 사용할 수 있는 사례인가?

* 멋짐
  - 여기서의 가치 추가는 무엇인지 이해하려고 함
  - wasmtime를 통해 실행하는 것과 어떻게 다른가?

* 모든 멋지고 흥미로운 프로젝트들이 WASM이 브라우저를 제외한 모든 곳에서 성공적이라는 생각이 듦
  - Web Assembly에서 Web을 빼고 다른 이름을 붙여야 할지도 모름

* 프로모스 설정에 이걸 어떻게 넣을 수 있을지 아이디어가 있는가?
  - 이게 베어 메탈에서 작동하도록 설계된 것으로 이해하고 있음
  - 여분의 베어 메탈 x86이 없어서 약간 어색함
  - 그냥 VM에 넣고 중첩 가상화를 받아들여야 할 것 같음

* 인스턴스는 어떻게 시작되고 관리되는가?
  - 어떤 API를 통해서인가?
  - Wasm Component 바이너리에 연결된 Wasm Components의 트리를 실행하고, 기능을 위임하며, 수명 주기를 관리할 수 있는 기능을 줄 수 있는가?

* 기본적으로 하드웨어 VM에서 프로그램을 샌드박스하기 위한 VM(wasm)이 있고, 이는 사용자 공간 프로세스(Linux 프로세스)에서 프로그램을 격리하기 위한 추상화임
  - 프로그램을 격리하기 위해 Unix 프로세스를 사용하는 것에 대해 생각해 본 적이 있는가?

* 유니커널/라이브러리 OS인가?
