2016/2/13 《计算机系统要素》(The Elements of Computing Systems)读书笔记(1)
过年期间一直在啃一本书,学习计算机组成原理。
这是一本很棒的书,是一个基于项目的学习过程。可以让人理解的很深刻。
coursera上有这本书前半部分的教程,是由书的作者团队们开的课,个人认为很棒,可惜就是后半部分的教程还没出。
不过他们的制作团队说,16年春季就会出后半部分的教程了。
课程链接是这样的:https://www.coursera.org/learn/build-a-computer
这本书有自己的官方网址,教程和软件提供很完善,Q&A也很Nice,基本上要问什么问题都能得到回答:http://www.nand2tetris.org/
当然这本书的缺点似乎是讲的内容实在太多,所以很多细节并没有处理到很完善,省略了很多内容。
但这并不是说这本书就是一本不完整的书。事实上,从第一章到最后一章,这个项目的完整性是超出我的想象的。
学习的人将从完全不理解计算系统的级别开始,搭建起一台计算机,然后在这台计算机上搭建一款简单的编译器,实现一个操作系统,然后完成在上面的程序的编写。
整本书的跨度是从数字电路到操作系统。当然,这也就不可避免地让它不能在很多问题上太过纠缠,所以,这本书重实现和了解,轻优化和深入。
作为我一个EE学生的计算机结构入门,实在是太美好不过了。
它自底向上的构建方式让学习曲线平滑到不能更平滑。
具体总结一下这本书的内容,这本书围绕着一个框架来说明:
把整个计算机系统分成两个部分,硬件层和软件层。
自顶向下的观点是这样的,最高级的是人的想法,为了实现人的想法我们需要编程描述语言和操作系统,操作系统由编程语言来写,而要使编程语言能够工作,需要有编译器,编译器的实现是有虚拟机技术的,把高级语言翻译成虚拟机上的中间代码,然后虚拟机将中间代码翻译成相应硬件平台的汇编代码,而汇编代码是等价翻译成机器语言才能使用的(用汇编器翻译)至于机器语言是怎么使用和实现的,和相应的硬件平台是有关系的,计算硬件平台的实现依靠的是数字芯片,数字芯片是一堆数字逻辑门的封装,而数字逻辑门的实现,电子学上的实现是EE研究的东西,至于为什么能实现,这是物理学的领域了。到这里就不接着向下研究了。而整个结构是这样完整的。
当然学习的过程是自底向上的,从唯一逻辑门与非门(Nand)开始搭出各种不同的逻辑门,组合成ALU,CPU,直至最后组成一台完整的被称为Hack的电脑,然后是使用它的机器语言编程,用一个汇编器来将汇编语言翻译成机器语言。然后通过设计一款编译器来实现一款基于类的名叫Jack的语言,实现一个有一些函数接口的操作系统。
这是一个浩大的工程,然而却被很好的整合在了这本书里
这本书是我这个学年至今读到最好的书。
今天这篇随笔是一个总结和推荐。大家有兴趣有空的可以看看这本书,然后我们可以一起探讨。
我会陆续发这本书的具体内容的读书笔记。
2016/2/13 《计算机系统要素》(The Elements of Computing Systems)读书笔记(1)的更多相关文章
- the elements of computing systems 的读书笔记2
懒癌发作,本来计划是两到三天就一个unit的,没想到一直拖到今天才完成第二部分(6-8章). 第6章,介绍了hack汇编到二进制,也就是用翻译到01来表示.从课后习题来看,这一章目的就是设计一个程序( ...
- the elements of computing systems 的读书笔记1
想转职程序猿,还真不是说懂一门语言就够的了,想要继续进步,必须懂其相关实现原理,比如这些底层的构造.最近看的就是这一本计算机入门级的书,但是对我这个纯自学的人来说真是能学到很多. 这本书从最基本的Na ...
- 20150206读书笔记<深入理解计算机系统>
●第一章 C是系统级编程的首选.C++显示支持抽象,属于应用级程序设计语言. 简单例子: 一个典型系统的硬件组成: 存储器的层次结构: 注:存储器层次结构的设计思想是,该层存储器作为下一层存储器的高速 ...
- 强化学习读书笔记 - 13 - 策略梯度方法(Policy Gradient Methods)
强化学习读书笔记 - 13 - 策略梯度方法(Policy Gradient Methods) 学习笔记: Reinforcement Learning: An Introduction, Richa ...
- 机器学习实战 - 读书笔记(13) - 利用PCA来简化数据
前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第13章 - 利用PCA来简化数据. 这里介绍,机器学习中的降维技术,可简化样品数据. ...
- 《深入理解计算机系统》 Chapter 7 读书笔记
<深入理解计算机系统>Chapter 7 读书笔记 链接是将各种代码和数据部分收集起来并组合成为一个单一文件的过程,这个文件可被加载(货被拷贝)到存储器并执行. 链接的时机 编译时,也就是 ...
- 《Android开发艺术探索》读书笔记 (13) 第13章 综合技术、第14章 JNI和NDK编程、第15章 Android性能优化
第13章 综合技术 13.1 使用CrashHandler来获取应用的Crash信息 (1)应用发生Crash在所难免,但是如何采集crash信息以供后续开发处理这类问题呢?利用Thread类的set ...
- <深入理解计算机系统>第七章读书笔记
第七章读书笔记 链接 链接:将各种代码和数据部分收集起来并组合成为一个单一文件的过程.(这个文件可被加载或拷贝到存储器并执行) 链接可以执行于编译,加载或运行时. 静态链接: 两个主要任务: 1 符号 ...
- 读书笔记:《人有人的用处》------N.维纳. (2016.12.28)
读书笔记:<人有人的用处>------N.维纳 ·某些系统可以依其总能量而和其他系统区别开来. ·在某些情况下,一个系统如果保持足够长时间的运转,那它就会遍历一切与其能量相容的位置和动量的 ...
随机推荐
- 【图论】POJ-3255 次短路径
一.题目 Description Bessie has moved to a small farm and sometimes enjoys returning to visit one of her ...
- 20181126-java-面试知识-收集
链接:最近面试java后端开发的感受:如果就以平时项目经验来面试,通过估计很难——再论面试前的准备 两本书的链接:Java Web轻量级开发面试教程和Java核心技术及面试指南.
- 小学四则运算结对项目报告【GUI】
写在前面 这次的结对项目我做了很长时间,感触也很多.在这次项目中我使用了Java GUI作为和用户的交互方式,但是在上Java课的时候我对GUI和事件驱动这里并没有学的多好,可能是当时对编程还没有什么 ...
- beta 发布的相关评论
1. 礼物挑选小工具 飞天小女警 这个项目的创意独具匠心,贴近实际,令人耳目一新,网站的页面也是玫红色的,配色让人感到很温馨,对礼物的筛选方式很有趣,使用的记录特殊日子的方法来提醒自己挑选礼 ...
- paperOne基于java web的简易四则运算出题网站
项目成员:张金生 张政 需求概要 1.运算数均为正整数 2.包含的运算符有+,-,*,/ 3.除法运算结果为整除运算 4.批量生成题目并判题 核心功能分析 1.题目生成——java后端 题目生 ...
- [cnbeta] 波音系列飞机价格。。。
https://www.cnbeta.com/articles/tech/786745.htm 单价最便宜的是波音737-700,为0.858亿美元(约合5.96亿元). 评论网友调侃,“你家能满40 ...
- poj3320 Jessica's Reading Problem
Description Jessica's a very lovely girl wooed by lots of boys. Recently she has a problem. The fina ...
- 自定义smokeping告警(邮件+短信)
前段时间接到公司IT同事需求,帮助其配置smokeping的告警功能,之前配置的姿势有些问题,告警有些问题,现在调试OK,在此将关键配置点简单记录下. 关键的配置项主要有: 定义告警规则并配置将告警信 ...
- git 复位出现If no other git process is currently running, this probably means a git process crashed in this repo
复位到A节点的时候点了取消(终止),又去复位另外个节点,结果每次不管复位哪个都会报这个错误 fatal: Unable to create 'XXXXXXXXX' : File exists. If ...
- 【刷题】BZOJ 4657 tower
Description Nick最近在玩一款很好玩的游戏,游戏规则是这样的: 有一个n*m的地图,地图上的每一个位置要么是空地,要么是炮塔,要么是一些BETA狗,Nick需要操纵炮塔攻击BETA狗们. ...