Missing Semmster Learning 学习笔记
计算机教学中缺失的一课 :https://missing.csail.mit.edu/。
这里的笔记主要关于:命令行、shell编程、shell环境。
Missing Semmster Learning 学习笔记
计算机教学中缺失的一课 :https://missing.csail.mit.edu/。
这里的笔记主要关于:命令行、shell编程、shell环境。
命令行、终端、Shell、Promt的基础认知。
操作系统自带的终端都很丑且难用,好用的终端需要一番折腾配置(特别是国内环境网络问题),新手往往望而生畏。
【在学校没有人教你的终端基础知识】 https://www.bilibili.com/video/BV1rk4y1W7dZ
设计模式大致分为三类。
记住所有的设计模式是愚蠢的,关注自己所在领域常用设计模式,语言框架中默认使用的设计模式。
这节课主要介绍了线性一致的概念与Zookeeper论文。
线性一致描述的是系统的行为,正确的行为是客户端发送了一个写请求并且收到服务端答复后,这个写请求能被之后的读请求看到。每个读请求看到的都是最新的写请求所作的更改。
Zookeeper论文是我接触到的最抽象的一篇论文。首先它的功能就很抽象:分布式协调内核。它提供的两个保证:线性写和FIFO客户端请求也费时间理解。最后则是它的API调用以及具体实现。
读这篇论文的原因我想一是Zookeeper的广泛使用,证明了其实用性;二是其“线性一致”的设计,契合课程。收获就是其API的设计、Watch模式。
这节课主要介绍分布式存储系统的难点以及论文GFS。
分布式系统出现的原因是人们想要利用更多的机器实现更好的性能,但更多的机器意味着故障的期望上升。解决单台机器故障最简单的办法就是多副本的容错机制,但多副本间需要时间同步。一致性难题意味着牺牲性能,这是个闭环,人们必须在性能和一致性上做取舍。
对于GFS的学习,我觉得首先要明白GFS应对的需求,整体的架构设计,然后就是读写过程,数据一致性,这是从使用层面上来说的。在高可用方面,GFS的备份管理、文件快照、崩溃恢复等细节需要再深入研究。
这节课主要介绍容错的主要手段——复制以及相应的论文:Fautl-Tolerant Virtual Machines。
这节课主要介绍Go语言以及用Go实现爬虫的例子。
MIT 6.824 课程第一节笔记,主要介绍了分布式系统的驱动力、难点、类型等,还介绍了MapReduce。
这里将介绍vim的语法和光标浏览,这几乎是vim最重要的部分。