摘要:
异步编程在 Rust 中的地位非常高,很多 crate 尤其是多IO操作的都使用了 async/await. 首先弄清楚异步编程的几个基本概念: Future Future 代表一个可在未来某个时候获取返回值的 task,为了获取这个 task 的执行状况,Future 提供了一个函数用于判断该 t 阅读全文
摘要:
C++ 实现轻量级协程库 context 协程的实现与线程的主动切换有关,当当前上下文可能阻塞时,需要主动切换到其它上下文来避免操作系统将当前线程挂起从而降低效率。 在Linux中定义了ucontext_t结构体来表示线程的上下文结构。 typedef struct ucontext_t { str 阅读全文
摘要:
这两天心血来潮想要装一个黑苹果,原本想要将系统安装在256G的主盘上。但是主盘是三星PM981的,在安装黑苹果系统时会假死卡住。所以需要安装在另一块西数的硬盘上,也就是我现在的Linux系统所在的盘。显然安装黑苹果有一定的风险,所以我不想直接将Linux所在的盘完全抹掉。因此想到将整个Linux系统 阅读全文
摘要:
[toc] 语法糖 auto 自动类型推导 可用于推导函数返回值或迭代类型,需要注意的是除了类型信息,其它信息可能会丢失,比如: 1. 指向类型为引用时,推导类型会丢失引用。如果要避免,可手动添加 & 符号避免丢失 2. const/volatile 符会丢失,如果要避免,可手动添加对应 cv 符。 阅读全文
摘要:
最小二乘估计法介绍 最小二乘估计是一种利用观测数据估计线性模型中未知参数的方法,其基本的思想是选择合适的估计参数使得模型输出与传感器实测输出数据之差的平方和最小。 对于一个线性模型,其含有 $m+1$ 种可观测的变量 $(\Omega_0,\Omega_1,...,\Omega_m)$,每个 阅读全文
摘要:
Wayland 是 Linux 上的一款显示协议,其致力于成为古老的 X 协议的一个更简洁的替代品。目前 KDE 和 Gnome 桌面系统都有计划迁移到 Wayland。 Wayland 即代表了一款协议,也代表了一个实现了该协议的 C 库。 开始前如果你可能有必要了解一下渲染(rendering) 阅读全文
摘要:
所謂一致性算法,是指能夠允許一組機器可以協同工作並能容忍部分成員的宕機。在 Raft 算法出現之前,已經有 Paxos 算法朱玉在前,但是由於 Paxos 非常難以理解,因此斯坦福的兩位教授提出了 Raft 算法,Raft 算法被提出的首要目標是易理解性,正如其所言: It was importan 阅读全文
摘要:
Rust Trick 之 Trait Object 转换为 Struct 在C/C++里面,trait通常是以父类的形式出现的,父类转换为子类通常直接可以通过指针类型的转换就可以完成,当然C++也可以通过cast完成。 在rust里面当然也可以一切通过raw pointer来完成,但是我觉得在rus 阅读全文
摘要:
Part1 The WebSocket Protocol by IFTF Design Philosophy Conceptually, WebSocket is really just a layer on top of TCP that does the following: adds a we 阅读全文
摘要:
在Arch/Manjaro 环境下使用stm32flash 对stm32进行串口下载 由于我们老师给我们的stm32带了一个扩展板,扩展板上带了一个CH340烧录电路,所以只能使用ISP下载。 Linux下想要直接在命令行进行串口烧录需要先下载 工具,Arch系可以直接从AUR仓库下载。 下载了以后 阅读全文