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]

C11 做不到的事: 10 项 C++17 语言级不可替代能力

筛选标准: 只保留 C11 在语言层面无法实现的能力。从类型安全、编译期计算、内存安全、类型分发四个维度,逐项对比 C++17 与 C11 的语言级差异,附完整代码对比。

February 17, 2026 · 5 min · 990 words · map[name:DeguiLiu]

数据库抽象层的 C++14 重写: 从手动内存管理到 RAII

以 dbpp 对 DatabaseLayer 的现代化重写为案例,系统展示如何将一个 C++03 风格的数据库封装库改造为符合 MISRA C++ 标准的 C++14 实现。涵盖 RAII 资源管理、move-only 语义替代 const_cast hack、零异常错误处理、零全局状态等关键改造点,附完整前后对比代码。

February 16, 2026 · 7 min · 1369 words · map[name:DeguiLiu]

Unix Domain Socket 实时性优化: 嵌入式 IPC 全链路调优

面向嵌入式 ARM-Linux 平台的 Unix Domain Socket 实时性优化系统指南。从 UDS 内核数据路径出发,覆盖 socket 类型选择(STREAM/DGRAM/SEQPACKET)、epoll 边缘触发正确实现、抽象命名空间、fd 传递零拷贝、memfd_create 大块数据传输、eventfd 轻量通知、实时调度与 CPU 隔离、内核缓冲区调优、io_uring 异步路径等维度。每项优化标注原理、ARM 特有注意事项和适用场景。附完整的 RAII 服务端实现。

February 16, 2026 · 10 min · 2110 words · map[name:DeguiLiu]

共享内存 IPC 实践: 从 POSIX shm 到 newosp 无锁 Ring Buffer

共享内存是 Linux 进程间通信中延迟最低的机制,但原始的 POSIX shm_open/mmap 接口缺少同步、生命周期管理和崩溃恢复。本文从 POSIX 共享内存原理出发,剖析 newosp 框架中 ShmRingBuffer 的 CAS 无锁设计、ARM 内存序加固、缓存行对齐等工程决策,并与 cpp-ipc 库进行架构对比,展示嵌入式场景下共享内存 IPC 的完整工程方案。

February 16, 2026 · 9 min · 1776 words · map[name:DeguiLiu]

嵌入式 C++ 智能指针的五个陷阱与零堆分配替代方案

std::shared_ptr 和 std::weak_ptr 在桌面开发中是安全的默认选择,但在嵌入式实时系统中会引入原子引用计数开销、堆碎片化、不确定延迟和竞态条件等问题。本文从一个 weak_ptr 竞态 bug 出发,系统分析智能指针在嵌入式场景的五个根本陷阱,并展示 newosp C++17 基础设施库如何用 ObjectPool、FixedFunction、ScopeGuard 和 expected 实现零堆分配的确定性内存管理。

February 16, 2026 · 10 min · 1947 words · map[name:DeguiLiu]

嵌入式 C++17 设计模式实战: 零虚函数、零堆分配的编译期技术

传统设计模式依赖虚函数和动态分配,在嵌入式系统中代价过高。本文基于 newosp 库的真实代码,展示 8 种编译期设计模式的实现:类型擦除替代 std::function、ScopeGuard 替代虚析构、if constexpr 编译期分发、Tag Dispatch 构造控制、强类型包装、Pub/Sub 零堆回调、Visitor 直接分发、以及 CRTP 编译期 Handler 绑定。所有模式在 -fno-exceptions -fno-rtti 下可用,热路径零堆分配。

February 16, 2026 · 9 min · 1796 words · map[name:DeguiLiu]