Hi there 👋

欢迎来到我的博客,这里记录了我的技术探索与生活思考。

Bootlin Elixir:阅读与检索 Linux 内核及开源项目源码的神器

引言 对于从事 Linux 系统开发、驱动编写、嵌入式底层研发以及内核架构学习的工程师来说,阅读庞大的 C 语言开源工程源码是日常必修课。 以 Linux Kernel 为例:代码量已超过 3000 万行,包含海量的宏定义、条件编译分支、结构体指针与跨架构实现。如果直接在本地用普通文本编辑器或 grep 搜索,不仅效率极其低下,而且往往会被巨量的同名变量和宏展开干扰。而在本地配置完整的 LSP(如 clangd)或大型索引工具(如 OpenGrok),不仅极其消耗磁盘与内存,而且在跨版本对比时极其繁琐。 ...

2026年8月28日 · 7 分钟 · 3173 字

Nginx 深度解析:从原理到生产实战

引言 Nginx(发音为"Engine X")是由 Igor Sysoev 于 2004 年首次公开发布的高性能 HTTP 服务器和反向代理服务器,最初是为了解决 C10K 问题(即如何让单台服务器同时处理 10,000 个并发连接)而生。 如今,Nginx 已经成为互联网基础设施中最重要的组件之一:据 Netcraft 统计,全球超过 34% 的活跃网站使用 Nginx,包括 Netflix、Dropbox、GitHub 等顶尖互联网公司。 ...

2026年8月28日 · 8 分钟 · 3967 字

Go 1.25 在 Windows 编译的程序无法在你的电脑上运行?原因竟然是这个!

原文来自知乎专栏:zhuyasen - Go有引力 升级到 Go 1.25 之后,在 Windows 上编译出来的 .exe 双击却提示 「此应用无法在你的电脑上运行」?明明 Go 1.24 还好好的,到底发生了什么?答案就藏在一个叫 DWARF v5 的调试信息格式里。 根本原因 从 Go 1.25 开始,官方默认启用了 dwarf5 实验性功能,编译生成可执行文件时会使用 DWARF v5 调试信息格式。 ...

2026年8月27日 · 2 分钟 · 966 字

NetAssist 网络调试助手:功能全面的 TCP/IP 调试利器

在网络应用开发和嵌入式/物联网设备调试中,一款好用的网络调试工具往往能事半功倍。NetAssist 网络调试助手(野人家园出品)就是这样一款历经多年打磨、口碑极佳的 Windows 平台免费调试工具。本文对其功能特性、典型使用场景及注意事项做一次系统梳理。 官方下载页:https://www.cmsoft.cn/resource/102.html 当前最新版本:V5.15(2025-07-30) 软件大小:648 KB,下载次数超 24 万 ...

2026年8月27日 · 5 分钟 · 2360 字

MiniWeb: 仅百KB的超轻量嵌入式 C 语言 HTTP 服务器

引言 在嵌入式开发、IoT 设备管理、本地工具调试甚至局域网临时文件共享中,我们经常需要一个轻量的 HTTP 服务端。但现实开发中常常遇到两难选择: 标准 Web 服务器(如 Nginx、Apache):功能丰富,但体积过大、依赖繁杂,无法直接塞入 Flash 只有几兆的 MIPS/ARM 嵌入式设备中; 脚本语言方案(如 Python http.server):在本地开发机上很方便,但在没有 Python 运行时的工控机、单片机或最小化 Linux 系统中寸步难行。 这时候,一个纯 C 语言编写、编译后二进制仅 100KB 左右的超微型 HTTP 服务器——MiniWeb,便成了极具性价比的选择。 ...

2026年8月26日 · 4 分钟 · 1988 字

plink.exe 命令行工具:telnet 连接设备调试与数据采集

引言 最近需要连接一台带网络接口的设备(带电池管理系统的工业设备),通过 telnet 协议读取它的实时测量数据。图形界面的 PuTTY 虽然能连上,但只能手动交互,没法自动采集、落盘、二次处理。于是找到了 PuTTY 套件里那个不起眼的命令行工具——plink.exe。 plink.exe 是什么 plink.exe(PuTTY Link)是 PuTTY 套件中的命令行连接工具,和图形界面 PuTTY 共用同一套协议实现,支持 SSH、telnet、rlogin、raw 等多种协议。它是脚本化、自动化运维的利器——凡是 PuTTY 能干的事,都能用一条命令搞定,而且输出可以直接重定向到文件。 ...

2026年8月14日 · 3 分钟 · 1350 字

Mermaid 图表测试

这是一篇用于验证 Mermaid 图表功能是否正常工作的测试文章。 流程图 (Flowchart) graph TD A[开始] --> B{是否准备好?} B -->|是| C[执行任务] B -->|否| D[等待] D --> B C --> E[检查结果] E -->|通过| F[完成] E -->|失败| G[修复问题] G --> C 时序图 (Sequence Diagram) sequenceDiagram participant 客户端 participant 服务端 participant 数据库 客户端->>服务端: GET /api/posts 服务端->>数据库: SELECT * FROM posts 数据库-->>服务端: 返回数据 服务端-->>客户端: JSON 响应 类图 (Class Diagram) classDiagram class Blog { +String title +String description +getPosts() List +publish() void } class Post { +String title +Date date +String content +String[] tags +render() String } class Author { +String name +String email +String avatar } Blog "1" --> "*" Post : 包含 Post "*" --> "1" Author : 属于 甘特图 (Gantt Chart) gantt title 博客搭建计划 dateFormat YYYY-MM-DD section 基础设施 初始化 Hugo 项目 :done, infra1, 2025-07-01, 1d 配置 PaperMod 主题 :done, infra2, 2025-07-02, 1d 配置 GitHub Actions :done, infra3, 2025-07-03, 1d section 内容创作 写第一篇文章 :done, content1, 2025-07-15, 1d 添加搜索和归档 :done, content2, 2025-07-20, 2d Mermaid 测试 :active, content3, 2026-08-11, 1d section 未来计划 持续写作 : future1, 2026-08-12, 30d 状态图 (State Diagram) stateDiagram-v2 [*] --> 草稿 草稿 --> 审核中 : 提交审核 审核中 --> 已发布 : 审核通过 审核中 --> 草稿 : 退回修改 已发布 --> 已归档 : 归档 已归档 --> [*] 如果以上所有图表都能正常渲染,说明 Mermaid 功能配置正确。 ...

2026年8月11日 · 2 分钟 · 507 字

Git 代理配置完全指南

这篇文章梳理 Git 中所有代理配置方式,从简单的 git config 到 SSH 协议的 SOCKS5 隧道,一份指南全搞定。 为什么需要代理 访问 GitHub、GitLab 等平台时,有时会遇到 git clone 速度极慢甚至超时的情况。尤其是在国内网络环境下,给 Git 配置代理几乎是必备技能。 flowchart LR A[你的电脑] --> B{需要代理?} B -->|直连通畅| C[直接连接 Git 服务器] B -->|速度慢/超时| D[代理服务器] D --> E[Git 服务器github.comgitlab.com] C --> E 配置方式总览 Git 提供多种配置代理的途径,优先级从高到低: ...

2026年8月11日 · 4 分钟 · 1782 字

正则表达式30分钟入门教程

https://deerchao.cn/tutorials/regex/regex.htm 本文目标 30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。 如何使用本教程 别被下面那些复杂的表达式吓倒,只要跟着我一步一步来,你会发现正则表达式其实并没有想像中的那么困难。当然,如果你看完了这篇教程之后,发现自己明白了很多,却又几乎什么都记不得,那也是很正常的——我认为,没接触过正则表达式的人在看完这篇教程后,能把提到过的语法记住80%以上的可能性为零。这里只是让你明白基本的原理,以后你还需要多练习,多使用,才能熟练掌握正则表达式。 ...

2025年11月21日 · 21 分钟 · 10051 字

长轮询

我们知道, HTTP 请求发出后,⼀般会给服务器留⼀定的时间做响应,⽐如 3 秒,规定时间内没返回,就 认为是超时。 如果我们的 HTTP 请求将超时设置的很⼤,⽐如 30 秒, 在这 30 秒内只要服务器收到了扫码请求,就⽴⻢ 返回给客户端⽹⻚。如果超时,那就⽴⻢发起下⼀次请求。 这样就减少了 HTTP 请求的个数,并且由于⼤部分情况下,⽤户都会在某个 30 秒的区间内做扫码操作, 所以响应也是及时的。 ...

2025年10月13日 · 2 分钟 · 549 字