强烈推荐的两个神级教学项目: 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 上,有兴趣可以看看。

目录
相关文章
|
2月前
|
Web App开发 安全 程序员
FFmpeg开发笔记(五十五)寒冬里的安卓程序员可进阶修炼的几种姿势
多年的互联网寒冬在今年尤为凛冽,坚守安卓开发愈发不易。面对是否转行或学习新技术的迷茫,安卓程序员可从三个方向进阶:1)钻研谷歌新技术,如Kotlin、Flutter、Jetpack等;2)拓展新功能应用,掌握Socket、OpenGL、WebRTC等专业领域技能;3)结合其他行业,如汽车、游戏、安全等,拓宽职业道路。这三个方向各有学习难度和保饭碗指数,助你在安卓开发领域持续成长。
82 1
FFmpeg开发笔记(五十五)寒冬里的安卓程序员可进阶修炼的几种姿势
|
4月前
|
Ubuntu Linux Docker
OrangePi 学习摘录
OrangePi 学习摘录
29 1
|
6月前
|
测试技术 虚拟化 云计算
GitHub高赞!速通Python编程基础手册,被玩出花了!
随着云时代的来临,Python 语言越来越被程序开发人员喜欢和使用,因为其不仅简单易学,而且还有丰富的第三方程序库和相应完善的管理工具。 从命令行脚本程序到 GUI程序,从图形技术到科学计算,从软件开发到自动化测试,从云计算到虚拟化,所有这些领域都有 Python 的身影。 今天给小伙伴们分享的这份手册采用以任务为导向的编写模式,全面地介绍了 Python 编程基础及其相关知识的应用,讲解了如何利用 Python 的知识解决部分实际问题。
GitHub高赞!速通Python编程基础手册,被玩出花了!
|
传感器 网络协议 物联网
搞嵌入式开发却不会写上位机?来了解下小白的福音Micro-Lab(多个案例带你快速入门)
搞嵌入式开发却不会写上位机?来了解下小白的福音Micro-Lab(多个案例带你快速入门)
222 0
|
数据采集 人工智能 Windows
小工具集锦,5款好用的良心软件
今天来给大家推荐5款良心软件,每款都是经过时间检验的精品,用起来让你的工作效率提升飞快,各个都让你觉得相见恨晚!
151 0
小工具集锦,5款好用的良心软件
|
开发者
重磅发布!《Elastic开发者手册》开放免费下载啦!从理论到实战一册包揽!
《Elastic开发者手册》的创作发布,源于阿里云开发者社区和Elastic中国的友好合作。手册共分为上下两册,上册为基础开发宝典,下册为产品应用实战。书中的内容均来源于Elastic中国官方微信公众号。《Elastic开发者手册》集合了16篇Elastic(中国)深受开发者喜爱的优质内容,内容涵盖Elastic的基础介绍、能力组成、功能实战和开发效能等。
重磅发布!《Elastic开发者手册》开放免费下载啦!从理论到实战一册包揽!
|
Linux Windows
事半功倍!强烈推荐这款学术利器!
在校学生或者从事科研相关工作的同学,经常会和学术论文打交道。 例如,毕业生在完成毕业论文的过程中,会阅读大量相关领域的学术论文。
事半功倍!强烈推荐这款学术利器!
|
设计模式 算法 安全
强烈推荐10本程序员必读的书
强烈推荐10本程序员必读的书
148 0
|
Web App开发 机器学习/深度学习 架构师
11位大咖带你玩转WebRTC开发(内附PPT资料下载)
迎着上海舒爽的小雨,LiveVideoStack携手英特尔、阿里巴巴、爱奇艺等11位大咖讲师共同带来了WebRTC开发及实践专题,与参会嘉宾一同分享了基于WebRTC技术的英特尔协同通信开发套件的功能、愿景、硬件产品选取,以及融合机器学习和VR/AR的技术发展前瞻,并对搭建实时通信平台的技术难点、解决之道以及实时通信客户端可定制优化做了详细解析,现场更有服务端配置、部署实操演练。
3354 0