本文主要叙述了如何以脚本方式去使用 bash,并介绍了大量常用的 Shell 工具。很多工具并非系统自带,需要手动下载甚至手动配置,如果是 Mac OS 的话,使用 brew
一键安装即可。
本文主要叙述了如何以脚本方式去使用 bash,并介绍了大量常用的 Shell 工具。很多工具并非系统自带,需要手动下载甚至手动配置,如果是 Mac OS 的话,使用 brew
一键安装即可。
6.Null 是 MIT 专为介绍常用计算机工具所开设的一门课程。我在过去的工作和学习过程中可能已经接触过 git、vim 等工具,也会使用一些简单的命令行指令比如 cd
、cp
、mv
等,但远远谈不上熟练。
TODO
客户端发送的命令会被 leader
包装成一个 entry 并添加到它的日志中,然后广播 append 消息让其他服务器复制日志。当 entry 被安全复制后,leader
上的复制状态机会应用其内部命令,并返回执行结果给客户端。另外,即使 leader
已经答复了客户端,为了满足一致性,也会对那些因为网络、奔溃或运行缓慢等而没成功复制日志的服务器重复发送 append 消息。服务器底层日志本质是一个 entry 数组,每个 entry 包含一条命令和 term(指代 entry 创建时所处的任期或者说接收到客户端命令的 leader
的任期)。
我们将在 Lab2 中实现一个 Raft 系统,Raft 本身是一个分布式一致性算法。工欲善其事必先利其器,本实验难度较高,所以我先读 Raft 论文,再看助教写的 guide。为了方便理解协议的运作过程,我还去了 Raft 官网,并反复观看 Raft 可视化动画。
MIT 6.824 Lab1 构建一个 MapReduce 系统
遵循 lab 页 指导,并在本地部署好项目。我在观摩完 mrsequential 部分的代码后,再结合 MapReduce 论文,理清了基本思路。
CSAPP Lab7 Writing a Dynamic Storage Allocator
首先,在 linux 环境下解压,由于在 make 过程中发现缺少 glibc 的库,所以还要安装相关包:
1 | [root@MiWiFi-R4A-srv malloclab-handout] |