Munal OS - WASM 샌드박싱이 적용된 그래픽 기반 실험용 운영체제
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발, 앱 개발, 개발 툴
대상자
- *OS 개발자, Rust 프로그래머, 웹어셈블리(WASM) 기술자**
- 난이도: 중간 수준 (Rust 및 OS 설계 지식 필요)*
핵심 요약
- unikernel 아키텍처 와 WASM 샌드박싱 모델 을 결합한 실험용 운영체제
- VirtIO 드라이버 및 폴링 방식의 드라이버 구현 을 통해 QEMU 환경에서 실행
- WASM 앱 실행 시 커널 메모리 접근 차단 및 협동 스케줄링 기반 이벤트 루프 제공
섹션별 세부 요약
EFI 바이너리 기반 구조
- 부트로더 없이 EFI 바이너리 형태로 실행
- 커널, WASM 엔진, 앱이 하나의 파일에 내장
- UEFI 부트 서비스는 최단시간 내 종료
주소 공간 관리
- 가상 주소 공간 미사용, identity-mapped 주소 그대로 사용
- WASM 샌드박싱 을 통해 커널 메모리 보호
드라이버와 하드웨어 지원
- VirtIO 1.1 기반 PCI 드라이버 직접 구현
- 인터럽트 미사용 , 폴링 방식으로 키보드, 마우스, 네트워크, GPU 드라이버 지원
이벤트 루프와 스케줄링
- 단일 전역 이벤트 루프 기반의 선형적 실행 구조
- Wasmi 엔진의 fuel limit 기능 을 통해 오작동 앱 강제 종료 가능
WASM 샌드박싱 및 앱 실행
- Wasmi WASM 엔진 을 내장, 앱 실행 시 커널 분리 및 샌드박싱 제공
- Rust 외 언어 의 WASM 빌드 지원, WASI 호환성 부분 지원
UI 툴킷 및 앱 생태계
- Uitk UI 툴킷 제공, 글로벌 스타일시트 및 효율적인 캐싱 시스템
- 기본 앱: 웹 브라우저(DNS, HTTPS 지원), Python 터미널, 텍스트 에디터
결론
- Wasmi 엔진의 fuel limit 기능 을 활용한 앱 실행 제어가 핵심
- unikernel + WASM 샌드박싱 구조는 임베디드 시스템 또는 최소한의 보안 경계가 필요한 환경에 적합
- QEMU 10.0.0 이상 및 Rust Nightly 2025-06-01 기반 빌드 필요
- WASM 앱 생태계 확장 가능성 이 높으며, GUI 앱 개발 시 성능 최적화가 중요