

Recent
revm 中的 TunnelHostUnixToGuest 设计逻辑
TunnelHostUnixToGuest 是一个Podman API 代理函数,它只做一件事:
把 host 上一个 Unix socket 收到的连接,通过 gvproxy tunnel 转发到 guest VM 里的 Podman API TCP 端口。
这篇文章记录几个关键的设计点:host/guest 边界、CLI 兼容性、网络后端隔离、连接生命周期,以及 Docker/Podman hijack stream 里的 half-close 语义。
Hugo Blowfish 博客迁移与配置记录
·566 words·3 mins
最近把这个博客从 Jekyll 迁移到了 Hugo,并使用 Blowfish 作为主题。整个过程并不复杂,但有不少细节容易混在一起:Hugo 的资源目录、Blowfish 的配置入口、GitHub Pages 的部署方式、文章迁移后的图片路径、首页摘要、favicon、SEO,以及哪些内容应该交给主题配置,哪些内容应该用站点级覆盖。
这篇记录把这次迁移和配置经验整理下来,方便以后复盘。
glibc ptmalloc 分析笔记
围绕 GLIBC ptmalloc,记录 tcache、smallbins、malloc 路径和堆结构的调试分析。
MSM8916/UFI 研究记录
记录 MSM8916/UFI 设备上的 lk2nd、OpenWrt 启动、分区和调试过程。
UFI001C 平台折腾记录
记录 UFI001C/MSM8916 平台刷写 OpenWrt、配置网络、SSH、ZRAM 与救援流程。
_dl_fixup 机制研究记录
·1903 words·9 mins
glibc 不支持 Clang 编译,或者说暂时不支持。因为 glibc 本身使用了大量GCC独占的特性。但开源社区也有尝试用 Clang 构建 glibc。
GDB 调试本地程序和库
·428 words·3 mins
Linux 生态是开源的,所以调试所需的源码和 debug symbol 可以很方便地获取到。方便到什么程度?如果使用 Ubuntu Jammy 以上版本,那么:
CMakeLists.txt 入门模板
编写 CMakeLists.txt 的套路基本就是这样,先填写 project 信息,然后引用宏,定义自己的 option,写判断语句,然后 add_executable,target_sources。
ZeroTier 更改 HOME 目录
zerotier-one 在启动的时候会建立 /var/lib/zerotier-one 作为自己的工作目录,里面存放了zerotier 运行时所需要的配置文件。
Rockchip Wi-Fi/BT 调试笔记
WL_ROCKCHIP 下的 Realtek 模组和 AP6xxx 模组不能同时选择为 y,AP6xxx 和 Cypress 也是互斥的。至于 out-of-tree 模块则没有这个限制,可以在 Buildroot 中直接修改 Makefile。
解决 UFI003 外置 SIM 卡无法启用的问题
·107 words·1 min
OpenStick 为 410 Wi-Fi 板适配的 Linux 内核可以在 UFI003_MB_V02 主板上启动,但 modem 工作不正常。插入 SIM 卡后,使用 mmcli -m 0 查看 modem 状态时,会发现 sim-missing 异常:
GDB/GCC/Binutils 笔记
整理 GDB、GCC、Binutils 相关调试笔记,包括 CMake 参数、链接选项和符号调试环境。
你家的光猫,你能怎么办?(二)
拿到光猫的最终控制台后,接下来怎么办?是不是可以放一点私货进去? 首先,光猫的 cpu 架构是mips32架构,这一点可以从 cat /proc/cpuinfo 这条命令验证。
Distcc 快速上手与性能优化
·1464 words·7 mins
重新编译内核真的是非常耗时。修改内核树内的驱动不用重新构建整个内核,但每修改调度、文件系统这类底层代码,都需要重新构建一次 zImage 镜像,然后分发到测试机器上。构建 kernel 巨浪费时间,不知道内核开发者怎么受得了这种苦。
Distcc 集群构建测试结果
记录不同 ARM 节点组成的 Distcc 集群在构建 Node.js 等大型项目时的测试结果。
BinaryHub:预构建嵌入式二进制工具
你可以在我的 GitHub 上下载到这些二进制 ELF 工具,如 curl,wget,ftp,busybox 等。这些工具主要用于分析嵌入式设备的固件,搭建测试环境,还可以整点有趣的活,比如在运营商的光猫上跑点自己的代码,比如 PHP 和 Perl。
给 Java 开发环境配置代理
·91 words·1 min
真是烦死了,每次看 Maven 的 Java 项目都要经历 jar 包下载失败;手动执行 mvn dependency:sources,又依赖下载失败,浪费巨多时间。
BetterProfiler 比赛文档
BetterProfiler 是一个针对嵌入式 Linux 的进程动态跟踪器。BetterProfiler 可追踪进程与内核的整个生命周期,文件 IO,网络IO,内存操作,加密读写等。
Buffer Overflow 入门笔记
·391 words·2 mins
functions echo 的 scanf 没有对输入的buffer 大小做限制而用户可以输入超长字符串覆盖函数的 return 地址,进而跳转执行 secretFunction 函数。
IntelliJ IDEA Community Edition 源码构建记录
·176 words·1 min
你可能不知道的是 IntelliJ IDEA 社区版是开源的,其源代码托管在 https://git.jetbrains.org 中。
