欢迎来到我的博客,这里记录了我的技术探索与生活思考。
Bootlin Elixir:阅读与检索 Linux 内核及开源项目源码的神器
引言 对于从事 Linux 系统开发、驱动编写、嵌入式底层研发以及内核架构学习的工程师来说,阅读庞大的 C 语言开源工程源码是日常必修课。 以 Linux Kernel 为例:代码量已超过 3000 万行,包含海量的宏定义、条件编译分支、结构体指针与跨架构实现。如果直接在本地用普通文本编辑器或 grep 搜索,不仅效率极其低下,而且往往会被巨量的同名变量和宏展开干扰。而在本地配置完整的 LSP(如 clangd)或大型索引工具(如 OpenGrok),不仅极其消耗磁盘与内存,而且在跨版本对比时极其繁琐。 ...
Nginx 深度解析:从原理到生产实战
引言 Nginx(发音为"Engine X")是由 Igor Sysoev 于 2004 年首次公开发布的高性能 HTTP 服务器和反向代理服务器,最初是为了解决 C10K 问题(即如何让单台服务器同时处理 10,000 个并发连接)而生。 如今,Nginx 已经成为互联网基础设施中最重要的组件之一:据 Netcraft 统计,全球超过 34% 的活跃网站使用 Nginx,包括 Netflix、Dropbox、GitHub 等顶尖互联网公司。 ...
Go 1.25 在 Windows 编译的程序无法在你的电脑上运行?原因竟然是这个!
原文来自知乎专栏:zhuyasen - Go有引力 升级到 Go 1.25 之后,在 Windows 上编译出来的 .exe 双击却提示 「此应用无法在你的电脑上运行」?明明 Go 1.24 还好好的,到底发生了什么?答案就藏在一个叫 DWARF v5 的调试信息格式里。 根本原因 从 Go 1.25 开始,官方默认启用了 dwarf5 实验性功能,编译生成可执行文件时会使用 DWARF v5 调试信息格式。 ...
NetAssist 网络调试助手:功能全面的 TCP/IP 调试利器
在网络应用开发和嵌入式/物联网设备调试中,一款好用的网络调试工具往往能事半功倍。NetAssist 网络调试助手(野人家园出品)就是这样一款历经多年打磨、口碑极佳的 Windows 平台免费调试工具。本文对其功能特性、典型使用场景及注意事项做一次系统梳理。 官方下载页:https://www.cmsoft.cn/resource/102.html 当前最新版本:V5.15(2025-07-30) 软件大小:648 KB,下载次数超 24 万 ...
MiniWeb: 仅百KB的超轻量嵌入式 C 语言 HTTP 服务器
引言 在嵌入式开发、IoT 设备管理、本地工具调试甚至局域网临时文件共享中,我们经常需要一个轻量的 HTTP 服务端。但现实开发中常常遇到两难选择: 标准 Web 服务器(如 Nginx、Apache):功能丰富,但体积过大、依赖繁杂,无法直接塞入 Flash 只有几兆的 MIPS/ARM 嵌入式设备中; 脚本语言方案(如 Python http.server):在本地开发机上很方便,但在没有 Python 运行时的工控机、单片机或最小化 Linux 系统中寸步难行。 这时候,一个纯 C 语言编写、编译后二进制仅 100KB 左右的超微型 HTTP 服务器——MiniWeb,便成了极具性价比的选择。 ...
plink.exe 命令行工具:telnet 连接设备调试与数据采集
引言 最近需要连接一台带网络接口的设备(带电池管理系统的工业设备),通过 telnet 协议读取它的实时测量数据。图形界面的 PuTTY 虽然能连上,但只能手动交互,没法自动采集、落盘、二次处理。于是找到了 PuTTY 套件里那个不起眼的命令行工具——plink.exe。 plink.exe 是什么 plink.exe(PuTTY Link)是 PuTTY 套件中的命令行连接工具,和图形界面 PuTTY 共用同一套协议实现,支持 SSH、telnet、rlogin、raw 等多种协议。它是脚本化、自动化运维的利器——凡是 PuTTY 能干的事,都能用一条命令搞定,而且输出可以直接重定向到文件。 ...
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 功能配置正确。 ...
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 提供多种配置代理的途径,优先级从高到低: ...
正则表达式30分钟入门教程
https://deerchao.cn/tutorials/regex/regex.htm 本文目标 30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。 如何使用本教程 别被下面那些复杂的表达式吓倒,只要跟着我一步一步来,你会发现正则表达式其实并没有想像中的那么困难。当然,如果你看完了这篇教程之后,发现自己明白了很多,却又几乎什么都记不得,那也是很正常的——我认为,没接触过正则表达式的人在看完这篇教程后,能把提到过的语法记住80%以上的可能性为零。这里只是让你明白基本的原理,以后你还需要多练习,多使用,才能熟练掌握正则表达式。 ...
长轮询
我们知道, HTTP 请求发出后,⼀般会给服务器留⼀定的时间做响应,⽐如 3 秒,规定时间内没返回,就 认为是超时。 如果我们的 HTTP 请求将超时设置的很⼤,⽐如 30 秒, 在这 30 秒内只要服务器收到了扫码请求,就⽴⻢ 返回给客户端⽹⻚。如果超时,那就⽴⻢发起下⼀次请求。 这样就减少了 HTTP 请求的个数,并且由于⼤部分情况下,⽤户都会在某个 30 秒的区间内做扫码操作, 所以响应也是及时的。 ...