Linux系统原理——开机及思考

让知识彻底通透起来。

上电:

1、电源开启:当用户按下电源按钮时,电源供应器(PSU)开始工作,向计算机的各个组件供电。

2、电源管理电路:电源管理电路监测电源的稳定性,确保所有电压都在正常范围内。

3、生成复位信号:一旦电源稳定,电源管理电路会发出复位信号(通常是一个短暂的高电平信号)给CPU。

4、CPU复位:复位信号(Reset Signal)是一个电气信号,用于将CPU和其他计算机组件重置到初始状态。复位信号会清除CPU内部的寄存器和状态信息,确保没有残留的旧数据。同时将程序计数器(PC)设置为一个特定的地址,通常是BIOS的起始地址(例如,x86架构中的0xFFFF0)。

启动BIOS:

1、读取BIOS:
CPU通过地址总线直接访问BIOS存储器(通常是主板上的闪存),从BIOS的存储地址读取指令,而无需将其复制到内存中。

复位后的程序计数器(PC)保存的是BIOS的起始地址,CPU就开始读取并执行BIOS程序中的指令。这些指令负责进行自检、初始化硬件和查找引导设备。

控制权交给引导程序:

1、查找引导设备:BIOS程序会根据其配置查找可用的引导设备(如硬盘、光盘、USB驱动器等)。它会按照预设的顺序检查这些设备,寻找有效的引导扇区。

2、读取引导扇区:一旦找到有效的引导设备,BIOS会读取该设备的引导扇区(通常是第一个扇区,大小为512字节)。引导扇区包含引导程序的代码。

3、加载引导程序:BIOS将引导扇区中的引导程序代码加载到内存的特定位置。通常,这个位置是内存的低地址区域。

4、设置程序计数器:BIOS会将程序计数器(PC)设置为引导程序在内存中的起始地址。这意味着CPU将开始从这个地址读取和执行指令。

5、转交控制权:最后,BIOS通过执行一个跳转指令(如JMP指令)将控制权转交给引导程序。此时,CPU开始执行引导程序的代码,启动操作系统的加载过程。

总结:

可以这样理解,计算机程序的执行是通过程序计数器(PC)来控制的,也就是PC指哪里,cpu就从哪里取命令去执行。

开机过程中,电源管理电路发送复位信号给CPU,清除了所有寄存器内部信息和状态,而程序计数器(PC)也属于寄存器的一种,会有一个初始值,也就是BIOS的地址。

这时,cpu自然就会去BIOS的地址取出指令执行。而BIOS程序主要做自检和初始化硬件设备,并且查找引导设备,就比如插了U盘,会检查U盘是否包含引导扇区,引导扇区通常位于第一个扇区(512个字节)。

判断是否为引导区很简单,扇区的 512 个字节的最后两个字节分别是 0x55 和 0xaa,那么 BIOS 就会认为它是个引导扇区。

如果是引导扇区,cpu读取引导扇区的程序到内存中,并且将PC指向内存区的引导程序地址。

需要说明的是,BIOS存储在主板,引导程序存储在硬盘或其他外设上,他们都通过地址总线与CPU和内存连接,因此也是有对应的映射地址,与内存地址属于不同分段的地址范围。

引导程序通常称为Bootloader,负责加载操作系统的程序。

思考:

计算机是硬件和软件结合起来的事物,具有自动化的性质。而硬件是物理上的实物,只能按物理规则变化。

想要其按人为规定的规则变化,那么这个规则必须能顺应硬件自身的规则去做引导,即输入的是物理状态、执行是按物理规则变化、输出的是物理变化的状态

想要硬件动起来,硬件自身必须要有几个状态,而计算机选择的是开关两种状态,并设计出了门电路,门电路的各种组合规律符合布尔代数的计算规律,可以通过给入两个状态,得出其他状态的具有一定计算功能的简单电路。

那么是否可以设计三种或多种状态的硬件和计算逻辑,同样做到处理计算的功能?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值