Frostyard, 리눅스용 WSL 격 NSL 공개: 공유 VM 안에서 systemd-nspawn 컨테이너 실행
- Frostyard가 NSL(NSpawn Subsystem for Linux)을 공개함. systemd-nspawn 컨테이너를 공유 VM 안에서 돌려 WSL처럼 머신마다 패키지, 서비스, 파일을 세션 간 유지하고 호스트 설치는 그대로 둠
- Debian 13, Ubuntu, Fedora, CentOS Stream, Arch, openSUSE Tumbleweed/Leap 7개 배포판을 지원하고 이미지를 매주 재빌드하며, 사용 전에 서명된 Frostyard 배포 워크플로에서 온 이미지인지 검증함
- $HOME, /run/media/USER, /mnt를 /mnt/host로 노출하고 호스트의 사용자명과 UID/GID를 그대로 쓰며, 비밀번호 없는 sudo, 호스트 127.0.0.1로의 포트 포워딩, Waypipe를 통한 Wayland 창 표시를 제공함
- --isolated 옵션은 호스트 파일과 데스크톱, 호스트 액션 접근이 없는 별도 VM을 만들어 신뢰하지 않는 소프트웨어를 격리함
- 아직 pre-release로 v0.4.0이 현재 설계의 첫 릴리스이고 v0.3.0 이하는 폐기된 프로토타입이며, 테스트 호스트는 x86-64 Snow Linux 13, systemd 261.2, QEMU 10.0.13, virtiofsd 1.13.2, GNOME Wayland임
Hacker News opinions
distrobox랑 뭐가 다르냐면, distrobox는 $HOME을 컨테이너 $HOME에 그대로 마운트하는데 NSL은 안 함. 나는 그게 좋더라. PATH나 dotfiles 건드리는 도구 깔아도 호스트는 멀쩡하고, 런타임도 달라서 distrobox는 podman/docker, NSL은 VM 안의 systemd-nspawn임.
LXC임 docker임? 둘 다 아님. systemd-vmspawn으로 뜬 VM 하나가 systemd-nspawn 컨테이너를 여러 개 돌리는 구조라더라. 가볍고 빠르다고 함.
프로젝트는 좋은데 홈페이지 글 좀 사람이 쓴 것처럼 써줬으면. Claude 티가 너무 나서 읽기 힘들었음.
리눅스 데일리 드라이버한테 제일 유용한 물건인데, WSL 같다고만 하지 말고 기존 리눅스 컨테이너에 없는 게 뭔지 설명해주면 좋겠음. 애초에 WSL은 VM이고 이건 컨테이너 아님?
WSL2도 공유 VM 위에서 네트워킹, 파일 공유, 인스턴스별 영구 저장을 처리하는 모델임. NSL은 같은 모델을 리눅스 네이티브 구현으로 옮긴 것. 호스트 청결 문제는 개발자의 저주라, 뭘 컴파일하려고 libWhatever3.2-dev 깔았다가 다음에 크롬 열어보니 시스템이 미묘하게 깨져 있더라. devcontainer, docker, incus, 별도 VM 등 방법은 많지만 나는 WSL2 UX를 원했음.
그냥 LXC 재구현한 거 아니냐는 댓글 보고 좀 그랬음. VM 안에 컨테이너고, 컨테이너는 기존 systemd 컨테이너를 그대로 씀. 사이트 30초만 봐도 나오는 내용인데 왜 남의 프로젝트에 그렇게 퉁명스럽냐.
Distrobox가 이미 똑같은 걸 하니까 이건 slop이라는 말도 있었는데, Distrobox가 못 하는 케이스가 있어서 둘 다 자리가 있음.
포장이 진짜 잘 되어 있음. 데스크톱 안에서 별도 머신을 깔끔하게 쓰는 게 이렇게 편한지 몰랐음. 원격 서버 작업할 때 맥북보다 WSL이 낫더라. mise로 대부분 해결된다는 사람도 있었고.
이거 WSL 밑에서 돌리면 되냐고 물었더니 도전 받아들임이라고 답변 왔음.
이미 리눅스인데 왜 VM에 nspawn까지 겹치냐는 질문에는 커널을 다르게 쓸 수 있고 격리가 훨씬 낫다는 답이 있었음. 그냥 nspawn만 원하면 nspawn.org 쓰면 됨.
이름이 WSL이라니, Linux Subsystem for Windows면 LSW가 맞는 거 아님? Windows Services for UNIX부터 이어진 역사적 명명 사고라고 함.
나는 mkosi로 systemd-nspawn 쓰고 있음. 이미지 만들어서 네임스페이스에서 돌리는데 매우 빠름. 다만 Debian에서 Ubuntu 이미지 만들 때 문제가 좀 있더라.
내가 2014년에 CoreOS toolbox 첫 커밋을 썼는데, 이 댓글 보고 오타인 줄 알았음. 근데 Red Hat이 toolbx를 만들어놨더라. NSL은 $HOME 오버레이가 아니라 호스트 통합을 제한한 pet VM에 가깝고, 원격 컴퓨터나 VM 대신 쓰는 느낌임.
NixOS용으로 나오면 좋겠음. 재밌을 것 같은데.
NSL 하면 National security letter밖에 안 떠오름. 나는 Nix랑 Podman 쓸래.
VM 레이어가 호스트 위생용인지, 아니면 신뢰 못 할 의존성이나 에이전트가 쓴 코드를 돌릴 때 진짜 보안 경계로 보는 건지 궁금함.