古法编程时代过来的程序员,用了快 2 个月 NixOS ,预感这就是 AIOS 的基座,记录下经验和感受

Biemx 2026-04-12 01:58 1

古法编程时代过来的程序员,用了快 2 个月 NixOS ,预感这就是 AIOS 的基座,记录下经验和感受


原本以为在我 26 岁高龄的年纪不会再像小时候一样有心情捣鼓东西了,尤其是操作系统。但碍于出差、内存芯片暴涨和懒得清理 Windows 的原因,打算给笔记本重装个系统让它重获青春。


由于日常工作 50% 的时间都在和 Kylin 打交道,而且之前还是小登的时候也捣鼓过不少发行版,因此第一时间考虑的就是 Linux ,第一是已经习惯了 Unix 的 Shell ,第二是 Windows 总是离非 C# 的开发更远更绕一些,不管是虚拟化还是各种工具链,总是不能直接像 Linux 一样一行命令或者几行命令就解决,第三是用 Windows 开发各种东西总有一种穿着雨衣冲锋的感觉(?


经过一番调研,在 AI 时代下,想要通过文本来控制系统,且有秒级回滚机制的,相当于一个系统就是一个 git 仓库,到啥机器上都能一键回城,恢复自己熟悉的环境,自己要的软件直接自动下好,独特的配置也自动还原,开发环境也有机制隔离,根据项目自动切换环境,不用在 Docker 里面隔靴搔痒,基本就是 NixOS 是最成熟方案了,当然我是让 GPT 找的,在知道 NixOS 之前,我只知道 Debian/CentOS/Ubuntu/Lubuntu/Mint/Arch/Kylin/Deepin/Puppy 之类的主流发行版(话说现在Debian还叫答辩吗)。


作为一名国学思想爱好者,配置文件即系统的思想,类似太极出乾坤的感觉,直接把我这种拖延症和懒癌晚期患者行动力拉满, 并很快就把大U盘狠狠的插入本子并灌满了NixOS,没给Windows留下一点余地


于是:



由于自己不打游戏,基本上只是办公和开发,所以软件比较少,微信飞书都能跑,该有的功能都完好,希望能够用到老。



/btw 感慨死宅变牛马久了后连终端皮肤都懒得搞了




有些国内应用绕不过 Windows ,懒得折腾各种容器和奇技淫巧,直接虚拟机了。经过 AI 伺候,相比 VMware 用起来也大差不差,共享剪贴板和拖拽文件都有了



开发上,我习惯用 VSCode 了,NixOS 支持没什么问题,大部分插件都能用,环境主要靠 AI 写 devenv.nix 配置文件。



问了下 电脑管家 我用了多长时间的 NixOS ,已经快两个月了。



老笔记本装了 Linux 腰不酸了,腿不疼了,续航上去了,风扇不咆哮了,Windows 下真的风扇叫声大到出工伤。


折腾过程


最开始我是真的被各种环境弄烦了。


刚上大学那会,CS 和 EE 躲不过 C 和 C艹 环境配置,SWE 躲不过 JS、 Jvav 和 C艹艹 甚至世界上最好的语言 的环境配置,以及基本都躲不过 Python 和 MySQL 环境配置。


作为一名在丑陋旧世界会十几门语言 的环境配置和pirntf(“hell wrold”;) 的专业后端开发者,被窝囊费搞成了全栈的形状,是事物发展的必然趋势。


于是,在沉默中爆发,全爆给了 GPT ,问有什么工具可以统一管理各种环境而且不是套层容器吗?GPT 冷血回复三个字母:Nix。


能一直干程序员这行的,都是骨子里留了一堆好奇心的,见到新玩具,必然直接开启 Deep Research 模式,不了解还以为是个脚本工具,一看,这tm是个系统,还是发行了很久的 Linux 系统,为什么平时都没在社区见到过?


了解了这个系统的特性后,我就想,既然系统配置都直接写成了文件,还支持回滚,这不利好 AI 吗?


进一步调研了国内有 NixOS 的镜像站后,就放心大胆的开搞了。


安装好系统后,直接听 AI 的建议, nix-shell 先把 node 环境拉了下来,让 codex 开始跑开荒。这次没有看任何开源的轮子,打算纯粹 Vibe 装一次系统,也是想试试这种长期的活 AI 能不能干好,就算是持续的 HITL 。


时间线


懒得打字,让 AI 用事实说话


省流版:


当前层次


当时 Vibe 的时候也是持续受到当年刷 LeetCode 的思想,从时间和空间上考虑问题,于是平移到了考虑系统层级



也是类似渐进式的思路,变得快的放外面,变得慢的放里面,所谓阴在阳之内



肯定会有更好的更完美的方案,但考虑到 ROI ,先做到可用,即不在阳之对的思路。



最重要的还是落到开发环境上,最初让我接触到 NixOS 的那个问题自然也解决了,现在每次进入一个项目后,先 devenv shell 启动开发环境,要运行就 devenv up,再也不用管各种项目的环境了,统一扔给 Coding Agent + devenv 就好了。目前还没踩到啥坑,devenv 也是用的 Nix 语法来配置的,所以也给我一种 NixOS 的生态很规整的感觉,INTJ 狂喜




当时选择 devenv 也是纠结了挺久,尤其是 direnv 确实是有种cd出env随的言出法随效果,但我不一定进文件夹就是为了开发,也可能是为了摸鱼或者纯手误。



另外,也是为了能够减轻我认知负担,毕竟我不是来给自己找活干的,做这些事情就是为了后面能更持久的犯懒。



以及留了个围栏,要求任何 Agent 都必须把环境伺候到位



总而言之,对我来说好处大于坏处,于是认知负担就减少了,npm pnpm bun uv pip conda cargo go 之类的都 let it goNix 吧


下步计划


打算找到相对优雅的方案,把PC和移动端连通起来,目前在看 ZeroClaw 和 Hermes,还在调研中。


PS:意外发现





才疏学浅,看来 NixOS 用户不少啊,少见多怪了 ^-^


后面会不会类似mihomo也出个Homos?




闭门造车不可取,因此不只是记录,也是发出来给佬友们丢人现眼一下,请各位大神佬友多指教,除了打算去翻翻 L 站和社区的帖子和轮子,还想和佬友们讨论讨论有没有一样在捣鼓 NixOS 的,说不定可以一起玩耍,这次是真的 LinuxDo 了

最新回复 (17)
  • speedrun 04-16 22:36
    1

    ai玩的真好,我开始用nixos的时候gpt还没问世,在google搜索都没多少资料,都是看别人配置学习的,真的很折磨


    现在nixos已经是我用过最久的发行版,已经4年没重装过,可以安心养老了

  • PJ568 04-16 22:43
    3

    这个确实是有点意思啊。不过距离设想中围绕完善版 Computer Use 智能体搭建的用户环境还是有些距离。已加 Linux


    我用 Manjaro 还是用习惯了,得研究一下 NixOS。

  • Biemx 楼主 04-17 00:22
    4

    好奇佬友的NixOS用这么久性能上有什么问题吗?还是说和最开始的时候差别不大?

  • laris 04-21 21:50
    5

    我最近在研究怎么在macos上的orbstack跑nixos,然后nixos里跑zfs,把zfs增量数据远程备份。nixos是唯一是IAC风格的系统,的确是一个git commit搞定一切。


    起因是公司的macos有监控,觉得不爽的很,干脆跑到orb里,扫去吧哈哈

  • huo0 04-21 21:58
    6

    秒级回滚机制的,相当于一个系统就是一个 git 仓库,到啥机器上都能一键回城,恢复自己熟悉的环境



    这个需求!你想让我把Ubuntu 扔掉就直接说

  • Biemx 楼主 04-22 00:47
    7

    正好今天在一个朋友的MacMini上拉了自己的git仓库部署环境,用到了devenv,于是用到了Nix,佬友可以尝试下,Nix工具是无侵入的,可以跑官方安装工具,最终一切都在/nix下,用后不喜欢删了路径和环境变量就好。


    核查事实:



  • zzz 05-15 15:00
    8

    用一个flake.nix就能控制这个项目用到的工具链和版本号还是挺方便的,不用考虑编译的时候被其他依赖污染了环境

  • Pdr 05-27 20:21
    9

    我一直感觉nix就是个container,如果为了干净可控的系统,还不如直接跑个自定义的container。现在做研究写代码的dependencies更新好快,用nix赶不上趟。还是arch合适。

  • Jeremy Chen 05-27 20:38
    10

    真的在linux do社区学linux系列

  • cqrect 05-27 20:45
    11

    曾经尝试过一次,当时资料很少,各种配置和兼容性问题很折磨,就放弃了,看来是时候找时间再试试了

  • 力O 05-27 23:10
    12

    看完佬友写的, 感觉这个真挺有价值的 下一代AI操作系统, 有机会真的值得把玩一下

  • Edsger W. Dijkstra 05-27 23:17
    13

    站内好少见的正经linux讨论(

  • Edsger W. Dijkstra 05-27 23:17
    14

    现在是使用nixos最好的时候了, 配置文件什么的都可以让ai帮忙写了

  • laris 05-28 10:24
    15

    nix真正的意义是对于操作系统底层的IAC形式化。

    IAC=Infra as Code。

    我研究了一阵子,一直思考IAC的本质,本质是用code的方式来构建OS。

    code是几乎类似于hardcode。

    程序是近乎死的,也就是你定义的东西都固化于code之中,不会轻易漂移变动,而一套可运行的系统,是从code开始构建的,构建以后,通过测试之后,便是可重现的。

    这种IAC方式其实是适合大规模部署的,把devops的工作转移到研发阶段,或者说未来可能只有研发,没有devops和运维的独立部分。


    举个例子,传统研发测试都需要在app做的差不多了,交给运维来维护,假设kernel发现一个bug,要升级,而升级kernel会导致一系列的依赖变更,从而导致整个os系统和app做变更,一般的手段是在container或者os这里做测试,然后再反馈到dev阶段重新走一遍流程,而且没办法控制具体已经部署的系统的漂移,比如某个研发或者运维直接做了patch。这一切就像一个庞大的分布部署的系统,没办法控制各节点的漂移情况。


    如果从源头开始,IAC从code级别控制,并且能控制漂移,那么就可以从源头开始控制整个系统的更新和控制漂移。


    其实对于自定义container也是一种IAC形式,但是它只能控制container一层,没办法控制整个流程。评论中提到了代码的dependencies更新好快就是一个典型的例子,比如nodejs更新很快,patch很多,那么针对container层面的修改,就会很频繁,但是对于dev阶段,是不知道container这边频繁的更新,如果能把app和container阶段的结合到一起,就会避免两个阶段更新不一致造成的问题。


    nix是我在研究IAC的时候,对于os和硬件的控制没想明白以后,然后突然回忆起对nix感兴趣,然后重新研究实践出来的结论。


    对于个人来讲,其实也差不多。一样有益。

    举个例子,我有两台mac,但是拿到一个新环境,我要重新开始部署homebrew,然后看看有什么包需要重新安装,偷懒一点用brew bundle来迁移,但是如果任何一边因为我临时的需求安装了某个cmdline,那么另一边是不知道的,于是回到另一边我想用的时候,还得重新装一遍。我的设想是可以自动同步(虽然现在还没实现)。


    做一个更极端的例子,比如我把本地mac环境做快捷开发环境,然后远端异构的linux是远端开发环境,如果我想让两端的开发环境同步,就会有点麻烦,远端的linux也不一定是有root,distro也不一定一致,但是nix是可以支持rootless,而且可以做到os的distro无关,那么这种情况更可以通过一套验证过的配置来快速同步(其实感觉挺慢的,但是至少不会去关心)


    目前计划的多实践的少,目前只是实践了,把几个不同机器的类型的vps/vm在原有的linux上直接重装成nixos。我用Rust实现了一套IAC系统,准备有时间继续实践到一个系统中来控制机器和os级别的环境统一配置。

  • Biemx 楼主 05-28 15:22
    16

    当前层次


    当时 Vibe 的时候也是持续受到当年刷 LeetCode 的思想,从时间和空间上考虑问题,于是平移到了考虑系统层级




    我发现佬这个问题了,这个就是我换 nix 想要解决的痛点之一。 nix 的好处在于可以设置分层,比如系统层面可能我 Python 3.10 就够用了,专门的项目都用 devenv 隔离开了,该快的快,该慢的慢。

  • Pdr 05-29 01:33
    17

    OK,可能大家理念不同,我一般是追逐最新技术然后尝试用最新的技术解决问题,所以我会觉得nix会拖后腿:)

  • Reisen 09-20 20:37
    18

    我也是使用的NixOS,喜欢它的可复现性,配合agent现在能很方便地调查问题,挫败感小了很多

* 帖子来源Linux.do
返回