Computer Abstractions and Techno
1.1 Introduction
主要讲了计算机的历史,以及分类:PC、服务器、嵌入式计算机、个人移动设备和云计算背后的仓储级计算机(Warehouse Scale Computer)。
这个表格记录了二进制和十进制的差别:
对于什么会影响程序的效率,下面这个表格做了总结:
其实就是。。。每一层都有影响吧
1.2 Eight Great Ideas in Computer Architecture
核心内容可以参考这一篇读书笔记。
1.3 Below Your Program
下面这个图是一个抽象的示范案例 —— 但确实已经被广泛接受,甚至术语:应用软件、系统软件和硬件:
这里值得一提的是,系统软件中最重要的两种是:
An operating system interfaces between a user’s program and the hardware and provides a variety of services and supervisory functions. Among the most important functions are:
■ Handling basic input and output operations
■ Allocating storage and memory
■ Providing for protected sharing of the computer among multiple applications using it simultaneously
Compilers perform another vital function: the translation of a program written in a high-level language, such as C, C++, Java, or Visual Basic into instructions that the hardware can execute. Given the sophistication of modern programming languages and the simplicity of the instructions executed by the hardware, the translation from a high-level language program to hardware instructions is complex.
在这种分层的架构下,意味着几层语言的转换:
除了编译器(compiler)之外,这里涉及到的其他几个概念是:
high-level programming language A portable language such as C, C++, Java, or Visual Basic that is composed of words and algebraic notation that can be translated by a compiler into assembly language.
assembly languageA symbolic representation of machine instructions.
assembler A program that translates a symbolic version of instructions into the binary version.
machine languageA binary representation of machine instructions.
这段话也值得记录:
Computers are slaves to our commands, which are called instructions. Instructions, which are just collections of bits that the computer understands and obeys, can be thought of as numbers...using numbers for both instructions and data is a foundation of computing.