← 목록으로

NSL - Linux용 WSL

요약
  • nsl(NSpawn Subsystem for Linux)은 호스트 운영체제를 건드리지 않고 별도의 Linux 환경에서 개발 도구와 의존성을 사용할 수 있게 해주는 도구이다.
  • 공유 VM 안의 systemd-nspawn 컨테이너를 통해 작동하며, 7개의 주요 리눅스 배포판을 지원하고 세션 간 파일과 서비스를 유지한다.
  • nsl(NSpawn Subsystem for Linux) 은 개발 도구와 의존성을 호스트 운영체제 대신 별도의 Linux 환경에 설치해, 기존 시스템을 건드리지 않고 Debian·Fedora 등에서 개발하는 도구
  • 각 환경은 공유 VM 안의 systemd-nspawn 컨테이너로 실행되며, 필요할 때 시작하고 패키지·서비스·파일을 세션 사이에도 유지함
  • 호스트의 프로젝트 파일을 같은 사용자 계정으로 작업하며, 포트 포워딩과 Waypipe로 개발 서버와 Wayland 앱을 호스트에서 이용 가능
  • 신뢰하지 않는 소프트웨어는 --isolated로 전용 VM에서 실행하며, 호스트 파일과 데스크톱에 대한 접근을 차단
  • Debian·Ubuntu·Fedora 등 7개 배포판을 지원하며 MIT 라이선스로 공개. 현재 설계의 첫 릴리스는 v0.4.0으로, 아직 안정 버전은 없음
개발 환경과 호스트 연동
  • nsl(NSpawn Subsystem for Linux) 은 WSL처럼 별도의 Linux 환경에 개발 도구와 의존성을 설치해, 호스트 운영체제를 건드리지 않고 개발하는 도구임
    • 머신은 공유 VM 내부의 systemd-nspawn 컨테이너로 실행되고, 패키지, 서비스, 파일을 세션 사이에도 보존함
    • VM이 머신을 실행하고 호스트에 연결하는 방식은 동작 구조 문서에서 확인할 수 있음
  • 프로젝트 디렉터리에서 nsl 을 실행하면 같은 파일로 작업할 수 있는 기본 머신의 로그인 셸이 열림
    • 처음 생성한 머신이 기본 머신이 됨
    • nsl run으로 단일 명령을 실행하면 종료 상태가 호스트로 반환됨
  • 호스트의 $HOME, /run/media/USER, /mnt 를 머신의 /mnt/host 아래에서 사용할 수 있음
    • 호스트와 같은 사용자 이름, UID, GID를 사용하므로 머신에서 만든 파일도 본인 소유로 유지됨
    • 머신 내부에서는 비밀번호 없이 sudo를 사용할 수 있음
  • 개발 서버의 포워딩된 포트에는 호스트의 127.0.0.1 로 접근할 수 있으며, Wayland 앱은 Waypipe를 통해 호스트 데스크톱에 창을 열 수 있음
배포판, 격리와 사용 조건
  • 서명된 배포판 이미지 7종을 제공함: Debian, Ubuntu, Fedora, CentOS Stream, Arch, openSUSE Tumbleweed, openSUSE Leap
    • 이미지는 매주 다시 빌드하며, 사용 전에 서명된 Frostyard 게시 워크플로에서 나온 이미지인지 검증함
  • --isolated 모드는 신뢰하지 않는 소프트웨어를 별도 VM에서 실행하며, 호스트 파일, 데스크톱, 호스트 동작에 대한 접근을 차단함
  • nsl은 사용자 권한으로 실행되며, 호스트의 필수 구성 요소는 먼저 설치해야 함
    • nsl 자체는 호스트에 패키지를 설치하거나 장치 권한, 그룹, sudoers를 변경하지 않음
    • 시작 가이드에서 호스트 확인, 설치, 첫 머신 생성 절차를 확인할 수 있음
    • 명령어 레퍼런스는 명령어, nsl.conf 설정, 게시된 이미지를 다룸
  • v0.4.0은 현재 설계의 첫 릴리스이며, v0.3.0 이하는 폐기된 프로토타입임. 아직 안정 버전은 없음
    • 테스트한 환경은 Snow Linux 13, x86-64이며, systemd 261.2, QEMU 10.0.13, virtiofsd 1.13.2, GNOME Wayland를 사용함
그냥 목록으로
원문 보기 ↗