计算机硬件基础
前言:
Python一种人和计算机沟通的语言也称为编程语言,所谓知己知彼 在学习Python之前我们先了解一下要沟通的对象---计算机是什么?它的结构、底层工作原理才能写出更好的编程语言,和它进行更亲密得交流、沟通。
计算机是什么?
一种帮助人类运算、存储信息的工具。
一套完整的计算机系统由硬件、操作系统、应用程序组成;
一、硬件介绍
计算机硬件可划分为:CPU、内存、存储设备、输入设备、输出设备、总线连接组成。抽象比喻到人身上 处理器相当于人类的大脑、内存好比记忆、存储设备好比人的笔记本(帮助人永久存储信息)、 输入设备好比老师讲课(向大脑传入信息)、输出设备(好比人的表情,喜怒变现于面),连接总线(好比人的神经系统将各个组件联系起来)分别了解一下计算机的各大组件。
二、CPU
CPU相当于人类脑负责从内存中取指令->解码->执行,循环工作着。
1.0.CPU模式:
CPU在工作过程中有2中模式,即内核态与用户态,PSW(状态寄存器)中有一个二进制位控制这两种模式。
a.内核态: CPU可以访问内存所有数据, 包括外围设备, 例如硬盘, 网卡. CPU也可以将自己从一个程序切换到另一个程序
b.用户态: 只能受限的访问内存, 且不允许访问外围设备. 占用CPU的能力被剥夺, CPU资源可以被其他程序获取
1.1、为什么要有用户态和内核态?
由于需要限制不同的程序之间的访问能力, 防止他们获取别的程序的内存数据, 或者获取外围设备的数据, 并发送到网络, CPU划分出两个权限等级 -- 用户态 和 内核态
1.2、CPU核心的组件
CPU核心组件包含 运算器、控制器、寄存器
a.运算器
arithmetic unit,计算计中执行各种算术和逻辑运算操作的部件。运算器的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、比较和传b.送等操作,亦称算术逻辑部件(ALU)。
c.控制器
内存是三维编址/全局编址的数据存放都有特定的位置,控制器负责从内存中读取数据给运算器
d.寄存器
由于运算器要对数据进行运算 比如运算 2+6=8但运算器只能运算没有记忆所以 需要寄存器 存储要参加运算的数据 2 和 6 。
1.3、寄存器的分类:
通用寄存器
保持临时变量和运算结果
程序计数器
它保存了将要取出的下一条指令的内存地址。在指令取出后,程序计算器就被更新以便执行后期的指令。
堆栈指针寄存器
它指向内存中当前栈的顶端。该栈包含已经进入但是还没有退出的每个过程中的一个框架。在一个过程的堆栈框架中保存了有关的输入参数、局部变量以及那些没有保存在寄存器中的临时变量
程序状态字寄存器(PSW)
这个寄存器包含了条码位(由比较指令设置)、CPU优先级、模式(用户态或内核态),以及各种其他控制位。用户通常读入整个PSW,但是只对其中少量的字段写入。在系统调用和I/O中,PSW非常非常非常非常非常非常重要
三、存储器( 内存、硬盘.....)
由于内存有易失性,断电后不能保持信息,所以计算机必须由存储器来永久保存数据;
2.0、 存储器的种类
a.非易失性随机访问存储如ROM(Read Only Memory,ROM)
在电源切断之后,非易失性存储的内容并不会丢失,ROM只读存储器在工厂中就被编程完毕,然后再也不能修改。ROM速度快且便宜,在有些计算机中,用于启动计算机的引导加载模块就存放在ROM中,另外一些I/O卡也采用ROM处理底层设备的控制。
b.EEPROM(Electrically Erasable PROM,电可擦除可编程ROM)和闪存(flash memory)也是非易失性的
但是与ROM相反,他们可以擦除和重写。不过重写时花费的时间比写入RAM要多。在便携式电子设备中中,闪存通常作为存储媒介。闪存是数码相机中的胶卷,是便携式音译播放器的磁盘,还应用于固态硬盘。闪存在速度上介于RAM和磁盘之间,但与磁盘不同的是,闪存擦除的次数过多,就被磨损了。
c.CMOS
它是易失性的,许多计算机利用CMOS存储器来保持当前时间和日期。CMOS存储器和递增时间的电路由一小块电池驱动,所以,即使计算机没有加电,时间也仍然可以正确地更新,除此之外CMOS还可以保存配置的参数,比如,哪一个是启动磁盘等,之所以采用CMOS是因为它耗电非常少,一块工厂原装电池往往能使用若干年,但是当电池失效时,相关的配置和时间等都将丢失。
d.磁盘:
扇区: 机械硬盘的转轴转动带动硬盘内的金属盘片跟随转动,机械手臂上下摩擦盘面一个段称扇区。
四、连接总线:
连接计算机各个组件的主线
3.0连接总线分类:
a.北桥:
即PCI桥:连接高速设备
b.南桥:
即ISA桥:连接慢速设备
五、计算机启动流程
在计算机的主板上有一个基本的输入输出程序(Basic Input Output system)
BIOS就相当于一个小的操作系统,它有底层的I/O软件,包括读键盘,写屏幕,进行磁盘I/O,该程序存放于一非易失性闪存RAM中。
启动流程如下
1.计算机加电
2.BIOS开始运行,检测硬件:cpu、内存、硬盘等
3.BIOS读取CMOS存储器中的参数,选择启动设备
4.从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位)
5.根据分区信息读入bootloader启动装载模块,启动操作系统
6.然后操作系统询问BIOS,以获得配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核。然后初始有关的表格(如进程表),穿件需要的进程,并在每个终端上启动登录程序或GUI