关于固件的简单解释

  我不喜欢等人也不喜欢被别人等——赤砂之蝎

简而言之 固件是什么

固件(Firmware)是一种软件类型,它是嵌入式系统中的一部分,通常存储在设备的非易失性存储器中,如闪存或ROM(只读存储器)。与操作系统不同,固件是一种被嵌入到硬件设备中的软件,用于控制设备的基本功能和操作。它通常用于控制硬件设备的低级别操作,例如启动过程、初始化设备、控制硬件功能和与其他设备通信等。

固件通常被写入到设备中并在设备制造时设置,但有时也可以通过更新方式来更新。固件更新可以修复错误、改进性能、增加功能或提供安全补丁。

在许多电子设备中,例如路由器、智能手机、平板电脑、数字相机和家用电器等,都包含固件。

 

 

那是固件先运行还是软件系统先运行或者是软件先运行呢

在大多数情况下,固件会在设备上电时首先运行。固件负责初始化设备的基本硬件和设置,并在必要时启动操作系统或其他软件系统。一旦固件完成了其初始化任务,它通常会引导加载操作系统或其他软件。操作系统和其他软件系统在加载后,负责管理设备的高级功能和用户交互。

所以,简而言之,一般来说,固件先于软件系统运行。

举个例子,说的明白一点

当你打开计算机时,固件会首先运行。在大多数个人计算机中,固件是称为BIOS(基本输入/输出系统)或UEFI(统一可扩展固件接口)的软件。这个固件会执行一系列自检(POST,电源自检),然后初始化系统硬件,例如内存、硬盘驱动器、键盘和显示器。

一旦固件完成了初始化,它会检查引导设备,通常是硬盘或固态驱动器,以寻找引导加载程序(Bootloader)。引导加载程序负责加载操作系统,例如Windows、macOS或Linux。

所以,在这个例子中,固件(BIOS或UEFI)是首先运行的软件,它负责引导加载程序的加载,然后由引导加载程序加载操作系统。

 

我们经常用电脑的话,会使用到那些固件

在日常使用电脑的过程中,你可能会涉及到以下几个固件:

  1. BIOS/UEFI:作为计算机的基本固件,负责启动计算机、初始化硬件,并加载操作系统。

  2. 硬盘固件:硬盘驱动器中内置的固件,用于控制磁盘的操作,例如寻道、错误检测和纠正、读写数据等。

  3. 图形卡固件:图形处理器(GPU)中内置的固件,用于控制图形渲染、显示输出和视频解码等。

  4. 网络适配器固件:网卡或无线网络适配器中的固件,负责管理网络连接、处理数据包和实现协议等。

  5. 固态硬盘固件:固态硬盘(SSD)中的固件,用于管理闪存存储、垃圾回收、坏块管理和性能优化等。

  6. 主板芯片组固件:主板上的芯片组(Chipset)中的固件,负责管理与主板相关的功能,如USB控制器、SATA控制器、PCIe控制器等。

这些固件在日常使用中通常是无需用户干预的,但它们确保了计算机的正常运行和各种硬件设备的有效操作。

 下面是一篇文章 可以学习帮助理解

文章目录
一、软件 硬件 固件
二、BIOS(Basic Input/output System)
三、百度百科的解释
四、固件的工作原理
五、应用
六、参考链接

一、软件 硬件 固件
通常我们会将硬件和软件分开看待,二者协同工作为我们提供计算机的体验。
硬件是摸得着的实体,而软件是一行行代码。
电脑照着这些代码显示出游戏、推特还有那些乱七八糟的东西。

不过你可能还听过一个词叫做"固件”。
固件通常被认为是介于软件和硬件之间的存在,它其实是特定的一类软件。但与操作系统或其他类型的软件不同,它不存储在机械硬盘或固态硬盘上,而是通常栖身于专用的芯片。


再加上,它非常“接近硬件”,人们就认为它算是某种软硬件的结合体。但是啊“接近硬件”又是什么意思?
构成固件的代码会非常直接地与硬件沟通,而常规的软件要做到这一点则一般需要经过API操作系统还有设备驱动。其原因在于固件的作用就是连结着软硬件的底层且基础的纽带,也是控制系统硬件的方式。

二、BIOS(Basic Input/output System)

举个例子在PC内部会有UEFI或BIOS芯片。你一按下开机键BIOS就开始运作了,它会根据你的配置初始化硬件并检查错误。


全部完成后BIOS会将几乎所有的控制权移交给更复杂的操作系统(Windows或Macos)。

然而老电脑里的BIOS则是为键盘等外设与系统软件提供了一个简单可靠的沟通渠道,在操作系统开始运行后仍在运作。


其他类型的固件在系统的运转中扮演了更为活跃的角色。台式机的心啊时期要解码数字信号,将HDMI传来的信号转换成你看到的画面。这是需要运算的,也就是说,没了固件就不行。


如果你调出哪个屏幕菜单,先要改变显示器亮度什么的,你眼中看到的就是固件在作为显示器的操作系统运作着。


所以说,就算是遥控器这样很简单的设备,也需要固件,才能将按键操作转换成电视能理解的红外信号。
因为固件对于这些底层的联动非常重要,所以它有时候也需要升级才能提供特定的功能或者修复bug。

主板的BIOS升级是一个绝佳的例子。比如,升级才能让主板支持同款插槽的新的CPU,不过由于大部分电子设备没了固件就无法运行,通常不建议对它进行改动,除非是出现了特定的问题,而你知道升级能够修复。毕竟,如果出现了停电之类的意外,导致没能成功升级,设备可能会永远“变成砖头”


这和操作系统损坏不同,并不能直接抹掉然后重装。固件损坏通常修不好,因为系统并不能理解你现在想重装固件的请求,要有正常的固件才能做到。虽然有些新电脑有尝试避免这类问题,加了第二份BIOS固件用作后备,但很多设备没有这类功能。所以,升级固件的时候一定要小心,要确保笔记本电池有电,给台式机或电视机接上UPS,也要确认固件来自于可靠的渠道。比如厂商官网。

还有些固件是完全不能升级的,要么是因为存在ROM(Read Only Memory)里,也就是只读芯片,这在硬件上就是没办法升级的,也有可能是因为有软件锁。
有些设备是不需要固件升级的,比如简单的U盘。而也有些设备使用固件存储独家功能,加大竞争对手给它“搞清楚”难度。然而,软件上的固件限制通常很容易绕过,要么是安装自制固件,这种做法有时候可以启用额外的功能,要么是有坏人将固件用作攻击的方式。固件通常没有加密什么的,而且开发者大都专注于提高操作系统和应用程序的安全性,而不是固件,这也使得固件成了黑客和间谍的目标。
这主要是因为被黑的固件在格式化硬盘之后,即使会留存下来,也很难检测,而且由于固件直接控制硬件,固件被黑甚至会导致硬件损坏。几年前甚至有研究人员做了哥概念验证,黑进苹果MacBook电池的固件,让电池过充,永久损坏。

三、百度百科的解释
固件(Firmware)就是写入EPROM(可擦写可编程只读存储器)或EEPROM(电可擦可编程只读存储器)中的程序。
固件是指设备内部保存的设备“驱动程序”,通过固件,操作系统才能按照标准的设备驱动实现特定机器的运行动作,比如光驱、刻录机等都有内部固件。
固件是担任着一个系统最基础最底层工作的软件。而在硬件设备中,固件就是硬件设备的灵魂,因为一些硬件设备除了固件以外没有其它软件组成,因此固件也就决定着硬件设备的功能及性能。
固件是计算机启动时连接硬件和操作系统的底层代码。

四、固件的工作原理
固件(firmware)一般存储于设备中的电可擦除只读存储器EEPROM(Electrically Erasable Programmable ROM)或FLASH芯片中,一般可由用户通过特定的刷新程序进行升级的程序。一般来说,担任着一个数码产品最基础、最底层工作的软件才可以称之为固件,比如计算机主板上的基本输入/输出系统BIOS(Basic Input/output System),在以前其实更多的专业人士叫它固件。
通常这些硬件内所保存的程序是无法被用户直接读出或修改的。在以前,一般情况下是没有必要对固件进行升级操作的,即使在固件内发现了严重的Bug也必须由专业人员带着写好程序的芯片把原来机器上的更换下来。早期固件芯片一般采用了ROM设计,它的Firmware代码是在生产过程中固化的,用任何手段都无法修改。随着技术的不断发展,修改固件以适应不断更新的硬件环境成了用户们的迫切要求,所以,可重复写入的可编程可擦除只读存储器EPROM(Erasable Programmable ROM),EEPROM和flash出现了。这些芯片是可以重复刷写的,让固件得以修改和升级。

五、应用
其实任何数码设备都有固件,只是我们有时忽略它的存在而已。
先举一些例子:手机、数码相机、mp3、mp4、路由器、电子书、交换机、猫、PSP、PS3、NDS、XBOX、U盘、主板、打印机的BIOS(BIOS就是一种固件)、显卡的BIOS。
鼠标、显示器、光驱、硬盘、键盘、数码卫星接收器、GPS终端、精密的电子仪器(比如核磁共振仪)等等。
固件既然是软件,就有大小之分。大的可有几百兆,小的也许只有几K,甚至不足1K。
对于独立可操作的电子产品,固件一般指它的操作系统(“担任着一个数码产品最基础、最底层工作的软件才可以称之为固件”,这和操作系统的定义很一致)。比如PSP的固件,就是指PSP 的操作系统。同理,IPHONE的固件也是其操作系统,路由器的固件就是路由器的操作系统,MP4的固件就是MP4的操作系统等。
而对于非独立的电子产品,比如硬盘、鼠标、BIOS、光驱、U盘等设备,固件就是指其最底层的,让设备得以运行的程序代码。

六、参考链接
百度百科-固件
B站-TechQuickie

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

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

相关文章

libevent中bufferevent事件及常用的API函数

自带buffer的事件-bufferevent bufferevent实际上也是一个event,只不过比普通的event高级,他的内部有两个缓冲区,以及一个文件描述符(网络套接字)。一个网络套接字有读写两个缓冲区,bufferevent同样也带有…

探索仿函数(Functor):C++中的灵活函数对象

文章目录 一、仿函数定义及使用二、仿函数与函数指针的区别三、仿函数与算法的关系四、仿函数的实践用例 在C编程中,我们经常需要对数据进行排序、筛选或者其他操作。为了实现这些功能,C标准库提供了许多通用的算法和容器,而其中一个重要的概…

nut-ui组件库icon中使用阿里图标

1.需求 基本每个移动端组件库都有组件 icon组件 图标组件、 但是很多组件库中并找不到我们需要的图标 这时候 大家有可能会找图标库 最大众的就是iconfont的图标了 2.使用 有很多方式去使用这个东西 比如将再限链接中的css引入 在使用 直接下载图标 symbol 方式 等....…

【NR 定位】3GPP NR Positioning 5G定位标准解读(十三)-DL-AoD定位

前言 3GPP NR Positioning 5G定位标准:3GPP TS 38.305 V18 3GPP 标准网址:Directory Listing /ftp/ 【NR 定位】3GPP NR Positioning 5G定位标准解读(一)-CSDN博客 【NR 定位】3GPP NR Positioning 5G定位标准解读(…

buuctf warmup 超详细

目录 1.代码审计&#xff1a; 2.逻辑分析 3.总结分析 4.分析记录 5.疑点解答 1.代码审计&#xff1a; <?phphighlight_file(__FILE__);class emmm //定义了一个类{public static function checkFile(&$page) 类里面又申明创建…

Android 架构师研发技术进阶之路:不同阶段需要掌握的那些技术及软技能

资深 而到了资深层次&#xff0c;技术栈已经不再是阻碍。能够从更高层面看待问题&#xff0c;理解整个系统的设计&#xff0c;作为系统架构师的角色存在。 1. 理解微服务、SOA思想&#xff0c;对于后端开发有一定涉猎。 2. 了解前端研发工具和思想&#xff0c;知道vue react…

centos破解root密码以及如何防止他人破解root密码

目录 破解root密码 服务器重启 1.再重启页面上下选择第一个按e进入内核编辑模式 2.找到linux16开头的一行&#xff0c;光标移动到最后添加 init/bin/sh Ctrlx 保存 3.进入单用户模式 4.重新挂在根分区 5.关闭selinux 6.更新密码 passwd 7.在根分区下面创建一个隐藏文件…

【C语言步行梯】一维数组、二维数组介绍与应用详谈

&#x1f3af;每日努力一点点&#xff0c;技术进步看得见 &#x1f3e0;专栏介绍&#xff1a;【C语言步行梯】专栏用于介绍C语言相关内容&#xff0c;每篇文章将通过图片代码片段网络相关题目的方式编写&#xff0c;欢迎订阅~~ 文章目录 为什么要有数组&#xff1f;一维数组数组…

uni-app微信小程序上拉加载,下拉刷新

pages.json配置官网链接 onPullDownRefresh、onReachBottom函数跟生命周期同级 data() {return {orderList:[],total: null, //总共多少条数据page: 1,pageSize: 10,} }, onLoad() {}, mounted(){this.getInfo() }, methods:{getInfo(){API.getListxxx().then(res > {const…

探索TikTok云手机在社交媒体营销的作用

近年来&#xff0c;TikTok作为全球短视频平台之一&#xff0c;其用户基数呈现持续增长的趋势。伴随社交媒体的蓬勃发展&#xff0c;企业和个人纷纷涌入TikTok平台&#xff0c;追求更广泛的曝光和用户互动。为满足这一需求&#xff0c;TikTok云手机应运而生。本文将深度剖析TikT…

蓝桥杯[OJ 1621]挑选子串-CPP-双指针

目录 一、题目描述&#xff1a; 二、整体思路&#xff1a; 三、代码&#xff1a; 一、题目描述&#xff1a; 二、整体思路&#xff1a; 要找子串&#xff0c;则必须找头找尾&#xff0c;找头可以遍历连续字串&#xff0c;找尾则是要从头的基础上往后遍历&#xff0c;可以设头…

【JS逆向学习】猿人学第六题 js混淆 回溯

逆向目标 网址&#xff1a;https://match.yuanrenxue.cn/match/6接口&#xff1a;https://match.yuanrenxue.cn/api/match/6参数&#xff1a;payload(m、q) 逆向过程 老规矩&#xff0c;先来分析网络请求&#xff0c;加密的地方一目了然&#xff0c;没什么可多说的&#xff…

【阿里云系列】-部署ACK集群的POD应用日志如何集成到日志服务(SLS)中

介绍 我们在实际部署应用到阿里云的ACK集群后&#xff0c;由于后期应用服务的持续维护诉求可能需要跟踪排查问题&#xff0c;此时就要具备将应用的历史日志存档便于后期排查问题 处理方式 为了解决以上的普遍需求&#xff0c;需要将ACK中的应用日志采集到SLS的Logstore中,然…

通付盾Web3专题 | SharkTeam:2023年加密货币犯罪分析报告

2023年&#xff0c;Web3行业共经历了940多起大大小小的安全事件&#xff0c;同比2022年增长了超过50%&#xff0c;损失金额达到17.9亿美元。其中&#xff0c;第三季度发生的安全事件最多&#xff08;360起&#xff09;&#xff0c;损失最大&#xff08;7.4亿美元&#xff09;&a…

数据集成平台选型建议

一 数据集成介绍 数据集成平台是一种用于管理和协调数据流动的软件工具或服务。它的主要目标是将来自多个不同数据源的数据整合到一个统一的、易于访问和分析的数据存储库中。这些数据源可以包括数据库、云应用、传感器、日志文件、社交媒体等等。数据集成平台的关键任务是确保…

[JavaWeb学习日记]Vue工程,springboot工程整合Mybatis,数据库索引

目录 一.Vue工程 安装NodeJS与Vue-cli Vue项目创建 启动Vue项目&#xff1a;点击npm脚本serve 改端口&#xff1a;在vue.config.js下 Vue文件组成&#xff1a;templatescriptstyle 使用element 前端服务器当前使用Ngix 主要编写的文件 二.SpringBoot的Web工程 启动带…

腾讯云4核8G服务器支持多少人在线?CPU性能如何?

腾讯云轻量4核8G12M服务器配置446元一年&#xff0c;646元12个月&#xff0c;腾讯云轻量应用服务器具有100%CPU性能&#xff0c;系统盘为180GB SSD盘&#xff0c;12M带宽下载速度1536KB/秒&#xff0c;月流量2000GB&#xff0c;折合每天66.6GB流量&#xff0c;超出月流量包的流…

uniapp-vue3 项目初始化集成配置【开箱即用】

地址 https://gitee.com/charrie/vue3-uniapp-init 部分截图展示 技术说明 采用vue3viteuniapp技术栈&#xff0c;setup语法糖编码方式使用完全免费的sard-uniapp组件库引入unocss量子化样式引擎&#xff0c;动态css不用自己写样式&#xff0c;引用class即可&#xff0c;降低…

【SQL注入】Sqlmap使用指南(手把手保姆版)持续更新

文章目录 一、sqlmap介绍二、sqlmap命令行参数用法讲解2.1常用用法-u--batch--flush-session--dbms--level--random-agent--user-agent--tamper--technique-p--skip基础用法查询列表2.2 高阶用法-v高阶用法查询列表 一、sqlmap介绍 官网下载地址&#xff1a;https://github.co…

【LeetCode热题100】138. 随机链表的复制(链表)

一.题目要求 给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成&#xff0c;其中每个新节点的值都设为其对应的原节点的值…