Motūrus OS 소개
- Motūrus 프로젝트는 클라우드를 위한 간단하고, 빠르며, 안전한 운영 체제인 MotūrusOS를 개발함.
- Motūrus OS는 가상 머신 기반 워크로드를 목표로 하는 새로운 운영 체제로, 웹 서버, 서버리스, 엣지 캐싱 등에 사용됨.
왜 Motūrus OS인가?
- 현재 대부분의 가상화된 생산 작업 부하는 리눅스에서 실행되고 있음.
- 리눅스는 많은 고급 기능을 가지고 있지만, 가상화된 작업 부하에 이상적이지 않은 몇 가지 복잡성을 가지고 있음:
- 리눅스는 베어메탈에 최적화되어 있어 VM 내부에서 사용 시 비효율적임.
- 리눅스는 사용하기 어려움.
- 리눅스는 역사적으로 매우 안전하지 않았음.
- 가상화된 작업 부하에 초점을 맞춘 새로운 운영 체제는 리눅스보다 훨씬 간단하고 안전하게 만들 수 있으며, 성능이나 효율성에서 리눅스를 능가하거나 맞출 수 있음.
Motūrus OS는 무엇인가?
- Motūrus OS는 마이크로커널 기반의 운영 체제로, Rust 언어로 구축되어 있으며, 오직 가상화된 작업 부하만을 목표로 함.
- 현재 x64 KVM 기반 가상 머신을 지원하며, Qemu 또는 Cloud Hypervisor에서 실행할 수 있음.
- Rust는 Motūrus OS의 핵심 언어로, 구현뿐만 아니라 ABI도 Rust로 제공됨.
작동하는 기능들
- 현재 대부분의 서브시스템이 POC/MVP 모드에서 작동 중이지만, 웹 서버와 같은 작업을 실행할 수 있음.
- 구체적으로 다음과 같은 기능들이 작동함:
- MBR(Qemu) 또는 PVH(Cloud Hypervisor)를 통해 약 200ms 내에 부팅함.
- himem 마이크로커널.
- 스케줄링: 간단한 멀티프로세서 라운드 로빈(SMP), 커널 스케줄링은 협력적임.
- 메모리 관리: 현재는 4K 페이지만 지원, 스택은 보호됨, 사용자 공간의 페이지 결함이 적절히 처리됨.
- I/O 서브시스템(사용자 공간 내): VirtIO-BLK 및 VirtIO-NET 드라이버, 두 가지 간단한 파일 시스템, smoltcp 기반 네트워킹(TCP만 지원).
- 사용자 공간: 다중 프로세스, 선점, 스레드, TLS, Rust 표준 라이브러리 대부분 포팅됨.
- 간단한 유닉스 스타일 쉘 제공.
작동하지 않는 기능들
- 대부분의 부분이 아직 프로덕션 사용에 준비되지 않았음.
- 보안 감사가 이루어지지 않았음.
- sys-io(사용자 공간 I/O 서브시스템)에서 "구현되지 않음" 패닉을 쉽게 겪을 수 있음.
- 구체적으로 다음과 같은 기능들이 작동하지 않음:
- 파일 시스템: Rust std::fs API의 대부분이 POC로 구현되었지만, 비동기 I/O를 사용하여 재구현해야 함.
- 네트워킹: std::net::TcpStream은 대부분 구현되었지만, 다른 프로토콜은 아직 구현되지 않음.
- Rust 표준 외의 생태계: 일부 크레이트는 소소한 조정으로 컴파일 및 사용 가능, Tokio와 같은 비동기 런타임에 의존하는 크레이트는 현재 컴파일되지 않음.
어떻게 Motūrus OS를 빌드/실행할 수 있나?
- docs/build.md 문서를 참조.
감사의 말
- Rust로 OS를 작성하는 블로그 시리즈를 작성한 Philipp Oppermann에게 큰 감사를 표함. 많은 사람들이 이 분야에서 실험하도록 영감을 주었음.
GN⁺의 의견
- 혁신적인 접근: Motūrus OS는 가상화된 환경에 특화된 새로운 운영 체제로, 리눅스의 복잡성과 비효율성을 해결하고자 함.
- Rust 언어의 채택: Rust는 메모리 안전성과 성능을 중시하는 언어로, Motūrus OS의 안전성과 효율성에 기여할 것임.
- 개발자 커뮤니티에 대한 기여: 이 프로젝트는 운영 체제 개발에 관심 있는 개발자들에게 새로운 가능성을 탐색하고, 기존의 한계를 넘어서는 데 도움이 될 것임.