跳转到主要内容

Barn 博客

汇集 Barn 的版本发布记录与架构设计随笔。如需分步操作指南与命令手册,请参阅项目文档。

  • 发布说明 — 版本更新亮点、升级指南与历史验收记录。当前稳定版: Barn 1.1.0。
  • 设计随笔 — 解析单部署模型、Ansible 清单兼容、就地状态收敛与宿主网络拓扑背后的工程取舍。
Barn 博客
Barn 1.2.0 发布准备与最终验收 ReleaseTestingCLI
Barn 1.2.0:资源规格、根盘扩容与宿主域名 LinuxmacOSCLI
根盘原地扩容:恢复协议与真机验收 CLIQEMU存储
VM 规格参数统一设计:命令、短参数、环境变量与根盘 CLIPigsty配置
Pigsty 宿主初始化:固定域名与 CA 信任 PigstyDNSSecurity
Main 与命令参考核对记录 CLIDocumentationValidation
Pigsty 使用 Barn 时的宿主 DNS / 域名解析方案 PigstyDNSNetworking
Pigsty 用 Barn 替换 Vagrant:资源、域名与迁移清单 PigstyVagrantDNS
Barn 1.1.0:镜像选择与实时进度 LinuxmacOSCLIImages
超越 amd64 与 arm64 架构QEMU镜像
从 Windows 使用 Barn WindowsWSLQEMU
Barn 可以向 Vagrant 学什么 VagrantPigsty工作流
从上游镜像到签名目录 镜像供应链发布
Barn 1.0.0:首个稳定版 LinuxmacOSCLI镜像
保留契约,演进 CLI CLICompatibilityArchitecture
Barn 0.9.3:安全扩容、按节点应用与中断恢复 LinuxmacOSCLI镜像
Barn 0.9.2:签名公证的 Barn.app 与 SSH/exec 参数规范 macOSHomebrewCLI
Barn 0.9.1:Go 1.27.3 工具链与 Barn.app 命名统一 GomacOS工具链
Barn 0.9.0:原生 macOS 虚拟机与更顺畅的 Linux 恢复 macOSLinux恢复
一台原生 Mac 虚拟机的生命周期 macOSRecoveryArchitecture
Barn 0.8.0:恢复更顺畅,镜像更新 QEMU恢复镜像
Barn 0.7.0:简化测试环境,自动恢复故障 QEMU恢复存储
Barn 0.6.0:默认 U24,更顺手的本地虚拟机体验 QEMUUbuntu生命周期
Barn 0.5.0:显式处置、显式仓库、可复现镜像 QEMU镜像供应链
Barn 0.4.0:一条命令、能用的数据盘、统一的输出 QEMU存储CLI
Barn 0.3.0:显式 Catalog 与可操作的就绪诊断 QEMU镜像目录就绪诊断
Barn 0.2.0:选点收敛与发布完整性 QEMU网络供应链
repo.yaml 是意图,catalog.json 是证据 镜像供应链镜像目录
PID 不是虚拟机身份 QMP恢复安全
声明式不等于破坏式 生命周期配置差异安全
为什么每个 Barn 节点都有两张网卡 网络QEMUPigsty
为什么 Barn 没有项目 架构主机清单状态
RC6 开发候选:Owner-scope Tier 1 交付 RC6QEMU网络
开发快照:Go 1.27 产品能力面 早期原型QEMUPigsty

PID 不是虚拟机身份

2060 字 5 分钟

为什么 Barn 在发送信号或删除任何东西前,必须让 QMP 身份、进程证据、类型化启动参数与操作日志相互吻合。

  • Barn 1.2.0 发布准备与最终验收

    发布于 设计 3674 字 8 分钟

    DesignReleaseTestingCLI

    状态,2026-11-12:Barn 1.2.0 已作为 stable/latest 发布。下方记录最终验收结果,候选版本章节保留早期审查及其原始范围。 最终发布 标签 v1.2.0 指向 90f615804b823b4eb491101e642073dcd37a9700。源码/Mac CI与完整打包 CI在打标签前通过同一提交。437 个已审查构建输入均与候选摘要清单一致;正式打包前再次通过签名镜像目录门禁。 GitHub 签名 secrets 仍未配置,本次采用文档中的本机签名流程。Apple …

    状态,2026-11-12:Barn 1.2.0 已作为 stable/latest 发布。下方记录最终验收结果,候选版本章节保留早期审查及其原始范围。 最终发布 标签 v1.2.0 指向 90f615804b823b4eb491101e642073dcd37a9700。源码/Mac CI与完整打包 CI在打标签前通过同一提交。437 个已审查构建输入均与候选摘要清单一致;正式打包前再次通过签名镜像目录门禁。 GitHub 签名 secrets 仍未配置,本次采用文档中的本机签名流程。Apple …

  • Barn 1.2.0:资源规格、根盘扩容与宿主域名

    发布于 发布说明 1356 字 3 分钟

    ReleaseLinuxmacOSCLI

    Barn 1.2.0 于 2026-11-12 发布,对应提交 90f6158。本版本新增资源覆盖、可恢复的根盘扩容、可配置生命周期并发和清单 hosts 发布。双语命令参考覆盖全部 57 个操作命令及其选项。 从 1.1.0 升级 Linux 清单未指定 CPU/内存时,默认值由 2 vCPU / 4 GiB 改为 1 vCPU / 2 GiB,已有清单也受此影响。如需保留旧默认值,请在 all.vars 中显式设置 vm_cpu: 2、vm_mem: 4GiB,保留各节点覆盖值,并在应用变更 …

    Barn 1.2.0 于 2026-11-12 发布,对应提交 90f6158。本版本新增资源覆盖、可恢复的根盘扩容、可配置生命周期并发和清单 hosts 发布。双语命令参考覆盖全部 57 个操作命令及其选项。 从 1.1.0 升级 Linux 清单未指定 CPU/内存时,默认值由 2 vCPU / 4 GiB 改为 1 vCPU / 2 GiB,已有清单也受此影响。如需保留旧默认值,请在 all.vars 中显式设置 vm_cpu: 2、vm_mem: 4GiB,保留各节点覆盖值,并在应用变更 …

  • 根盘原地扩容:恢复协议与真机验收

    发布于 设计 1955 字 4 分钟

    设计CLIQEMU存储

    状态(2026-11-11):未发布开发版本已实现 barn resize -D,并在 macOS/arm64 的 QEMU/HVF 客机上完成 ext4 与 XFS 验收。已发布 1.1.0 的 resize 仍只修改 CPU/内存。参数优先级见 VM 规格设计,命令契约见 根盘扩容。 使用范围 barn resize -D 128GiB meta BARN_DISK=128GiB barn resize meta 目标是根盘的绝对容量,支持扩容,不支持缩盘。已完成的同目标操作不修改镜像,也不 …

    状态(2026-11-11):未发布开发版本已实现 barn resize -D,并在 macOS/arm64 的 QEMU/HVF 客机上完成 ext4 与 XFS 验收。已发布 1.1.0 的 resize 仍只修改 CPU/内存。参数优先级见 VM 规格设计,命令契约见 根盘扩容。 使用范围 barn resize -D 128GiB meta BARN_DISK=128GiB barn resize meta 目标是根盘的绝对容量,支持扩容,不支持缩盘。已完成的同目标操作不修改镜像,也不 …

  • VM 规格参数统一设计:命令、短参数、环境变量与根盘

    发布于 设计 5487 字 11 分钟

    设计CLIPigsty配置

    镜像、架构、CPU、内存、倍数和根盘组成同一组 VM 规格输入,统一名称、取值规则与来源追踪。命令声明自己接收哪些规格,以及允许应用哪些变更;解析过程只实现一份。 状态(2026-11-11):本方案已确认,六项 CLI/环境输入、命令接入、清单生成、来源追踪、SPEC 显示和根盘原地扩容均已实现,尚未发布。工作区清单默认 1 核 / 2 GiB,已发布 Barn 1.1.0 仍默认 2 核 / 4 GiB。 六个参数,一套命名 含义 清单字段 长参数 短参数 环境变量 候选版默认值 镜像 …

    镜像、架构、CPU、内存、倍数和根盘组成同一组 VM 规格输入,统一名称、取值规则与来源追踪。命令声明自己接收哪些规格,以及允许应用哪些变更;解析过程只实现一份。 状态(2026-11-11):本方案已确认,六项 CLI/环境输入、命令接入、清单生成、来源追踪、SPEC 显示和根盘原地扩容均已实现,尚未发布。工作区清单默认 1 核 / 2 GiB,已发布 Barn 1.1.0 仍默认 2 核 / 4 GiB。 六个参数,一套命名 含义 清单字段 长参数 短参数 环境变量 候选版默认值 镜像 …

  • Pigsty 宿主初始化:固定域名与 CA 信任

    发布于 设计 4272 字 9 分钟

    设计PigstyDNSSecurity

    建议提供一个可选的宿主初始化操作:安装固定 Pigsty 域名,并信任实验环境的公共根 CA 证书。 入口地址只有一个,默认 10.10.10.10;普通实验环境重建继续使用同一 CA。名称、地址和 CA 信任状态不变时,重复 setup 直接返回,无需提权。常见情况下,宿主集成只需初始化一次。 状态——2026-11-11:设计提案,尚未实现。 相比此前的 完整宿主 DNS 方案,本方案收敛了首期交付范围。通用清单提取、动态节点/PG/VIP 名称发布、按域转发和常驻 DNS 服务保留为后续选 …

    建议提供一个可选的宿主初始化操作:安装固定 Pigsty 域名,并信任实验环境的公共根 CA 证书。 入口地址只有一个,默认 10.10.10.10;普通实验环境重建继续使用同一 CA。名称、地址和 CA 信任状态不变时,重复 setup 直接返回,无需提权。常见情况下,宿主集成只需初始化一次。 状态——2026-11-11:设计提案,尚未实现。 相比此前的 完整宿主 DNS 方案,本方案收敛了首期交付范围。通用清单提取、动态节点/PG/VIP 名称发布、按域转发和常驻 DNS 服务保留为后续选 …

  • Main 与命令参考核对记录

    发布于 设计 2143 字 5 分钟

    DesignCLIDocumentationValidation

    核对日期:2026-11-11。 两个仓库都在 main,但工作区均不干净,也未与拉取后的远端分支一致。源码检查在本次工作区上通过;文档已补齐完整命令参考,逐项区分稳定版、本地 main 和未提交功能。 Git 与发布状态 仓库 本地 main 拉取后的 origin/main 审查开始时的状态 pgsty/barn 6ab0cd5 b2cc8da(v1.1.0) 领先 3 个提交;11 个已跟踪路径有变更,另有未跟踪的 …

    核对日期:2026-11-11。 两个仓库都在 main,但工作区均不干净,也未与拉取后的远端分支一致。源码检查在本次工作区上通过;文档已补齐完整命令参考,逐项区分稳定版、本地 main 和未提交功能。 Git 与发布状态 仓库 本地 main 拉取后的 origin/main 审查开始时的状态 pgsty/barn 6ab0cd5 b2cc8da(v1.1.0) 领先 3 个提交;11 个已跟踪路径有变更,另有未跟踪的 …

  • Pigsty 使用 Barn 时的宿主 DNS / 域名解析方案

    发布于 设计 13099 字 27 分钟

    设计PigstyDNSNetworking

    说明 2026-11-11 范围收敛:首期交付改为 固定核心域名与 Pigsty CA 信任。本页保留更广的导出器和解析器研究;通用清单与 split DNS 属于可选扩展,不作为固定配置的实现前提。 当前推荐先做显式启用的 hosts 管理。 Pigsty 计算名称和服务目标,Barn 通过现有 helper 预览并安装一份中性的地址/名称快照。对于地址固定的 Linux 实验环境,这项功能值得做:宿主可以直接打开 portal,通过节点名连接机器,通过集群名或 VIP 名访问数据库。静态地 …

    说明 2026-11-11 范围收敛:首期交付改为 固定核心域名与 Pigsty CA 信任。本页保留更广的导出器和解析器研究;通用清单与 split DNS 属于可选扩展,不作为固定配置的实现前提。 当前推荐先做显式启用的 hosts 管理。 Pigsty 计算名称和服务目标,Barn 通过现有 helper 预览并安装一份中性的地址/名称快照。对于地址固定的 Linux 实验环境,这项功能值得做:宿主可以直接打开 portal,通过节点名连接机器,通过集群名或 VIP 名访问数据库。静态地 …

  • Pigsty 用 Barn 替换 Vagrant:资源、域名与迁移清单

    发布于 设计 4112 字 9 分钟

    设计PigstyVagrantDNS

    Pigsty 可以用同一份主机清单驱动 Barn 与 Ansible。迁移时需要保留拓扑选择、镜像矩阵、资源缩放、固定地址和 SSH 工作流,并清理旧脚本隐含的地址、节点名及销毁行为。 状态(2026-11-10):vm_scale、1 核 / 2 GiB 默认规格、vm_hosts、barn hosts install -f 及 Pigsty 的 bin/sandbox-dns 已在本地工作区实现并完成下述离线验证,尚未发布。Pigsty 的 Makefile 仍使用 Vagrant;本文后半 …

    Pigsty 可以用同一份主机清单驱动 Barn 与 Ansible。迁移时需要保留拓扑选择、镜像矩阵、资源缩放、固定地址和 SSH 工作流,并清理旧脚本隐含的地址、节点名及销毁行为。 状态(2026-11-10):vm_scale、1 核 / 2 GiB 默认规格、vm_hosts、barn hosts install -f 及 Pigsty 的 bin/sandbox-dns 已在本地工作区实现并完成下述离线验证,尚未发布。Pigsty 的 Makefile 仍使用 Vagrant;本文后半 …

  • Barn 1.1.0:镜像选择与实时进度

    发布于 发布说明 1229 字 3 分钟

    ReleaseLinuxmacOSCLIImages

    发布于 2026-11-09。 Barn 1.1.0 新增镜像与客机架构覆盖参数,统一实时进度表,并改进 CPU 与内存调整的恢复能力。内置签名镜像目录仍为 2026110502,涵盖 9 个发行版系列、17 个架构制品;默认镜像仍是宿主原生架构的 Ubuntu 24.04。 镜像与架构选择 plan、up、reload、recreate 和 resize 支持 --image/-I 与 --arch/-A,只覆盖本次命令的期望配置。镜像覆盖只作用于选中的节点,后续命令提示会保留节点选择、覆盖参 …

    发布于 2026-11-09。 Barn 1.1.0 新增镜像与客机架构覆盖参数,统一实时进度表,并改进 CPU 与内存调整的恢复能力。内置签名镜像目录仍为 2026110502,涵盖 9 个发行版系列、17 个架构制品;默认镜像仍是宿主原生架构的 Ubuntu 24.04。 镜像与架构选择 plan、up、reload、recreate 和 resize 支持 --image/-I 与 --arch/-A,只覆盖本次命令的期望配置。镜像覆盖只作用于选中的节点,后续命令提示会保留节点选择、覆盖参 …

  • 超越 amd64 与 arm64

    发布于 设计 2016 字 5 分钟

    设计架构QEMU镜像

    Barn 当前支持 amd64 与 arm64 Linux 客机。QEMU 可以模拟更多架构,但每个新增 Barn 目标都需要镜像和完整的启动、操作契约。本设计评估复核于 2026-11-08,区分已有运行时策略与未来候选架构。 硬件加速跟随宿主指令集 对于 Barn 当前的 64 位客机,原生虚拟化使用宿主指令集:macOS 使用 HVF,Linux 使用 KVM;跨架构客机由 QEMU TCG 翻译指令。Rosetta 可以在 Arm Linux VM 内翻译 Intel Linux 应用, …

    Barn 当前支持 amd64 与 arm64 Linux 客机。QEMU 可以模拟更多架构,但每个新增 Barn 目标都需要镜像和完整的启动、操作契约。本设计评估复核于 2026-11-08,区分已有运行时策略与未来候选架构。 硬件加速跟随宿主指令集 对于 Barn 当前的 64 位客机,原生虚拟化使用宿主指令集:macOS 使用 HVF,Linux 使用 KVM;跨架构客机由 QEMU TCG 翻译指令。Rosetta 可以在 Arm Linux VM 内翻译 Intel Linux 应用, …

  • 从 Windows 使用 Barn

    发布于 设计 1568 字 4 分钟

    设计WindowsWSLQEMU

    Barn 当前的宿主配置与发布二进制覆盖 macOS、Linux 上的 amd64 和 arm64,没有原生 Windows 发行版。Windows 用户可以通过 Linux 宿主操作 Barn;WSL2 和嵌套 Linux VM 是把这层宿主放到 Windows 本机上的候选方式。 本评估复核于 2026-11-08。下述 WSL2 与 Hyper-V 路径仍需完成 Barn 全生命周期实测,才能成为受支持的安装指南。当前平台契约见平台与限制和 internal/platform。 选择 …

    Barn 当前的宿主配置与发布二进制覆盖 macOS、Linux 上的 amd64 和 arm64,没有原生 Windows 发行版。Windows 用户可以通过 Linux 宿主操作 Barn;WSL2 和嵌套 Linux VM 是把这层宿主放到 Windows 本机上的候选方式。 本评估复核于 2026-11-08。下述 WSL2 与 Hyper-V 路径仍需完成 Barn 全生命周期实测,才能成为受支持的安装指南。当前平台契约见平台与限制和 internal/platform。 选择 …

  • Barn 可以向 Vagrant 学什么

    发布于 设计 1816 字 4 分钟

    设计VagrantPigsty工作流

    Barn 已经能从兼容 Pigsty 的主机清单创建多节点 Linux 实验环境,管理生命周期,并提供 SSH 与结构化输出。Vagrant 值得借鉴的是从“建好虚拟机”到“重复一次实验”之间的工作:执行配置步骤、搬运源码与构建产物、记录环境,以及回到已知状态。 本文是基于 2026-11-08 Barn 源码核查形成的设计提案。以下优先级是待实现候选,没有指定发布版本或交付日期。当前可用命令见 CLI 参考。 已有能力与实际缺口 工作流 Barn 当前能力 可改进的方向 定义实验环境 静态清单 …

    Barn 已经能从兼容 Pigsty 的主机清单创建多节点 Linux 实验环境,管理生命周期,并提供 SSH 与结构化输出。Vagrant 值得借鉴的是从“建好虚拟机”到“重复一次实验”之间的工作:执行配置步骤、搬运源码与构建产物、记录环境,以及回到已知状态。 本文是基于 2026-11-08 Barn 源码核查形成的设计提案。以下优先级是待实现候选,没有指定发布版本或交付日期。当前可用命令见 CLI 参考。 已有能力与实际缺口 工作流 Barn 当前能力 可改进的方向 定义实验环境 静态清单 …

  • 从上游镜像到签名目录

    发布于 设计 1878 字 4 分钟

    设计镜像供应链发布

    镜像核查回答的问题比镜像发布更窄:它可以找到上游更新文件,但 Barn 只有在制品、运行时配置和启动路径都通过验证后,才能把文件加入签名目录。镜像参考说明用户可见的目录契约;本文记录如何让目录更新可复现。 “更新”有四种含义 如果把四种独立的版本值混为一谈,镜像更新就容易出错: 数值 描述的对象 所需证据 能否单独更新目录 操作系统版本 发行版的版本或点版本,例如 Ubuntu 24.04 LTS 发布元数据与软件包或构建记录 不能 云镜像构建号 某次带日期的上游磁盘构建,例如 YYYYMMDD …

    镜像核查回答的问题比镜像发布更窄:它可以找到上游更新文件,但 Barn 只有在制品、运行时配置和启动路径都通过验证后,才能把文件加入签名目录。镜像参考说明用户可见的目录契约;本文记录如何让目录更新可复现。 “更新”有四种含义 如果把四种独立的版本值混为一谈,镜像更新就容易出错: 数值 描述的对象 所需证据 能否单独更新目录 操作系统版本 发行版的版本或点版本,例如 Ubuntu 24.04 LTS 发布元数据与软件包或构建记录 不能 云镜像构建号 某次带日期的上游磁盘构建,例如 YYYYMMDD …

  • Barn 1.0.0:首个稳定版

    发布于 发布说明 1643 字 4 分钟

    发布LinuxmacOSCLI镜像

    发布日期:2026-11-05。 Barn 1.0.0 是首个稳定版。最新稳定版请参见 Barn 1.1.0。 Barn 1.0.0 完成了发布前对破坏性操作、数据盘恢复、目录完整性与进程取消的审计。本版内置签名镜像目录 revision 2026110502,其中 Debian 13 的 amd64 与 arm64 镜像均更新为 20261103.2651.1。 安装 Barn · GitHub 发布页与下载 · 变更日志 变更 整套部署重建会保留清单中缺少的节点。 不带节点参数的 barn …

    发布日期:2026-11-05。 Barn 1.0.0 是首个稳定版。最新稳定版请参见 Barn 1.1.0。 Barn 1.0.0 完成了发布前对破坏性操作、数据盘恢复、目录完整性与进程取消的审计。本版内置签名镜像目录 revision 2026110502,其中 Debian 13 的 amd64 与 arm64 镜像均更新为 20261103.2651.1。 安装 Barn · GitHub 发布页与下载 · 变更日志 变更 整套部署重建会保留清单中缺少的节点。 不带节点参数的 barn …

  • 保留契约,演进 CLI

    发布于 设计 2054 字 5 分钟

    DesignCLICompatibilityArchitecture

    Barn 已经使用 Cobra。2026-11-04 CLI 提案最值得保留的部分,是对命令语法、应用编排与外部行为的拆分。本文结合 2026-11-09 发布的 v1.1.0 源码整理这些设计;包结构拆分与较大范围的命令重组仍是提案,当前用法见 CLI 参考。 保留已有边界 cmd/barn/command_*.go 定义各命令族。每次执行都会新建 Cobra 命令树,避免参数值在多次调用间泄漏。处理函数收集 commandOutcome,由统一出口渲染文本或结构化结果;类型化错误保留退出码、 …

    Barn 已经使用 Cobra。2026-11-04 CLI 提案最值得保留的部分,是对命令语法、应用编排与外部行为的拆分。本文结合 2026-11-09 发布的 v1.1.0 源码整理这些设计;包结构拆分与较大范围的命令重组仍是提案,当前用法见 CLI 参考。 保留已有边界 cmd/barn/command_*.go 定义各命令族。每次执行都会新建 Cobra 命令树,避免参数值在多次调用间泄漏。处理函数收集 commandOutcome,由统一出口渲染文本或结构化结果;类型化错误保留退出码、 …

  • Barn 0.9.3:安全扩容、按节点应用与中断恢复

    发布于 发布说明 881 字 2 分钟

    发布LinuxmacOSCLI镜像

    发布日期:2026-10-31。 Barn 0.x 版本继续使用 GitHub 预发布频道。最新版本请参见 Barn 1.1.0。 Barn 0.9.3 聚焦于更安全的本地实验环境变更:新增只调整资源的虚拟机扩容,支持按节点独立收敛,接受清单与共享目录的普通用户路径形式,并让中断的生命周期操作可以安全恢复。 安装 Barn · 下载 0.9.3 · 源码发布说明 变更 修改 vm_cpu 或 vm_mem 后执行 barn resize [node...]。QEMU 预留容量且后端支持时会热插拔 …

    发布日期:2026-10-31。 Barn 0.x 版本继续使用 GitHub 预发布频道。最新版本请参见 Barn 1.1.0。 Barn 0.9.3 聚焦于更安全的本地实验环境变更:新增只调整资源的虚拟机扩容,支持按节点独立收敛,接受清单与共享目录的普通用户路径形式,并让中断的生命周期操作可以安全恢复。 安装 Barn · 下载 0.9.3 · 源码发布说明 变更 修改 vm_cpu 或 vm_mem 后执行 barn resize [node...]。QEMU 预留容量且后端支持时会热插拔 …

  • Barn 0.9.2:签名公证的 Barn.app 与 SSH/exec 参数规范

    发布于 发布说明 767 字 2 分钟

    发布macOSHomebrewCLI

    发布日期:2026-10-30。 Barn 0.x 版本通过 GitHub 预发布渠道分发。 Barn 0.9.2 将完整的 macOS 原生客机组件纳入 Apple Silicon 下载包与 Homebrew 安装。安装一个软件包即可创建 Linux 和 macOS 虚拟机,无需安装 Go 或 Xcode。 安装 Barn · 下载 0.9.2 · 源码发布说明 变更 Darwin arm64 归档包含同一源码提交构建的 barn、barn-hosts-helper 与原生应用包 …

    发布日期:2026-10-30。 Barn 0.x 版本通过 GitHub 预发布渠道分发。 Barn 0.9.2 将完整的 macOS 原生客机组件纳入 Apple Silicon 下载包与 Homebrew 安装。安装一个软件包即可创建 Linux 和 macOS 虚拟机,无需安装 Go 或 Xcode。 安装 Barn · 下载 0.9.2 · 源码发布说明 变更 Darwin arm64 归档包含同一源码提交构建的 barn、barn-hosts-helper 与原生应用包 …

  • Barn 0.9.1:Go 1.27.3 工具链与 Barn.app 命名统一

    发布于 发布说明 935 字 2 分钟

    发布GomacOS工具链

    发布日期:2026-10-22。 Barn 0.x 版本通过 GitHub 预发布渠道分发。若需直接通过 Apple Silicon 发行包或 Homebrew 安装已签名公证的 Barn.app,请升级至最新的 Barn 1.1.0。 Barn 0.9.1 升级了 Go 工具链与依赖模块,并将 Mac 原生组件统一命名为 Barn.app。CLI 命令、清单格式、镜像目录与已有虚拟机状态路径均与 0.9.0 保持兼容。 安装 Barn · 下载 0.9.1 · 验证历史 变更 源码构建、CI …

    发布日期:2026-10-22。 Barn 0.x 版本通过 GitHub 预发布渠道分发。若需直接通过 Apple Silicon 发行包或 Homebrew 安装已签名公证的 Barn.app,请升级至最新的 Barn 1.1.0。 Barn 0.9.1 升级了 Go 工具链与依赖模块,并将 Mac 原生组件统一命名为 Barn.app。CLI 命令、清单格式、镜像目录与已有虚拟机状态路径均与 0.9.0 保持兼容。 安装 Barn · 下载 0.9.1 · 验证历史 变更 源码构建、CI …

  • Barn 0.9.0:原生 macOS 虚拟机与更顺畅的 Linux 恢复

    发布于 发布说明 1223 字 3 分钟

    发布macOSLinux恢复

    发布日期:2026-09-30。 Barn 0.9.0 用同一套命令行工具管理 Linux 实验环境与原生 macOS 虚拟机,并改进了错误诊断与中断操作恢复。最新版本请参见 Barn 1.1.0。 安装指南 · 下载 0.9.0 发行包 · 完整变更记录 Apple Silicon 上的 macOS 虚拟机 barn mac 可创建命名的 macOS 27 虚拟机,支持原生桌面窗口、SSH、共享目录与文本剪贴板。首台机器从经过校验的 Apple 恢复镜像安装共享黄金母盘,后续机器通过 APFS …

    发布日期:2026-09-30。 Barn 0.9.0 用同一套命令行工具管理 Linux 实验环境与原生 macOS 虚拟机,并改进了错误诊断与中断操作恢复。最新版本请参见 Barn 1.1.0。 安装指南 · 下载 0.9.0 发行包 · 完整变更记录 Apple Silicon 上的 macOS 虚拟机 barn mac 可创建命名的 macOS 27 虚拟机,支持原生桌面窗口、SSH、共享目录与文本剪贴板。首台机器从经过校验的 Apple 恢复镜像安装共享黄金母盘,后续机器通过 APFS …

  • 一台原生 Mac 虚拟机的生命周期

    发布于 设计 1592 字 4 分钟

    DesignmacOSRecoveryArchitecture

    barn mac 通过 Apple Virtualization.framework 管理具名 macOS 虚拟机,独立于 Linux 主机清单。这项功能从 0.9.0 引入,使用 macOS 宿主上的原生应用包 Barn.app,从 0.9.2 起随 Apple Silicon 发行归档交付。本文提炼具名机器实现记录及早期 Mac 复核结论,于 2026-11-08 对照当前实现核验;带日期的证据汇总在验证历史,命令与默认值见 Mac 参考。 网络归机器所有 早期设计使用两个固定槽位与特权网络 …

    barn mac 通过 Apple Virtualization.framework 管理具名 macOS 虚拟机,独立于 Linux 主机清单。这项功能从 0.9.0 引入,使用 macOS 宿主上的原生应用包 Barn.app,从 0.9.2 起随 Apple Silicon 发行归档交付。本文提炼具名机器实现记录及早期 Mac 复核结论,于 2026-11-08 对照当前实现核验;带日期的证据汇总在验证历史,命令与默认值见 Mac 参考。 网络归机器所有 早期设计使用两个固定槽位与特权网络 …

  • Barn 0.8.0:恢复更顺畅,镜像更新

    发布于 发布说明 1730 字 4 分钟

    发布QEMU恢复镜像

    说明 本文为 0.8.0 历史发布记录。旧版发行附件已下线,安装当前版本请参见安装指南。 Barn 0.8.0 减少了初始化中断和部分节点启动失败后的手工清理工作,并在保留全部历史目录产物与已有虚拟机身份的前提下更新了九月 Debian 与 Ubuntu 镜像。 主要变化 宿主准备自动接续原命令。 交互式 start、restart 与 reload 可自动补齐缺失的宿主工具并恢复未启动的 Barn 网络。macOS 首次配置网络时,会先查找或安装 Homebrew(或下载校验固定归档),随后 …

    说明 本文为 0.8.0 历史发布记录。旧版发行附件已下线,安装当前版本请参见安装指南。 Barn 0.8.0 减少了初始化中断和部分节点启动失败后的手工清理工作,并在保留全部历史目录产物与已有虚拟机身份的前提下更新了九月 Debian 与 Ubuntu 镜像。 主要变化 宿主准备自动接续原命令。 交互式 start、restart 与 reload 可自动补齐缺失的宿主工具并恢复未启动的 Barn 网络。macOS 首次配置网络时,会先查找或安装 Homebrew(或下载校验固定归档),随后 …

  • Barn 0.7.0:简化测试环境,自动恢复故障

    发布于 发布说明 1155 字 3 分钟

    发布QEMU恢复存储

    说明 本文为 0.7.0 历史发布记录。旧版发行附件已下线,安装当前版本请参见安装指南。 Barn 0.7.0 简化了本地测试环境的首次启动与故障恢复:重复执行 barn up 即可接续中断的任务、重试未完成的客机初始化阶段,并在不重启虚拟机的情况下原位更新客机脚本。 主要变化 缩短首次启动路径。 交互式 up 可自动生成默认配置、补齐缺失的宿主工具,并唤醒已安装但未运行的 Barn 网络。耗时短的检查保持安静,长任务实时显示进度并在结束时输出精简汇总。 客机各阶段独立初始化。 数据盘、共享目 …

    说明 本文为 0.7.0 历史发布记录。旧版发行附件已下线,安装当前版本请参见安装指南。 Barn 0.7.0 简化了本地测试环境的首次启动与故障恢复:重复执行 barn up 即可接续中断的任务、重试未完成的客机初始化阶段,并在不重启虚拟机的情况下原位更新客机脚本。 主要变化 缩短首次启动路径。 交互式 up 可自动生成默认配置、补齐缺失的宿主工具,并唤醒已安装但未运行的 Barn 网络。耗时短的检查保持安静,长任务实时显示进度并在结束时输出精简汇总。 客机各阶段独立初始化。 数据盘、共享目 …

  • Barn 0.6.0:默认 U24,更顺手的本地虚拟机体验

    发布于 发布说明 1188 字 3 分钟

    发布QEMUUbuntu生命周期

    说明 本文为 0.6.0 历史发布记录。旧版发行附件已下线,安装当前版本请参见安装指南。 Barn 0.6.0 将默认客机镜像切换为 Ubuntu 24.04,并改进了本地 Pigsty 实验环境的计划预览、启动、扩容与节点重建体验。 主要变化 默认使用 Ubuntu 24.04。 新生成的配置与内置镜像目录默认采用 u24:stable。目录修订版 2026090501 同时合入了官方仓库已发布的 Debian 12/13 与 Rocky Linux 8/9 规范化镜像更新。 无需准备宿主即 …

    说明 本文为 0.6.0 历史发布记录。旧版发行附件已下线,安装当前版本请参见安装指南。 Barn 0.6.0 将默认客机镜像切换为 Ubuntu 24.04,并改进了本地 Pigsty 实验环境的计划预览、启动、扩容与节点重建体验。 主要变化 默认使用 Ubuntu 24.04。 新生成的配置与内置镜像目录默认采用 u24:stable。目录修订版 2026090501 同时合入了官方仓库已发布的 Debian 12/13 与 Rocky Linux 8/9 规范化镜像更新。 无需准备宿主即 …

  • Barn 0.5.0:显式处置、显式仓库、可复现镜像

    发布于 发布说明 1226 字 3 分钟

    发布QEMU镜像供应链

    说明 本文为 0.5.0 历史发布记录。0.7.0 已支持官方镜像源自动故障切换,0.9.0 已移除 rm 别名。旧版发行附件已下线,当前版本用法请参见 CLI 参考与安装指南。 Barn 0.5.0 新增了一键彻底清理实验环境的 purge 命令,支持显式选择全球或中国大陆镜像仓库,并为官方客机镜像引入了可复现的离线构建流水线;Pigsty 清单约定、部署状态格式与内置镜像目录修订版 2026082903 保持不变。 主要变化 barn purge(0.5.0–0.8.0 中含别名 barn …

    说明 本文为 0.5.0 历史发布记录。0.7.0 已支持官方镜像源自动故障切换,0.9.0 已移除 rm 别名。旧版发行附件已下线,当前版本用法请参见 CLI 参考与安装指南。 Barn 0.5.0 新增了一键彻底清理实验环境的 purge 命令,支持显式选择全球或中国大陆镜像仓库,并为官方客机镜像引入了可复现的离线构建流水线;Pigsty 清单约定、部署状态格式与内置镜像目录修订版 2026082903 保持不变。 主要变化 barn purge(0.5.0–0.8.0 中含别名 barn …

  • Barn 0.4.0:一条命令、能用的数据盘、统一的输出

    发布于 发布说明 943 字 2 分钟

    发布QEMU存储CLI

    说明 本文为 0.4.0 历史发布记录。旧版发行附件已下线,安装当前版本请参见安装指南。 Barn 0.4.0 将首次使用收敛为一条命令,修复了 Debian 与 Ubuntu 镜像上默认数据盘因缺少 xfsprogs 无法格式化的问题,并统一了全套 CLI 的输出风格;Pigsty 清单格式、固定 IP 部署模型、状态目录结构与内置镜像目录修订版 2026082903 保持不变。 主要变化 一条命令完成首次启动。 在交互式终端中,若宿主机尚未安装固定 IP 网络,运行 barn up 会自动 …

    说明 本文为 0.4.0 历史发布记录。旧版发行附件已下线,安装当前版本请参见安装指南。 Barn 0.4.0 将首次使用收敛为一条命令,修复了 Debian 与 Ubuntu 镜像上默认数据盘因缺少 xfsprogs 无法格式化的问题,并统一了全套 CLI 的输出风格;Pigsty 清单格式、固定 IP 部署模型、状态目录结构与内置镜像目录修订版 2026082903 保持不变。 主要变化 一条命令完成首次启动。 在交互式终端中,若宿主机尚未安装固定 IP 网络,运行 barn up 会自动 …

  • Barn 0.3.0:显式 Catalog 与可操作的就绪诊断

    发布于 发布说明 725 字 2 分钟

    发布QEMU镜像目录就绪诊断

    说明 本文为 0.3.0 历史发布记录。旧版发行附件已下线,安装当前版本请参见安装指南。 Barn 0.3.0 取消了隐式后台刷新镜像目录的行为,支持按节点报告客机初始化失败阶段与排查命令,并在保留 Pigsty 清单与固定 IP 部署模型的前提下精简了 CLI 命令集。 主要变化 显式更新镜像目录。 up、plan 与日常 image 子命令固定读取当前激活的本地镜像目录快照,不再后台拉取远端目录元数据。使用 barn update 可显式从配置仓库拉取最新签名目录,使用 barn …

    说明 本文为 0.3.0 历史发布记录。旧版发行附件已下线,安装当前版本请参见安装指南。 Barn 0.3.0 取消了隐式后台刷新镜像目录的行为,支持按节点报告客机初始化失败阶段与排查命令,并在保留 Pigsty 清单与固定 IP 部署模型的前提下精简了 CLI 命令集。 主要变化 显式更新镜像目录。 up、plan 与日常 image 子命令固定读取当前激活的本地镜像目录快照,不再后台拉取远端目录元数据。使用 barn update 可显式从配置仓库拉取最新签名目录,使用 barn …

  • Barn 0.2.0:选点收敛与发布完整性

    发布于 发布说明 871 字 2 分钟

    发布QEMU网络供应链

    说明 本文为 0.2.0 历史发布记录。旧版发行附件已下线,安装当前版本请参见安装指南。 Barn 0.2.0 延续了 0.1.0 的 Pigsty 清单与磁盘部署格式,修复了真机回归测试中发现的 VPN 宽泛路由误拦与指定节点增量收敛问题。 主要变化 VPN 感知的路由预检。 10.0.0.0/8 等前缀更短的 VPN 排除路由不再误拦 Barn 专属的 10.10.10.0/24 子网;当存在相同或更具体的外部路由、接口重叠、IP 地址被占用或自有路由缺失时,预检仍会拒绝启动。 真正的按节 …

    说明 本文为 0.2.0 历史发布记录。旧版发行附件已下线,安装当前版本请参见安装指南。 Barn 0.2.0 延续了 0.1.0 的 Pigsty 清单与磁盘部署格式,修复了真机回归测试中发现的 VPN 宽泛路由误拦与指定节点增量收敛问题。 主要变化 VPN 感知的路由预检。 10.0.0.0/8 等前缀更短的 VPN 排除路由不再误拦 Barn 专属的 10.10.10.0/24 子网;当存在相同或更具体的外部路由、接口重叠、IP 地址被占用或自有路由缺失时,预检仍会拒绝启动。 真正的按节 …

  • repo.yaml 是意图,catalog.json 是证据

    发布于 设计 2163 字 5 分钟

    设计镜像供应链镜像目录

    本文阐述 Barn 1.1.0 的 Linux 静态镜像仓库契约(Mac 虚拟机的 .ipsw 恢复镜像与 APFS 基础镜像由 barn mac 独立管理)。 一个静态虚拟机镜像仓库包含两类截然不同的元数据:一类是维护者的 策略意图(哪个版本对应 :stable、哪些旧版本标为 deprecated、每个发行版系列支持哪些短别名),另一类是镜像文件的 物理事实(精确字节数、SHA-256 摘要、qcow2 虚拟容量)。如果把这两类信息混在同一份手写 JSON 文件里,不仅手动复制哈希和字节数极 …

    本文阐述 Barn 1.1.0 的 Linux 静态镜像仓库契约(Mac 虚拟机的 .ipsw 恢复镜像与 APFS 基础镜像由 barn mac 独立管理)。 一个静态虚拟机镜像仓库包含两类截然不同的元数据:一类是维护者的 策略意图(哪个版本对应 :stable、哪些旧版本标为 deprecated、每个发行版系列支持哪些短别名),另一类是镜像文件的 物理事实(精确字节数、SHA-256 摘要、qcow2 虚拟容量)。如果把这两类信息混在同一份手写 JSON 文件里,不仅手动复制哈希和字节数极 …

  • PID 不是虚拟机身份

    发布于 设计 2060 字 5 分钟

    设计QMP恢复安全

    本文阐述 Barn 1.1.0 的 Linux 运行时进程身份与崩溃恢复机制。原生 Mac 生命周期独立使用逐实例操作锁与 runner 协议 2。 pidfile 只能记录写入瞬间的进程号(PID)。几分钟甚至几天之后——尤其在经历过进程崩溃或宿主重启后——单凭这一个整数,既无法确认原先的 QEMU 进程是否还活着,也无法排除操作系统内核已经把同一个 PID 分配给了另一个毫不相干的进程,更无法证明它归属哪一个虚拟机节点。 如果仅凭 pidfile 就直接发送 SIGKILL 或删除磁盘,一旦 …

    本文阐述 Barn 1.1.0 的 Linux 运行时进程身份与崩溃恢复机制。原生 Mac 生命周期独立使用逐实例操作锁与 runner 协议 2。 pidfile 只能记录写入瞬间的进程号(PID)。几分钟甚至几天之后——尤其在经历过进程崩溃或宿主重启后——单凭这一个整数,既无法确认原先的 QEMU 进程是否还活着,也无法排除操作系统内核已经把同一个 PID 分配给了另一个毫不相干的进程,更无法证明它归属哪一个虚拟机节点。 如果仅凭 pidfile 就直接发送 SIGKILL 或删除磁盘,一旦 …

  • 声明式不等于破坏式

    发布于 设计 2560 字 6 分钟

    设计生命周期配置差异安全

    本文阐述 Barn 1.1.0 的 Linux 虚拟机收敛模型(Mac 虚拟机独立管理)。 声明式工具通过对比实际状态与配置文件来驱动变更——但在日常开发中,配置文件可能为了调试被临时删减、切换到另一个 Git 分支,或在解决合并冲突时漏掉某个 YAML 主机组。如果本地虚拟机管理工具把“配置中少写了某个节点”直接当成“允许销毁该虚拟机”,一次普通的编辑失误就可能把正在测试的数据库节点连根抹掉。 因此,Barn 在“创建”与“销毁”之间划定了严格的不对称原则: 期望状态可以授权创建节点,也可以描 …

    本文阐述 Barn 1.1.0 的 Linux 虚拟机收敛模型(Mac 虚拟机独立管理)。 声明式工具通过对比实际状态与配置文件来驱动变更——但在日常开发中,配置文件可能为了调试被临时删减、切换到另一个 Git 分支,或在解决合并冲突时漏掉某个 YAML 主机组。如果本地虚拟机管理工具把“配置中少写了某个节点”直接当成“允许销毁该虚拟机”,一次普通的编辑失误就可能把正在测试的数据库节点连根抹掉。 因此,Barn 在“创建”与“销毁”之间划定了严格的不对称原则: 期望状态可以授权创建节点,也可以描 …

  • 为什么每个 Barn 节点都有两张网卡

    发布于 设计 2053 字 5 分钟

    设计网络QEMUPigsty

    本文阐述 Barn 1.1.0 的 Linux 实验环境网络设计(Mac 虚拟机使用每台虚拟机独立的 vmnet NAT 子网)。 Pigsty 主机清单依靠固定 IPv4 地址标识每个数据库节点:PostgreSQL 流复制、Patroni/etcd 共识、HAProxy 后端、keepalived 二层 VIP、Prometheus 采集目标与 Ansible 剧本,都要求 10.10.10.11 始终指向同一个节点。宿主回环端口转发虽然能把 SSH 或 5432 端口暴露给宿主机,却无法让 …

    本文阐述 Barn 1.1.0 的 Linux 实验环境网络设计(Mac 虚拟机使用每台虚拟机独立的 vmnet NAT 子网)。 Pigsty 主机清单依靠固定 IPv4 地址标识每个数据库节点:PostgreSQL 流复制、Patroni/etcd 共识、HAProxy 后端、keepalived 二层 VIP、Prometheus 采集目标与 Ansible 剧本,都要求 10.10.10.11 始终指向同一个节点。宿主回环端口转发虽然能把 SSH 或 5432 端口暴露给宿主机,却无法让 …

  • 为什么 Barn 没有项目

    发布于 设计 1611 字 4 分钟

    设计架构主机清单状态

    本文阐述 Barn 1.1.0 的 Linux 实验环境部署模型(Mac 虚拟机作为独立的具名虚拟机管理)。 Barn 的早期原型曾将每个工作目录视为一个独立“项目”:用隐藏目录标记项目身份,用全局注册表记录项目路径,再用宿主级租约表协调私有网段冲突。这套机制虽然能管理多组互不相关的虚拟机,但与 Barn 的核心场景格格不入——在本地拉起一套具有固定 IP 的 Pigsty 数据库实验集群。 由于 Pigsty 主机清单本身已经完整定义了所有节点的 IP 与角色,在它之上再叠一层“按目录划分的虚 …

    本文阐述 Barn 1.1.0 的 Linux 实验环境部署模型(Mac 虚拟机作为独立的具名虚拟机管理)。 Barn 的早期原型曾将每个工作目录视为一个独立“项目”:用隐藏目录标记项目身份,用全局注册表记录项目路径,再用宿主级租约表协调私有网段冲突。这套机制虽然能管理多组互不相关的虚拟机,但与 Barn 的核心场景格格不入——在本地拉起一套具有固定 IP 的 Pigsty 数据库实验集群。 由于 Pigsty 主机清单本身已经完整定义了所有节点的 IP 与角色,在它之上再叠一层“按目录划分的虚 …

  • RC6 开发候选:Owner-scope Tier 1 交付

    发布于 发布说明 1285 字 3 分钟

    开发RC6QEMU网络

    说明 Barn 前身历史归档(Piglet 1.0.0-rc.6,2026-08-25)。该候选版为本地验收里程碑,未创建公开 GitHub Release 或软件包仓库,下方 SHA-256 摘要用于记录当时的本地构建产物。当前 Barn 的用法与支持范围请参见使用文档与支持状态。 Piglet 1.0.0-rc.6 是在两类 Tier 1 原生虚拟化平台(macOS arm64 / HVF 与 Linux amd64 / KVM)上完成 Quick 及四节点 full 场景验收的本地开发候 …

    说明 Barn 前身历史归档(Piglet 1.0.0-rc.6,2026-08-25)。该候选版为本地验收里程碑,未创建公开 GitHub Release 或软件包仓库,下方 SHA-256 摘要用于记录当时的本地构建产物。当前 Barn 的用法与支持范围请参见使用文档与支持状态。 Piglet 1.0.0-rc.6 是在两类 Tier 1 原生虚拟化平台(macOS arm64 / HVF 与 Linux amd64 / KVM)上完成 Quick 及四节点 full 场景验收的本地开发候 …

  • 开发快照:Go 1.27 产品能力面

    发布于 发布说明 1538 字 4 分钟

    开发早期原型QEMUPigsty

    说明 Barn 前身历史归档(Piglet,2026-08-24)。该快照时间点尚无公开版本标签、生产签名产物或软件包仓库,所有内置镜像条目均标为 testing。当前 Barn 的设计与支持状态请参见使用文档与支持状态。 2026-08-24 源码快照将早期的 QEMU 原型演进为完整的 Go 1.27 本地虚拟机管理工具,具备零配置 Quick 模式、固定 IP 私有实验网、13 份内置配置模板、Pigsty 清单生成、持久数据盘、状态格式迁移与可复现打包流水线。 单一原生虚拟化运行时 …

    说明 Barn 前身历史归档(Piglet,2026-08-24)。该快照时间点尚无公开版本标签、生产签名产物或软件包仓库,所有内置镜像条目均标为 testing。当前 Barn 的设计与支持状态请参见使用文档与支持状态。 2026-08-24 源码快照将早期的 QEMU 原型演进为完整的 Go 1.27 本地虚拟机管理工具,具备零配置 Quick 模式、固定 IP 私有实验网、13 份内置配置模板、Pigsty 清单生成、持久数据盘、状态格式迁移与可复现打包流水线。 单一原生虚拟化运行时 …