一套完整的计算机系统分为:计算机硬件,操作系统,应用软件,如下图。因而我们的python编程之路分为计算机硬件基础,操作系统基础,和python编程三部分,而我们便是最先从计算机硬件开始学习的。
一 计算机硬件介绍
计算机硬件有五大部分:
1、控制器:计算机的指挥系统。控制器通过地址访问存储器,从存储器中取出指令,经译码器分析后,根 据指令分析结果产生相应的操作控制信号作用于其他部件,使得各部件在控制器控制下有条不紊地协调工作。
2、运算器:实现算术运算和逻辑运算的部件。
3、存储器:是计算机用来存放所有数据和程序的记忆部件。他的基本功能是按指定的地址存入或者取出信息。计算机中的存储器分为两大类:一类是内存储器,简称内存或主存;另一类是外存储器(辅助存储器),简称外存或辅存。存储器由若干个存储单元组成,每个存储单元都有一个地址,计算机通过地址对存储单元进行读写。一个存储器所包含的字节数称为存储容量,单位有B、KB、MD、GB、TB等。
4、输入设备:是向计算机中输入信息(程序、数据、声音、文字、图形、图像等)的设备。常见的输入设备有:键盘、鼠标、图形扫描仪、触摸屏、条形码输入器、光笔等。 外存储器也是一种输入设备。
5、输出设备:主要有显示器、打印机和绘图仪等。外存储器也当作一种输出设备。
总结来说:控制器+运算器=CPU,CPU是人的大脑,负责控制全身和运算;内存是人的记忆,负责临时存储;硬盘是人的笔记本,负责永久存储;输入设备是耳朵或眼睛或嘴巴,负责接收外部信息存入内存,输出设备是你整个身体的肢体动作,负责经过处理后输出的结果。以上所有的设备都通过总线连接,总线相当于人的神经。
二 中央处理器
1、将运算器和控制器合称为中央处理器(Central Processing Unit,CPU)。其中运算器用来主要负责程序运算与逻辑判断,控制器则主要协调各组件和各单元的工作,所以CPU的工作主要在于管理和运算。可以说计算机的大脑就是CPU,它从内存中取指令->解码->执行,然后再取指->解码->执行下一条指令,周而复始,直至整个程序被执行完成。既然CPU的重点在于进行运算和判断,那么要被运算与判断的数据是从哪里来的?CPU读取的数据都是从主存储器(内存)来的!主存储器内的数据则是从输入单元所传输进来!而CPU处理完毕的数据也必须先写回主存储器中,最后数据才从主存储器传输到输出单元。
2、内核态与用户态
内核态:当cpu在内核态运行时,cpu可以执行指令集中所有的指令,很明显,所有的指令中包含了使用硬件的所有功能,(操作系统在内核态下运行,从而可以访问整个硬件)
用户态:用户程序在用户态下运行,仅仅只能执行cpu整个指令集的一个子集,该子集中不包含操作硬件功能的部分,因此,一般情况下,在用户态中有关I/O和内存保护(操作系统占用的内存是受保护的,不能被别的程序占用),当然,在用户态下,将PSW中的模式设置成内核态也是禁止的。
三 存储器
寄存器即L1缓存&#xff1a;用与cpu相同材质制造&#xff0c;与cpu一样快&#xff0c;因而cpu访问它无时延&#xff0c;典型容量是&#xff1a;在32位cpu中为32*32&#xff0c;在64位cpu中为64*64&#xff0c;在两种情况下容量均<1KB。
高速缓存即L2缓存&#xff1a;主要由硬件控制高速缓存的存取&#xff0c;内存中有高速缓存行按照0~64字节为行0&#xff0c;64~127为行1。。。最常用的高速缓存行放置在cpu内部或者非常接近cpu的高速缓存中。
内存&#xff08;RAM)称为随机访问存储RAM&#xff1a;是我们通常所说的内存&#xff0c;容量一直在不断攀升&#xff0c;所有不能再高速缓存中找到的&#xff0c;都会到主存中找&#xff0c;主存是易失性存储&#xff0c;断电后数据全部消失。
非易失性随机访问存储&#xff08;ROM)&#xff1a;在电源切断之后&#xff0c;非易失性存储的内容并不会丢失&#xff0c;ROM只读存储器在工厂中就被编程完毕&#xff0c;然后再也不能修改。
EEPROM&#xff08;Electrically Erasable PROM&#xff0c;电可擦除可编程ROM&#xff09;和闪存&#xff08;flash memory&#xff09;也是非易失性的。
CMOS&#xff1a;是易失性的&#xff0c;许多计算机利用CMOS存储器来保持当前时间和日期。CMOS存储器和递增时间的电路由一小块电池驱动&#xff0c;所以&#xff0c;即使计算机没有加电&#xff0c;时间也仍然可以正确地更新&#xff0c;除此之外CMOS还可以保存配置的参数&#xff0c;比如&#xff0c;哪一个是启动磁盘等&#xff0c;之所以采用CMOS是因为它耗电非常少&#xff0c;一块工厂原装电池往往能使用若干年&#xff0c;但是当电池失效时&#xff0c;相关的配置和时间等都将丢失。
四 磁盘&#xff1a;数据都存放于一段一段的扇区&#xff0c;即磁道这个圆圈的一小段圆圈&#xff0c;从磁盘读取一段数据需要经历寻道时间和延迟时间。
&#xff08;虚拟内存&#xff1a;许多计算机支持虚拟内存机制&#xff0c;该机制使计算机可以运行大于物理内存的程序&#xff0c;方法是将正在使用的程序放入内存取执行&#xff0c;而暂时不需要执行的程序放到磁盘的某块地方&#xff0c;这块地方成为虚拟内存&#xff0c;在linux中成为swap&#xff0c;这种机制的核心在于快速地映射内存地址&#xff0c;由cpu中的一个部件负责&#xff0c;成为存储器管理单元(Memory Management Unit MMU)
五 启动计算机
1.计算机加电
2.BIOS开始运行&#xff0c;检测硬件&#xff1a;cpu、内存、硬盘等
3.BIOS读取CMOS存储器中的参数&#xff0c;选择启动设备
4.从启动设备上读取第一个扇区的内容&#xff08;MBR主引导记录512字节&#xff0c;前446为引导信息&#xff0c;后64为分区信息&#xff0c;最后两个为标志位&#xff09;
5.根据分区信息读入bootloader启动装载模块&#xff0c;启动操作系统
6.然后操作系统询问BIOS&#xff0c;以获得配置信息。对于每种设备&#xff0c;系统会检查其设备驱动程序是否存在&#xff0c;如果没有&#xff0c;系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序&#xff0c;操作系统就将它们调入内核。然后初始有关的表格&#xff08;如进程表&#xff09;&#xff0c;穿件需要的进程&#xff0c;并在每个终端上启动登录程序或GUI