<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>CagedBird&#39;s Lab</title>
  <icon>https://cagedbird.cn/icon.png</icon>
  <subtitle>Systems, Android, networks, and useful tools</subtitle>
  <link href="https://cagedbird.cn/atom.xml" rel="self"/>
  
  <link href="https://cagedbird.cn/"/>
  <updated>2026-05-27T07:23:41.342Z</updated>
  <id>https://cagedbird.cn/</id>
  
  <author>
    <name>CagedBird</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>透明代理下，給 DNS 與探針留一條真網之路</title>
    <link href="https://cagedbird.cn/2026/05/24/bypass-tun-build-a-clean-network-path/"/>
    <id>https://cagedbird.cn/2026/05/24/bypass-tun-build-a-clean-network-path/</id>
    <published>2026-05-24T13:35:00.000Z</published>
    <updated>2026-05-27T07:23:41.342Z</updated>
    
    
    <summary type="html">&lt;p&gt;昔年玩軟路由，常有一惑：若 Clash TUN 接管全家流量，smartdns 又當如何優選？&lt;/p&gt;
&lt;p&gt;DNS 欲優選，須見真網；TUN 欲接管，則要攔流。二者若不分道，smartdns 所見，已非底層網路，而是代理之後的影子。以影測形，必生玄學。&lt;/p&gt;
&lt;p&gt;今日終於想明白：問題不在 TUN 與 smartdns 不可共存，而在控制面與數據面混作一處。&lt;/p&gt;</summary>
    
    
    
    <category term="网络" scheme="https://cagedbird.cn/categories/%E7%BD%91%E7%BB%9C/"/>
    
    
    <category term="TUN" scheme="https://cagedbird.cn/tags/TUN/"/>
    
    <category term="sing-box" scheme="https://cagedbird.cn/tags/sing-box/"/>
    
    <category term="netns" scheme="https://cagedbird.cn/tags/netns/"/>
    
    <category term="DNS" scheme="https://cagedbird.cn/tags/DNS/"/>
    
    <category term="Linux" scheme="https://cagedbird.cn/tags/Linux/"/>
    
  </entry>
  
  <entry>
    <title>Arch Linux 上一次 Steam 原生游戏中文字体空白排障小记</title>
    <link href="https://cagedbird.cn/2026/05/20/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E5%BC%80%E5%8F%91%E8%BF%90%E7%BB%B4/%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/Arch-Linux-Steam-Unity-%E4%B8%AD%E6%96%87%E5%AD%97%E4%BD%93%E7%A9%BA%E7%99%BD%E6%8E%92%E9%9A%9C%E5%B0%8F%E8%AE%B0/"/>
    <id>https://cagedbird.cn/2026/05/20/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E5%BC%80%E5%8F%91%E8%BF%90%E7%BB%B4/%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/Arch-Linux-Steam-Unity-%E4%B8%AD%E6%96%87%E5%AD%97%E4%BD%93%E7%A9%BA%E7%99%BD%E6%8E%92%E9%9A%9C%E5%B0%8F%E8%AE%B0/</id>
    <published>2026-05-20T06:45:00.000Z</published>
    <updated>2026-05-27T07:23:41.343Z</updated>
    
    
    <summary type="html">&lt;p&gt;这次遇到的是一个很离谱但又很典型的问题：一个明明有 Linux 原生版本的 Steam 游戏，在 Arch Linux 上切到中文后，主菜单按钮框还在，文字却空了；反而用 Steam Legacy Runtime &amp;#x2F; Wine 跑 Windows 版时中文正常。&lt;/p&gt;
&lt;p&gt;最后修好以后，结论不是“Linux 没装中文字体”，而是更具体的一类坑：&lt;strong&gt;老 Unity Linux 原生版在 Steam Runtime 里直接读了 DejaVu 字体，绕开了宿主系统的 CJK fallback&lt;/strong&gt;。&lt;/p&gt;</summary>
    
    
    
    <category term="技术实践" scheme="https://cagedbird.cn/categories/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/"/>
    
    <category term="开发运维" scheme="https://cagedbird.cn/categories/%E5%BC%80%E5%8F%91%E8%BF%90%E7%BB%B4/"/>
    
    <category term="开发环境" scheme="https://cagedbird.cn/categories/%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/"/>
    
    
    <category term="Arch Linux" scheme="https://cagedbird.cn/tags/Arch-Linux/"/>
    
    <category term="Steam" scheme="https://cagedbird.cn/tags/Steam/"/>
    
    <category term="Unity" scheme="https://cagedbird.cn/tags/Unity/"/>
    
    <category term="字体" scheme="https://cagedbird.cn/tags/%E5%AD%97%E4%BD%93/"/>
    
    <category term="fontconfig" scheme="https://cagedbird.cn/tags/fontconfig/"/>
    
    <category term="游戏排障" scheme="https://cagedbird.cn/tags/%E6%B8%B8%E6%88%8F%E6%8E%92%E9%9A%9C/"/>
    
  </entry>
  
  <entry>
    <title>当 100.64 变成 127.0.0.1：KDE Connect 与 Android Tailnet 的真实故障</title>
    <link href="https://cagedbird.cn/2026/05/13/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E5%BC%80%E5%8F%91%E8%BF%90%E7%BB%B4/%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%BF%90%E7%BB%B4/%E7%BD%91%E7%BB%9C%E4%B8%8E%E5%AE%89%E5%85%A8/%E5%BD%93-10064-%E5%8F%98%E6%88%90-127001%EF%BC%9AKDE-Connect-%E4%B8%8E-Android-Tailnet-%E7%9A%84%E7%9C%9F%E5%AE%9E%E6%95%85%E9%9A%9C/"/>
    <id>https://cagedbird.cn/2026/05/13/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E5%BC%80%E5%8F%91%E8%BF%90%E7%BB%B4/%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%BF%90%E7%BB%B4/%E7%BD%91%E7%BB%9C%E4%B8%8E%E5%AE%89%E5%85%A8/%E5%BD%93-10064-%E5%8F%98%E6%88%90-127001%EF%BC%9AKDE-Connect-%E4%B8%8E-Android-Tailnet-%E7%9A%84%E7%9C%9F%E5%AE%9E%E6%95%85%E9%9A%9C/</id>
    <published>2026-05-13T17:20:00.000Z</published>
    <updated>2026-05-27T07:23:41.356Z</updated>
    
    
    <summary type="html">&lt;p&gt;我最开始只是想做一件很朴素的事情：让手机和电脑稳定互联。&lt;/p&gt;
&lt;p&gt;不是那种“在同一个 Wi-Fi 下面互相发现”的互联，而是无论手机在移动数据、电脑在家里、笔记本在公司，所有设备都能通过一个统一的 tailnet 相互访问。最好 Android 上也不要同时跑 Tailscale、Clash、KDE Connect、各种代理和后台服务。我希望 &lt;code&gt;sing-box&lt;/code&gt; 既负责代理，也负责 tailnet，而 KDE Connect 只要相信这个 tailnet 就行。&lt;/p&gt;
&lt;p&gt;听起来很合理。&lt;/p&gt;
&lt;p&gt;真正做起来以后，我才发现，这里面藏着几个非常典型的现代网络软件陷阱：UI 状态不等于数据面状态，&lt;code&gt;ping&lt;/code&gt; 通不等于 TCP 走对了路，抓包看到 &lt;code&gt;100.64.x.x&lt;/code&gt; 不等于应用层也能看到 &lt;code&gt;100.64.x.x&lt;/code&gt;。最后这个问题甚至一路挖到了 KDE Connect Android 的源码，并被整理成了 KDE Bugzilla 和 KDE Invent Merge Request。&lt;/p&gt;</summary>
    
    
    
    <category term="技术实践" scheme="https://cagedbird.cn/categories/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/"/>
    
    <category term="开发运维" scheme="https://cagedbird.cn/categories/%E5%BC%80%E5%8F%91%E8%BF%90%E7%BB%B4/"/>
    
    <category term="服务器运维" scheme="https://cagedbird.cn/categories/%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%BF%90%E7%BB%B4/"/>
    
    <category term="网络与安全" scheme="https://cagedbird.cn/categories/%E7%BD%91%E7%BB%9C%E4%B8%8E%E5%AE%89%E5%85%A8/"/>
    
    
    <category term="sing-box" scheme="https://cagedbird.cn/tags/sing-box/"/>
    
    <category term="Android" scheme="https://cagedbird.cn/tags/Android/"/>
    
    <category term="KDE Connect" scheme="https://cagedbird.cn/tags/KDE-Connect/"/>
    
    <category term="Tailscale" scheme="https://cagedbird.cn/tags/Tailscale/"/>
    
    <category term="Headscale" scheme="https://cagedbird.cn/tags/Headscale/"/>
    
    <category term="Tailnet" scheme="https://cagedbird.cn/tags/Tailnet/"/>
    
    <category term="网络排障" scheme="https://cagedbird.cn/tags/%E7%BD%91%E7%BB%9C%E6%8E%92%E9%9A%9C/"/>
    
    <category term="开源贡献" scheme="https://cagedbird.cn/tags/%E5%BC%80%E6%BA%90%E8%B4%A1%E7%8C%AE/"/>
    
  </entry>
  
  <entry>
    <title>香橙派5 Pro Wi‑Fi修复实录：从 brcmfmac 掉频到 BCMDHD 稳定 5GHz</title>
    <link href="https://cagedbird.cn/2026/04/11/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/%E5%B5%8C%E5%85%A5%E5%BC%8F%E5%BC%80%E5%8F%91/%E9%A6%99%E6%A9%99%E6%B4%BE5Pro-WiFi%E4%BF%AE%E5%A4%8D%E5%AE%9E%E5%BD%95%EF%BC%9A%E4%BB%8E-brcmfmac-%E6%8E%89%E9%A2%91%E5%88%B0-BCMDHD-%E7%A8%B3%E5%AE%9A5GHz/"/>
    <id>https://cagedbird.cn/2026/04/11/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/%E5%B5%8C%E5%85%A5%E5%BC%8F%E5%BC%80%E5%8F%91/%E9%A6%99%E6%A9%99%E6%B4%BE5Pro-WiFi%E4%BF%AE%E5%A4%8D%E5%AE%9E%E5%BD%95%EF%BC%9A%E4%BB%8E-brcmfmac-%E6%8E%89%E9%A2%91%E5%88%B0-BCMDHD-%E7%A8%B3%E5%AE%9A5GHz/</id>
    <published>2026-04-11T18:20:00.000Z</published>
    <updated>2026-05-27T07:23:41.356Z</updated>
    
    
    <summary type="html">&lt;p&gt;这次记录一场非常典型、也非常折磨人的开发板无线网络排障：&lt;strong&gt;Orange Pi 5 Pro 在 &lt;code&gt;Joshua-Riek/ubuntu-rockchip&lt;/code&gt; 系统上，开机后短暂能连 5GHz，但几分钟内就会掉回 WORLD &amp;#x2F; 只剩 2.4GHz，最终断网。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;最后真正的解法，不是继续在路由器、DFS、DNS、翻墙环境上兜圈子，而是把这块板子的 Wi‑Fi 驱动路径从 &lt;code&gt;brcmfmac&lt;/code&gt; 切到 &lt;strong&gt;&lt;code&gt;bcmdhd_sdio&lt;/code&gt;&lt;/strong&gt;。&lt;/p&gt;</summary>
    
    
    
    <category term="技术实践" scheme="https://cagedbird.cn/categories/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/"/>
    
    <category term="系统工程" scheme="https://cagedbird.cn/categories/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/"/>
    
    <category term="系统编程" scheme="https://cagedbird.cn/categories/%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/"/>
    
    <category term="嵌入式开发" scheme="https://cagedbird.cn/categories/%E5%B5%8C%E5%85%A5%E5%BC%8F%E5%BC%80%E5%8F%91/"/>
    
    
    <category term="香橙派5Pro" scheme="https://cagedbird.cn/tags/%E9%A6%99%E6%A9%99%E6%B4%BE5Pro/"/>
    
    <category term="RK3588S" scheme="https://cagedbird.cn/tags/RK3588S/"/>
    
    <category term="AP6256" scheme="https://cagedbird.cn/tags/AP6256/"/>
    
    <category term="BCM43456" scheme="https://cagedbird.cn/tags/BCM43456/"/>
    
    <category term="BCMDHD" scheme="https://cagedbird.cn/tags/BCMDHD/"/>
    
    <category term="brcmfmac" scheme="https://cagedbird.cn/tags/brcmfmac/"/>
    
    <category term="WiFi" scheme="https://cagedbird.cn/tags/WiFi/"/>
    
    <category term="Ubuntu-Rockchip" scheme="https://cagedbird.cn/tags/Ubuntu-Rockchip/"/>
    
  </entry>
  
  <entry>
    <title>Just My Socks 性能测试报告 (宁波移动)</title>
    <link href="https://cagedbird.cn/2026/02/12/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E5%BC%80%E5%8F%91%E8%BF%90%E7%BB%B4/%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%BF%90%E7%BB%B4/%E7%BD%91%E7%BB%9C%E4%B8%8E%E5%AE%89%E5%85%A8/Just-My-Socks-%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95%E6%8A%A5%E5%91%8A-%E5%AE%81%E6%B3%A2%E7%A7%BB%E5%8A%A8/"/>
    <id>https://cagedbird.cn/2026/02/12/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E5%BC%80%E5%8F%91%E8%BF%90%E7%BB%B4/%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%BF%90%E7%BB%B4/%E7%BD%91%E7%BB%9C%E4%B8%8E%E5%AE%89%E5%85%A8/Just-My-Socks-%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95%E6%8A%A5%E5%91%8A-%E5%AE%81%E6%B3%A2%E7%A7%BB%E5%8A%A8/</id>
    <published>2026-02-12T12:00:00.000Z</published>
    <updated>2026-05-27T07:23:41.355Z</updated>
    
    
    <summary type="html">&lt;p&gt;对 Just My Socks 各节点在宁波移动网络环境下的实际表现进行测速记录，持续更新。&lt;/p&gt;</summary>
    
    
    
    <category term="技术实践" scheme="https://cagedbird.cn/categories/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/"/>
    
    <category term="开发运维" scheme="https://cagedbird.cn/categories/%E5%BC%80%E5%8F%91%E8%BF%90%E7%BB%B4/"/>
    
    <category term="服务器运维" scheme="https://cagedbird.cn/categories/%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%BF%90%E7%BB%B4/"/>
    
    <category term="网络与安全" scheme="https://cagedbird.cn/categories/%E7%BD%91%E7%BB%9C%E4%B8%8E%E5%AE%89%E5%85%A8/"/>
    
    
    <category term="Just My Socks" scheme="https://cagedbird.cn/tags/Just-My-Socks/"/>
    
    <category term="性能测试" scheme="https://cagedbird.cn/tags/%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/"/>
    
    <category term="网络优化" scheme="https://cagedbird.cn/tags/%E7%BD%91%E7%BB%9C%E4%BC%98%E5%8C%96/"/>
    
    <category term="Shadowsocks" scheme="https://cagedbird.cn/tags/Shadowsocks/"/>
    
    <category term="VMess" scheme="https://cagedbird.cn/tags/VMess/"/>
    
  </entry>
  
  <entry>
    <title>香橙派5 Pro UMS刷机全流程（含进度条）</title>
    <link href="https://cagedbird.cn/2026/02/06/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/%E5%B5%8C%E5%85%A5%E5%BC%8F%E5%BC%80%E5%8F%91/%E9%A6%99%E6%A9%99%E6%B4%BE5Pro-UMS%E5%88%B7%E6%9C%BA%E5%85%A8%E6%B5%81%E7%A8%8B%EF%BC%88%E5%90%AB%E8%BF%9B%E5%BA%A6%E6%9D%A1%EF%BC%89/"/>
    <id>https://cagedbird.cn/2026/02/06/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/%E5%B5%8C%E5%85%A5%E5%BC%8F%E5%BC%80%E5%8F%91/%E9%A6%99%E6%A9%99%E6%B4%BE5Pro-UMS%E5%88%B7%E6%9C%BA%E5%85%A8%E6%B5%81%E7%A8%8B%EF%BC%88%E5%90%AB%E8%BF%9B%E5%BA%A6%E6%9D%A1%EF%BC%89/</id>
    <published>2026-02-06T12:55:00.000Z</published>
    <updated>2026-05-27T07:23:41.356Z</updated>
    
    
    <summary type="html">&lt;p&gt;这篇是给未来的自己留的完整流程：当香橙派5 Pro（或其他 RK3588 板子）系统内核玩坏后，如何通过 &lt;strong&gt;U-Boot 的 UMS 模式&lt;/strong&gt;，在电脑侧用 &lt;code&gt;dd&lt;/code&gt; 直接重刷整盘镜像。&lt;/p&gt;</summary>
    
    
    
    <category term="技术实践" scheme="https://cagedbird.cn/categories/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/"/>
    
    <category term="系统工程" scheme="https://cagedbird.cn/categories/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/"/>
    
    <category term="系统编程" scheme="https://cagedbird.cn/categories/%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/"/>
    
    <category term="嵌入式开发" scheme="https://cagedbird.cn/categories/%E5%B5%8C%E5%85%A5%E5%BC%8F%E5%BC%80%E5%8F%91/"/>
    
    
    <category term="香橙派5Pro" scheme="https://cagedbird.cn/tags/%E9%A6%99%E6%A9%99%E6%B4%BE5Pro/"/>
    
    <category term="RK3588" scheme="https://cagedbird.cn/tags/RK3588/"/>
    
    <category term="U-Boot" scheme="https://cagedbird.cn/tags/U-Boot/"/>
    
    <category term="UMS" scheme="https://cagedbird.cn/tags/UMS/"/>
    
    <category term="NoMachine" scheme="https://cagedbird.cn/tags/NoMachine/"/>
    
    <category term="Headless" scheme="https://cagedbird.cn/tags/Headless/"/>
    
    <category term="刷机" scheme="https://cagedbird.cn/tags/%E5%88%B7%E6%9C%BA/"/>
    
    <category term="dd" scheme="https://cagedbird.cn/tags/dd/"/>
    
    <category term="pv" scheme="https://cagedbird.cn/tags/pv/"/>
    
  </entry>
  
  <entry>
    <title>Mice-Tailor-Infra 进化论（三）：从二进制到基础设施 —— IaC 视角下的 Sing-box 治理</title>
    <link href="https://cagedbird.cn/2026/01/02/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/IaC/Sing-box-%E6%B2%BB%E7%90%86%E5%AE%9E%E8%B7%B5/"/>
    <id>https://cagedbird.cn/2026/01/02/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/IaC/Sing-box-%E6%B2%BB%E7%90%86%E5%AE%9E%E8%B7%B5/</id>
    <published>2026-01-02T15:59:00.000Z</published>
    <updated>2026-05-27T07:23:41.356Z</updated>
    
    
    <summary type="html">&lt;h3 id=&quot;引子：告别“纯手工”时代&quot;&gt;&lt;a href=&quot;#引子：告别“纯手工”时代&quot; class=&quot;headerlink&quot; title=&quot;引子：告别“纯手工”时代&quot;&gt;&lt;/a&gt;引子：告别“纯手工”时代&lt;/h3&gt;&lt;p&gt;如果你也是一名 Android 玩机爱好者，你一定经历过这样的痛苦：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;机场订阅更新了，得手动去复制链接、更新配置、重启服务。&lt;/li&gt;
&lt;li&gt;想要微调一个分流规则，得在手机那个局促的编辑器里改几十行 JSON。&lt;/li&gt;
&lt;li&gt;换了台手机，所有的分流逻辑又要重写一遍。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;在 Mice-Tailor-Infra 的世界里，这种低效的操作是不被允许的。既然我们已经有了准时的调度（MiceTimer）和高质量的数据（FCM-Hosts-Next），那么最后一步就是：&lt;strong&gt;将 Sing-box 运行环境彻底基础设施化。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;今天我们要聊的是：如何用 &lt;strong&gt;Infrastructure as Code (IaC)&lt;/strong&gt; 的思想，重构 Android 端的网络治理。&lt;/p&gt;</summary>
    
    
    
    <category term="技术实践" scheme="https://cagedbird.cn/categories/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/"/>
    
    <category term="系统工程" scheme="https://cagedbird.cn/categories/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/"/>
    
    <category term="IaC" scheme="https://cagedbird.cn/categories/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/IaC/"/>
    
    
    <category term="Sing-box" scheme="https://cagedbird.cn/tags/Sing-box/"/>
    
    <category term="Infrastructure-as-Code" scheme="https://cagedbird.cn/tags/Infrastructure-as-Code/"/>
    
    <category term="Shell" scheme="https://cagedbird.cn/tags/Shell/"/>
    
    <category term="Android" scheme="https://cagedbird.cn/tags/Android/"/>
    
    <category term="Mice-Tailor-Infra" scheme="https://cagedbird.cn/tags/Mice-Tailor-Infra/"/>
    
  </entry>
  
  <entry>
    <title>Mice-Tailor-Infra 进化论（二）：数据炼金术 —— 揭秘 FCM-Hosts-Next 的自动化工厂</title>
    <link href="https://cagedbird.cn/2026/01/02/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/%E8%87%AA%E5%8A%A8%E5%8C%96/FCM-Hosts-Next-%E7%82%BC%E9%87%91%E6%9C%AF/"/>
    <id>https://cagedbird.cn/2026/01/02/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/%E8%87%AA%E5%8A%A8%E5%8C%96/FCM-Hosts-Next-%E7%82%BC%E9%87%91%E6%9C%AF/</id>
    <published>2026-01-02T15:30:00.000Z</published>
    <updated>2026-05-27T07:23:41.356Z</updated>
    
    
    <summary type="html">&lt;h3 id=&quot;引子：域名再美，数据不活也是徒劳&quot;&gt;&lt;a href=&quot;#引子：域名再美，数据不活也是徒劳&quot; class=&quot;headerlink&quot; title=&quot;引子：域名再美，数据不活也是徒劳&quot;&gt;&lt;/a&gt;引子：域名再美，数据不活也是徒劳&lt;/h3&gt;&lt;p&gt;在上一篇《MiceTimer 诞生记》中，我们解决了 Android 端的“执行确定性”问题。但很快，另一个更底层的问题浮出水面：&lt;strong&gt;如果你的 Hosts 数据本身就是腐烂的，那么再准时的唤醒也只是在搬运垃圾。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;市面上大多数 FCM 优化方案都死在了“数据源”上：要么是几个月更新一次的静态文件，要么是简单粗暴的全局 Ping 扫描。&lt;/p&gt;
&lt;p&gt;在 Mice-Tailor-Infra 的哲学里，数据不应该是“捡”来的，而应该是“炼”出来的。今天我们拆解这套全自动化的数据工厂：&lt;strong&gt;FCM-Hosts-Next&lt;/strong&gt;。&lt;/p&gt;</summary>
    
    
    
    <category term="技术实践" scheme="https://cagedbird.cn/categories/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/"/>
    
    <category term="系统工程" scheme="https://cagedbird.cn/categories/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/"/>
    
    <category term="自动化" scheme="https://cagedbird.cn/categories/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/%E8%87%AA%E5%8A%A8%E5%8C%96/"/>
    
    
    <category term="DNS" scheme="https://cagedbird.cn/tags/DNS/"/>
    
    <category term="Mice-Tailor-Infra" scheme="https://cagedbird.cn/tags/Mice-Tailor-Infra/"/>
    
    <category term="Python" scheme="https://cagedbird.cn/tags/Python/"/>
    
    <category term="FCM" scheme="https://cagedbird.cn/tags/FCM/"/>
    
    <category term="协议分析" scheme="https://cagedbird.cn/tags/%E5%8D%8F%E8%AE%AE%E5%88%86%E6%9E%90/"/>
    
  </entry>
  
  <entry>
    <title>MiceTimer 诞生记：Android 深度睡眠下的“夺命连环扣”</title>
    <link href="https://cagedbird.cn/2026/01/02/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/Android/MiceTimer%E8%AF%9E%E7%94%9F%E8%AE%B0/"/>
    <id>https://cagedbird.cn/2026/01/02/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/Android/MiceTimer%E8%AF%9E%E7%94%9F%E8%AE%B0/</id>
    <published>2026-01-02T15:00:00.000Z</published>
    <updated>2026-05-27T07:23:41.356Z</updated>
    
    
    <summary type="html">&lt;h3 id=&quot;序言：索然无味的“稳定”&quot;&gt;&lt;a href=&quot;#序言：索然无味的“稳定”&quot; class=&quot;headerlink&quot; title=&quot;序言：索然无味的“稳定”&quot;&gt;&lt;/a&gt;序言：索然无味的“稳定”&lt;/h3&gt;&lt;p&gt;最近我的 FCM 连接时间稳定得让人有些想打呵欠。Time connected 长期维持在 1.5 小时以上，重连几乎是秒级完成。在玩机圈摸爬滚打这么久，我深知这种“索然无味”背后的含义：&lt;strong&gt;基础设施的边界情况被彻底堵死了。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;但在几天前，情况完全不是这样。&lt;/p&gt;
&lt;p&gt;那时候，我还在依赖最原始的 Shell 脚本配合 &lt;code&gt;while true; sleep 1h&lt;/code&gt; 来更新 FCM Hosts。我本以为这很稳，直到我发现：每当我晚上睡觉放下手机，早起一看，Hosts 的同步记录竟然断了五六个小时。&lt;/p&gt;
&lt;p&gt;这时候我才意识到，我掉进了 Android 系统那个深不可测的“休眠黑洞”。&lt;/p&gt;</summary>
    
    
    
    <category term="技术实践" scheme="https://cagedbird.cn/categories/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/"/>
    
    <category term="系统工程" scheme="https://cagedbird.cn/categories/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/"/>
    
    <category term="系统编程" scheme="https://cagedbird.cn/categories/%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/"/>
    
    <category term="Android" scheme="https://cagedbird.cn/categories/Android/"/>
    
    
    <category term="Android" scheme="https://cagedbird.cn/tags/Android/"/>
    
    <category term="KernelSU" scheme="https://cagedbird.cn/tags/KernelSU/"/>
    
    <category term="Rust" scheme="https://cagedbird.cn/tags/Rust/"/>
    
    <category term="MiceTimer" scheme="https://cagedbird.cn/tags/MiceTimer/"/>
    
    <category term="性能工程" scheme="https://cagedbird.cn/tags/%E6%80%A7%E8%83%BD%E5%B7%A5%E7%A8%8B/"/>
    
  </entry>
  
  <entry>
    <title>告别求人：一种FCM推送的终极自测方案</title>
    <link href="https://cagedbird.cn/2025/12/07/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E5%BC%80%E5%8F%91%E8%BF%90%E7%BB%B4/%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/%E7%A7%BB%E5%8A%A8%E7%AB%AF/%E5%91%8A%E5%88%AB%E6%B1%82%E4%BA%BA%EF%BC%9AFCM-%E6%8E%A8%E9%80%81%E7%BB%88%E6%9E%81%E8%87%AA%E6%B5%8B%E6%96%B9%E6%A1%88-Telegram-Bot-%E7%AF%87/"/>
    <id>https://cagedbird.cn/2025/12/07/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E5%BC%80%E5%8F%91%E8%BF%90%E7%BB%B4/%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/%E7%A7%BB%E5%8A%A8%E7%AB%AF/%E5%91%8A%E5%88%AB%E6%B1%82%E4%BA%BA%EF%BC%9AFCM-%E6%8E%A8%E9%80%81%E7%BB%88%E6%9E%81%E8%87%AA%E6%B5%8B%E6%96%B9%E6%A1%88-Telegram-Bot-%E7%AF%87/</id>
    <published>2025-12-07T11:45:15.000Z</published>
    <updated>2026-05-27T07:23:41.344Z</updated>
    
    
    <summary type="html">&lt;h2 id=&quot;背景&quot;&gt;&lt;a href=&quot;#背景&quot; class=&quot;headerlink&quot; title=&quot;背景&quot;&gt;&lt;/a&gt;背景&lt;/h2&gt;&lt;p&gt;在 Root 或使用各类后台管理工具（如墓碑、NoActive 等）后，验证 FCM 推送是否正常工作是一个常见痛点。传统方法依赖他人发送消息，效率低下且不确定。本文提供一种利用 Telegram Bot API 实现的、完全自主的 FCM 推送测试方案。&lt;/p&gt;
&lt;p&gt;该方案旨在模拟 App 进程被杀或进入后台限制后，依赖 FCM 唤醒并接收消息的场景。&lt;/p&gt;</summary>
    
    
    
    <category term="技术实践" scheme="https://cagedbird.cn/categories/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/"/>
    
    <category term="开发运维" scheme="https://cagedbird.cn/categories/%E5%BC%80%E5%8F%91%E8%BF%90%E7%BB%B4/"/>
    
    <category term="开发环境" scheme="https://cagedbird.cn/categories/%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/"/>
    
    <category term="移动端" scheme="https://cagedbird.cn/categories/%E7%A7%BB%E5%8A%A8%E7%AB%AF/"/>
    
    
    <category term="Android" scheme="https://cagedbird.cn/tags/Android/"/>
    
    <category term="FCM" scheme="https://cagedbird.cn/tags/FCM/"/>
    
    <category term="Root" scheme="https://cagedbird.cn/tags/Root/"/>
    
    <category term="Telegram" scheme="https://cagedbird.cn/tags/Telegram/"/>
    
    <category term="KernelSU" scheme="https://cagedbird.cn/tags/KernelSU/"/>
    
    <category term="自动化" scheme="https://cagedbird.cn/tags/%E8%87%AA%E5%8A%A8%E5%8C%96/"/>
    
  </entry>
  
  <entry>
    <title>GitLab生产环境无损升级与CI/CD终极排障实录（v14至v18）</title>
    <link href="https://cagedbird.cn/2025/11/30/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E5%BC%80%E5%8F%91%E8%BF%90%E7%BB%B4/%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%BF%90%E7%BB%B4/GitLab%E4%B8%8ECI/GitLab%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E6%97%A0%E6%8D%9F%E5%8D%87%E7%BA%A7%E4%B8%8ECI-CD%E7%BB%88%E6%9E%81%E6%8E%92%E9%9A%9C%E5%AE%9E%E5%BD%95%EF%BC%88v14%E8%87%B3v18%EF%BC%89/"/>
    <id>https://cagedbird.cn/2025/11/30/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E5%BC%80%E5%8F%91%E8%BF%90%E7%BB%B4/%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%BF%90%E7%BB%B4/GitLab%E4%B8%8ECI/GitLab%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E6%97%A0%E6%8D%9F%E5%8D%87%E7%BA%A7%E4%B8%8ECI-CD%E7%BB%88%E6%9E%81%E6%8E%92%E9%9A%9C%E5%AE%9E%E5%BD%95%EF%BC%88v14%E8%87%B3v18%EF%BC%89/</id>
    <published>2025-11-30T08:37:41.000Z</published>
    <updated>2026-05-27T07:23:41.355Z</updated>
    
    
    <summary type="html">&lt;h1 id=&quot;实战：GitLab-从-v14-到-v18-的跨版本无损升级与-CI-CD-终极排障&quot;&gt;&lt;a href=&quot;#实战：GitLab-从-v14-到-v18-的跨版本无损升级与-CI-CD-终极排障&quot; class=&quot;headerlink&quot; title=&quot;实战：GitLab 从 v14 到 v18 的跨版本无损升级与 CI&amp;#x2F;CD 终极排障&quot;&gt;&lt;/a&gt;实战：GitLab 从 v14 到 v18 的跨版本无损升级与 CI&amp;#x2F;CD 终极排障&lt;/h1&gt;&lt;h2 id=&quot;1-背景：偿还四年技术债&quot;&gt;&lt;a href=&quot;#1-背景：偿还四年技术债&quot; class=&quot;headerlink&quot; title=&quot;1. 背景：偿还四年技术债&quot;&gt;&lt;/a&gt;1. 背景：偿还四年技术债&lt;/h2&gt;&lt;p&gt;本文记录了将一台生产环境 GitLab 社区版 (CE) 从 &lt;code&gt;v14.6.1&lt;/code&gt; (2021 年) 跨越 4 个大版本，无损升级至最新稳定版 &lt;strong&gt;&lt;code&gt;v18.5.0&lt;/code&gt; 极狐版 (JiHu)&lt;/strong&gt; 的全流程。本次升级旨在解决旧版本安全漏洞、利用新版效能分析工具进行工作量量化，并实现架构现代化 (IaC)。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;核心挑战：&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;数据库复杂迁移&lt;/strong&gt;：需执行两次数据库引擎大版本升级（PostgreSQL 12 -&amp;gt; 13 -&amp;gt; 16）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;网络协议冲突&lt;/strong&gt;：解决 Docker Compose 内部网络与外部 Nginx 反向代理之间的 HTTPS&amp;#x2F;HTTP 协议冲突。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Runner 兼容性&lt;/strong&gt;：修复 GitLab 18 对旧 Runner 注册信息及 &lt;code&gt;session_server&lt;/code&gt; 的底层 Bug。&lt;/li&gt;
&lt;/ol&gt;</summary>
    
    
    
    <category term="技术实践" scheme="https://cagedbird.cn/categories/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/"/>
    
    <category term="开发运维" scheme="https://cagedbird.cn/categories/%E5%BC%80%E5%8F%91%E8%BF%90%E7%BB%B4/"/>
    
    <category term="服务器运维" scheme="https://cagedbird.cn/categories/%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%BF%90%E7%BB%B4/"/>
    
    <category term="GitLab与CI" scheme="https://cagedbird.cn/categories/GitLab%E4%B8%8ECI/"/>
    
    
    <category term="GitLab" scheme="https://cagedbird.cn/tags/GitLab/"/>
    
    <category term="CI/CD" scheme="https://cagedbird.cn/tags/CI-CD/"/>
    
    <category term="DevOps" scheme="https://cagedbird.cn/tags/DevOps/"/>
    
    <category term="SRE" scheme="https://cagedbird.cn/tags/SRE/"/>
    
    <category term="Docker Compose" scheme="https://cagedbird.cn/tags/Docker-Compose/"/>
    
    <category term="PostgreSQL" scheme="https://cagedbird.cn/tags/PostgreSQL/"/>
    
  </entry>
  
  <entry>
    <title>一种优雅的开发环境洁癖解决方案</title>
    <link href="https://cagedbird.cn/2025/11/13/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E5%BC%80%E5%8F%91%E8%BF%90%E7%BB%B4/%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/%E4%B8%80%E7%A7%8D%E4%BC%98%E9%9B%85%E7%9A%84%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%B4%81%E7%99%96%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88-md/"/>
    <id>https://cagedbird.cn/2025/11/13/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E5%BC%80%E5%8F%91%E8%BF%90%E7%BB%B4/%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/%E4%B8%80%E7%A7%8D%E4%BC%98%E9%9B%85%E7%9A%84%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%B4%81%E7%99%96%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88-md/</id>
    <published>2025-11-13T09:38:57.000Z</published>
    <updated>2026-05-27T07:23:41.343Z</updated>
    
    
    <summary type="html">&lt;p&gt;我是一个有“洁癖”的工程师。我无法忍受我的源代码目录里，混杂着 &lt;code&gt;__pycache__&lt;/code&gt;、&lt;code&gt;.pytest_cache&lt;/code&gt;，以及各种虚拟环境工具（如 &lt;code&gt;.venv&lt;/code&gt;, &lt;code&gt;.pixi&lt;/code&gt;）生成的、动辄几百 MB 的“垃圾”。&lt;code&gt;.gitignore&lt;/code&gt; 是一个伟大的发明，但它只是“眼不见为净”——这些文件依然物理地躺在我的项目文件夹里。&lt;/p&gt;
&lt;p&gt;这在平时没什么，但当某些场景出现时，这种“同居”状态就变得无法忍受。比如，我最近在用一个自研的 &lt;code&gt;snapshot&lt;/code&gt; 工具，它是一个 Web 应用，是通过文件上传弹窗来选择项目目录用来生产 AI 可以消费的&lt;code&gt;snapshot.md&lt;/code&gt;文件用于通过 ai 迅速了解一个项目的大概情况并让 ai 获悉项目的结构和细节等信息的工具，并且可以递归解析.gitignore 文件并为每个文件夹独立解析。问题来了：&lt;strong&gt;浏览器和 Node.js 的文件 API，根本不鸟 &lt;code&gt;.gitignore&lt;/code&gt;！&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;每次为了生成一个干净的代码快照，我都必须手动地、临时地将 &lt;code&gt;.pixi&lt;/code&gt; 文件夹移出去，完事后再移回来。这太蠢了，不仅麻烦，而且极易出错。我忍不了了。我必须找到一个一劳永逸的解决方案。&lt;/p&gt;</summary>
    
    
    
    <category term="技术实践" scheme="https://cagedbird.cn/categories/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/"/>
    
    <category term="开发运维" scheme="https://cagedbird.cn/categories/%E5%BC%80%E5%8F%91%E8%BF%90%E7%BB%B4/"/>
    
    <category term="开发环境" scheme="https://cagedbird.cn/categories/%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/"/>
    
    
  </entry>
  
  <entry>
    <title>PIPA-rs 开发手记 (三)：从 strace 开始的正确构建</title>
    <link href="https://cagedbird.cn/2025/10/05/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/Rust%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/PIPA-rs%E5%BC%80%E5%8F%91%E6%89%8B%E8%AE%B0/PIPA-rs-%E5%BC%80%E5%8F%91%E6%89%8B%E8%AE%B0-%E4%B8%89-%EF%BC%9A%E4%BB%8E-strace-%E5%BC%80%E5%A7%8B%E7%9A%84%E6%AD%A3%E7%A1%AE%E6%9E%84%E5%BB%BA/"/>
    <id>https://cagedbird.cn/2025/10/05/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/Rust%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/PIPA-rs%E5%BC%80%E5%8F%91%E6%89%8B%E8%AE%B0/PIPA-rs-%E5%BC%80%E5%8F%91%E6%89%8B%E8%AE%B0-%E4%B8%89-%EF%BC%9A%E4%BB%8E-strace-%E5%BC%80%E5%A7%8B%E7%9A%84%E6%AD%A3%E7%A1%AE%E6%9E%84%E5%BB%BA/</id>
    <published>2025-10-05T11:10:11.000Z</published>
    <updated>2026-05-27T07:23:41.356Z</updated>
    
    
    <summary type="html">&lt;p&gt;在上一篇，我们用 &lt;code&gt;crossterm&lt;/code&gt; 绘制出了一个专业的 TUI 界面。现在，是时候挑战 PIPA-rs 的真正核心了：实现 &lt;code&gt;pipa-rs stat -- &amp;lt;command&amp;gt;&lt;/code&gt;，一个 &lt;code&gt;perf stat&lt;/code&gt; 的原生替代品。&lt;/p&gt;
&lt;p&gt;这意味着，我们要直面 &lt;code&gt;perf_event_open&lt;/code&gt; 这个系统调用，去精确测量一个外部命令从生到死的完整生命周期。&lt;/p&gt;
&lt;p&gt;前期的探索，虽然没有产生一行可用的代码，但却留下了一份极其宝贵的财富：&lt;strong&gt;一份详尽的“此路不通”的地图。&lt;/strong&gt; 它用 &lt;code&gt;ptrace&lt;/code&gt; 和信号的失败告诉我们，任何试图在用户态通过复杂技巧来模拟内核级同步的方案，都是在与操作系统的底层调度作对，这是一场注定会失败的战争。&lt;/p&gt;
&lt;p&gt;所以，这次我们不是在收拾烂摊子。我们怀揣着“排除法得来的宝贵知识”，进行了一次目标明确的、从零开始的正确构建。我们的任务，从“发明创造”，转变成了“&lt;strong&gt;探索发现&lt;/strong&gt;”。&lt;/p&gt;</summary>
    
    
    
    <category term="技术实践" scheme="https://cagedbird.cn/categories/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/"/>
    
    <category term="系统工程" scheme="https://cagedbird.cn/categories/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/"/>
    
    <category term="系统编程" scheme="https://cagedbird.cn/categories/%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/"/>
    
    <category term="Rust系统编程" scheme="https://cagedbird.cn/categories/Rust%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/"/>
    
    <category term="PIPA-rs开发手记" scheme="https://cagedbird.cn/categories/PIPA-rs%E5%BC%80%E5%8F%91%E6%89%8B%E8%AE%B0/"/>
    
    
    <category term="Linux" scheme="https://cagedbird.cn/tags/Linux/"/>
    
    <category term="系统编程" scheme="https://cagedbird.cn/tags/%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/"/>
    
    <category term="Rust" scheme="https://cagedbird.cn/tags/Rust/"/>
    
    <category term="perf_event" scheme="https://cagedbird.cn/tags/perf-event/"/>
    
    <category term="strace" scheme="https://cagedbird.cn/tags/strace/"/>
    
  </entry>
  
  <entry>
    <title>PIPA-rs 开发手记 (二)：从 /proc 文件到 TUI，一次关于“可信度”的修行</title>
    <link href="https://cagedbird.cn/2025/10/05/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/Rust%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/PIPA-rs%E5%BC%80%E5%8F%91%E6%89%8B%E8%AE%B0/PIPA-rs-%E5%BC%80%E5%8F%91%E6%89%8B%E8%AE%B0-%E4%BA%8C-%EF%BC%9A%E4%BB%8E-proc-%E6%96%87%E4%BB%B6%E5%88%B0-TUI%EF%BC%8C%E4%B8%80%E6%AC%A1%E5%85%B3%E4%BA%8E%E2%80%9C%E5%8F%AF%E4%BF%A1%E5%BA%A6%E2%80%9D%E7%9A%84%E4%BF%AE%E8%A1%8C/"/>
    <id>https://cagedbird.cn/2025/10/05/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/Rust%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/PIPA-rs%E5%BC%80%E5%8F%91%E6%89%8B%E8%AE%B0/PIPA-rs-%E5%BC%80%E5%8F%91%E6%89%8B%E8%AE%B0-%E4%BA%8C-%EF%BC%9A%E4%BB%8E-proc-%E6%96%87%E4%BB%B6%E5%88%B0-TUI%EF%BC%8C%E4%B8%80%E6%AC%A1%E5%85%B3%E4%BA%8E%E2%80%9C%E5%8F%AF%E4%BF%A1%E5%BA%A6%E2%80%9D%E7%9A%84%E4%BF%AE%E8%A1%8C/</id>
    <published>2025-10-05T10:14:59.000Z</published>
    <updated>2026-05-27T07:23:41.356Z</updated>
    
    
    <summary type="html">&lt;p&gt;在上一篇手记中，我们为 PIPA-rs 搭建了一副坚固的“骨架”——一个自律的、自动化的工程框架。现在，是时候为这副骨架注入第一股“生命力”了。我们的目标是：深入 &lt;code&gt;pipa_collector&lt;/code&gt;，从零开始实现对系统核心指标的采集，并构建一个基础的 TUI 监控工具，作为 &lt;code&gt;sar&lt;/code&gt; 和 &lt;code&gt;top&lt;/code&gt; 的一个微型替代品。&lt;/p&gt;
&lt;p&gt;有人可能会问，Linux 上有那么多现成的工具和 &lt;code&gt;crate&lt;/code&gt;，为什么非要选择一条最“难”的路——直接去解析 &lt;code&gt;/proc&lt;/code&gt; 文件系统？&lt;/p&gt;
&lt;p&gt;答案很简单，它源于 PIPA-rs 的核心理念：“零外部二进制依赖”和“超可靠”。我们不希望 PIPA-rs 的可靠性建立在对 &lt;code&gt;sar&lt;/code&gt; 命令输出格式的脆弱假设上。我们希望直接与内核提供的数据源对话，并用自己的代码来保证每一次解析的健壮性。这不仅仅是重新造轮子，更是一次关于构建“可信度”的修行。&lt;/p&gt;</summary>
    
    
    
    <category term="技术实践" scheme="https://cagedbird.cn/categories/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/"/>
    
    <category term="系统工程" scheme="https://cagedbird.cn/categories/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/"/>
    
    <category term="系统编程" scheme="https://cagedbird.cn/categories/%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/"/>
    
    <category term="Rust系统编程" scheme="https://cagedbird.cn/categories/Rust%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/"/>
    
    <category term="PIPA-rs开发手记" scheme="https://cagedbird.cn/categories/PIPA-rs%E5%BC%80%E5%8F%91%E6%89%8B%E8%AE%B0/"/>
    
    
    <category term="Linux" scheme="https://cagedbird.cn/tags/Linux/"/>
    
    <category term="系统编程" scheme="https://cagedbird.cn/tags/%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/"/>
    
    <category term="Rust" scheme="https://cagedbird.cn/tags/Rust/"/>
    
    <category term="TUI" scheme="https://cagedbird.cn/tags/TUI/"/>
    
    <category term="测试驱动开发" scheme="https://cagedbird.cn/tags/%E6%B5%8B%E8%AF%95%E9%A9%B1%E5%8A%A8%E5%BC%80%E5%8F%91/"/>
    
  </entry>
  
  <entry>
    <title>PIPA-rs 开发手记 (一)：从 Workspace 到 CI，一个“自律”框架的诞生</title>
    <link href="https://cagedbird.cn/2025/10/05/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/Rust%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/PIPA-rs%E5%BC%80%E5%8F%91%E6%89%8B%E8%AE%B0/PIPA-rs-%E5%BC%80%E5%8F%91%E6%89%8B%E8%AE%B0-%E4%B8%80-%EF%BC%9A%E4%BB%8E-Workspace-%E5%88%B0-CI%EF%BC%8C%E4%B8%80%E4%B8%AA%E2%80%9C%E8%87%AA%E5%BE%8B%E2%80%9D%E6%A1%86%E6%9E%B6%E7%9A%84%E8%AF%9E%E7%94%9F/"/>
    <id>https://cagedbird.cn/2025/10/05/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/Rust%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/PIPA-rs%E5%BC%80%E5%8F%91%E6%89%8B%E8%AE%B0/PIPA-rs-%E5%BC%80%E5%8F%91%E6%89%8B%E8%AE%B0-%E4%B8%80-%EF%BC%9A%E4%BB%8E-Workspace-%E5%88%B0-CI%EF%BC%8C%E4%B8%80%E4%B8%AA%E2%80%9C%E8%87%AA%E5%BE%8B%E2%80%9D%E6%A1%86%E6%9E%B6%E7%9A%84%E8%AF%9E%E7%94%9F/</id>
    <published>2025-10-05T09:23:46.000Z</published>
    <updated>2026-05-27T07:23:41.356Z</updated>
    
    
    <summary type="html">&lt;p&gt;开新坑了。这次，我想从零开始，用 Rust 认真地做一个原生的 Linux 性能分析工具链——&lt;code&gt;PIPA-rs&lt;/code&gt;。这不仅是对经典 PIPA 项目的一次重塑，也是我个人在系统编程领域的一次深度探索。&lt;/p&gt;
&lt;p&gt;但今天这第一篇，我们不聊 &lt;code&gt;perf_event_open&lt;/code&gt; 的底层魔法，也不谈 &lt;code&gt;/proc&lt;/code&gt; 文件系统的精妙。在写下第一行真正的业务逻辑之前，我想先聊聊那些“看不见”的东西：项目的工程化基础。&lt;/p&gt;
&lt;p&gt;很多人（包括曾经的我）在开始一个新项目时，总是迫不及待地 &lt;code&gt;cargo new&lt;/code&gt; 然后一头扎进 &lt;code&gt;main.rs&lt;/code&gt;。但这次，我决定反其道而行之。我要为 PIPA-rs 搭建一个“世界级”的工程基础。这听起来有点空，甚至有点“过度工程”的嫌疑，但一个可靠的工具，必须诞生于一个可靠的摇篮。这个摇篮，关乎开发纪律、自动化，以及在未来漫长的迭代中，我们是否还能保持从容。&lt;/p&gt;
&lt;p&gt;所以，这篇手记，就从我们的第一块基石开始：如何搭建一个“自律”的 Rust 项目框架，以及我们在 CI&amp;#x2F;CD 自动化之路上，踩过的那些坑和最终找到的光。&lt;/p&gt;</summary>
    
    
    
    <category term="技术实践" scheme="https://cagedbird.cn/categories/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/"/>
    
    <category term="系统工程" scheme="https://cagedbird.cn/categories/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/"/>
    
    <category term="系统编程" scheme="https://cagedbird.cn/categories/%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/"/>
    
    <category term="Rust系统编程" scheme="https://cagedbird.cn/categories/Rust%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/"/>
    
    <category term="PIPA-rs开发手记" scheme="https://cagedbird.cn/categories/PIPA-rs%E5%BC%80%E5%8F%91%E6%89%8B%E8%AE%B0/"/>
    
    
    <category term="Linux" scheme="https://cagedbird.cn/tags/Linux/"/>
    
    <category term="CI/CD" scheme="https://cagedbird.cn/tags/CI-CD/"/>
    
    <category term="系统编程" scheme="https://cagedbird.cn/tags/%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/"/>
    
    <category term="Rust" scheme="https://cagedbird.cn/tags/Rust/"/>
    
    <category term="开源" scheme="https://cagedbird.cn/tags/%E5%BC%80%E6%BA%90/"/>
    
  </entry>
  
  <entry>
    <title>我的程序卡在哪里？—— 用火焰图精确定位性能瓶颈</title>
    <link href="https://cagedbird.cn/2025/09/17/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/%E6%80%A7%E8%83%BD%E5%B7%A5%E7%A8%8B/Linux%E6%80%A7%E8%83%BD%E5%88%86%E6%9E%90/%E6%88%91%E7%9A%84%E7%A8%8B%E5%BA%8F%E5%8D%A1%E5%9C%A8%E5%93%AA%E9%87%8C%EF%BC%9F%E2%80%94%E2%80%94-%E7%94%A8%E7%81%AB%E7%84%B0%E5%9B%BE%E7%B2%BE%E7%A1%AE%E5%AE%9A%E4%BD%8D%E6%80%A7%E8%83%BD%E7%93%B6%E9%A2%88/"/>
    <id>https://cagedbird.cn/2025/09/17/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/%E6%80%A7%E8%83%BD%E5%B7%A5%E7%A8%8B/Linux%E6%80%A7%E8%83%BD%E5%88%86%E6%9E%90/%E6%88%91%E7%9A%84%E7%A8%8B%E5%BA%8F%E5%8D%A1%E5%9C%A8%E5%93%AA%E9%87%8C%EF%BC%9F%E2%80%94%E2%80%94-%E7%94%A8%E7%81%AB%E7%84%B0%E5%9B%BE%E7%B2%BE%E7%A1%AE%E5%AE%9A%E4%BD%8D%E6%80%A7%E8%83%BD%E7%93%B6%E9%A2%88/</id>
    <published>2025-09-17T09:51:58.000Z</published>
    <updated>2026-05-27T07:23:41.356Z</updated>
    
    
    <summary type="html">&lt;p&gt;&lt;code&gt;本次环境为Arch Linux，内核版本6.12.46-3-cachyos-lts，perf版本6.16-3&lt;/code&gt;&lt;/p&gt;
&lt;h3 id=&quot;前言：从“健康报告”到“外科手术”&quot;&gt;&lt;a href=&quot;#前言：从“健康报告”到“外科手术”&quot; class=&quot;headerlink&quot; title=&quot;前言：从“健康报告”到“外科手术”&quot;&gt;&lt;/a&gt;前言：从“健康报告”到“外科手术”&lt;/h3&gt;&lt;p&gt;在上一篇文章《&lt;a href=&quot;/2025/09/17/%E6%88%91%E7%9A%84%E7%A8%8B%E5%BA%8F%E4%B8%BA%E4%BB%80%E4%B9%88%E6%85%A2%EF%BC%9F%E2%80%94%E2%80%94-Perf-CPU-%E6%80%A7%E8%83%BD%E5%89%96%E6%9E%90/&quot;&gt;我的程序为什么慢？—— Perf CPU 性能剖析&lt;/a&gt;》中，我们学会了使用 &lt;code&gt;perf stat&lt;/code&gt;。它就像一份体检报告，能告诉我们程序的整体健康状况——IPC 高不高、分支预测准不准。&lt;/p&gt;
&lt;p&gt;但这还不够。如果报告说“指标异常”，我们并不知道问题出在哪个“器官”。&lt;code&gt;perf stat&lt;/code&gt; 告诉我们程序慢了，但它没告诉我们&lt;strong&gt;慢在哪里&lt;/strong&gt;。&lt;/p&gt;</summary>
    
    
    
    <category term="技术实践" scheme="https://cagedbird.cn/categories/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/"/>
    
    <category term="系统工程" scheme="https://cagedbird.cn/categories/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/"/>
    
    <category term="性能工程" scheme="https://cagedbird.cn/categories/%E6%80%A7%E8%83%BD%E5%B7%A5%E7%A8%8B/"/>
    
    <category term="Linux性能分析" scheme="https://cagedbird.cn/categories/Linux%E6%80%A7%E8%83%BD%E5%88%86%E6%9E%90/"/>
    
    
    <category term="Linux" scheme="https://cagedbird.cn/tags/Linux/"/>
    
    <category term="性能分析" scheme="https://cagedbird.cn/tags/%E6%80%A7%E8%83%BD%E5%88%86%E6%9E%90/"/>
    
    <category term="系统编程" scheme="https://cagedbird.cn/tags/%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/"/>
    
    <category term="开源工具" scheme="https://cagedbird.cn/tags/%E5%BC%80%E6%BA%90%E5%B7%A5%E5%85%B7/"/>
    
    <category term="Linux Perf" scheme="https://cagedbird.cn/tags/Linux-Perf/"/>
    
    <category term="perf" scheme="https://cagedbird.cn/tags/perf/"/>
    
  </entry>
  
  <entry>
    <title>我的程序为什么慢？—— Perf CPU 性能剖析</title>
    <link href="https://cagedbird.cn/2025/09/17/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/%E6%80%A7%E8%83%BD%E5%B7%A5%E7%A8%8B/Linux%E6%80%A7%E8%83%BD%E5%88%86%E6%9E%90/%E6%88%91%E7%9A%84%E7%A8%8B%E5%BA%8F%E4%B8%BA%E4%BB%80%E4%B9%88%E6%85%A2%EF%BC%9F%E2%80%94%E2%80%94-Perf-CPU-%E6%80%A7%E8%83%BD%E5%89%96%E6%9E%90/"/>
    <id>https://cagedbird.cn/2025/09/17/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/%E6%80%A7%E8%83%BD%E5%B7%A5%E7%A8%8B/Linux%E6%80%A7%E8%83%BD%E5%88%86%E6%9E%90/%E6%88%91%E7%9A%84%E7%A8%8B%E5%BA%8F%E4%B8%BA%E4%BB%80%E4%B9%88%E6%85%A2%EF%BC%9F%E2%80%94%E2%80%94-Perf-CPU-%E6%80%A7%E8%83%BD%E5%89%96%E6%9E%90/</id>
    <published>2025-09-17T06:57:27.000Z</published>
    <updated>2026-05-27T07:23:41.356Z</updated>
    
    
    <summary type="html">&lt;p&gt;&lt;code&gt;本次环境为Arch Linux，内核版本6.12.46-3-cachyos-lts，perf版本6.16-3&lt;/code&gt;&lt;/p&gt;
&lt;h3 id=&quot;前言：为什么-perf-让人望而生畏？&quot;&gt;&lt;a href=&quot;#前言：为什么-perf-让人望而生畏？&quot; class=&quot;headerlink&quot; title=&quot;前言：为什么 perf 让人望而生畏？&quot;&gt;&lt;/a&gt;前言：为什么 &lt;code&gt;perf&lt;/code&gt; 让人望而生畏？&lt;/h3&gt;&lt;p&gt;&lt;code&gt;perf&lt;/code&gt; 是 Linux 世界中无可争议的性能分析神器。然而，很多开发者（包括曾经的我）在第一次看到 &lt;code&gt;perf stat&lt;/code&gt; 那满屏飞舞的专业术语时，都会感到一丝困惑和畏惧：&lt;code&gt;task-clock&lt;/code&gt;, &lt;code&gt;IPC&lt;/code&gt;, &lt;code&gt;stalled-cycles-frontend&lt;/code&gt;… 这些到底意味着什么？&lt;/p&gt;</summary>
    
    
    
    <category term="技术实践" scheme="https://cagedbird.cn/categories/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/"/>
    
    <category term="系统工程" scheme="https://cagedbird.cn/categories/%E7%B3%BB%E7%BB%9F%E5%B7%A5%E7%A8%8B/"/>
    
    <category term="性能工程" scheme="https://cagedbird.cn/categories/%E6%80%A7%E8%83%BD%E5%B7%A5%E7%A8%8B/"/>
    
    <category term="Linux性能分析" scheme="https://cagedbird.cn/categories/Linux%E6%80%A7%E8%83%BD%E5%88%86%E6%9E%90/"/>
    
    
    <category term="Linux" scheme="https://cagedbird.cn/tags/Linux/"/>
    
    <category term="性能分析" scheme="https://cagedbird.cn/tags/%E6%80%A7%E8%83%BD%E5%88%86%E6%9E%90/"/>
    
    <category term="系统编程" scheme="https://cagedbird.cn/tags/%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/"/>
    
    <category term="开源工具" scheme="https://cagedbird.cn/tags/%E5%BC%80%E6%BA%90%E5%B7%A5%E5%85%B7/"/>
    
    <category term="Linux Perf" scheme="https://cagedbird.cn/tags/Linux-Perf/"/>
    
    <category term="perf" scheme="https://cagedbird.cn/tags/perf/"/>
    
  </entry>
  
  <entry>
    <title>工程师的傲慢与偏见：我那价值2块钱的魔幻一小时</title>
    <link href="https://cagedbird.cn/2025/09/16/%E5%B7%A5%E7%A8%8B%E5%B8%88%E6%BC%AB%E8%B0%88/%E8%81%8C%E4%B8%9A%E6%80%9D%E8%80%83/%E5%B7%A5%E7%A8%8B%E5%B8%88%E7%9A%84%E5%82%B2%E6%85%A2%E4%B8%8E%E5%81%8F%E8%A7%81%EF%BC%9A%E6%88%91%E9%82%A3%E4%BB%B7%E5%80%BC2%E5%9D%97%E9%92%B1%E7%9A%84%E9%AD%94%E5%B9%BB%E4%B8%80%E5%B0%8F%E6%97%B6/"/>
    <id>https://cagedbird.cn/2025/09/16/%E5%B7%A5%E7%A8%8B%E5%B8%88%E6%BC%AB%E8%B0%88/%E8%81%8C%E4%B8%9A%E6%80%9D%E8%80%83/%E5%B7%A5%E7%A8%8B%E5%B8%88%E7%9A%84%E5%82%B2%E6%85%A2%E4%B8%8E%E5%81%8F%E8%A7%81%EF%BC%9A%E6%88%91%E9%82%A3%E4%BB%B7%E5%80%BC2%E5%9D%97%E9%92%B1%E7%9A%84%E9%AD%94%E5%B9%BB%E4%B8%80%E5%B0%8F%E6%97%B6/</id>
    <published>2025-09-16T08:39:23.000Z</published>
    <updated>2026-05-27T07:23:41.343Z</updated>
    
    
    <summary type="html">&lt;h2 id=&quot;2-块钱，我学会了比-异地组网-和-SSH-更重要的一课&quot;&gt;&lt;a href=&quot;#2-块钱，我学会了比-异地组网-和-SSH-更重要的一课&quot; class=&quot;headerlink&quot; title=&quot;2 块钱，我学会了比 异地组网 和 SSH 更重要的一课&quot;&gt;&lt;/a&gt;2 块钱，我学会了比 异地组网 和 SSH 更重要的一课&lt;/h2&gt;&lt;p&gt;今天是我新实习的第二天。&lt;/p&gt;
&lt;p&gt;上午的状态堪称完美，灵感迸发，顺手修复了团队内部工具的几个历史遗留 Bug，提交了几个赏心悦目的 PR。午饭后，我泡了杯咖啡，准备按照计划，深入学习一下性能分析领域的圣经——Brendan Gregg 的&lt;a href=&quot;https://www.brendangregg.com/perf.html&quot;&gt;‘perf’教程&lt;/a&gt;。&lt;/p&gt;</summary>
    
    
    
    <category term="工程师漫谈" scheme="https://cagedbird.cn/categories/%E5%B7%A5%E7%A8%8B%E5%B8%88%E6%BC%AB%E8%B0%88/"/>
    
    <category term="职业思考" scheme="https://cagedbird.cn/categories/%E8%81%8C%E4%B8%9A%E6%80%9D%E8%80%83/"/>
    
    
    <category term="工程师思维" scheme="https://cagedbird.cn/tags/%E5%B7%A5%E7%A8%8B%E5%B8%88%E6%80%9D%E7%BB%B4/"/>
    
    <category term="技术反思" scheme="https://cagedbird.cn/tags/%E6%8A%80%E6%9C%AF%E5%8F%8D%E6%80%9D/"/>
    
    <category term="效率" scheme="https://cagedbird.cn/tags/%E6%95%88%E7%8E%87/"/>
    
    <category term="社会工程学" scheme="https://cagedbird.cn/tags/%E7%A4%BE%E4%BC%9A%E5%B7%A5%E7%A8%8B%E5%AD%A6/"/>
    
    <category term="实习" scheme="https://cagedbird.cn/tags/%E5%AE%9E%E4%B9%A0/"/>
    
    <category term="生活感悟" scheme="https://cagedbird.cn/tags/%E7%94%9F%E6%B4%BB%E6%84%9F%E6%82%9F/"/>
    
    <category term="技术与人性" scheme="https://cagedbird.cn/tags/%E6%8A%80%E6%9C%AF%E4%B8%8E%E4%BA%BA%E6%80%A7/"/>
    
  </entry>
  
  <entry>
    <title>RKYOLO诞生记 (前传)：一切开始之前——那三个小时的“系统急救</title>
    <link href="https://cagedbird.cn/2025/09/09/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89/%E8%BE%B9%E7%BC%98%E8%AE%A1%E7%AE%97%E9%83%A8%E7%BD%B2/RKYOLO%E8%AF%9E%E7%94%9F%E8%AE%B0/RKYOLO%E8%AF%9E%E7%94%9F%E8%AE%B0-%E5%89%8D%E4%BC%A0-%EF%BC%9A%E4%B8%80%E5%88%87%E5%BC%80%E5%A7%8B%E4%B9%8B%E5%89%8D%E2%80%94%E2%80%94%E9%82%A3%E4%B8%89%E4%B8%AA%E5%B0%8F%E6%97%B6%E7%9A%84%E2%80%9C%E7%B3%BB%E7%BB%9F%E6%80%A5%E6%95%91/"/>
    <id>https://cagedbird.cn/2025/09/09/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89/%E8%BE%B9%E7%BC%98%E8%AE%A1%E7%AE%97%E9%83%A8%E7%BD%B2/RKYOLO%E8%AF%9E%E7%94%9F%E8%AE%B0/RKYOLO%E8%AF%9E%E7%94%9F%E8%AE%B0-%E5%89%8D%E4%BC%A0-%EF%BC%9A%E4%B8%80%E5%88%87%E5%BC%80%E5%A7%8B%E4%B9%8B%E5%89%8D%E2%80%94%E2%80%94%E9%82%A3%E4%B8%89%E4%B8%AA%E5%B0%8F%E6%97%B6%E7%9A%84%E2%80%9C%E7%B3%BB%E7%BB%9F%E6%80%A5%E6%95%91/</id>
    <published>2025-09-09T23:31:36.000Z</published>
    <updated>2026-05-27T07:23:41.343Z</updated>
    
    
    <summary type="html">&lt;p&gt;读到这里，你已经陪我走完了 &lt;code&gt;rkyolo&lt;/code&gt; 从一个想法到一个功能完备的框架的全过程。但在这个故事开始之前，还有一段小插曲。它虽然只占了大概三个小时，却为后面所有的“顺利”铺平了道路，也算是一场有惊无险的“系统急救”演练。&lt;/p&gt;</summary>
    
    
    
    <category term="技术实践" scheme="https://cagedbird.cn/categories/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/"/>
    
    <category term="人工智能" scheme="https://cagedbird.cn/categories/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/"/>
    
    <category term="计算机视觉" scheme="https://cagedbird.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89/"/>
    
    <category term="边缘计算部署" scheme="https://cagedbird.cn/categories/%E8%BE%B9%E7%BC%98%E8%AE%A1%E7%AE%97%E9%83%A8%E7%BD%B2/"/>
    
    <category term="RKYOLO诞生记" scheme="https://cagedbird.cn/categories/RKYOLO%E8%AF%9E%E7%94%9F%E8%AE%B0/"/>
    
    
    <category term="YOLO" scheme="https://cagedbird.cn/tags/YOLO/"/>
    
    <category term="系统编程" scheme="https://cagedbird.cn/tags/%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/"/>
    
    <category term="Rust" scheme="https://cagedbird.cn/tags/Rust/"/>
    
    <category term="AI" scheme="https://cagedbird.cn/tags/AI/"/>
    
    <category term="嵌入式" scheme="https://cagedbird.cn/tags/%E5%B5%8C%E5%85%A5%E5%BC%8F/"/>
    
    <category term="开源" scheme="https://cagedbird.cn/tags/%E5%BC%80%E6%BA%90/"/>
    
  </entry>
  
  <entry>
    <title>RKYOLO诞生记 (七)：小结与展望——折腾不止，快乐不息</title>
    <link href="https://cagedbird.cn/2025/09/09/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89/%E8%BE%B9%E7%BC%98%E8%AE%A1%E7%AE%97%E9%83%A8%E7%BD%B2/RKYOLO%E8%AF%9E%E7%94%9F%E8%AE%B0/RKYOLO%E8%AF%9E%E7%94%9F%E8%AE%B0-%E4%B8%83-%EF%BC%9A%E5%B0%8F%E7%BB%93%E4%B8%8E%E5%B1%95%E6%9C%9B%E2%80%94%E2%80%94%E6%8A%98%E8%85%BE%E4%B8%8D%E6%AD%A2%EF%BC%8C%E5%BF%AB%E4%B9%90%E4%B8%8D%E6%81%AF/"/>
    <id>https://cagedbird.cn/2025/09/09/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89/%E8%BE%B9%E7%BC%98%E8%AE%A1%E7%AE%97%E9%83%A8%E7%BD%B2/RKYOLO%E8%AF%9E%E7%94%9F%E8%AE%B0/RKYOLO%E8%AF%9E%E7%94%9F%E8%AE%B0-%E4%B8%83-%EF%BC%9A%E5%B0%8F%E7%BB%93%E4%B8%8E%E5%B1%95%E6%9C%9B%E2%80%94%E2%80%94%E6%8A%98%E8%85%BE%E4%B8%8D%E6%AD%A2%EF%BC%8C%E5%BF%AB%E4%B9%90%E4%B8%8D%E6%81%AF/</id>
    <published>2025-09-09T23:09:03.000Z</published>
    <updated>2026-05-27T07:23:41.343Z</updated>
    
    
    <summary type="html">&lt;p&gt;好了好了，到了给这个系列收尾的时候了。回头看看，这个叫 &lt;code&gt;rkyolo&lt;/code&gt; 的小东西，从一个念头开始，居然真的被我一点点攒成了一个能跑、能看、还能给自己打分的 Rust 推理框架，想想也是挺神奇的。&lt;/p&gt;
&lt;p&gt;在这最后一篇，咱不吹牛，就唠点实在的。说说我都捣鼓了啥，还有哪些地方让我挠头，以及以后还能怎么接着玩。&lt;/p&gt;</summary>
    
    
    
    <category term="技术实践" scheme="https://cagedbird.cn/categories/%E6%8A%80%E6%9C%AF%E5%AE%9E%E8%B7%B5/"/>
    
    <category term="人工智能" scheme="https://cagedbird.cn/categories/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/"/>
    
    <category term="计算机视觉" scheme="https://cagedbird.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89/"/>
    
    <category term="边缘计算部署" scheme="https://cagedbird.cn/categories/%E8%BE%B9%E7%BC%98%E8%AE%A1%E7%AE%97%E9%83%A8%E7%BD%B2/"/>
    
    <category term="RKYOLO诞生记" scheme="https://cagedbird.cn/categories/RKYOLO%E8%AF%9E%E7%94%9F%E8%AE%B0/"/>
    
    
    <category term="YOLO" scheme="https://cagedbird.cn/tags/YOLO/"/>
    
    <category term="系统编程" scheme="https://cagedbird.cn/tags/%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A8%8B/"/>
    
    <category term="Rust" scheme="https://cagedbird.cn/tags/Rust/"/>
    
    <category term="AI" scheme="https://cagedbird.cn/tags/AI/"/>
    
    <category term="嵌入式" scheme="https://cagedbird.cn/tags/%E5%B5%8C%E5%85%A5%E5%BC%8F/"/>
    
    <category term="开源" scheme="https://cagedbird.cn/tags/%E5%BC%80%E6%BA%90/"/>
    
  </entry>
  
</feed>
