Hacker News 中文摘要

RSS订阅

Show HN:NSL,为 Linux 打造的 WSL -- Show HN: NSL – WSL for Linux

在原子化主机上进行 Linux 开发时,可将开发工具安装在 Debian、Fedora 或其他 Linux 机器中,保持主机不变。NSpawn 子系统(NSpawn Subsystem for Linux)类似 WSL(Windows Subsystem for Linux),每台机器在会话间保留软件包、服务和文件。这些机器作为 systemd-nspawn 容器运行在共享虚拟机内,按需启动,并能操作主机文件。从项目目录运行 nsl 可在默认机器中打开 shell 处理相同文件,使用 nsl run 执行单条命令并将退出状态回传至主机。

正文

在不可变宿主上做 Linux 开发

在 Debian、Fedora 或其他 Linux 机器里安装开发工具,别动宿主系统。nsl 用起来很像 WSL:每台机器在会话间保留自己的包、服务和文件。这些机器作为 systemd-nspawn 容器跑在一个共享虚拟机内,随用随起,也能操作你的宿主文件。

创建机器可用 nsl create debian --distro debian:13(会验证签名镜像,第一台机器为默认),直接输 nsl 可在当前目录进入机器的登录 shell,nsl run make test 则执行单条命令并传回退出状态。

一台机器能给你什么

  • 你需要时就在场的 shell:从项目目录运行 nsl 即可在默认机器里打开 shell,操作同一批文件;用 nsl run 跑单条命令,其退出状态会返回宿主。
  • 你的文件和账号:你的 $HOME、/run/media/USER 和 /mnt 可在 /mnt/host 下访问。机器沿用你的用户名、UID 和 GID,所以在那里建的文件仍属于你。机器内还可免密 sudo。
  • 宿主上的端口和窗口:在机器里跑开发服务器,可通过宿主 127.0.0.1 的转发端口访问。Wayland 应用能通过 Waypipe 在你的桌面上开窗口。
  • 七个签名发行版:可选 Debian、Ubuntu、Fedora、CentOS Stream、Arch、openSUSE Tumbleweed 或 Leap。镜像每周重建,nsl 使用前会验证它们来自签名的 Frostyard 发布流程。
  • 需要时隔离:对不信任的软件加 --isolated,它会独享一个虚拟机,无法访问宿主文件、桌面或宿主操作。
  • 以你的用户身份运行:nsl 以你的用户运行。你需先装好宿主前置条件;nsl 不装包,也不改设备权限、用户组或 sudoers。

从这里开始

  • 01 入门:检查宿主、安装 nsl 并创建第一台机器。
  • 02 架构:虚拟机如何运行机器并连接到宿主。
  • 03 命令参考:查阅命令、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。

评论

社区对该工具的必要性分歧明显:较多人质疑它只是 Distrobox、LXC 等现有隔离方案的翻版,加剧生态碎片化;部分用户则欣赏其反转 WSL 思路带来的干净桌面隔离与易用体验。

认为该项目是现有 Linux 容器工具的重复实现

  • 多名用户指出它本质上与 Distrobox、Toolbox、LXC 或 systemd-nspawn 等并无二致,质疑为何不直接复用成熟方案以避免碎片化,个别人更直言根本没人需要新工具(较多人)
  • 有人强调已有 Distrobox 做同样的事但不是敷衍之作,暗指该项目可能是 AI 噱头 > 早就有了 Distrobox 干一模一样的事,而且不是粗制滥造(@RandomGerm4n)

赞赏其将 WSL 式隔离带入 Linux 桌面的用户体验

  • 不少用户认为在桌面内干净使用不同“机器”的体验很好,反转 WSL 思路能避免个人技术栈变成虚拟机动物园,且终端集成等人体工学优秀(较多人)
  • 有用户表示虽能用现有工具拼凑,但易用性才是关键,这创意修复了无人察觉的痛点 > 虽然用一堆工具也能实现,但用户体验才是关键,这创意修复了没人觉得坏但实际坏的东西(@tonymet)

认为需要澄清与现有容器的技术差异

  • 用户询问底层机制(LXC/Docker/nspawn)及相比 Linux 容器的独特价值,也有人探讨虚拟机层是为宿主整洁还是真实安全边界(较多人)
  • 建议官网明确 docker 容器与该工具的区别,并解释何种开发场景会导致依赖频繁破坏需重装 > 既然日常用 Linux,不如说明它比现有容器多解决了什么,而非只类比 WSL(@graemep)

反感官网文案的 AI 生成味道

  • 少数人肯定项目创意但批评主页文本明显由 Claude 生成,读感难受
  • 有人直接呼吁用人类写的文字替换 > 项目本身酷,但网站那些 Claude 腔简直没法看,请写人话(@varispeed)

有价值的补充

  • 有用户分享自己通过 mkosi 使用 systemd-nspawn 的方案,镜像启动快但跨发行版(如 Debian 建 Ubuntu)会出问题(@bita_nidir)
  • 有用户厘清 WSL2 实为单一虚拟机搭配每套安装一个类 systemd-nspawn 环境,在 Linux 上再做 VM 层略显多余(@0x457)