UEFI 学习笔记

引言

相比于Windows/MacOS/Linux等主流的操作系统,大部分人对于固件BIOS(Basic Input & Output System)并不熟悉,它诞生于1981年出产的第一代个人计算机IBM PC,在那时工程师将硬件检测代码、最基本的外围设备I/O处理程序和操作系统引导程序代码写入仅有32KB大小的PROM(Programmable ROM)中。固件BIOS隐藏在启动界面和操作系统桌面之后,作为计算机中最底层、最核心的关键性部件之一,在几十年内受到的关注并不多,网上能找到的学习资料也偏少(相对Spring、Vue这种主流技术栈),可以说入门的门槛相对其他方向来说会高一些。

  1. 固件 && BIOS

固件(Firmware)是一种底层软件或指令序列,早期常存储于计算机或外部设备的PROM中,常用于对硬件设备进行配置或为操作系统提供硬件操作接口,使之能够完成指定的功能,如初始化、驱动外围设备等。计算机系统层次架构由硬件(Hardware)、固件和软件(Software)构成,而固件的核心就是BIOS,它介于硬件和操作系统之间,为操作系统提供最直接、最底层的硬件控制,为操作系统的引导载入和正常运行提供良好支持。BIOS是计算机的核心部件之一,计算机开机后执行的第一条指令就由BIOS发出,它担负着最初的引导和启动任务。在这种架构中,BIOS能为操作系统提供一定程度上的硬件抽象,使操作系统不用直接进行的硬件操作。

BIOS的主要功能如下:
(1)开机自检:BIOS在上电时获得计算机的控制权,检查CPU寄存器、标志位以及控制器等工作是否正常;
(2)系统初始化:针对CPU Cache、DRAM及显卡、PCI等设备的初始化操作,设定相应寄存器的值,驱动外围设备;
(3)提供常驻的RS(Runtime Services):RS一般常驻在某一段系统内存中,操作系统和应用程序能通过中断方式调用这些服务代码;
(4)系统设置
(5)引导操作系统:按照系统设置搜索软硬盘驱动器及CD-ROM、网络服务器等,读入操作系统的引导代码,将控制权交由引导代码
2. 关于Legacy BIOS
固件BIOS的发展大致可以Legacy BIOS和UEFI两个阶段
Legacy BIOS发展初期,行业中除了IBM的接口规格外,并没有统一的开发规范,90年代Intel联合其他几家公司制定了BIOS启动规范和

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

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

相关文章

(1)(1.4) ESP32 wifi telemetry

文章目录 前言 1 用于ESP32的DroneBridge 2 推荐的硬件 3 下载和烧录固件 4 为ESP32配置DroneBridge 前言 ESP32 是现成的 Wi-Fi 模块,具有完整的 TCP/IP 协议栈和微控制器功能。它们提供专用的 UART、SPI 和 I2C 接口。它们可与任何 ArduPilot 自动驾驶控制器…

2023-12学习笔记

1.NonNull要手动写无参构造器 这是一个我今天研究了很久的问题,开始不知道原因是在这里,还在那想是不是Data覆盖了无参构造,结果当然不是。先说下解决历程 1.问题起因 通过RequestBody接收前端报文的时候报错,大致是说我构造方…

python中tkinter实现GUI程序:三个实例

python中tkinter实现GUI程序 写在最前面Python中使用Tkinter实现GUI程序的基本元素Tkinter简介基本元素1. 根窗口(Root Window)2. 小部件(Widgets)3. 布局管理4. 事件处理 1.用 tkinter实现一个简单的 GUI程序,单击“click”按钮&…

项目方看过来,详解Moonbeam Grants申请技巧

Grants加速计划是Moonbeam基金会发起的生态资助计划,旨在支持生态系统中的不同项目、社区和个人,帮助他们顺利进入Moonbeam发展,依靠早期的生态扶持迅速成长。 每一份Grant计划旨在融合社区参与、包容性和透明度等特性,加速Moonb…

Java项目-瑞吉外卖Day3

填充公共字段: 目的:由于某些属性,例如createdTime这些需要填充的字段会在多个地方出现,所以考虑使用公共字段自动填充的办法减少重复代码。 在对应属性上加入TableField注解。通过fill字段表明策略,是插入/更新的时候…

Android studio之ConstraintLayout使用

文章目录 优势使用ConstraintLayout的步骤使用多种方式定义控件的位置 优势 ConstraintLayout是一个相对布局,是在Android 2.3版本中引入的。它可以在不同的屏幕大小和分辨率中提供一致的布局,并且是支持复杂布局的最佳选择之一。ConstraintLayout相对于…

ROS2+ROS_DOMAN_ID

The ROS_DOMAIN_ID Table of Contents Overview Choosing a domain ID (short version) Choosing a domain ID (long version) Platform-specific constraints Participant constraints Domain ID to UDP Port Calculator Overview As explained elsewhere, the de…

Dockerfile模板和Docker Compose模板

记录一下Dockerfile模板和Docker Compose模板, 基础的系统加JDK环境来构建一个Java应用,其Dockerfile内容如下: # 基础镜像 FROM openjdk:11.0-jre-buster # 设定时区 ENV TZAsia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/local…

如何搭建废品上门回收小程序

如今,随着环境保护意识的增强,废品的回收和再利用变得越来越重要。为了方便人们进行废品回收,搭建一个废品上门回收的小程序成为了一个不错的选择。本文将介绍如何从零开始搭建一个废品上门回收小程序。 …

vue宝典之项目结构介绍

文章目录 🍁前言🍁Vue.js基本概念🍁Vue.js核心特性🍁Vue.js应用场景🍁Vue项目结构🍁Vue开发流程 目前在学习vue项目,之前只是学习vue中基本语法,当接触项目时发现vue项目结构之间配置…

【Go自学版】02-goroutine

利用时间片分割进程,致使宏观上A,B,C同时执行(并发) CPU利用率包含了执行和切换,进程/线程的数量越多,切换成本也会增大 最大并行数:GOMAXPROCS work stealing: 偷其他队列的G hand off: 当前G1阻塞&#…

css 修改滚动条样式,解决Windows浏览器中滚动条不美观问题

Windows环境中的浏览器中滚动条默认是直接显示了,不管光标是否进入该区域,这样就很不美观,如下图: 之前样式为 .well {display: block;background-color: #f2f2f2;border: 1px solid #ccc;margin: 5px;width: calc(100% - 12px);h…

mycat部署和配置读写分离(二)

说明: MyCAT 是使用 JAVA 语言进行编写开发,使用前需要先安装 JAVA 运行环境(JRE),由于 MyCAT 中使用了 JDK7 中的一些特性,所以要求必须在 JDK7 以上的版本上运行。 1. jdk1.8安装 详见jdk环境安装 2. Mysql安装 详见mysql8.0.11源码安装…

websoket 的使用

WebSocket是HTML5的API之一,允许浏览器和服务器之间进行双向通信。Vue.js可以轻松地与WebSocket API集成,使用原生WebSocket API或其他WebSocket库(如socket.io)都是可行的。 下面是一个使用Vue.js实现WebSocket的简单示例&#…

【lesson11】数据类型之string类型

文章目录 数据类型分类string类型set类型测试 enum类型测试 string类型的内容查找找所有女生(enum中)找爱好有游泳的人(set中)找到爱好中有足球和篮球的人 数据类型分类 string类型 set类型 说明: set:集…

SL9008 3.6-60V输入 LED降压恒流芯片 内置MOS管 带PWM调光

SL9008是一款内置MOS管、具有PWM调光功能的LED降压恒流芯片,适用于3.6-60V的输入电压范围。它采用了先进的电路设计,确保了高效率和长寿命,同时具有宽电压输入范围和优异的负载调整率。 SL9008的主要特点包括: 1. 宽输入电压范围&…

C语言中常用的库函数和头文件

下面是C语言中常用的一部分库函数和头文件,不同编译器或操作系统可能会有所差异。 1. 字符串相关函数 (string.h): - strlen:获取字符串长度。 - strcpy、strncpy:复制字符串。 - strcat、strncat:连接字符串…

HarmonyOS4.0开发应用——【ArkUI组件使用】

ArkUI组件使用 这里会详细演示以下组件使用: ImageTextTextInputButtonSliderColumn&&RowList自定义组件以及相关函数使用 Image 可以是网络图片、可以是本地图片、也可以是像素图 Image("https://ts1.cn.mm.bing.net/th?idOIP-C.cYA-_PINA-ND9OeBaolDTwHaHa&…

MySQL GTID详解

概念 GTID 全局事务唯一标识( global transaction identifier) 格式 单个GTID由两部分组成 ,用冒号分割;前面一部分为server_uuid,后面一部分transaction_id是由事务在源上提交的顺序确定的序列号 GTID server_u…

免费热门的API大全整理

实人认证(人像三要素):输入姓名、身份证号码和一张人脸照片,与公安库身份证头像进行权威比对,返回比对分值。实名认证(身份证二要素):核验身份证二要素(姓名和身份证号码…