前言
以<深入理解计算机系统>(以下称“本书”)内容为基础,对程序的整个过程进行梳理。本书内容对整个计算机系统做了系统性导引,每部分内容都是单独的一门课.学习深度根据自己需要来定
引入
编程是在表达逻辑,用数据变化来说明逻辑.如果要笔者说编程哪一部分最重要,那一定是数据.不管对数据的哪个方面的认识,都是核心内容.数据的分类:简单数据和复杂数据;数据的处理逻辑,基础api,也就是机器指令封装后的基础函数,这部分是编程语言的核心内容:比如分支,循环.编程的基础部分很多还是要背诵的.数据集合的组织,也就是数据结构,无一不是重中之重.面向对象其实是起到一个抽象和实现分离的作用,接口用于动作,类用于表达相同元素和相同动作,再加上场景包含个体,数据映射到硬件,程序就完成了.--那么编程难不难?实际上理解了之后也没多难,难的东西都有人给你做了,最直观的就是芯片和操作系统.那光凭借这几句话就可以编程了吗?当然还不够,中间牵涉到细节的还有许多值得分析的地方.
第一段属于作者闲话,这一段也是.在计算机底层,数据实际上是硬件地址和内存地址,至于地址中写入的内容,是想要得到的结果.---如果读起来拗口也没关系,主要是一种理解.懂了之后自然明白是什么意思.硬件层面研究数据的通道,内存是数据通道中的一环:硬件(硬盘)地址→内存→CPU寄存器→CPU处理→内存→硬件(硬盘)地址.在引入了操作系统后,计算机在操作系统层面,引入了虚拟内存.程序员一般不再操作物理内存而转向操作虚拟内存.---所以在计算机科学中,先设计概念,再依照概念去实现,操作系统也是这样来的,而随着操作系统的倒来,对内存的操作也发生了变化.单片机以及一些简单任务的系统还在使用物理内存.当然倒不是说虚拟内存就一定比物理内存好,相反他更复杂,但内存的选用是根据具体需要来的.
虚拟内存概述