前言·
为了更好的完成MIT6.S081的后续实验,花了一点时间学习了RISCV汇编。选择的资源为 伯克利CS61C课程,RISCV的介绍为Lec6到Lec9。本lab为RISCV的练习实验。
有用的资源推荐:
- CS61C 哔哩哔哩搬运
- CS61C-RISCV汇编参考card
- MIT-6.004-RISCV汇编参考card
本lab的要求为: 点这里
实验采用的模拟器为 venus
本文为Raft的补充篇。 我做的实验是mit 6824 spring 2020, 2020年版本Log Compaction放到了lab3中,但是我发现 2021版本Log Compaction放到了lab 2中,且有配套单元测试,所以这部分单独写了2021版本。现在单独写篇文章说下log compaction。
简述要求:
raft的log随着svr服务时间的延长而逐渐变大,如若不加任何控制,系统内log占用空间将无限增大,另外,svr每次开机也会反序列化log文件。所以需要在恰当的时间对log执行compaction操作,也被称为snapshot操作。
原文要求 :http://nil.csail.mit.edu/6.824/2021/labs/lab-raft.html
另外,我的方案中未使用到 CondInstallSnapshot
接口。
很久没更新博文,这一个月除了忙着论文,也抽空学了下neovim。在各类ide和vscode中用vim插件已经过了3 4年,常见vim操作已经烂熟于心。一直觉得纯vim/nvim很难用,即使配上插件也难以适用到平日的开发工作。 直到看到油管大佬的视频,重燃些许兴趣,一路跟着配置,感觉neovim已经完全具备常用的开发功能。至少目前的配置效果让我决定先使用neovim做一两个小项目。
2022/5/6 更新:用neovim写了点lab,总体感受不错,特别是golang写起来比较舒适。对于c/cpp项目,如果clangd能够能索引所有文件,那么使用效果非常不错。但是对于部分引用库缺失的情况下,clangd lsp分析不行,无法实现跳转和比较好的补全效果(这种情况改用gtags会更好一些)。 所以目前个人感觉依然是能用vscode的情况仍然是使用vscode,在某些特殊情景下,neovim会更好,比如无法使用vscode的ssh remote development时,neovim可以说是最好的选择,或者只是改改脚本等。 目前,我也将自己的vscode配置得更vim-like, 几乎不用鼠标就可以完成所有操作,所以效率上和vim也差不多。
本文算是一个对neovim配置的总结篇