文章目录
Linux系统开发
- 进程间通信 | 管道
- 进程间通信 | 信号
- 进程间通信 | 消息队列
- 进程间通信 | 共享内存
- 网络编程 | Socket编程
- 系统开发 | 进程crash自动重启
- 实战开发 | 用二叉树实现高性能共享内存管理
- 实战开发 | 快速上手:用最小堆实现高效通用的定时器组件
- 实战开发 | 实战高效RPC方案在嵌入式环境中的应用与揭秘
- 实战开发 | 轻松自研嵌入式日志框架,6大功能亮点一文读懂
- 实战开发 | 嵌入式RPC框架设计实践:六大核心类构建高效RPC框架
- 实战开发 | 实战Linux I/O多路复用:借助epoll,单线程高效管理10,000+并发连接
- 实战开发 | 从零构建嵌入式远程Shell,提升跨地域协作效率
- 实战开发 | 从零构建嵌入式远程Shell,提升跨地域协作效率(2)
- 实战开发 | 使用inotify实现实时文件监控
- 实战开发 | 4步实现C/C++插件化编程,轻松应对功能定制与扩展
- 实战开发 | 精通Linux时间管理,从这7个接口开始
- 实战开发 | 4步实现MQTT客户端与OneNet高效连接
- 实战开发 | 2个类轻松构建高效Socket通信库
- 进阶技巧 | C/C++右移高位补0还是1?
- 进阶技巧 | 单例模式的隐藏陷阱
Linux 驱动
- 源码分析 | ATTR节点
- 源码分析 | pinctrl子系统
- 源码分析 | gpio_key原生驱动
- 源码分析 | 内核字符驱动注册流程
- 源码分析 | 驱动Poll机制的使用
- 源码分析 | Linux源码的宏使用方法
- 源码分析 | 内核中的休眠与唤醒机制
- 进阶技巧 | Linux等待队列
- 进阶技巧 | Linux工作队列
- 进阶技巧 | Linux中断下半部实现机制
- 进阶技巧 | 并发与竞态-自旋锁
- 进阶技巧 | 并发与竞态
- 进阶技巧 | 内核通用链表的设计
- 实战 | 使用设备树完成点灯驱动
- 实战 | Linux高精度定时器hrtimer使用
- 实战 | 实现IIC设备驱动实例
- 实战 | 字符设备驱动模板搭建
- 实战 | 块设备驱动实现存储并读写文件
- 架构学习 | IIC总线架构 之 IIC协议
- 架构学习 | IIC总线架构 之 设备驱动
- 架构学习 | IIC总线架构 之 IIC核心
- 架构学习 | IIC总线架构 之 总线驱动
- 架构学习 | input子系统剖析
C 语言
- 基础规范 | C语言编程风格
- 基础规范 | C优先级
- 基础规范 | C语言“陷阱” 之 运算顺序
- 进阶技巧 | 贪心法
- 进阶技巧 | 滑动窗口
- 进阶技巧 | 函数指针实例使用 (上)
- 进阶技巧 | 函数指针实例使用 (下)
- 实用技巧 | 枚举转字符串
- 实战 | 模拟入栈操作
C++
- 基础 | 类与对象的认识
- 基础 | C++继承
- 基础 | C++多态
- 基础 | 抽象类的使用
- 基础 | 线程池的实现(上)
- 基础 | vector使用
- 基础规范 | C++编程风格指南
- 基础规范 | UML中类与类间的关系及实现
- 设计模式 | 深入了解23种设计模式
- 设计模式 | 工厂&抽象工厂模式
- 设计模式 | 生成器模式
- 设计模式 | 原型模式
- 设计模式 | 单例模式
- 设计模式 | 桥接模式
- 设计模式 | 观察者模式
- 设计模式 | 状态模式
- 设计模式 | 命令模式
- 设计模式 | 策略模式
- 设计模式 | 装饰模式
- 设计模式 | 组合模式
- 设计模式 | 中介者模式
- 设计模式 | 外观模式
- 设计模式 | 适配器模式
- 设计模式 | 享元模式
- 设计模式 | 代理模式
- 设计模式 | 责任链模式
- 设计模式 | 备忘录模式
- 设计模式 | 访问者模式
- 设计模式 | 模板方法模式
- C++并发编程 | 线程管理
- C++并发编程 | 互斥锁(lock_guard和unique_lock)
- C++并发编程 | 同步并发操作
- C++并发编程 | 原子操作
- 进阶技巧 | lambda表达式
- 进阶技巧 | C++11智能指针
- 经验总结 | C++ STL容器操作:6种常用场景算法