Linux 网络编程排障与高性能传输: 从丢包诊断到零拷贝实战

面向嵌入式 Linux 高性能网络场景的排障与优化指南。覆盖 UDP 丢包全链路诊断 (6 个丢包位置及对应 sysctl 调优)、TCP TIME_WAIT 端口耗尽排障、零拷贝技术对比 (sendfile/splice/MSG_ZEROCOPY)、dropwatch 内核丢包追踪工具实战,以及陈硕网络编程方法论精华。结合 sockpp RAII socket 封装和 newosp 帧协议丢包检测的工程实践。

February 20, 2026 · 7 min · 1331 words · map[name:DeguiLiu]

嵌入式系统中的过度设计: 识别、量化与规避

设计模式、分层架构、可扩展性在桌面/服务器领域是最佳实践, 但搬到资源受限的 MCU 上时, 每个抽象层都有可量化的代价。本文通过一次信号处理 pipeline 重构的量化分析, 提炼出三个典型的过度设计模式 (为不存在的动态性付费、凭直觉拆锁、为假想需求预留架构), 并给出四维评估框架 (RAM/ROM/CPU/栈) 和轻量替代方案。

February 19, 2026 · 6 min · 1095 words · map[name:DeguiLiu]

EWSS: 面向嵌入式 Linux 的轻量级 WebSocket 服务器

从 Simple-WebSocket-Server 重构而来,去掉 ASIO 依赖,用 poll Reactor + 固定 RingBuffer + 状态机实现一个 67KB 二进制、12KB/连接、热路径零堆分配的嵌入式 WebSocket 服务器。

February 19, 2026 · 6 min · 1197 words · map[name:DeguiLiu]

跨进程数据分发: newosp SPMC 共享内存实战

从进程内 MPSC 总线到跨进程 SPMC 共享内存,newosp 同时支持 1:1 (SPSC) 和 1:N (SPMC) 两种共享内存数据分发模式。本文以 LiDAR 点云分发为例,展示 SPMC 的设计、实现和工业应用场景。

February 17, 2026 · 7 min · 1382 words · map[name:DeguiLiu]

基于无锁消息总线的观察者模式: 零堆分配、单线程消费

基于无锁 MPSC 消息总线,实现嵌入式场景下的数据分发架构。提供两种方案: Component 动态订阅版和 StaticComponent 零开销编译期分发版。单文件 ~100 行,零堆分配,单 worker 线程处理所有订阅者。

February 17, 2026 · 3 min · 598 words · map[name:DeguiLiu]

嵌入式 C++ 远程开发环境: 从 SSH 到交叉调试

面向嵌入式 ARM-Linux 开发者的 VS Code 远程开发完整方案。涵盖 SSH 免密登录与连接复用、clangd 替代 gtags 实现精确代码索引、gdbserver 交叉调试配置、以及网络受限环境的离线部署。

February 17, 2026 · 3 min · 477 words · map[name:DeguiLiu]

工业固件 A/B 分区升级引擎: HSM 驱动 + 三层掉电保护设计

面向工业嵌入式的固件 A/B 分区升级引擎设计与实现。以 osp::StateMachine 驱动 8 阶段升级流程,通过 raw 分区状态持久化 + U-Boot 冗余环境变量原子切换 + bootcount 自动回滚三层保护实现任意时刻掉电安全。不同于 SWUpdate/RAUC 的重依赖设计,本引擎全程零堆分配 (~10KB 栈/静态),适合 32-256MB RAM 的资源受限嵌入式系统。

February 17, 2026 · 7 min · 1287 words · map[name:DeguiLiu]

newosp 调试 Shell: 多后端架构与运行时控制命令设计

工业嵌入式系统需要在 TCP telnet、串口、stdin 等不同环境下统一调试。newosp 的 Shell 模块通过函数指针 I/O 抽象实现多后端统一架构,通过 TCLAP 风格的子命令分发实现运行时控制(日志级别、配置修改、统计重置、生命周期转换),18 个命令覆盖诊断与控制两大需求,全程零堆分配、-fno-exceptions 兼容。

February 17, 2026 · 10 min · 1954 words · map[name:DeguiLiu]

LMDB 在嵌入式 Linux 上的实践: 零拷贝读取与内存映射 I/O

LMDB 是基于 B+ 树 + mmap 的嵌入式 KV 数据库,编译产物 < 50KB,零拷贝读取,CoW 断电安全。本文从嵌入式 Linux 视角评估 LMDB 的适用场景(标定数据、设备配置、OTA 元数据)、架构原理、工业级代码质量、加密方案,以及跨平台 Python 工具链在工厂标定工位中的实际应用。

February 17, 2026 · 7 min · 1417 words · map[name:DeguiLiu]

newosp: 面向工业嵌入式的 C++17 Header-Only 基础设施库

本文介绍的 newosp 库基于 MIT 协议开源,当前版本 v0.2.0。

February 17, 2026 · 4 min · 831 words · map[name:DeguiLiu]

从 C++14 到 C++17: mccc-bus 的四项零堆分配改造

MCCC 系列第三篇。以 C++14 消息总线的四大堆分配瓶颈为出发点,逐项展示 C++17 的替代方案: std::function -> FixedFunction (SBO + static_assert)、unordered_map -> VariantIndex 固定数组、shared_ptr -> Envelope 内嵌 Ring Buffer、std::string/vector -> FixedString/FixedVector。每项改造附带代码对比、编译期保障机制和性能实测数据。

February 17, 2026 · 6 min · 1249 words · map[name:DeguiLiu]

newosp 源码中的 C++17 实践: 8 项能力的工程落地

从 newosp v0.4.3 (43 headers, 1153 tests) 源码中提炼 C++17 能力的实际工程运用。每项附具体代码位置、设计决策和 C 语言对比,展示工业嵌入式库如何将语言特性转化为可靠性与性能优势。

February 17, 2026 · 4 min · 816 words · map[name:DeguiLiu]

对象池在嵌入式热路径上的三个隐性成本

对象池 (mutex + queue + shared_ptr) 比裸 malloc 快约 60%,是减少堆分配的第一步改进。但在 ARM 嵌入式热路径上,mutex futex 开销、shared_ptr 原子引用计数、queue 动态增长三项隐性成本使其无法满足零堆分配和确定性延迟的要求。本文从一个真实的串口数据解析场景出发,量化这三项成本,并展示预分配环形缓冲和 variant 值语义如何彻底消除它们。

February 17, 2026 · 2 min · 397 words · map[name:DeguiLiu]

内存屏障的硬件原理: 从 Store Buffer 到 ARM DMB/DSB/ISB

内存屏障是无锁编程的底层基石,但多数文章停留在 acquire/release 的使用层面,没有解释 为什么 CPU 会重排序。本文从 Store Buffer、Invalidation Queue 和 MESI 协议三个硬件机制出发,推导出四种屏障类型的必然性,区分编译器屏障、硬件屏障和 C++ memory_order 三个层次,最终详解 ARM DMB/DSB/ISB 三条指令的精确语义与适用场景。

February 17, 2026 · 10 min · 1979 words · map[name:DeguiLiu]

MCCC 消息总线零堆分配优化与性能实测

从 MCCC 消息总线优化实践中提炼 5 个零堆分配模式 (Envelope 内嵌、编译期类型索引、函数指针 RAII、FixedFunction/FixedVector/FixedString、编译期配置矩阵),并附完整性能数据: BARE_METAL 18.7 M/s (54 ns/msg),FULL_FEATURED 5.8 M/s (172 ns/msg),HIGH 优先级零丢失,E2E P99 仅 449 ns。

February 17, 2026 · 8 min · 1673 words · map[name:DeguiLiu]