什么是【固件】?

news/2024/5/5 3:55:31/文章来源:https://blog.csdn.net/weixin_44417441/article/details/128160245


文章目录

  • 一、软件 硬件 固件
  • 二、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.luyixian.cn/news_show_229638.aspx

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

相关文章

SpringBoot中使用MySQL存用户信息, 日志的使用

SpringBoot中使用MySQL存用户信息 UserController类 package com.tedu.secboot.controller; import com.tarena.mnmp.api.SendParam; import com.tedu.secboot.entity.User; import com.tedu.secboot.util.DBUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory;…

[附源码]计算机毕业设计springboot在线图书销售系统

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

2023年天津天狮学院专升本市场营销专业《管理学》考试大纲

2023天津天狮学院高职升本科市场营销专业入学考试《管理学》考试大纲一、考试性质 《管理学》专业课程考试是天津天狮学院市场营销专业高职升本入学考试的必考科目之一,其性质是考核学生是否达到了升入本科继续学习的要求而进行的选拔性考试。《管理学》考试大纲的编…

LIO-SAM源码解析(四):imuPreintegration.cpp

1. 代码流程 2. 功能说明 这个cpp文件主要有两个类,一个叫IMUPreintegration类,一个叫TransformFusion类。 现在我们分开讲,先说IMUPreintegration类。 关于IMU原始数据,送入imuhandle中: 2.1. imuhandle imu原始…

[附源码]Python计算机毕业设计Django景区直通车服务系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,我…

【RTS】杜金房大神FreeSwitch分享笔记

技术万变不离其宗不管如何实现原理都是一样的。杜金房大神 RTS 高可用 一台机器上俩fs,公用同一个ip用户连接的是一个ip,不知道切了fs。两台主备数据同步

Ajax学习:同源策略(与跨域相关)ajax默认遵循同源策略

同源策略:是浏览器的一种安全策略 同源意味着:协议、域名、端口号必须相同 违背同源便是跨域 当前网页的url和ajax请求的目标资源的url必须协议、域名、端口号必须相同 比如:当前网页:协议http 域名 a.com 端口号8000 目标请求…

[附源码]JAVA毕业设计计算机在线学习管理系统-(系统+LW)

[附源码]JAVA毕业设计计算机在线学习管理系统-(系统LW) 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项…

阿里云安装mysql、nginx、redis

目录 安装mysql 安装nginx ​编辑安装redis 先看一下系统基本信息 安装mysql rpm -qa | grep mariadb 卸载mariadb rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64 wget -i http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm yum -y install my…

【D3.js】1.17-给 D3 元素添加标签

title: 【D3.js】1.17-给 D3 元素添加标签 date: 2022-12-02 14:35 tags: [JavaScript,CSS,HTML,D3.js,SVG] 为了让图更易懂,我们给每一个rect添加上标签。 一、学习目标 如何添加text元素? .append(“text”) 如何设置text元素的值? .attr(…

在Linux中部署运维监控系统WGCLOUD

在公网IP为x.x.x.x,安装CentOS8或Alibaba Cloud Linux 3.2104 LTS 64位系统的服务器(服务端)上,先安装jdk8,然后安装数据库mariadb-10.5,最后进行server安装。 在需要监控的安装CentOS8或Alibaba Cloud L…

[附源码]计算机毕业设计springboot疫情网课管理系统

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

并发编程详解: 十三个工具类, 十大设计模式, 从理论基础到案例实战

前言 对于 Java 程序员而言,熟练掌握并发编程是判断其卓越性的重要标准之一。因为并发编程是 Java 语言中最晦涩的知识点,它涉及操作系统,内存,CPU,编程语言等的基本功,并且还测试了程序员的内功。 那么如…

Ubtunu排查磁盘空间是否已满—并清理的方式

项目场景: 最近使用nodejs开发的后端项目部署到Ubtunu服务器后接口无法访问了,接口也调用不通,NGINX报502错误。 问题描述 使用远程连接工具传文件也是无法上传,提示找不到文件,SCP命令也无法上传。 scp传文件报错&…

【BOOST C++ 19 应用库】(6)序列数据封装和优化

一、说明 用于优化的包装函数&#xff1a;本节介绍包装函数以优化序列化过程。这些函数标记对象以允许 Boost.Serialization 应用某些优化技术。 二、示范和代码 示例 64.14。在没有包装函数的情况下序列化数组 #include <boost/archive/text_oarchive.hpp> #include &…

我的数学学习回忆录——一个数学爱好者的反思(二)

早点关注我&#xff0c;精彩不错过&#xff01;上回说到我在数学学习过程中走的种种弯路&#xff0c;相关内容请戳&#xff1a;我的数学学习回忆录——一个数学爱好者的反思&#xff08;一&#xff09;那在这样坎坷的旅程中&#xff0c;有没有给我带来意外惊喜&#xff0c;是不…

创建Hibernate项目与实现一个例子(idea版)

文章目录创建Hibernate项目一、前提准备二、创建项目三、实现一个例子创建Hibernate项目 一、前提准备 准备Hibernate开发必需的jar包。准备数据库的驱动jar包。准备junit.jar包。 这些包你可以去官网下载&#xff0c;也可以下载我已下载好的(本人目前使用的)。 https://pan…

Spring-Cloud-Zipkin-05

前言 1、链路追踪由来&#xff1a;在微服务框架中&#xff0c;一个由客户端发起的请求在后端系统中会经过多个不同的服务节点调用来协同产生最后的请求结果&#xff0c;每一个请求都会开成一条复杂的分布式服务调用链路&#xff0c;链路中的任何一环出现高延时或错误都会引导起…

【博客550】k8s乐观锁机制:控制并发请求与数据一致性

k8s乐观锁机制&#xff1a;控制并发请求与数据一致性 1、乐观锁与悲观锁 悲观锁 悲观并发控制&#xff08;又名“悲观锁”&#xff0c;Pessimistic Concurrency Control&#xff0c;缩写“PCC”&#xff09;是一种并发控制的方法。它可以阻止一个事务以影响其他用户的方式来修…

分布滞后线性和非线性模型(DLNM)分析空气污染(臭氧)、温度对死亡率时间序列数据的影响...

全文下载链接 http://tecdat.cn/?p23947 分布滞后非线性模型&#xff08;DLNM&#xff09;表示一个建模框架&#xff0c;可以灵活地描述在时间序列数据中显示潜在非线性和滞后影响的关联。该方法论基于交叉基的定义&#xff0c;交叉基是由两组基础函数的组合表示的二维函数空间…