[논문리뷰] - 유니커널

[논문리뷰] - 유니커널

유니커널

문제점 : 범용모노리틱 운영체제인 리눅스는 아직까지 코어 수 증가에 따른 확장성을 지원하지 않음. 유니커널은 라이브러리 운영체제의 개념으로부터 시작함. 주 특징

  • 응용프로그램이 필요한 라이브러리만을 가지고 있고, 응용프로그램과 커널이 같은 주소 공간을 사용함. -> 실행 이미지 크기가 작고, 필요없는 커널의 기능을 제공하기 때문에 공격 대상이 작음 -> 보안 강점

유니커널이란 특정 응용프로그램에 특화된 단일 주소공간을 사용하고 라이브러리 운영체제의 방식으로 생성한 시스템 이미지로 정의함 유니커널은 고급 언어로 작성되고 개별 소프트웨어 구성요소처럼 동작하는 특화된 운영체제

유니커널은 독립적으로 실행할 수 있는 단일 부팅 이미지로 만들어짐. 하이퍼바이저/베어메탈 위에서 동작 가능.

유니커널의 구성요소

  • libOS
  • 응용프로그램용 런타임 라이브러리
  • 응용프로그램

필요 라이브러리들은 하나의 목적을 가진 프로그램으로 링크되어 최소한의 부팅 가능한 이미지로 생성.

단점 : 리눅스는 모노리틱 운영체제 -> 점점 용량이 많아지고, 속도는 느려짐. 쉘이나 터미널 또한 제공하지 않음 -> 상태 필요하면 API 요청해야 함

단일 주소공간을 사용하는데 -> 커널 모드와 유저모드간 문맥교환 x -> 오버헤드 감소. system call 또한 문맥교환 x -> 오버헤드 감소.

문맥교환 x -> 커널에서 주소 공간 보호를 위해 사용된 MMU(Memory Management Unit) 강제 격리가 불필요하고, 레지스트리를 저장/복원하는 비용을 줄일 수 있기 때문에 성능 향상.

문맥교환시 권한이 하이퍼바이저로 트랩되는 가상화 환경에서도 성능 향상.

  • 시스템콜의 경우 베어메탈 환경에서 2번의 문맥교환
  • 가상화 환경에선 4번의 문맥교환이 필요

용량 자체가 작기 때문에 JIT 가능 및 빠른 종료 가능