0%

总结

1.0用画来表达更加清楚。

工程师不仅仅需要写软件工程还需要对硬件有基础的了解。

我们知道软件是运行在硬件设备上的,那么硬件是如何运行软件的呢?

1.1了解基础的硬件抽象概念:CPU、内存、硬盘

CPU(指令集):中央处理器,他负责计算机中对数据的运算和处理,速度最快。
RAM(内存,主存):内存用来存储CPU运算需要的临时数据,速度其次,数据断电即无。
硬盘(IO设备):用来存储长期保存的数据,速度最慢。
CPU是运算中心(处理数据),RAM和硬盘都是存储数据,一个临时存储,一个永久存储。

1.2了解操作系统:

操作系统是在硬件之上,软件之下的特殊软件程序,他负责对整个硬件资源的整体调度。

操作系统分离了软件和硬件资源,使得整个系统资源的应用更加解耦和简单。
他使得软件不直接操作硬件资源,在一定程度上是对资源的保护,中间的介入使得系统变得安全和可靠。

1.2.1操作系统对于资源是如何抽象的:

操作系统对于硬件资源进行了一定程度的抽象,诸如:
将CPU抽象为进程和线程,并提供了进程管理(分时系统);
将RAM抽象为虚拟内存,并提供了内存管理;
将硬盘抽象为文件和文件夹,并提供了文件管理。

1.3计算机网络:

将计算机看成一个整体,不同的计算机之间可以相互通信,其中OSI七层模型最为经典。

以五层模型为例(七层我也讲不清楚)。

1.3.1五层模型:

1.3.2物理层:

1.3.3链路层:

1.3.4网络层:

1.3.5传输层:

1.3.6应用层:

1.4:编程语言

编程语言是现代软件工程中最重要的一部分,了解语言的发展是有利于理解当前语言的。

编程语言大类可以分为两种:汇编语言高级语言
汇编语言在操作系统之下,之间和硬件打交道,因此节省内存,效率较高,但是难以构建大型复制的项目。
高级语言在操作系统智商,不直接接触硬件,