ASPLOS 2013
개요
Including all kernel and user-space code into more componenets that are flexible, secure, and reusable in the style of LibOS
일반적인 가상화시스템은 Hypervisor위에 OS를 설치한후 그 OS위에서 여러개의 운영체제를 실행시키게 된다. 이떄 각각의 OS는 종속된 Application실행에 필요한 라이브러리와 여러 기반적인 하드웨어 접근을 위한 시스템을 제공하게 된다. 그러나 Unikernel은 이러한 OS와 Application의 관계를 1대1로 묶어서 Unikernel이 한 Application실행에 필요한 최소한의 라이브러리와 하드웨어 접근만을 수행하게 한다. 이에 따라 Application동작을 위해서 필요한 Overhead와 (booting, memory footprint)와 같은 비용을 최소화 하여 Isolation은 제공하지만, Security, Footprint, Optimization, 그리고 booting speed에서 이점을 가질 수 있다.
- Security: 어플리케이션이 OS사이즈가 작기 떄문에 공격받을 수 있는 면적이 줄어들고, 권한에 대한 문제도 없으며 exec와 같은 함수도 없어서 공격에 대한 위험도가 감소한다.
- Small Footprint: OS이미지가 작다는 이점이 있다.
- Optimization: OS이미지가 작아서 쉽게 최적화 할 수 있다.
- Fast Boot: 기존의 Guest Kernel은 Module로딩과 같은 부팅 Time이 필요하였으나, 최소한의 OS이미지만을 사용하여 이런 시간을 줄였다.
기존의 LibOS와 다른 점은 LibOS는 Hypervisor의 도움없이 부팅시키는 아이디어여서, 단점이 많았지만 Modern Hypervisor의 도움으로 이러한 LibOS인스턴스들을 VM에서 실행시켜서 이러한 단점을 상쇠하였다는 것이다. (그러나 LibOS에 대한 정의가 buzzword인 만큼 다른 해석도 있을 수 있다.)