클라우드 컴퓨팅 환경의 특성을 반영한 새로운 운영체제(OS)인 'FTL'이 공개되어 주목받고 있습니다. FTL은 기존 OS와 달리 프로세스, 파일시스템, TCP/IP 등 핵심 OS 기능을 커널이 아닌 사용자 공간의 라이브러리로 구현합니다. 이를 통해 개발자는 OS 기능을 마치 일반 애플리케이션처럼 작성하고, 디버깅하며, 빠르고 안전하게 업데이트할 수 있게 됩니다.
FTL의 핵심 아이디어는 각 컨테이너가 독립적인 사용자 공간 OS를 실행할 수 있게 하는 것입니다. 즉, 컨테이너마다 서로 다른 OS 기능과 버전을 사용할 수 있으며, 특정 컨테이너의 OS 기능을 업데이트할 때 전체 시스템을 재부팅할 필요 없이 해당 컨테이너만 새 라이브러리로 다시 시작하면 됩니다. FTL 커널은 CPU, 메모리, 장치 관리 등 최소한의 기능에 집중하고, CPU의 사용자 모드 격리(user mode isolation)를 활용해 가벼운 컨테이너에 가상 머신(VM) 수준의 강력한 격리 경계를 제공하는 것을 목표로 합니다. 현재 FTL은 v0.1.0 버전에서 비동기 Rust 앱과 Linux 스레드, epoll 등을 지원하며, 파일시스템, Node.js, Go, 컨테이너 이미지 지원 등을 순차적으로 로드맵에 따라 개발할 계획입니다. 심지어 FTL 웹사이트 자체도 FTL 위에서 Rust HTTP 서버로 운영되며, 기존 Linux 바이너리를 수정 없이 실행할 수 있는 호환 계층도 제공합니다.
이러한 접근 방식은 클라우드 네이티브(cloud-native) 애플리케이션 개발 및 배포 방식에 큰 변화를 가져올 잠재력이 있습니다. OS 기능을 라이브러리화함으로써 개발자는 특정 애플리케이션에 필요한 OS 기능만 선택적으로 포함하고, 불필요한 오버헤드를 줄일 수 있습니다. 이는 컨테이너의 경량화와 함께 보안 강화에도 기여할 수 있습니다. 또한, 커널 수준의 복잡한 프로그래밍 없이도 OS 기능을 확장하고 디버깅할 수 있어 개발 생산성을 높일 수 있습니다. FTL은 유니커널(unikernel)이나 엑소커널(exokernel)과 유사하게 커널의 역할을 최소화하고 대부분의 OS 서비스를 사용자 공간으로 옮겨 효율성과 유연성을 극대화하려는 시도로 볼 수 있습니다. 이는 미래 클라우드 인프라와 애플리케이션 아키텍처의 진화 방향에 중요한 시사점을 제공할 것입니다.