IA-32架构下启动过程(1)

IA32e下分页的开启:概述 内存分布 IA32e下的地址用64位来表示,但CPU只使用了其中的前52位,即4PB的最大物理内存寻址空间,而开启分页后,CPU只使用其中48位,即256TB的最大虚拟内存寻址空间,而到了Windows,则更是只使用了其中44位,即只用16TB的虚拟内存寻址空间,其中0000000000000000-000007FFFFFFFFFF是用户层地址空间,而FFFFF80000000000-FFFFF 阅读详情
IA-32架构的启动过程详解:
     (1)电源通电,因为此时供电的电压不太稳定,所以主板的控制芯片组向CPU发出一个RESET(重置)信号。此时CPU不会马上执行指令。当芯片组确认供电稳定后,会撤去RESET信号。CPU开始从地址F:FFF0H处开始执行指令。(注明:这个地址是在BIOS程序所控制的地址,常见的BIOS程序厂商都是在这个地址开始写一个跳转指令。)
     (2)CPU执行了上一步中的跳转指令。跳转到主板BIOS启动代码所在位置(BIOS启动程序一般是固化在CMOS的存储体中)。BIOS启动代码首先是进行POST(加电自检)。POST是检查系统中的设备是否存在和是否能工作。此过程的时间比较短,而且不会向显卡或是显示器输出任何提示信息。因为此时显卡只是加电,还没有进行初始化。POST过程中出现的各种故障或是错误是由喇叭(也有用蜂鸣器)通过发出不同规律的报警声向用户提示的。
    (3)根据主板BIOS程序的不同设置,在上一阶段的POST中产生故障或是错误提示时,有的机器会停止执行任何操作和程序,也有的会自动重启并重新开始启动过程。
        在POST顺利通过后,主板BIOS在内存中高地址的部分(地址起止位置:A0000H-FFFFFH,大小384K)搜索除主板以外的所有设备的BIOS程序。(至于这部分内存的数据是从哪里来,本人还没有找到相关信息,本人猜测是在POST过程中被检测的设备在通电自检通过后,由设备自己的BIOS程序向内存写入。并且从IBM-PC/XT那时开始至今这部分内存的分配就是约定好的。因此,各种设备写入内存的信息的偏移地址是互不冲突的。)这个搜索过程具体是:首先找到显卡的BIOS程序,然后调用执行这段程序(一般的显卡厂商会在此时向屏幕显示一些初始化信息。所以开机时大家最先看到是显卡的信息)。在显卡这段BIOS程序执行完,主板BIOS会用相同的方式执行其它设备的BIOS程序,并通过这些BIOS程序初始化相关设备。(补充:在执行其它设备BIOS时,此时显示器应该是黑屏的,因为此时系统没有向外输出任何信息,但有的主板厂商则会让显示器一直显示主板厂商的LOGO图,这样用户是看不到包括显示器在内的所有设备BIOS的执行过程。当然LOGO图的显示时间由不同的主板厂商而有所不同,有的会一直保持到操作系统启动,有的则在这个过程结束时消失。)
        在查找并显示完所有其它设备的BIOS之后,主板BIOS就显示自己的BIOS信息(这时如果没有主板LOGO图,用户会在屏幕上方看到主板所使用的BIOS厂商,如:AMI BIOS的版本和它的LOGO)。
        (4)然后主板BIOS检测和显示CPU的型号和工作频率。接着是测试整个内存,然后显示内存测试的结果,包括内存的大小和频率。
        接下来主板BIOS开始检测一些标准硬件设备。包括硬盘、光驱、软驱等设备。在新版本的BIOS中会此过程中设置内存和硬盘的参数等。
        (5)在标准硬件设备检测结束后,如果主板BIOS支持即插即用设备,BIOS会逐个检测这些设备,并显示这些设备名称和型号信息,同时分配给这些设备所需要的硬件资源,如设备中断和I/O端口等。
        (6)在完成上述步骤后,检测完所有的硬件设备,并设置完所有设备的相关参数或分配设备所需的相关资源。此时大多数主板BIOS会清空屏幕显示一个表,表中大略显示了系统中安装的硬件设备和相关参数。
        (7)最后主板BIOS更新ESCD(扩展系统配置数据)。这些数据被保存在CMOS中。在硬件发生改变或BIOS的设置调整时才会被更新。
        ESCD更新后,主板BIOS的启动代码会按顺序检查所有的存储器,并从第一个可以引导的设备开始操作系统的启动。
      
       以上为启动过程的主要部分,相关名词和细节参数会在下面的文章进行详细描述。

       以上内容来源众多,包括书籍和网络等。如涉及版权和相关责任问题,本人会撤掉相关的内容。部分细节不详尽或不全等,希望大家积极提供保贵意见。
驱动编程学习5/IA-32e模式 文章目录IA-32e模式基础介绍段描述符权限切换x64用户态切换权限x86用户态切换权限总结 IA-32e模式 基础介绍 内核64位,用户64位或32位(内核均为64位代码) IA32_EFER MSR C0000080H 中的值的第8位为1时,系统处于IA-32模式。 在Intel手册上IA32_EFER MSR寄存器构造如下图所示,第8位的含义为IA-32e模式的启动标志位。 在WinDbg中查看IA32_EFER标志位的命令如下: rdmsr c0000080 在本机的查询结果如下图所示: 阅读详情

相关推荐

ia-32 系统架构原理基础的篇

时钟用于CPU的内部操作和其他系统部件的同步 控制单元 协调执行机器指令时各个步骤的次序 算术逻辑单元执行加法和减法与运算 以及and or not 等逻辑运算 cpu 通过插入主板插槽的引脚同计算机其余部分相连接 大部分引脚与数据总线,控制总线 和地址总线相连接 内存存储单元 是计算机程序运行时存放指令和数据的地方 内存存储单元接受CPU的数据请求 从随机访问存储器 RAM中取出 数据送...

zyl_yjy_yi的博客 344

IA-32的启动过程—-翻译The boot process on IA-32

翻译这篇文章,文章意思很简单。本文主要讲述关于L4的。 http://www.geocities.ws/munkee_chuff/l4/boot_process.html  本文主要叙述在IA-32(PC)上一个OS的启动进程,以及详细描述其内存模型。 首先当PC启动时,它实在实模式。BIOS首先察看磁盘的启动扇区(前512字节,也叫MBR),接着便加载存储在这的程序。我

彦东 – yandong.org 829

12、IA架构平台启动流程深度解析

本文深入解析了IA架构平台的启动流程,涵盖从用户按下电源按钮到操作系统引导的全过程。内容包括预复位阶段中CSE、PMC和PUNIT等控制器的协同工作,CPU复位向量与操作模式切换机制,缓存即RAM(CAR)和非逐出模式(NEM)的实现,内存初始化中的SPD数据读取与MRC执行,以及多处理器环境下的BSP与AP初始化流程。通过详细分析各阶段关键技术,全面揭示了现代x86平台固件启动的底层原理。

root9的博客 65

Intel 64和IA-32架构——操作模式

Intel的实模式和保护模式,必须要知道的... 一、Intel手册如是说 Intel的IA-32架构支持三种基本操作模式:保护模式、实地址模式和系统管理模式。操作模式决定了哪些指令和架构相关的特性是可用的: 保护模式(protected mode)——是处理器的根本模式,在保护模式下,可以为直接运行的实地址模式程序提供保护的、多任务的环境,这种特性被称作“虚拟8086模式(

u014763664的专栏 1488

32位Windows上VSCode 1.68.1 ia32绿色包配置与避坑指南

在嵌入式开发与老旧工控设备维护中,32位Windows系统仍广泛存在,而现代编辑器对ia32架构的支持已逐步终止。VSCode 1.68.1作为官方最后一批32位Windows构建,以zip绿色包形式提供,解压即用,不写注册表,适合隔离环境与便携部署。其核心价值在于让32位系统仍能获得扩展安装、C/C++与Python调试等现代开发能力。典型场景包括串口调试、老笔记本编程及虚拟机内代码编辑。本文围绕该版本,详解目录结构、环境配置与常见故障排查,帮助开发者在受限平台上稳定运行VSCode。

weixin_28834765的博客 344

IA-32架构软件开发人员手册

详细介绍了32bit架构的InterCPU的技术细节,很有参考价值。

第五章 IA-32指令系统概述

程序启动前,指令和数据都存放在存储器中,形式上没有差别,都是0/1序列采用“存储程序”工作方式:程序由指令组成。成被启动后,计算机能自动取出一条一条指令执行,在执行过程中无需人的干预。指令执行过程中,指令和数据被从存储器取出CPU,存放在CPU内的寄存器中,指令在IR中,数据在GPR中。操作性质(操作码)源操作数1 或/和 源操作数2(立即数、寄存器、存储地址目的操作数地址(寄存器编号、存储地址存储地址的描述和操作数的数据结构有关任何高级语言程序 最终通过执行若干条指令来完成。

cai88453626的博客 1693

IA-32架构汇编语言程序设计

IA-32架构汇编语言程序设计课件,在32位保护模式下编写汇编语言代码。熟悉掌握操作系统

IA32-doc 项目使用教程

IA32-doc 项目使用教程 1. 项目的目录结构及介绍 IA32-doc 项目的目录结构如下: ia32-doc/ ├── conf/ │ └── default.yml ├── out/ ├── yaml/ │ └── Intel/ │ └── index.yml ├── .gitattributes ├── .gitignore ├── LICENCE.txt ├── ...

gitblog_01009的博客 596

Intel 64-ia-32架构软件开发手册卷3

Intel 64-ia-32架构软件开发手册卷3 系统开发

Intel处理器IA-32架构软件开发者手册英文版

Intel处理器IA-32架构软件开发者手册英文版, 卷1:基本架构, 卷2:指令集参考, 卷3:系统程序设计指南

【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,2-1

英特尔开发手册翻译

2401_82825368的博客 1103

IA-32架构 英特尔

介绍英特尔CPU架构的知识。属PDF格式,共34页

IA-32架构下启动过程(2)

 IA-32架构:      Intel为了让32位的系统和16位的系统兼容。在32位系统中保留了对16位系统的支持。所以在开机后通电和自检的这段时间里,即使是32位的CPU也要像16位的CPU那样去工作。然后当操作系统接管对整个系统的控制权后,再由操作系统负责16位和32位两种模式之间的转换问题。在IA-32架构中,这两种模式的正确说法是实模式和保护模式。实模式就是指机器在16位的环境下运行,而

云平台初学者 774

解决SolidWorks启动报错问题:SolidWorks2020显示无法获得下列许可 SolidWorks standard 期望的SolidWorks监控程序已经关闭(-97,121,0)

解决SolidWorks启动报错问题:SolidWorks2020显示无法获得下列许可 SolidWorks standard 期望的SolidWorks监控程序已经关闭(-97,121,0) 问题描述 打开SolidWorks2020时,显示SolidWorks2020显示无法获得下列许可 SolidWorks standard 期望的SolidWorks监控程序已经关闭(-97,121,0) (急需看模型的我心里万马奔腾…) 截图如下: 有问题咱就上 看了其他博主的回答,自己尝试了几个,发现出现了新的

qq_44606358的博客 7万+

生物信息学名词解释 | K-mer (长度为k的短序列)

K-mer 何谓K-mer 所谓Kmer,即为一段长度为k的DNA片段,是由测序reads剪切一部分得到的。k为一个奇数,k=几,就为几mer。 比如:我的测序reads长度为100bp,我将这100bp打断成17bp的短片段,打断后的17bp段片段就叫17mer,可以获得(100-17+1)条k-mer序列。 Table1 k-mers for GTAGAGCTGT. k k-mers 1 G,T,A,G,A,G,C,T,G,T 3 GTA,TAG,AGA,GAG,AGC,GCT,CT

qq_50637636的博客 2万+

Intel 64/x86_64/x86/IA-32处理器操作模式/运行模式

Processor Operation Mode IA-32架构支持3种操作模式,和一种类操作模式(quasi-operating mode): 实地址模式/实模式(real-address mode): 这种模式最早可以追溯到Intel 8086处理器上,IA-32架构支持的实模式有一些扩展(例如可以切换到保护模式或系统管理模式) 保护模式(protected mode):这是IA-32架...

一凡stkeke 2739

【2025年华为秋招(AI)-11月19日-第二题(200分)- 终端款型聚类识别】(题目+思路+Java&C++&Python解析+在线测试)

该摘要总结了题目要求、输入输出格式、KMeans算法的实现步骤以及关键点。以下是150字内的摘要: 本文提出基于KMeans算法对终端型号进行聚类的方法。通过包间隔时长、连接持续时长、漫游前后信号强度4个特征,使用欧氏距离度量相似度。算法采用固定初始化策略(前k个样本作为初始质心),经过分配-更新迭代,直至质心移动小于1e-8或达到最大迭代次数。最终输出各簇样本数并按升序排列,解决了终端型号自动分类问题。示例显示该方法能有效识别3-4类终端,并准确统计每类数量。

m0_73659489的博客 141

x86 Legacy BIOS、IA32 UEFI、x86_64 UEFI 和 ARM64 UEFI 模式

(基本输入输出系统)是较早期计算机的启动方式,也是大多数老旧计算机使用的启动模式。它基于传统的16位架构,因此对硬件的支持和操作系统的启动方式有一些限制。UEFI(统一可扩展固件接口)是现代计算机系统所采用的启动标准,旨在取代传统的BIOS。它支持更先进的功能和更高的灵活性。IA32 UEFI 是专门为32位 x86 架构设计的UEFI启动模式。是为64位的x86架构(如Intel和AMD的现代处理器)设计的UEFI启动模式。它比32位UEFI更适合处理现代计算机的高性能需求。ARM64 UEFI。

宋发元 2456

YOLO26 改进 | (教师:YOLOv8L,学生:YOLO26) | 知识蒸馏 (Knowledge Distillation)

本文介绍了基于YOLO26框架的知识蒸馏实战方法,通过教师模型指导学生模型训练,在不增加推理成本的情况下提升模型精度。文章详细阐述了基于响应的知识蒸馏实现方案,通过最小化教师与学生模型预测Logits间的KL散度实现知识迁移。核心实现包括:1) 创建DistillationModel包装器类,同时运行师生模型;2) 自定义DistillationLoss,在原检测损失基础上增加KL散度损失。该方法适用于希望保持YOLO26轻量级特性同时获得接近大模型精度的场景,文中提供了完整的代码实现方案。

weixin_51988935的博客 510

RK3588开发笔记-mipi csi接口imx415摄像头调试记录

摘要:本文详细介绍了RK3588开发板适配SONY IMX415 MIPI CSI摄像头的调试过程。从硬件环境准备(包括RK3588核心板、IMX415模块连接及测试工具)、软件环境配置(Linux 5.10内核、驱动状态确认),到设备树关键配置(MIPI链路、GPIO引脚、电源域等)都进行了详细说明。调试过程中通过dmesg日志、media-ctl拓扑分析等工具验证了摄像头驱动加载和图像采集功能。最终实现了800万像素高清图像采集,总结了硬件连接验证、信号完整性优化等关键经验,为类似MIPI摄像头调试提供

flypig has a dream! 881

IA32 architecture 学习笔记 (一)

IA32支持最基本的三个操作模式 (modes of operations): 1)Real-Address Mode (当 CPU 启动或者重启,CPU就处于real-address mode.) 2)Protected Mode 3) System management mode (SMM) 操作模式决定哪些指令和哪些体系结构的特性可以被使用。 基本执行

happylong123hehe的专栏 2623

汽车UDS诊断详解及Vector相关工具链使用说明——1.1 应用层协议整体介绍

本文我们先从整体的维度来介绍一下应用层协议,每个UDS服务都遵循本文中的协议。 一、SI(Service ID) SI是UDS指令的第一个字节,我们第一篇文章中提到的10等服务就是指这个服务的SI=0x10,它是服务的标识,每个服务的SI都是唯一的。 ...

weixin_42967006的博客 5473

IA-32体系结构之中断简述

关于中断和异常向量:  IA-32架构为每一个异常和需要处理器特殊处理的中断分配了一个识别码,称为:向量;处理器用这个向量作为访问中断描述表IDT的索引,以确定异常或中断处理程序入口点;  向量号范围是0-255。0-31被IA-23架构保留给架构定义的异常和中断。用户不应该使用保留的向量,32-255的向量指派给用户定义的中断,这些中断一般都分配给外部I/0设备;

我的新家 1474

软件设计师高频考点—套路题

学习交流的总结

秩沅 2539

多思计组实验实验六 微程序控制器实验

实验六 微程序控制器实验

qq_53089329的博客 3780
上一篇: Debug相关命令
下一篇: IA-32架构下启动过程(2)
mystudy2000
博客等级 码龄20年 34粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值