欢迎来到我的博客,这里记录了我的技术探索与生活思考。
git filter-repo:彻底清理 Git 仓库历史(大文件 / 敏感信息)
仓库用了几年之后,.git 目录常常比源码本身还大——曾经提交过的大文件、误传的密钥、不小心提交的 node_modules,都永久留在了历史里。它们不会因为你后来删掉文件而消失,只要别人 git clone 一下,这些包袱就会被整个拖下来。本文介绍 git filter-repo,Git 官方推荐的历史重写工具,用来把这些垃圾彻底清出仓库历史。 ...
PuTTY 0.85 发布:一次纯安全修复的版本升级
2026 年 8 月 16 日,Windows 上最经典的 SSH / telnet 客户端 PuTTY 发布了 0.85 稳定版。与以往的版本不同,0.85 没有任何新功能,全部是安全修复——而且其中几项是可以被远程触发的。如果你还在用旧版本,这一版值得尽快升级。 PuTTY 是什么 PuTTY 是一个开源的终端仿真器与网络客户端,最早由 Simon Tatham 于 1999 年发布,如今依然是 Windows 上使用最广的 SSH 客户端之一。它体积小、无需安装(单个 exe 即可运行)、支持多种协议,是运维和嵌入式调试的常备工具。 ...
CRC(循环冗余校验)算法原理与参数模型详解
在嵌入式开发、工业通信(如 Modbus、CAN 总线)以及网络协议(如 Ethernet、USB、ZIP 文件)中,CRC(Cyclic Redundancy Check,循环冗余校验) 是最常用的检错算法之一。 然而,在实际对接协议时,很多人经常遇到“两边算的 CRC 值对不上”的问题。这主要是因为 CRC 并不是单一固定的算法,而是一组由多个参数共同定义的模型。本文将系统讲解 CRC 的数学原理、参数模型构成、计算流程以及常见预设模型速查。 ...
PowerShell 提示“在此系统上禁止运行脚本”的解决方法
在 Windows 终端中尝试执行 PowerShell 脚本(.ps1 文件)或者运行某些依赖脚本的工具(如 npm、yarn、nvm、venv/activate 等)时,经常会遇到脚本被阻止运行的错误。本文将详细分析该问题的原因、提供多种解决方案以及深入讲解 PowerShell 的执行策略机制。 问题现象 在 PowerShell 中直接运行脚本时,可能会收到如下报错信息: ...
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 能干的事,都能用一条命令搞定,而且输出可以直接重定向到文件。 ...