首页 > 其他分享 >BIOS与系统自启

BIOS与系统自启

时间:2023-07-22 23:33:29浏览次数:34  
标签:南桥 32 系统 模式 BIOS 自启 内存 CPU

知识储备

  • C语言
  • C++
  • 汇编
  • Linux
  • 汇编补充C++文章复习

汇编部分补充

数据描述符

  • AX累加器:用到最多最频繁,AX,AH和AL在乘,除法等操作中有专门的用途。
  • BX基址寄存器: 用于存放偏移地址
  • CX为计数寄存器:在循环操作中做计数器用,用于控制循环程序的执行次数
  • DX数据寄存器:在乘,除法及I/O端口操作时专门用途。

指令

操作方向标识为DF(Direction Flas)

使用此指令控制方向标志DF,决定内存地址增大还是减小。

在子串操作中使SI或DI的地址指针自动递减,字串处理由后往前。

  • CLD 使DF复位,即让DF=0 向地址增加
  • STD 使DF置位,即让DF = 1 向地址减少

CPU架构

CPU架构是CPU厂商给属于同一系列CPU产品定的一个规范,主要目的是为了区分不同类型CPU的重要标示。

 

                                                                                                                                  CPU架构
  • 复杂指令集CISC (Complex Instruction Set Computer):增强原有指令的功能,设置更为复杂的新指令实现软件功能的硬化

  • 精简指令集RISC  (Reduced Instruction Set Computer):较少指令种类和简化指令功能,提高指令的执行效率

                                                                                                            指令集对比

南桥北桥

在早期,芯片组分为南桥芯片组和北桥芯片组两部分,其中北桥负责CPU内存的数据交换,图形处理CPU与PCIE(高速串行计算机扩展总线标准)数据交换,南桥负责系统的输入输出功能。北桥芯片还叫"图形与内存控制器",桥叫"输入/输出控制器"。北桥芯片组因与CPU联系密切靠近CPU位置,在现代制造工艺越来越先进,集成度越来越高,内存控制器已经被集成到CPU内部,显卡收进CPU(核显),而PCIE控制器收归南桥管理,北桥芯片组功能基本被瓜分。在Intel 芯片组中北桥被取消,而AMD只有早期主板仍保留着北桥和南桥。

PCIE:属于高速串行点对点双通道高宽带传输,所连接的设备分配独享通道带宽,不共享总线带宽,主要支持主动电源管理,错误报告,端对端的可靠性传输,热插拔以及服务质量QOS等功能。

                                                                                                                                            南桥

电脑启动过程(早期)

                                                                                                                             启动顺序

  • 系统加电BIOS初始化硬件
  • BI0S引导扇区代码 -- 加载程序
  • 加载内核跳转到内核执行 - 操作系统内核

                                                                                                                             刚启动时内存布局

 

                                                                                                             十六位实模寻址

当装入多个操作系统

                               主引导记录MBR格式

 

                                多个操作系统

工作模式

  • 实模式

程序中用到的地址都是真实的物理地址。

在实模式下,内存寻址方式和8086(8086,微处理器,1MB内存地址,3微米晶体管,IBM1981年生产的第一台电脑就是使用8086简化版,标志着x86架构和IBM PC兼容电脑的产生)相同,机器段起始地址的低4位设置为0,由16位段寄存器的内容乘以16(左移4位)作为段基址(Segment Base Address)(能被16整除的主存物理地址),加上16位段偏移地址形成20位物理地址,

                                                                  段基址

最大寻址空间1MB,最大分段64KB。可以使用32位指令,即32位的x86 CPU也可以兼容实模式,此时的实模式相当于高速8086(32位CPU的实模式可以使用32位下的资源)。在32位CPU下,系统复位或加电时都是以实模式启动,然后再切换为保护模式。在实模式下,所有的段都可以,写和可执行的。由于实模式下没有特权级,程序可以随意修改自己的段基址,加上实模式下对地址的访问就是实际物理地址,随意修改给操作系统带来极大安全隐患

  • 保护模式

标志位表示权限,当用户访问与读取的文件权限进行对比,已达到保护的目的。

每一个指令,每一个程序本身就有一个权限,可以用CPL/RPL描述,访问的目标字符段也有一个权限为DPL。处理器会对特权集进行检查,判断当前的CPL/RPL是不是大于等于DPL。

                                                                                                                              实模式与保护模式

BIOS概念

BIOS(Basic Input Output System)全称基本输入/输出系统,固件,它是存储在主板ROM(只读存储器,生成之后只有一次写入机会,数据一旦写入则不可更改。按照内容写入方式分为: 可一次变成PROM可擦除ROM,又分为EPROM紫外线擦除电写入和E2PROM电擦除电写入等)里的一组程序代码。

主要包括:

  • 加电自检(Power On Self Test POST)程序,用于开机时对硬件的检测,BIOS包含基本输入输出程序,包括读取键盘,写入屏幕,和执行磁盘I/O等操作过程,去检测开机时系统状况,而显卡不可检测

Blos(Blos采用16位汇编语言编写)只能运行在16位实模式下,实模式下最大寻址范围时1MB

系统加电时,当CPU收到复位事件时,当它被上电或重新启动时--指令寄存器就被装入 一个预定义的内存位置,并在那里开始执行。

  • 系统初始化代码,包括硬件设备的初始化,创建BIOS中断向量
  • 基本的外围I/O处理子程序代码
  • CMOS设置程序:Complementary Metal-Oxide-Semiconductor: 保存了系统引导的最基本的资料(基本设置,时钟信息)。

初始化过程

  • 硬件自检POST
  • 检测系统中内存显卡等关键部件的存在和工作状态
  • 查找并执行显卡等接口卡BIOS,进行设备初始化
  • 执行系统BIOS,进行系统检测  -- 检测和配置系统中安装的即插即用设备
  • 更新CMOS中的扩展系统配置数据ESCD
  • 按指定启动顺序从软盘硬盘光驱启动

                                                                                                    bios

启动加载程序Bootloader

                             引导启动内核的过程 

                             引导启动内核程序

                             linux启动代码

setup部分,进入保护模式

运行system模块,进入操作系统

bootsect.s

工作在实模式下,起到搬运工的作用

 第一部分

 片段二

 片段三

 片段四

 片段六

 

setup.s

setup.s负责从BIOS获取系统数据,并将这些数据放到系统内存适当地方。此setup.ssystem已经由bootsect引导块加载到内存中。

 setup

 

 片段一

 片段二

 片段四

 片段五

 总

head.s

进一步设置中断描述符全局描述符表,设计页表--开始对系统内存进行管理

 head.s

 设置中断描述符

 mian函数工作流程

 main函数

BIOS缺点

  • 开发效率低 :大部分BIOS使用汇编开发,开发效率低,汇编开发代码与设备的耦合度太高,(软件工程讲究高内聚低耦合,目的是使程序模块的可重用性,移值性大大增强)
  • 能差:BIOS基本输入输出通过中断来完成,开销大,并且BIOS没有提供异步工作模式,大量时间消耗在等待上
  • 功能扩展性差,升级缓慢:BIOS代码采用静态链接,增加硬件功能时,必须将16位代码放置在0x0C0000 ~ 0x0DFFFF区间,初始化时将其设置为约定的中断处理程序。而且BIOS没有提供动态加载设备驱动方案
  • 安全性:BIOS运行过程中对可执行代码没有安全方面考虑
  • 不支持从硬盘2TB以上的地址引导:受限于BIOS硬盘的寻址方式,BIOS硬盘采用32位地址,因而引导扇区的最大逻辑块地址2^32 (换算成字节地体,即2^32 X 512 = 2TB)

UEFI

 UEFI

参考资料

  • 厦门大学《操作系统原理》
  • 《UEFI原理与编程》
    • 获得BIOS中英文对照:公众号回复:BIOS英文 即可获得
    • 下载:https://foryouos.lanzoul.com/iApcp138b9be 密码:5213

标签:南桥,32,系统,模式,BIOS,自启,内存,CPU
From: https://www.cnblogs.com/blizzard8204/p/17574522.html

相关文章

  • C/C++商品信息管理系统[2023-07-22]
    C/C++商品信息管理系统[2023-07-22]选题4商品信息管理系统的设计与实现一、设计要求本课题要求同学们完成一个信息管理类的课题---《商品信息管理系统》,能够对商品信息进行有效的管理,实现商品信息查询、商品销售、商品进货、商品销售信息统计等方面的基本操作。管理内容(商品......
  • C/C++运动会成绩管理系统[2023-07-22]
    C/C++运动会成绩管理系统[2023-07-22]题目37:运动会成绩管理系统该系统可以记录校运动会全部运动项目的成绩、得分和排名情况,系统功能项以菜单形式显示。项目包括50米、100米、200米、400米、1500米、各接力项目、跳高、立定跳远、三级跳远、铅球等。系统可以实现以下......
  • C/C++疫情信息查询系统[2023-07-22]
    C/C++疫情信息查询系统[2023-07-22]疫情信息查询系统简介一、问题描述为了方便人们快速了解疫情信息,该系统能够提供对各省市卫健委发布疫情数据的录入、查询和统计等功能。疫情数据包括确诊病例、疑似病例等人数信息还包括确诊人的详细轨迹信息。涉及到火车、飞机、长途汽车等......
  • C/C++教室管理系统[2023-07-22]
    C/C++教室管理系统[2023-07-22]课程题目:教室管理系统内容要求:(1)学生通过这个功能,可以查询相关院系相关教师的个人信息以及开课信息,以便能更好地了解教师及其开课情况。(2)学生通过这个功能,可以查询相关教学楼相关教室的信息以及该教室在每天任一时段的使用情况,或者有课,或者有讲座......
  • C/C++设备预约系统[2023-07-22]
    C/C++设备预约系统[2023-07-22]大型实验室有大量公用试验设备,使用人员众多,使用在线预约管理系统可以有效提高设备的使用效率,节约科研人员的时间。本项目要求设计一个设备预约系统,达到以上目的。建议提供的功能包括:人员管理:使用用户名、密码登录系统。用户包括管理员和一般用......
  • C/C++航空客运订票系统[2023-07-22]
    C/C++航空客运订票系统[2023-07-22]航空客运订票系统1、每条航线所涉及的信息有:终点站名、航班号、飞机号、飞机周日(星期几)、乘员定额、余票量、订定票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需数量)。2、系统能实现的操作和功能如下:(1)查......
  • 设备驱动-10.中断子系统-4.2中断线程化处理-workqueue
    1工作队列workqueue引入定时器、tasklet,它们都是在中断上下文中执行,它们无法休眠。那么如果一旦中断要处理耗时复杂的操作,就会显得很卡。那么使用内核线程来处理这些耗时的工作,那就可以解决系统卡顿的问题。Linux内核中工作队列workqueue就是线程化处理的一种方式,“工作队列”(......
  • 电商财务自动对账系统对接实施方案
    随着电商行业的蓬勃发展,各个电商平台之间的竞争日益激烈,商家越来越多,规则也变得越来越复杂。同时,电商业务所涉及的数据量不断增大,订单数量众多,涉及的金额庞大,这使得公司财务人员的对账任务愈发繁重。为了应对这种挑战,越来越多的电商公司开始关注使用信息系统来实现财务数据的自......
  • python天池赛零基础入门推荐系统 - 新闻推荐
    Python天池赛零基础入门推荐系统-新闻推荐简介推荐系统是一种用于预测用户对物品(如新闻、电影、产品等)的喜好程度的技术。本文将介绍如何使用Python和天池赛平台,从零开始构建一个简单的新闻推荐系统。数据集首先,我们需要一个用于训练和测试的数据集。在天池赛平台上,我们可以......
  • 利用微搭低代码平台快速搭建问卷系统
    可爱鲸官网:https://keaijing.com.cn/项目简介利用微搭低代码平台搭建一个问卷小程序,主要实现微信支付和消息推送功能。微信支付利用微搭自带的接口可以快速实现。消息推送分为两种,利用小程序自带的服务通知和自己利用微搭的云函数来实现公众号推送。微信支付首先可以新建......