强烈推荐的两个神级教学项目: nand2tetris 与 MIT6.828

简介: 强烈推荐的两个神级教学项目: nand2tetris 与 MIT6.828

nand2tetris

  • 难度:★★★★☆
  • 推荐:★★★★★

nand2tetris 项目有一本书叫《计算机系统要素》,也有英语的视频教程。如果英语不好的可以看书,内容是一样的。

这本书主要讲解了计算机原理(1-5章)、编译原理(6-11章)、操作系统相关知识(12章)。不要看内容这么多,其实这本书的内容非常通俗易懂,翻译也很给力。每一章背后都有对应的练习,需要你手写代码去完成,堪称理论与实践结合的经典。

这里引用一下书里的内容简介,大家可以感受一下。

本书通过展现简单但功能强大的计算机系统之构建过程,为读者呈现了一幅完整、严格的计算机应用科学大图景。本书作者认为,理解计算机工作原理的最好方法就是亲自动手,从零开始构建计算机系统。通过12个章节和项目来引领读者从头开始,本书逐步地构建一个基本的硬件平台和现代软件阶层体系。在这个过程中,读者能够获得关于硬件体系结构、操作系统、编程语言、编译器、数据结构、算法以及软件工程的详实知识。通过这种逐步构造的方法,本书揭示了计算机科学知识中的重要成分,并展示其它课程中所介绍的理论和应用技术如何融入这幅全局大图景当中去。
全书基于“先抽象再实现”的阐述模式,每一章都介绍一个关键的硬件或软件抽象,一种实现方式以及一个实际的项目。完成这些项目所必要的计算机科学知识在本书中都有涵盖,只要求读者具备程序设计经验。本书配套的支持网站提供了书中描述的用于构建所有硬件和软件系统所必需的工具和资料,以及用于12个项目的200个测试程序。
全书内容广泛、涉猎全面,适合计算机及相关专业本科生、研究生、技术开发人员、教师以及技术爱好者参考和学习。

而且,这本书的门槛非常低,只要你能熟练运用一门编程语言即可。

本书从与非门开始教你一步步构建一个完整的计算机(1-5章);从第 6 章开始一直到第 11 章,需要完成三个编译器(汇编编译器、VM 编译器、Jack 语言编译器);最后一章则需要完成操作系统部分功能。

如果你完成了本书所有的项目,则会获得以下成就:

  • 构建出一台计算机(在模拟器上运行)
  • 实现一门语言和相应的语言标准库
  • 实现一个简单的编译器

我已经把这本书所有项目都完成了,耗时两个月(每天 3 小时)。答案放在 github 上,还建立了一个 QQ 交流群,如果有不懂的可以加群里探讨一下。

MIT6.828

  • 难度:★★★★★
  • 推荐:★★★★★

这个项目是 MIT 大学开源的一个操作系统课程,官网是 https://pdos.csail.mit.edu/6....。该项目主要有以下几个优点:

  • 循序渐进,从浅到深,让人更容易接受
  • 理论与实践结合,每讲解一个知识点都有对应的练习需要完成
  • 做这个项目的人很多,网上资料和答案非常多

只要你跟着项目走,从 Lab1 开始,一步一步的做到 Lab6,就能实现一个简单的操作系统内核。以下是 6 个实验的内容简介:

  1. 引导PC,讲解 bootloader
  2. 内存管理
  3. 用户进程及中断
  4. 抢占式多任务处理
  5. 文件系统
  6. 网络驱动程序

不过这个项目比起 nand2tetris 要难,门槛较高。如果没什么基础的话,建议做这个项目之前先看看下列资料:

这个项目也花了两个月才完成,不过只做了 Lab1-6 实验,挑战任务和家庭作业都没做。答案放在 github 上,有兴趣可以看看。

目录
相关文章
|
1月前
|
算法 前端开发 语音技术
推荐6款2023年爆火的开源项目,你值得一试!
推荐6款2023年爆火的开源项目,你值得一试!
推荐6款2023年爆火的开源项目,你值得一试!
|
4月前
|
编译器 程序员 Linux
嵌入式软件开发第一讲笔记
嵌入式软件开发第一讲笔记
30 0
|
7月前
|
传感器 网络协议 物联网
搞嵌入式开发却不会写上位机?来了解下小白的福音Micro-Lab(多个案例带你快速入门)
搞嵌入式开发却不会写上位机?来了解下小白的福音Micro-Lab(多个案例带你快速入门)
151 0
|
芯片 数据格式
爆肝9万字,我已从小白晋升ARM嵌入式工程师!带你从零熟悉常用的M4嵌入式功能,建议收藏(含码源)(2)
什么是中断?中断就是CPU在正常运行程序的时候,由于内部或者外部事件引起的暂时中止现行的程序,转去执行请求CPU为其服务的那个外设或者事件的服务程序,等待这个服务程序执行完毕又要返回到被中止的地方的程序,这么的一个过程。
爆肝9万字,我已从小白晋升ARM嵌入式工程师!带你从零熟悉常用的M4嵌入式功能,建议收藏(含码源)(2)
|
存储 图形学 芯片
爆肝9万字,我已从小白晋升ARM嵌入式工程师!带你从零熟悉常用的M4嵌入式功能,建议收藏(含码源)(1)
嵌入式系统的定义有很多的说法,但是没有一个定义是全面的,下面给到的两种方法我觉得应该算是比较合理的。
爆肝9万字,我已从小白晋升ARM嵌入式工程师!带你从零熟悉常用的M4嵌入式功能,建议收藏(含码源)(1)
|
传感器 编解码 算法
爆肝9万字,我已从小白晋升ARM嵌入式工程师!带你从零熟悉常用的M4嵌入式功能,建议收藏(含码源)(6)
通讯协议又称通信规程,是指通信双方对数据传送控制的一种约定。约定中包括对数据格式,同步方式,传送速度,传送步骤,检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。
爆肝9万字,我已从小白晋升ARM嵌入式工程师!带你从零熟悉常用的M4嵌入式功能,建议收藏(含码源)(6)
爆肝9万字,我已从小白晋升ARM嵌入式工程师!带你从零熟悉常用的M4嵌入式功能,建议收藏(含码源)(4)
什么是实时时钟?实时时钟RTC是一个独立的定时器。RTC模块拥有一组连续计数的计数器,在相应软件配置下,可以供应时钟日历的功能。
爆肝9万字,我已从小白晋升ARM嵌入式工程师!带你从零熟悉常用的M4嵌入式功能,建议收藏(含码源)(4)
爆肝9万字,我已从小白晋升ARM嵌入式工程师!带你从零熟悉常用的M4嵌入式功能,建议收藏(含码源)(5)
此器件具有两个嵌入式看门狗外设,具有安全性高、定时准确及使用灵活的优点。两个看门 狗外设(独立和窗口)均可用于检测并解决由软件错误导致的故障'
爆肝9万字,我已从小白晋升ARM嵌入式工程师!带你从零熟悉常用的M4嵌入式功能,建议收藏(含码源)(5)
|
SQL 算法 前端开发
撕书吧!编程小白!你也能学的哈佛CS50,全美最受欢迎计算机入门课
【新智元导读】自学计算机,到底如何入门?哈佛大学计算机导论课程 CS50推荐给编程小白们,这门课是哈佛最受欢迎的课程之一,老师风趣幽默,带你少走弯路,直奔编程大门。
368 0
撕书吧!编程小白!你也能学的哈佛CS50,全美最受欢迎计算机入门课