01 - 进阶操作系统(BIOS)

news/2024/5/6 0:45:07/文章来源:https://blog.csdn.net/weixin_36098975/article/details/128129036

---- 整理自狄泰软件唐佐林老师课程

1. BIOS - Base input & Output system

  • BIOS是上电后第一个运行的程序

  • BIOS首先检测硬件状态,检测通过后立即进行硬件初始化工作

  • BIOS会在内存中建立中断向量表(提供硬件访问的方法)

  • BIOS最后将控制权交由主引导程序执行

BIOS不是软件 ,而是 固件Firmware
固件是固化在硬件中的程序,在硬件出厂前已经烧写固定。

1.1 系统启动流程

==> 上电
==> 运行BIOS
==> 硬件初始化
==> 建立中断向量表
==> 加载运行主引导程序
==> 软件初始化
==> 加载运行操作系统内核
==> 系统初始化
==> …

  • 问题:BIOS是如何被运行起来的?

1.2 BIOS的运行机制

  • BIOS存储于ROM中,地址映射为0xF0000~0xFFFFF(实地址)

  • BIOS的入口地址为:0xFFFF0

  • 硬件电路的特殊设计使得:

    • 开机后,CPU从0xFFFF0处开始执行,也即 开机后运行BIOS

1.3 BIOS的最后使命

  • 按照用户设置扫描各个 存储介质(光驱、软驱、U盘,等),寻找是否有 主引导程序

  • 发现主引导程序后,将主引导区中的主引导程序载入内存

  • 主引导程序在内存中的入口地址为 物理地址 0x07c00

  • 将控制权交由主引导程序执行(jmp 0x07c00)

思考:BIOS如何在存储介质中寻找主引导区?如何判断引导区中有没有主引导程序?

1.3.1 主引导区(MBR:Master Boot Record)

  • 位置:位于存储介质的最开始处,大小为 512字节
  • 特点:前512字节的 最后两个字节为 0x55aa
  • 数据:0x55aa之前的数据被视为主引导程序

1.3.2 更详细的系统启动流程(x86架构)

在这里插入图片描述

2. 小结

  • BIOS是计算机上电后第一个运行的程序
  • BIOS进行必要的初始化 ,并加载运行主引导程序
  • 主引导程序位于存储介质的最开始512字节处
  • 主引导程序负责后续初始化,并加载操作系统内核

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_228465.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[附源码]计算机毕业设计JAVA校园飞毛腿系统

[附源码]计算机毕业设计JAVA校园飞毛腿系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis …

前后端分离项目的https加密解密过程二、名词解析及文件生成

前后端分离项目的https加密解密过程二、名词解析及文件生成 密钥仓库keystore文件 Keytool是一个Java数据证书的管理工具 ,Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中 keystore文件的内容其实就是把私钥、公钥以及公钥对应的地址等信息…

【附源码】计算机毕业设计JAVA众筹平台网站

【附源码】计算机毕业设计JAVA众筹平台网站 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: JAVA mybati…

leetcode:1579. 保证图可完全遍历【并查集思路】

目录题目截图题目分析ac code总结题目截图 题目分析 从删除比较难,考虑增加增加的过程中无用的边就可以删除考虑alice和bob各自的联通分量最后希望都是1,一开始都是n如果将两个独立的联通分量连起来了,那么连通分量个数减1这里很明显就是用并…

Kafka集群环境搭建及基本使用

前提条件 操作系统:CentOS7服务器:3台Java环境:JDK1.8。安装教程参考JDK1.8安装Zookeeper环境 搭建教程参考Zookeeper集群环境搭建及使用Kafka基础知识参考Kafka角色及功能概览 搭建步骤 下载 执行下载命令wget https://archive.apache.o…

全程软件自动化测试

软件自动化测试的概念 “什么是软件自动化测试?”也许很多人的回答是:“使用自动化测试工具或者编写自动化脚本来自动化测试软件”,还有一些权威网站,比如 WikiPedia 是这样定义的: “在软件测试中,自动化…

(三) 共享模型之管程【共享带来的问题】

一、共享带来的问题 1. 临界区 (1)一个程序运行多个线程本身是没有问题的 (2)问题出在多个线程访问共享资源 1️⃣多个线程读共享资源其实也没有问题 2️⃣在多个线程对共享资源读写操作时发送指令交错,就会出现问题 …

清朝盛衰的六个时间点!

清朝盛衰的整个过程经历了六个时间节点: 一六六一年﹙顺治十八年﹚是第一个时间节点。 正月初六夜半时分,顺治帝预感生命垂危,急命太监传呼麻勒吉与王熙两人赶赴养心殿。帝对王熙说:“朕出痘,势将不起,尔…

三、【react-redux】数据共享

文章目录1、优化项目结构2、添加一个新容器组件2.1、新项目结构2.2、CODE2.2.1、reduc/constant.js2.2.2、redux/actions/person.js2.2.3、redux/reducers/person.js2.2.4、redux/store.js2.2.5、Count.jsx2.2.6、Person.jsx2.3、Result3、总结本示例修改自 上一章 求和Demo 1、…

前端js传入Long类型精度丢失解决办法

目录 问题背景 解决过程 1.对比数据库数据 2.查询资料 解决方法 问题背景 在进行业务开发的 时候发现更新数据库中的一条数据没有成功,查看SQL日志发现SQL正常执行无错误信息,但是受影响行数为0,但是数据是从前端传过来的 ,一…

地图数据设计(四):地图比例尺

前言 比例尺作为地图数学基础的组成部分之一,表示了地图的空间尺度,是地图精度和内容详尽程度的决定因素。今天的文章将从比例尺的基本概念、常见比例尺参数以及SuperMap iDesktopX中比例尺设置三个方面展开。 1 比例尺的基本概念 1.1 定义 一般来说&am…

GmNAC181促进结瘤并提高根瘤的耐盐性

文章信息 题目:GmNAC181 promotes symbiotic nodulation and salt tolerance of nodulation by directly regulating GmNINa expression in soybean 刊名:New Phytologist 作者:Xiaodi Wang,Youning Wang, Xia Li et al. 单位…

【SQL】数据库事务

【SQL】数据库事务事物的ACID特性事务的状态显式事务隐式事务事务的使用举例SQL中的四种隔离级别MySQL中的隔离级别如何设置事务的隔离级别innodb默认支持事务事务是一组逻辑操作单元,使数据从一种状态转变到另一种状态事物的ACID特性 原子性(atomicity…

[附源码]Python计算机毕业设计SSM辽宁科技大学二手车交易平台(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【OpenCV-Python】教程:3-10 直方图(2)直方图均衡

OpenCV Python 直方图均衡化 【目标】 理解直方图均衡化提升图像的对比度 Histogram Equalization ??? 将图像的直方图拉均衡一些,分散一些;可以提升对比度。 【代码】 通过上面的图像可以看出,高亮度区域较少,需要分散该图像…

新零售行业如何玩转线上服务

如今,随着市场的千变万化,企业的商业模式正在不断经历革新。如线上企业不再单纯走电商路线,纷纷进军线下卖场,而传统门店也在寻找线上突围的机会,通过与电商平台合作,开启线上专卖店。线上线下相结合的新零…

Java并发编程—Thread类中的start()方法如何启动一个线程?

一、java线程的介绍: 在java的开发过程中,很多铁子对于java线程肯定不感到陌生,作为java里面重要的组成部分,这里就从如何创建一个线程给大家进行分析; 二、相关知识引入: ​ 之前我了解过,j…

题目1444:蓝桥杯201 4年第五届真题斐波那契

这篇文章是帮一个叫做【废柴成长中】的孩子写的。 题目&#xff1a; 这里难点应该就是在【输入为一行用空格分开的整数n m p(0<n,m&#xff0c;p<10^18)】 &#xff0c;这里一下子就把最大值干成long的最大范围了&#xff0c;很明显&#xff0c;long肯定也不行。 解析其…

简单封装一个易拓展的Dialog

Dialog&#xff0c;每个项目中多多少少都会用到&#xff0c;肯定也会有自己的一套封装逻辑&#xff0c;无论如何封装&#xff0c;都是奔着简单复用的思想&#xff0c;有的是深层次的封装&#xff0c;也就是把相关的UI效果直接封装好&#xff0c;暴露可以修改的属性和方法&#…

带你学习不一样的数据仓库系列-框架概念

编者按&#xff1a;本系列文章参考总结自IBM,FaceBook&#xff0c;Google等数据仓库构建英文文章&#xff0c;部分章节为直译过来&#xff0c;部分内容加上乐哥6年陌陌&#xff0c;快手等工作经验总结而来&#xff0c;让大家了解真实国外大厂数仓构建之路&#xff0c;国外同行对…