首页 > 代码库 > 深入理解计算机系统之旅(一)计算机系统漫游
深入理解计算机系统之旅(一)计算机系统漫游
1、计算机系统是什么?
我们直观的可以看到的计算机系统就是一台电脑,包括主机、显示器、键盘鼠标,然后显示器上会显示不同界面,用鼠标点击,键盘输入界面就会相应操作。
2、深入一点,他们是如何工作的?
计算机系统是由硬件和系统软件组成,它们共同工作来运行应用程序。
3、再深入一点,硬件是什么?系统软件是什么?应用程序是什么?
硬件是组成计算机系统的基础,大家耳熟能详的就是CPU、内存、硬盘、主板等。
系统软件是运行在硬件之上的一层控制软件,就是我们经常听到的Windows XP、WIN7、Linux,它们的目的就是管理好各个硬件,屏蔽硬件的差异性,提供一个统一的应用软件工作的平台。
应用程序是运行在系统软件之上的一层软件,他们受到系统软件的管理,同时也享受系统软件提供的各种资源和功能接口,就是我们经常用的QQ、迅雷等等。
4、进入正题,计算机工作时的原理,它一直在做着什么样的处理工作?
计算机工作时一直在处理的是数据,计算机内部能处理的数据只有两种形式,0和1,这是组成计算机硬件的半导体的电气特性。如何让0和1能过表示现实世界的各种信息?那么就需要对他们进行组合和编码。
CPU的指令是由一组组的0和1编码构成。
我们在显示器上看到的各种字符和文字也是由0和1的组合编码而成,最终通过一定的方式在显示器上模拟出字符和文字的形状显示出来。
同样的0和1组成的位数据在不同的地方表示的意义不同,如何区别这样的数据?
计算机系统中所有的信息、数据——包括磁盘文件、内存中的程序、用户的数据以及网络上传送的数据,都是由一串比特表示,也就是0和1的位。区分不同数据对象的唯一方法是我们读到这些数据对象时的上下文。比如,在不同的上下文中,同样的字节序列可能表示一个整数、字符串或者机器指令。
5、程序在不同阶段的表示——由人类易懂的高级语言到机器易懂的低级指令
高级语言(比如C语言)编写的程序源码能够被人读懂,但是计算机却不懂,为了能让计算机能够知道如何运行程序,就需要把每条C语言程序语句都转化为一系列的低级机器语言指令,然后这些指令按照一种可执行目标程序的格式打包并以文件的形式存储在硬盘上。6、执行程序——存放在存储器中的机器能够懂的低级指令被读取、解释、执行
硬盘上的程序被执行时会首先由操作系统按照一定规则和格式读取并加载到内存中,然后调度并交由CPU执行,运行一个程序的过程非常复杂,它需要系统中不同功能的硬件、软件一起协调工作。无论如何整个过程中的数据信息流遵循输入——》输入出的原则,被各个器件处理然后流转。
7、漫游结束
计算机系统是由硬件和系统软件组成,它们共同协作以运行应用程序。计算机内部的信息被表示为一组组的0和1二进制位,它们依据不同的上下文有不同的解释方式。程序被其他程序编译成不同的形式,开始时是源代码文本,然后被编译器和连接器翻译成二进制可执行文件。处理器读取并解释存放在主存里的二进制指令。因为计算机花费了大量的时间在存储器、I/O设备和CPU寄存器之间拷贝数据,所以系统中的存储设备就被按层次排列,CPU寄存器在顶部,接着是多层的硬件高速缓存存储器,DRAM主存储器,DRAM主存储器和磁盘存储器。在层次模型中位于更高层的存储设备比低层的存储设备要快,但是单位存储价格也更高。
操作系统内核是应用程序和硬件之间的媒介。它提供三个基本的抽象概念,文件是对I/O设备的抽象概念,虚拟存储器是对主存和硬盘的抽象概念,进程是处理器、主存和I/O设备的抽象概念。
最后网络提供计算机系统之间通信的手段,从某个系统的角度来看,网络就是一种I/O设备。