FTL: A new operating system for clouds
FTL: 클라우드를 위한 새로운 운영체제
FTL은 컨테이너마다 Linux 프로세스·파일 시스템·TCP/IP를 구현하는 사용자 공간 OS 라이브러리를 실행합니다. Linux 바이너리 호환성과 가벼운 하드웨어 격리를 함께 내세우며, 컨테이너 보안과 OS 기능 확장을 목표로 합니다.
- 주제
AI 요약
FTL은 운영체제의 많은 기능을 커널이 아닌 사용자 공간 라이브러리로 구현하는 클라우드용 OS 프로젝트입니다. 컨테이너마다 별도의 사용자 공간 OS를 실행하고, FTL 커널은 vCPU·메모리·드라이버와 시스템 호출 구현에 필요한 최소 인터페이스를 제공합니다. 개발자는 OS를 애플리케이션처럼 수정하고 디버깅하며 업그레이드할 수 있다는 구상입니다.
구조와 호환성
각 컨테이너의 사용자 공간 OS는 Linux 프로세스, 가상 파일 시스템(VFS), TCP/IP 같은 기능을 구현하는 공유 라이브러리입니다. FTL 커널은 이 라이브러리가 Linux 시스템 호출을 사용자 공간에서 처리하도록 지원합니다. 프로젝트는 이를 하이퍼바이저와 비슷한 인터페이스라고 설명하며, 기존 모놀리식 커널보다 컨테이너를 강하게 격리하는 것을 목표로 합니다. 베어메탈 머신은 필요하지 않다고 밝힙니다.
FTL은 Linux 바이너리 호환성을 제공한다고 소개합니다. 웹사이트를 제공하는 Rust 기반 HTTP 서버도 FTL에서 실행하는 Linux 애플리케이션이라고 설명합니다. POSIX 추상화 없이 특정 용도에 맞춘 유니커널 스타일 애플리케이션도 실행할 수 있습니다. 사용자 공간 OS를 수정하면 커널이나 eBPF 코드를 작성하지 않고도 출력문을 추가하거나 보안 업데이트를 적용하고 기능을 확장할 수 있다는 점도 제시합니다.
FTL은 마이크로커널의 유연성과 보안, 모놀리식 커널의 성능과 단순성을 함께 추구합니다. 다만 사이트의 설명은 설계 목표와 구조를 제시하며, 성능이나 격리 수준을 비교한 수치는 포함하지 않습니다.
Hacker News 반응
- @romac — FTL v0.1.0이 방금 출시됐습니다. 비동기 Rust와 멀티스레드 Tokio 런타임을 지원하고 Linux 호환성 계층의 빠진 부분도 많이 추가했습니다. 제 프로젝트는 아닙니다.
- @tekacs — gVisor와 더 비슷해 보입니다. 시스템 호출을 가로채는 경로가 조금 더 빠를 수도 있겠네요.
- @eranation — 저도 처음엔 그렇게 생각했습니다. 기존 관련 프로젝트를 정리한 FAQ가 있으면 도입이 늘 것 같습니다. 독자나 AI가 직접 조사하게 두지 말고요.
- @convolvatron — 둘 다와 비슷한 점이 있는 것 같습니다. FTL은 게스트로 실행되지만, Linux 시스템 호출을 일대일로 구현하는 대신 Linux를 라이브러리처럼 실행하고, 일반적인 시스템 호출 경로를 통해 더 작은 인터페이스와 통신하는 듯합니다. 그렇다면 흔한 경로에서 gVisor가 시스템 호출에서 VM 종료로 이어지는 것보다 저렴하지 않을 수 있습니다. 프로세스에서 게스트 시스템 호출로 간 뒤 다시 하이퍼바이저로 VM 종료가 일어날 테니까요.
- @monocasa — 고전적인 엑소커널입니다. 유니커널 대신 전통적인 VM을 실행하도록 하이퍼바이저를 바꾼 것과 비슷합니다.
- @mrtesthah — MirageOS도 “라이브러리 형태의 OS”라고 소개하는데, 이 프로젝트와 비슷한가요?
- @monocasa — 어느 정도 비슷하지만, Mirage와 달리 이 프로젝트에는 커널과 사용자 공간의 구분이 있습니다. 고전적인 엑소커널 설계에 가깝습니다.
- @sigbottle — “클라우드를 위한 OS”라는 말은 무슨 뜻인가요? KVM이나 반가상화 같은 장치 모델에 계속 의존하면서, FTL 게스트 OS가 VM 안에서 여러 보안 워크로드를 실행하나요? 아니면 실제 하드웨어에서 돌아갈 맞춤 OS를 처음부터 설계하나요? Linux의 기능을 다시 구현하는 일을 감당할 수 있도록 하드웨어 지원 범위를 제한하는 건가요? 배포할 머신을 미리 알고 있기 때문에 클라우드를 대상으로 삼은 건지도 궁금합니다. 현재 구현뿐 아니라 최종 목표도 알고 싶습니다.
- @chubot — 최소 권한 원칙을 따르고 Unix와 Linux 호환성을 갖춘 무언가가 있으면 좋겠습니다. Linux 네임스페이스와 cgroups, seccomp는 엉망이지만 macOS나 Windows보다 기능이 많을 수도 있습니다. 더 나은 방법을 만들 수 있을까요? 이 프로젝트가 그 일을 하려는지는 모르겠습니다.
- @hn_submit — 호스트에서 여러 운영체제를 실행하는 더 논리적인 방식이라고 생각합니다. 하이퍼바이저는 장치 드라이버 같은 하드웨어별 코드까지 운영체제 전체를 가상화하지만, OS 코어를 사용자 공간 라이브러리로 실행하면 하드웨어를 에뮬레이션하지 않고 바이너리를 돌릴 수 있습니다. 다만 게스트가 제공하는 기능을 모두 쓸 수 있는지, 예를 들어 하드웨어 그래픽 가속을 사용할 수 있는지 궁금합니다. OS 공급업체가 코어 구성 요소를 라이브러리로 제공해야 한다는 점도 단점입니다. Microsoft처럼 폐쇄형인 업체는 사업 전략상 이를 제공하지 않을 수 있습니다.
- @trunnell — 비교 대상으로 일반 Linux 시스템 대신 Firecracker를 간단히 다뤄주면 좋겠습니다. 홈페이지와 블로그 글은 전자와만 비교합니다.
원문: FTL / 번역·요약: Trawling