[Edit] refine some sentences

This commit is contained in:
zhongyinmin 2022-05-12 00:43:39 +08:00
parent cac3ca613c
commit afeacfbbb3
6 changed files with 18 additions and 17 deletions

View File

@ -28,7 +28,7 @@ IDE (Integrated Development Environment):集成开发环境,说白了就是
[CMake](必学工具/CMake.md):一款功能比 GNU Make 更为强大的构建工具,建议掌握 GNU Make 之后再加以学习。
[LaTex](必学工具/LaTeX.md)~~逼格提升~~论文排版工具。
[LaTex](必学工具/LaTeX.md)~~逼格提升~~ 论文排版工具。
[Docker](必学工具/Docker.md):一款相较于虚拟机更轻量级的软件打包与环境部署工具。
@ -338,7 +338,7 @@ More contents under construction.
> 授人以鱼不如授人以渔。
以上的课程规划难免有强烈的个人倾向和喜好,不一定适合所有人,更多的是起到抛砖引玉的作用。如果你想挑选自己感兴趣的方向和内容加以学习,可以参考我在下面列出来的资源。
以上的课程规划难免带有强烈的个人偏好,不一定适合所有人,更多是起到抛砖引玉的作用。如果你想挑选自己感兴趣的方向和内容加以学习,可以参考我在下面列出来的资源。
- [MIT OpenCourseWare](https://ocw.mit.edu/): 麻省理工学院的课程资源开放共享项目,收录了数以千计的各科课程资源,其中计算机类的课号是 6.xxx。
- [MIT CS Course List](http://student.mit.edu/catalog/m6a.html): 麻省理工学院的 CS 课程列表。

View File

@ -9,7 +9,7 @@
- 预计学时100 小时
伯克利 CS61 系列的最后一门课程,深入计算机的硬件细节,带领学生逐步理解 C 语言是如何一步步转化为 RISC-V 汇编并在 CPU 上执行的。和 [Nand2Tetris](./N2T.md) 不同,这门课
在难度和深度上都会很多具体会涉及到流水线、Cache、虚存以及并发相关的内容。
在难度和深度上都会提高很多具体会涉及到流水线、Cache、虚存以及并发相关的内容。
这门课的 Project 也非常新颖有趣。Project1 会让你用 C 语言写一个小程序20 年秋季学期是著名的游戏 *Game of Life*。Project2 会让你用 RISC-V 汇编编写一个神经网络,用来
识别 MNIST 手写数字非常锻炼你对汇编代码的理解和运用。Project3 中你会用 Logisim 这个数字电路模拟软件搭建出一个二级流水线的 CPU并在上面运行 RISC-V 汇编代码。Project4

View File

@ -22,8 +22,8 @@ CMU 大名鼎鼎的镇系神课以其内容庞杂Project 巨难而闻名
- 课程网站:<http://csapp.cs.cmu.edu/>
- 课程视频:<https://www.bilibili.com/video/BV1iW411d7hd>
- [九曲阑干](https://space.bilibili.com/354767108/)对 CSAPP 的[中文讲解](https://www.bilibili.com/video/BV1cD4y1D7uR)据说CMU的中国留学生也在CMU的课堂上看这个视频呢
- 课程教材Computer Systems: A Programmer's Perspective, 3/E
- 课程作业11 个 Project[代码框架全部开源](http://csapp.cs.cmu.edu/3e/labs.html)
补充:相信大家在看完 CSAPP 这本书以后,可能会对书中的第七章链接有一定的疑问。这里推荐一本书《程序员的自我修养》,书的副标题是链接,装载与库。这本书能够帮助我们完善对程序链接的理解,以及对 CSAPP 第七章部分知识点的一个详细的阐述。相信你在看完这本书以后可以对程序的链接ELF 文件,动态库有一个更加深入的理解。十分推荐在读完 CSAPP对计算机系统有一定的了解以后作为补充资料来阅读。
补充:
英语有困难的同学可以参考B站UP主[九曲阑干](https://space.bilibili.com/354767108/)对 CSAPP 的[中文讲解](https://www.bilibili.com/video/BV1cD4y1D7uR)据说CMU的中国留学生也在CMU的课堂上看这个视频呢。另外如果大家在看完 CSAPP 后对书中的第七章链接有一定的疑问推荐阅读《程序员的自我修养》这本书书的副标题是链接装载与库。这本书能够帮助我们完善对程序链接的理解相信你在看完这本书以后可以对程序的链接ELF 文件,动态库都将有一个更加深入的理解。十分推荐在读完 CSAPP对计算机系统有一定的了解以后作为补充资料来阅读。

View File

@ -52,10 +52,8 @@
## 密码学
- Introduction to modern cryptography (second edition) by Jonathon Katz & Yehuda Lindell
- Cryptography Engineering: Design Principles and Practical Applications
- Introduction to modern cryptography (second edition)
- By Jonathon Katz & Yehuda Lindell
- 从密码学的最基础开始讲起,对传统密码学的各方面都有涉及,课程内容全面,是密码学入门很好的一本书
## 数据库系统

View File

@ -10,17 +10,17 @@
这门课让我记忆犹新的有两个部分:
首先是教材,这本书用的教材 *Operating Systems: Principles and Practice (2nd Edition)* 一共四卷,写得非常深入浅出,很好地弥补了 MIT6.S081 在理论知识上些许空白,非常建议大家阅读。相关资源会分享在本书的经典书籍推荐模块。
首先是教材,这本书用的教材 *Operating Systems: Principles and Practice (2nd Edition)* 一共四卷,写得非常深入浅出,很好地弥补了 MIT6.S081 在理论知识上些许空白,非常建议大家阅读。相关资源会分享在本书的经典书籍推荐模块。
其次是这门课的 Project —— Pintos。Pintos 是由 Ben Pfaff 等人基于 x86 编写的教学用操作系统Ben Pfaff 甚至专门发了篇 [paper](https://benpfaff.org/papers/pintos.pdf) 来阐述 Pintos 的设计思想。
其次是这门课的 Project —— Pintos。Pintos 是由 Ben Pfaff 等人在 x86 平台上编写的教学用操作系统Ben Pfaff 甚至专门发了篇 [paper](https://benpfaff.org/papers/pintos.pdf) 来阐述 Pintos 的设计思想。
和 MIT 的 xv6 小而精的 lab 设计理念不同Pintos 更注重系统的 Design and Implementation。Pintos 本身仅一万行左右,只提供了操作系统最基本的功能。而 4 个Project就是让你在这个极为精简的操作系统之上分别为其增加线程调度机制 (Project1),系统调用 (Project2),虚拟内存 (Project3) 以及文件系统 (Project4)。所有的 Project 都给学生留有很大的设计空间,总代码量在 5000 行以上。根据 Stanford 学生[自己的反馈][quora_link],在 3-4 人组队的情况下,后两个 Project 的人均耗时也在 40 个小时以上。
和 MIT 的 xv6 小而精的 lab 设计理念不同Pintos 更注重系统的 Design and Implementation。Pintos 本身仅一万行左右,只提供了操作系统最基本的功能。而 4 个Project就是让你在这个极为精简的操作系统之上分别为其增加线程调度机制 (Project1),系统调用 (Project2),虚拟内存 (Project3) 以及文件系统 (Project4)。所有的 Project 都给学生留有很大的设计空间,总代码量在 2000 行左右。根据 Stanford 学生[自己的反馈][quora_link],在 3-4 人组队的情况下,后两个 Project 的人均耗时也在 40 个小时以上。
[quora_link]: https://www.quora.com/What-is-it-like-to-take-CS-140-Operating-Systems-at-Stanford
虽然难度很大,但 Stanford, Berkeley, JHU 等多所美国顶尖名校的操统课程均采用了 Pintos。因为如果你真的对操作系统很感兴趣Pintos 会极大地提高你编写和 debug 底层系统代码的能力。在本科阶段,能自己设计、实现并 debug 一个大型系统,是一段非常珍贵的经历。
虽然难度很大,但 Stanford, Berkeley, JHU 等多所美国顶尖名校的操统课程均采用了 Pintos。如果你真的对操作系统很感兴趣Pintos 会极大地提高你编写和 debug 底层系统代码的能力。在本科阶段,能自己设计、实现并 debug 一个大型系统,是一段非常珍贵的经历。
北大 2022 年春季学期的操作系统实验班也将会首次引入 Pintos 作为课程 Project,我作为这门课的 TA顶着被口水淹没的风险依旧希望能用这样的尝试,让更多人爱上系统领域,为国内的系统研究添砖加瓦。
北大 2022 年春季学期的操作系统实验班也将会首次引入 Pintos 作为课程 Project。我和该课程的[另一位助教](https://github.com/AlfredThiel)整理并完善了 Pintos 的[实验文档](https://alfredthiel.gitbook.io/pintosbook/),并利用 Docker 配置了跨平台的实验环境,想自学的同学可以按文档自行学习。在毕业前的最后一个学期,希望能用这样的尝试,让更多人爱上系统领域,为国内的系统研究添砖加瓦。
## 课程资源

View File

@ -22,15 +22,18 @@
- 课程网站:<https://pdos.csail.mit.edu/6.828/2021/schedule.html>
- 课程视频:<https://www.youtube.com/watch?v=L6YqHxYHa7A>,每节课的链接详见课程网站
- 课程视频翻译文档:<https://mit-public-courses-cn-translatio.gitbook.io/mit6-s081/>
- [xv6 操作系统的深入讲解](https://space.bilibili.com/1040264970/)
- 课程视频翻译文档:<https://mit-public-courses-cn-translatio.gitbook.io/mit6-s081/>
- 课程教材:<https://pdos.csail.mit.edu/6.828/2021/xv6/book-riscv-rev2.pdf>
- [xv6 中文文档](https://th0ar.gitbooks.io/xv6-chinese/content/index.html)
- 课程作业:<https://pdos.csail.mit.edu/6.828/2021/schedule.html>11个lab具体要求详见课程网站
## xv6 补充资源
- [xv6 操作系统的深入讲解](https://space.bilibili.com/1040264970/)
- [xv6 中文文档](https://th0ar.gitbooks.io/xv6-chinese/content/index.html)
## 资源汇总
我在学习这门课中用到的所有资源和作业实现都汇总在 [PKUFlyingPig/MIT6.S081-2020fall - GitHub][github_pkuflyingpig] 中。此外也可以参考 [KuangjuX] 实现的 MIT 6.S081 的几个 lab 的[题解][solution_kuangjux],里面亦有详细的解法和补充知识,另外,[KuangjuX] 也使用 Rust 语言重新实现过 xv6-riscv 操作系统:[xv6-rust],里面对于 xv6-riscv 有更为详细的思考和讨论,感兴趣的同学可以看一下哦。
我在学习这门课中用到的所有资源和作业实现都汇总在 [PKUFlyingPig/MIT6.S081-2020fall - GitHub][github_pkuflyingpig] 中。此外也可以参考 [KuangjuX] 实现的 MIT 6.S081 的几个 lab 的[题解][solution_kuangjux],里面亦有详细的解法和补充知识,另外,[KuangjuX] 使用 Rust 语言重新实现过 xv6-riscv 操作系统:[xv6-rust],里面对于 xv6-riscv 有更为详细的思考和讨论,感兴趣的同学可以看一下哦。
[github_pkuflyingpig]: https://github.com/PKUFlyingPig/MIT6.S081-2020fall
[KuangjuX]: https://github.com/KuangjuX