摘要: CMake 从入门到崩溃1 - CMake 简介 什么是 CMake CMake 是一种工具,它读入用于描述软件如何构建的脚本,CMake 将评估这些脚本并构建出表达软件项目的内部结构,如果它处理完这些脚本并没有发现错误,CMake 将生成用于实际构建项目的构建文件(可能是脚本或 IDE 工程文件) 阅读全文
posted @ 2022-02-26 23:33 路过的摸鱼侠 阅读(457) 评论(0) 推荐(0) 编辑
摘要: # C++ 通用引用 `&&` 并不是在所有情况下都代表右值引用。 ```cpp Widget&& var1 = someWidget; // here, “&&” means rvalue reference auto&& var2 = var1; // here, “&&” does not m 阅读全文
posted @ 2022-02-26 23:04 路过的摸鱼侠 阅读(547) 评论(0) 推荐(2) 编辑
摘要: Raft 学习笔记1 - 领导人选举和日志复制 图片来自 John Ousterhout 的 Raft user study 系列课程 Raft 算法的背景是复制状态机,关于复制状态机可以看我写的这篇博客 Paxos 算法存在的问题 Raft 是为了解决 Paxos 算法的这些问题而提出的 晦涩难懂 阅读全文
posted @ 2022-02-26 22:51 路过的摸鱼侠 阅读(271) 评论(2) 推荐(0) 编辑
摘要: Paxos 学习笔记2 - Multi-Paxos 图片来自 John Ousterhout 的 Raft user study 系列课程 关于 Basic Paxos 可以看本人的这篇文章 🔑 Multi-Paxos 论文里对很多问题并没有描述清楚,所以实践里往往用的是修改过的 Multi-Pa 阅读全文
posted @ 2022-02-26 22:39 路过的摸鱼侠 阅读(181) 评论(0) 推荐(0) 编辑
摘要: Paxos 学习笔记1 - Basic Paxos 图片来自 John Ousterhout 的 Raft user study 系列课程 共识问题是在复制状态机的背景下被提出的 复制状态机 复制状态机是指一组状态机相同的节点,只要它们接收到的指令顺序相同,那么就会表现出相同的行为,并产生相同的结果 阅读全文
posted @ 2022-02-26 22:31 路过的摸鱼侠 阅读(165) 评论(0) 推荐(0) 编辑
摘要: close-on-exec 相关的一个 bug 测试一个用 V4L2 拍照的程序时,发现程序单独运行很正常,但在多进程环境下运行时就会出现问题,具体表现为执行 open 系统调用打开 /dev/video 设备时返回 EBUSY 错误,查询 V4L2 的文档可以看到该错误的含义 EBUSY The 阅读全文
posted @ 2022-02-26 12:52 路过的摸鱼侠 阅读(72) 评论(0) 推荐(1) 编辑
摘要: Linux 内核 RCU机制介绍 内容基本上是这篇文章的翻译 RCU 是一种内核同步机制,在2002年10月加入到 Linux 内核中 RCU 与读写自旋锁和顺序锁不同,后两者只允许多个读者的并发,RCU 允许单个写者和多个读者的并发 那有人会问了,顺序锁中不也是读者和写者同时在运行嘛?RCU 和顺 阅读全文
posted @ 2022-02-24 22:54 路过的摸鱼侠 阅读(1227) 评论(0) 推荐(0) 编辑
摘要: Proactor 网络模型 本文内容主要参考 asio文档 Proactor 和其他网络模型最大的区别就是 Proactor 中,执行 I/O 的职责由操作系统代为我们承担,因此使用 Proactor 网络库的应用程序代码里,是不会有 read、write 等 I/O 接口调用的 Proactor 阅读全文
posted @ 2022-02-23 23:40 路过的摸鱼侠 阅读(153) 评论(0) 推荐(0) 编辑
摘要: CMake 交叉编译 交叉编译就是说在平台 A (宿主机)上编译出可以在平台 B (目标机) 上运行的程序,比如在 x86 上编译 ARM 程序 要交叉编译首先要去下载目标平台的工具链,比如要编译 ARM 程序就应该去下载 Linaro 提供的工具链 交叉编译时,我们的 CMake 文件也需要做一些 阅读全文
posted @ 2022-02-23 21:59 路过的摸鱼侠 阅读(1843) 评论(0) 推荐(1) 编辑
摘要: # C++ 左值和右值 C++中值有两个独立的属性 - 有身份(has identity):或者说,有地址,有指向它的指针 - 有身份的值统称为 glvalue (“generalized” lvalue) - 可以被移动(can be moved from) - 可以移动的值统称为 rvalue 阅读全文
posted @ 2022-02-23 21:39 路过的摸鱼侠 阅读(156) 评论(0) 推荐(0) 编辑