2021.07.22 周四 晴
看了《计算机系统要素:从零开始构建现代计算机》这本书的……序,P1~P7.
序的主要内容:
- 现代计算机是一个典型的多层次模块化系统,本书按照bottom-up的思路来展开对现代计算机各个模块的构建;
- 回答了:现代计算机一共可以分为哪些模块/章节?
- 回答了:本书一共有12个有效章节,每一章都主要讲什么?
- 一定要实践!!!实践的学习效果跟只阅读的效果是不一样的(序里面反复强调的一个观点);
top-down:
- 企业家和程序员构想实际应用;(应用才是本质目的,程序、代码只是手段);
- 程序员用代码实现这些构想/应用,这些应用调用的一些“库函数/服务”是由“操作系统”和“标准语言程序库”构成;
- 操作系统由一些关键算法和在关键算法的基础上构建的其它不那么关键的算法构成;
- 实现操作系统的语言是高级语言Jack;
- Jack是高级语言,通过编译(编译器:语法分析+代码生成、虚拟机、汇编编译器),被翻译成机器语言;编译器生成中间代码,中间代码在VM上一顿操作生成一个大的汇编程序,汇编编译器将汇编程序编译二进制代码;
- 二进制代码运行在硬件上,硬件 = 基本逻辑门->布尔运算->组合逻辑门->ALU芯片->?寄存器 + 内存系统->Hack平台的机器语言介绍,及可用仿真软件在电脑上面模拟搭建出属于自己的硬件平台,并用作者提供的脚本进行测试;
收获及思考:
- 比较关注如何用逻辑门搭建出“寄存器”、“内存系统”、“ALU芯片”这块;
- “真理汲取自经历体验。”多次强调实践的重要性;
- 书中说,“本书将带你踏上发现之旅,你将学到三种知识:一、计算机如何工作的;二、如何将复杂的问题分解为易于管理的模块;三:如何开发大规模的硬件和软件系统;”,计划学习过程中不断地刷新这三种知识,等全部学完后输出一篇文章来总结自己认知中的这三种知识;
- Nand是“与非”,Nor是“或非”,winbond那款型号为w25q128jv的Flash是Nor Flash;
|