图解固件、驱动、软件的区别

简介: 图解固件、驱动、软件的区别

大家好,我是良许。不管我们使用什么操作系统,无论是 Windows、macOS 还是 Linux ,里面都安装了许多软件、驱动程序和固件。但是,这三者概念有区别呢?我在朋友圈做了个小调查,发现居然很多人不清楚他们的关系,因此写下此文来给大家做个简单的科普。微信图片_20220419170355.png文字描述太抽象了,我们直接来看漫画吧。微信图片_20220419170359.png微信图片_20220419170402.png微信图片_20220419170405.png微信图片_20220419170408.png微信图片_20220419170412.png

好了,看完漫画,我们再来看正规的解释是怎样的。简单来讲,固件、驱动程序和软件之间的根本区别在于它们的设计目的。

  • 固件是赋予设备硬件生命的程序
  • 驱动程序是操作系统和硬件组件之间的中间人
  • 软件可以间接操作硬件

1. 固件

固件(Firmware)就是写入 ROM (只读存储器)中的程序,固件担任着一个系统最基础最底层工作,直接控制硬件,比如计算机上电后第一个启动的程序 BIOS ,它可以与硬件交互,并检查它是否有任何错误。BIOS 调用另一个称为引导加载程序的程序,该程序执行唤醒在硬盘驱动器内休眠的操作系统并将其放入随机存取存储器 (RAM) 的工作。我们可以在许多设备上看到固件,包括计算机、手机、遥控器、游戏机、智能手表、USB 驱动器和各种嵌入式系统。即使是电视遥控器也有一个预装的固件,可以实现你按下按钮的时候电视换台操作。

2. 驱动

驱动(Drive):驱动程序即添加到操作系统中的一小块代码,其中包含有关硬件设备的信息。当计算机程序请求与某个硬件设备交互时,设备驱动程序充当硬件设备与使用它的程序之间指令的转换器。操作系统并不支持机器上的所有硬件,所以一般来讲硬件厂商都要为自己的硬件编写驱动程序。每个驱动程序都旨在为特定或一组设备工作。在计算机上,驱动程序使用各种总线接口来联系设备。此外,驱动程序一般不直接与用户交互,所以很多用户完全不知道它们的存在。驱动程序的开发需要非常小心,因为它直接与硬件打交道,同时也与操作系统打交道。如果设备驱动程序出现问题,可能会导致系统崩溃,这就是为什么需要专业人员或团队来为设备编写驱动程序的原因。但是为什么不把 Firmware 做的很完美,做的不需要驱动支持呢?因为有不同的操作系统,而这些操作系统对于操作硬件的方式完全不同。所以不同操作系统的驱动是不能兼容的,原因就是驱动是为操作系统服务的。

3. 软件

与硬件不同,软件是运行在电脑里,看不见摸不着。操作系统也是一个软件,并且为安装在操作系统上的其他软件提供了工作空间。前面提到的设备驱动程序其实也是一种软件,不过它有个更细分的种类,称为系统软件。如果用户编写了一个软件,想要操作硬件(比如光驱、U盘等),他必须通过操作系统提供的接口来实现,而无法直接与硬件交互。值得注意的一点是,软件是一个广义的术语。我们在日常使用中所说的「软件」一般是指应用软件,比如:微信,QQ,浏览器等等。还有什么不明白的,欢迎评论区交流哦~

目录
相关文章
|
存储 监控 安全
IT知识百科:什么是域控服务器?
【2月更文挑战第21天】
4198 2
IT知识百科:什么是域控服务器?
|
Docker 容器
docker 中使用lspci踩坑
docker中使用lspci,无法加载libkmod资源问题记录
2000 0
|
开发工具 git
在码云上新建一个仓库,并且使用git上传代码步骤
在码云上新建一个仓库,并且使用git上传代码步骤
1409 0
|
3月前
|
人工智能 运维 安全
告别重型IDE:Codex命令行AI编码工具跨平台部署、安全配置、工程实战完整手册
现代软件工程迭代节奏不断加快,传统集成开发环境普遍存在体积臃肿、启动缓慢、操作链路繁琐等问题。各类图形界面AI编码插件高度依赖可视化窗口,很难适配纯终端远程服务器开发、轻量脚本快速迭代、线上服务器运维编码这类真实工作场景。市面上大量终端编程工具能力比较单薄,仅能够实现简单的代码补全,缺少项目全局理解、多步骤任务自动执行、批量工程重构、安全沙箱防护等关键能力。除此之外直接使用海外模型还会遇到网络访问波动、成本不可控,难以适配国内合规开发体系等现实阻碍。
270 0
|
8月前
|
存储 监控 前端开发
大文件上传下载处理方案-断点续传,秒传,分片,合并
本文介绍了大文件上传下载的断点续传技术方案。上传方面,通过前端将大文件分块(如5MB/块),后端使用MinIO存储分块并合并,实现断点续传和秒传功能。下载方面,采用Range请求分片下载,前端合并分片触发下载。技术要点包括:1)前端分块计算MD5;2)后端MinIO存储管理;3)分片校验与合并;4)进度监控和异常处理。该方案解决了大文件传输中断问题,提升用户体验,适用于视频等大文件传输场景,完整代码示例包含前后端实现。
|
机器学习/深度学习 人工智能 前端开发
终端里的 AI 编程助手:OpenCode 使用指南
OpenCode 是开源的终端 AI 编码助手,支持 Claude、GPT-4 等模型,可在命令行完成代码编写、Bug 修复、项目重构。提供原生终端界面和上下文感知能力,适合全栈开发者和终端用户使用。
61688 11
|
10月前
|
人工智能 供应链 监控
2026 AI元年核心赛道:AI智能体,如何重构企业工作流?
2026年作为AI元年,AI智能体已从技术概念走向企业实操,成为重构企业工作流、破解传统协同壁垒与效能瓶颈的核心力量。不同于传统自动化工具,AI智能体凭借自主决策、多任务协同、持续学习的能力,以“人机协同、效能倍增”为核心逻辑,依托基础大模型、智能编排框架、工具生态三大技术支柱,在营销、财务、客服、供应链四大核心场景实现低成本落地。本文结合企业实操经验,梳理AI智能体重构工作流的底层逻辑与“试点-优化-规模化”三步落地路径,为各规模企业提供可参考的实操指南,助力企业通过AI智能体实现降本增效,抢占AI时代核心竞争力。​
|
存储 安全 固态存储
计算机启动:从插上电源到操作系统启动的全过程
当我们插上电源,计算机从休眠状态苏醒,直至操作系统完全启动,这一系列复杂的过程涉及到硬件和软件的多个层面。本文将详细解析计算机插上电源后操作系统所做的工作,揭示这一过程的技术细节。
1625 6
|
机器学习/深度学习
Softmax 和 ReLU 函数的效用
【8月更文挑战第23天】
1437 0
|
关系型数据库 MySQL 应用服务中间件
[Docker]容器内文件修改
【8月更文挑战第21天】[Docker]容器内文件修改
1478 13