WASM Nanoprocess


wasm은 신뢰할 수 없는 코드의 실행을 더 안전하게 실행할 수 있도록 격리된 보안 모델인 "nanoprocess"를 채택
wasm 모듈은 기본적으로 샌드박스되어 있으며, API나 시스템 콜에 접근할 수 없다. 외부와 인터렉션을 위해선 명시적 함수 또는 syscall을 제공해야 한다

## Memory Model
일반적인 컴파일 바이너리와 다르게, wasm 모듈은 프로세스 내의 모든 메모리에 접근하지 못하며, 스코프 내의 변수를 통해서만 접근이 가능하도록 설계된 메모리 격리 모델을 갖고 있다


### Interface Types
모듈 간 데이터 공유는 함수 호출을 통한 값의 전달을 통해 이뤄진다
하지만 wasm은 numeric 원시 데이터 타입만 존재하며
한계성을 해결하기 위한 interface type 명세가 제안되었으며 이를 통해 모듈은 더 복잡한 타입(strings, sequences, records, variants 등)을 사용할 수 있다


> [WebAssembly nanoprocesses: making WebAssembly outside-the-browser secure by default, Lin Clark](https://www.youtube.com/watch?v=TF-tXDRAEmg)

> [NAVER D2](https://d2.naver.com/helloworld/8257914)





