WSL의 편리함을 리눅스에서도
윈도우에서 개발하는 분이라면 WSL(Windows Subsystem for Linux) 을 한 번쯤 써보셨을 거예요. 터미널에 wsl만 치면 우분투가 바로 뜨고, 윈도우 파일도 그대로 보이고, VS Code도 자연스럽게 붙어요. 가상머신처럼 무겁지 않으면서 진짜 리눅스를 쓰는 느낌이라 많은 개발자가 WSL로 넘어왔죠.
재밌는 건 정작 리눅스 사용자는 이런 경험을 똑같이 누리기가 애매하다는 거예요. 페도라를 쓰는데 우분투 전용 패키지가 필요할 때가 있고, 호스트 시스템은 깔끔하게 두고 개발 환경만 따로 쓰고 싶을 때도 있잖아요. 이번에 공개된 NSL은 바로 이 지점을 겨냥해서 ‘WSL for Linux’, 그러니까 리눅스 위에서 WSL 같은 경험을 주겠다는 프로젝트예요.
WSL은 왜 그렇게 편할까
NSL을 이해하려면 먼저 WSL이 왜 편한지 짚어볼 필요가 있어요. WSL2는 사실 가벼운 가상머신 안에서 진짜 리눅스 커널을 돌려요. 그런데 사용자는 그걸 거의 못 느끼죠. 이유는 이래요.
- 배포판 설치, 실행, 삭제가 명령어 하나로 끝나요.
- 홈 디렉터리와 파일 시스템이 호스트와 자연스럽게 연결돼요.
- 네트워크 연결이나 GUI 앱 실행까지 알아서 이어줘요.
- Distrobox: Podman이나 Docker 위에서 다른 배포판을 띄우고, 홈 디렉터리, GUI, 장치까지 호스트와 통합해주는 도구예요. ‘WSL 같은 경험’에 가장 가까운 기존 도구라고 할 수 있어요.
- Toolbx: 페도라 진영에서 만든 도구예요. 특히 Silverblue 같은 불변(immutable) 배포판에서 개발 환경을 따로 둘 때 많이 써요.
- systemd-nspawn: systemd에 들어 있는 가벼운 컨테이너 도구로, chroot를 강화한 버전 같은 느낌이에요.
- LXD/Incus: 시스템 컨테이너 전체를 VM처럼 관리하는, 조금 더 무거운 선택지예요.
결국 WSL의 핵심 가치는 가상화 기술 자체가 아니라 통합된 사용자 경험에 있어요.
리눅스에서는 커널을 새로 띄울 필요도 없어요. 호스트와 같은 커널을 공유하면서, 컨테이너 기술로 다른 배포판의 유저랜드(userland)만 격리해서 돌리면 되거든요. 유저랜드가 뭐냐면, 커널을 뺀 나머지인 패키지 매니저, 라이브러리, 셸 같은 것들이에요. 같은 건물(커널)에 살면서 방(파일 시스템, 프로세스 공간)만 따로 쓰는 셈이죠. NSL도 이런 리눅스의 격리 기술 위에 WSL 같은 매끄러운 경험을 얹으려는 시도로 보면 돼요. 정확히 어떤 백엔드를 쓰고 어디까지 지원하는지는 프로젝트 페이지에서 꼭 확인해보세요.
이미 비슷한 도구가 많은데?
맞아요. 이 영역에는 이미 강자들이 있어요.
한국 개발자에게 주는 시사점
실무에서 이런 도구가 빛나는 순간은 생각보다 많아요. 회사 서버는 RHEL 계열인데 내 노트북은 우분투일 때, 레거시 프로젝트가 옛날 버전 glibc를 요구할 때, 여러 버전의 빌드 도구를 동시에 써야 할 때가 그렇죠. 도커로도 할 수는 있지만, 도커는 서비스 배포에 맞춰져 있어서 매일 쓰는 개발 셸로 쓰려면 홈 디렉터리 마운트, 권한, GUI 연결 같은 설정이 번거로워요. 이 ‘개발용 격리 환경’이라는 틈새를 채우는 게 NSL이나 Distrobox 같은 도구예요.
다만 컨테이너 방식은 VM보다 격리 수준이 약하다는 점을 기억해 두세요. 커널을 공유하니까 보안 경계로 쓰기에는 한계가 있어요. 커널 모듈이 필요하거나 다른 커널 버전이 필요한 작업에는 여전히 VM을 써야 하고요. 새 프로젝트를 도입할 때는 앞으로도 유지보수가 계속될지 꼭 확인하세요.
마무리
WSL의 진짜 가치는 가상화가 아니라 통합 경험이고, 리눅스 진영도 그 경험을 가져오려 하고 있어요. NSL은 그 흐름을 보여주는 프로젝트예요. 여러분은 리눅스에서 여러 배포판 환경을 어떻게 관리하고 계신가요? Distrobox, 도커, VM 중 무엇을 쓰시는지 궁금해요!
🔗 출처: Hacker News