TL;DR

  • NSL은 Linux 호스트에서 여러 배포판을 지속적으로 실행하며, 각 머신은 자체 패키지와 서비스를 갖춘 systemd-nspawn 컨테이너로 작은 가상 머신 하나에서 동작함.
  • 머신은 사용할 때 시작되며, 현재 디렉터리와 호스트 파일을 사용하고 로그인 셸이나 단일 명령 실행을 제공함.
  • 호스트의 $HOME, /run/media/USER, /mnt가 머신의 /mnt/host에 나타나며, 사용자 이름·UID·GID와 비밀번호 없는 sudo를 유지함.
  • Debian, Ubuntu, Fedora, CentOS Stream, Arch, openSUSE Tumbleweed, Leap 등 서명된 배포판 7종을 주 단위로 다시 빌드하고 사용 전에 검증함.
  • --isolated 옵션은 호스트 파일·데스크톱·호스트 작업에 접근하지 못하는 별도 가상 머신을 제공하며, NSL 자체는 호스트 패키지 설치나 장치 권한·그룹·sudoers 변경 없이 사용자 권한으로 실행됨.

작동 방식

  • nsl create debian --distro debian:13 명령으로 서명된 이미지를 검증하고 Debian 13 머신을 생성하며, 첫 머신은 기본 머신이 됨.
  • nsl 명령은 현재 디렉터리에서 기본 머신의 로그인 셸을 엶.
  • nsl run make test 명령은 머신에서 단일 명령을 실행하고 종료 상태를 반환함.

머신이 제공하는 기능

원하는 배포판을 한 명령으로 실행

  • nsl은 기본 머신의 로그인 셸을 현재 디렉터리에서 열며, nsl run은 단일 명령을 실행하고 종료 상태를 반환함.

호스트 파일과 계정

  • 호스트의 $HOME, /run/media/USER, /mnt가 머신의 /mnt/host에 나타남.
  • 머신 내부에서도 사용자 이름, UID, GID가 유지되며 비밀번호 없는 sudo를 사용할 수 있음.

호스트의 포트와 창

  • 머신 내부에서 수신 대기하는 서버는 호스트의 동일한 포트와 127.0.0.1을 통해 접속 가능함.
  • Wayland 애플리케이션은 호스트 데스크톱에 창을 표시함.

서명된 배포판 7종

  • Debian, Ubuntu, Fedora, CentOS Stream, Arch, openSUSE Tumbleweed, Leap을 제공함.
  • 이미지는 매주 다시 빌드되며, 사용 전에 서명된 Frostyard 게시 워크플로에 따라 검증됨.

필요한 경우 격리

  • --isolated 옵션을 사용하면 머신마다 자체 가상 머신이 제공됨.
  • 격리된 머신은 호스트 파일, 데스크톱, 호스트 작업에 접근하지 않으며 신뢰하지 않는 소프트웨어 실행에 사용할 수 있음.

깨끗한 호스트

  • NSL은 사용자 권한으로 실행됨.
  • 호스트 패키지를 설치하지 않으며 장치 권한, 그룹, sudoers를 변경하지 않음.

시작하기

  • 시작 안내: 호스트를 확인하고 NSL을 설치한 뒤 첫 머신을 생성하는 절차임.
  • 아키텍처: 가상 머신 하나에서 여러 머신을 실행하는 구조와 각 머신이 호스트에서 접근할 수 있는 대상을 설명함.
  • 참조 안내: NSL의 모든 명령, nsl.conf의 모든 설정, 게시된 모든 이미지를 다룸.

사전 릴리스

  • NSL은 아직 안정 버전이 없음.
  • v0.4.0은 이 설계의 첫 릴리스이며, v0.3.0 이하 버전은 폐기된 프로토타입임.
  • 테스트된 호스트 환경은 x86-64 기반 Snow Linux 13, systemd 261.2, QEMU 10.0.13, virtiofsd 1.13.2, GNOME Wayland임.