作者
Mesh Flinders
Staff Writer
IBM Think
Ian Smalley
Staff Editor
IBM Think
当今最具创新性的技术依赖于三大关键组件的协同运作:硬件、软件与 固件。 硬件组件 是物理实体(如计算机、处理器或板卡),而软件与固件则是指令集合,驱动硬件设备正常运行。
虽然 固件 与软件高度相似且常被互换使用,但在评估企业需求时,仍需理解二者的关键区别。
什么是固件?
固件(又称“硬件专用软件”)是嵌入 硬件设备(如计算机系统 或 移动设备)中的代码,用于确保设备基础功能的正常运行。
固件 为设备提供启动引导、与其他设备(如 路由器或遥控器)交互以及执行输入/输出 (I/O) 任务的指令。 它可 通过定期更新来修复问题、增加功能或提升兼容性。
“固件”一词由美国科学家 Ascher Opler 于 1967 年提出,用以描述他称为“介于硬件与软件之间”的程序1。如今,众多常用设备(如电视、智能手机和相机)均需依赖 固件 才能正常 运行。
什么是软件?
软件是指导计算设备核心操作的 一系列指令集合 。
软件可通过多种编程语言编写,包括流行的 Python、 Java 和结构化语言查询 (SQL)。软件用途广泛,主要分为两大类别:为 操作系统 (OS) 开发的系统软件,以及为应用程序开发的应用程序软件。
固件与软件:核心差异
固件 和软件之间最关键的区别在于: 固件 侧重于设备启动与通信,而软件更专注于 用户交互。
制造商经常通过 固件 更新来增加 新功能、强化安全防护并修复设备漏洞。正如 Android 或 iOS 手机用户所熟知的那样, 固件 版本更新需定期下载安装,否则将影响设备性能。
相较而言,软件被安装在 电子设备 上旨在提升用户体验,涵盖网页浏览、电子邮件处理、文字编辑、视频观看、音乐流媒体等多样化活动。以下是评估这两项技术时需考量的重要差异点。
功能性
固件 侧重于执行具有特定 功能的 低层级 指令,这些指令通常直接关联其预设设备的控制。 软件则更专注于用户在设备上交互运行的 计算机程序 。
另一关键功能差异在于: 软件 程序可在多种不同设备上 运行 ,而 固件 通常仅 适用于 其预设的特定设备。
开发环境
固件 与软件的开发环境存在显著差异。 软件开发 采用 Python、C++ 等高级 编程语言,而 固件 开发主要依赖 C 语言或简易汇编语言。
软件开发人员 通常能使用集成开发库 (IDE)、代码库等更丰富的框架与工具。 而固件 开发人员则受限于为特定平台(如智能电视菜单)构建的工具,且常需专注于启动、调试等基础 功能。
测试
测试是构建有效 固件 与软件解决方案的关键阶段。 固件测试重点验证解决方案与硬件的交互,确保 功能 正常运行并防止“变砖”。变砖是指 固件 更新意外导致设备完全失效、无法使用的情况。开发人员通常会运用调试工具和模拟器进行多场景测试,以保障 固件更新 的稳定性。
在 软件测试中,开发人员采用与固件测试不同的工具和流程来识别修复缺陷,并验证软件是否有效运行。固件测试在硬件(尤其是存储固件的设备 ROM)上执行,而软件测试则在特定平台进行。
更新机制
固件 与软件均常通过 5G WiFi 或以太网连接进行在线更新。 软件更新 层级高于 固件更新:前者关注 用户交互体验,后者侧重于设备 基础功能 。软件更新针对设备运行的应用程序(如文字处理软件和网页浏览器),而固件更新则涉及影响设备性能的核心底层功能(如操作系统)。
另一区别在于, 固件更新 频率低于 软件更新 ,但由于其与硬件的紧密关联,导致设备变砖的风险更高。考虑到承载 固件 与软件的设备复杂性(从笔记本电脑、游戏主机到智能手机和无人驾驶汽车),更新对设备性能至关重要。
在云端保持清醒头脑
获取每周 Think 时事通讯,了解有关在 AI 时代优化多云设置的专家指导。
立即订阅
固件和软件的优点
许多成功的现代企业依托 固件 与软件满足各类业务需求,其主要优势包括:
交付便捷性: 如今,大多数 企业应用程序都以 软件即服务 (SaaS) 形式交付,使得安装和更新比过去更加简便。SaaS 解决方案是托管在云端的 应用程序软件 ,用户通过网络浏览器或移动应用程序即可使用。 固件 解决方案同样支持远程安装与更新,通过互联网下载链接或自动更新机制实现,仅需简单重启设备即可完成安装。性能增强: 固件 与软件能提升企业依赖的各类设备性能,从而保障安全、推动创新并向客户提供 新功能 。例如,游戏和娱乐公司通过 固件 与软件确保其 应用程序流畅运行,使客户能按设计方式正常使用。快速问题解决: 固件 与软件在快速有效解决客户问题方面发挥着关键作用。以智能手机的扬声器或摄像头等新组件出现故障为例。制造商无需召回设备,只需发布可通过网络轻松下载安装的 固件更新 即可解决问题。 至于软件更新,则往往在提供新功能的同时包含安全补丁。例如苹果的“Sonoma”操作系统更新就推出了密码保护新方案、增强视频会议功能及全新桌面小组件等一系列改进。 降低成本: 固件 与软件通过多种方式帮助不同规模的企业减少支出。以预配置为例:采用 SaaS 模式购买的软件应用程序在下载时已完成预配置。用户只需部署云服务器,数小时内即可启用应用程序。SaaS 还有助于降低授权成本,因为 SaaS 模式下多数应用程序都运行在共享或 多租户 环境中。
固件与软件如何运作?
固件 与软件高度相似,常被混用。但在评估其业务适用性时,二者在 运行机制 上的差异值得关注。
固件如何运作?
固件 在设备制造过程中就被植入设备。主要承担 操作系统 (OS) 与设备本身的通信桥梁作用。计算机 中央处理器 (CPU) 会从内存中读取 固件 指令并执行——这里正是数据输入转化为信息输出的核心部位。
固件 驻留在设备的 非易失性存储器中(该存储介质能在设备断电时保存内容),可写入多种存储器类型,包括 随机存取存储器 (RAM)、 只读存储器 (ROM)、可擦 可编程 只读存储器 (EPROM) 以及 闪存。 随着 固件 需处理的任务日趋复杂,它已逐渐吸纳了 计算机硬件的某些特性,特别是 闪存 与基本输入/输出系统 (BIOS) 的应用。
固件 通常将数据存储在系统的“非易失性”或“只读”存储器 (ROM) 中,这种存储器也称为 闪存。此类存储器广泛应用于 U 盘、智能手机、数码相机、笔记本电脑等便携设备,对 固件 功能至关重要。近年来, 闪存 已具备某些通常属于计算机的功能特性。
例如计算机启动时会执行基本输入/输出系统 (BIOS) 序列。早期运行 BIOS 序列的 固件 使用 ROM 芯片,但现在 系统已改用 闪存存储 BIOS ,这样既无需从主板拔下芯片即可完成数据重写,也省去了重新编程后的插回步骤。
软件如何运作?
软件包含计算机运行所需的重要指令与信息。应用软件和操作系统软件这两类软件不仅运作方式不同,功能定位也各有侧重。
应用程序软件: 应用程序软件程序,又称应用程序 (如网页浏览器、图片编辑器或文字处理器)专门用于实现特定 功能。但 应用程序软件 无法独立运行,需要借助计算机操作系统(或 系统软件) 才能 正常工作。随着互联网普及,许多网络应用程序需要联网才能 使用,而非网络应用程序则可直接通过计算机操作系统(如 Windows、Mac 或 Linux)启动运行。操作系统或 系统软件: 操作系统或系统软件 是介于硬件与 应用程序软件之间的软件层,确保两者都能正常 运作 。用户几乎从不直接与 系统软件 交互,但在使用各类应用程序时,它始终在后台持续运行。系统软件负责 管理设备的硬件与软件资源,保障用户获得流畅无中断的使用体验。
固件与软件安全
由于许多企业及用户依赖 固件 与软件,它们成为黑客眼中的重点目标。 依赖 固件 的硬件设备 存在大量 漏洞 ,因其常使用相同的底层代码。软件攻击(常被称为“恶意软件”)是指可能损坏计算机或帮助黑客窃取敏感数据的恶意代码段或应用程序。
固件 与软件入侵均涉及故意编写有害代码 以破坏计算机系统或用户安全。常见的 恶意软件 类型包括:挟持用户数据的 勒索软件 、伪装成合法程序以规避检测的特洛伊木马,以及窃取用户敏感信息的间谍软件。
例如,在 2024 年 6 月,Google 曾发布警告称其 Pixel 手机固件存在漏洞,可能导致设备容易受到攻击者侵害,且当时该问题尚无已知的修复方案2。
五大固件与软件用例
在成功企业的核心运营中, 固件 与软件发挥着关键作用。以下是五个典型企业用例。
个人计算机
个人计算机 (PC) 依赖 固件 与软件协同 运作。 嵌入 笔记本电脑 系统板 内存芯片的固件,能在设备断电时保存关键数据。此外, BIOS 与统一可扩展固件接口 (UEFI) 规范共同支撑着操作系统 与 固件之间的软件接口。
对 PC 至关重要的软件应用程序包括数据处理程序、网页 浏览工具、视频会议系统等。
数据存储与处理
现代数据 存储设备(如 U 盘 、外接 硬盘 与闪存盘)均依靠 嵌入 闪存芯片 的固件实现 功能。
在数据处理与 数据分析层面,Microsoft Excel、Google BigQuery 及 IBM Db2 数据库等主流解决方案都依赖软件保障其正常运行。
智能手机
固件 确保智能手机在长期闲置后能正常启动,并使关键组件按设计规范交互协作。
软件则驱动用户日常使用的各类应用程序——查收电子邮件、视频通话、订餐服务、查询账户余额等均由其实现。
汽车
近十年设计的汽车高度依赖 固件 与软件。不同 类别的固件 应用于汽车各系统,包括优化发动机性能与燃油效率的发动机控制单元 (ECU) 在内的诸多关键部件。
软件技术驱动着辅助设计流程的计算机辅助设计 (CAD) 系统,并赋能多项新型安全功能,包括摄像头辅助驾驶与变道警示系统。
物联网 (IoT)
物联网 (IoT) 是指嵌入传感器、 各类软件 及网络连接功能的物理设备网络(涵盖车辆、家电等实体对象),通过这些技术实现数据采集与共享。 固件 对众多 IoT 用例至关重要,例如冰箱与智能温控系统等智能家居设备。
而软件则支撑着更复杂的 IoT 应用,包括无人驾驶汽车、 智慧城市 应用程序、 智能电力 应用程序等。
总结
尽管 固件 与软件存在诸多共性,企业在评估这些技术的应用潜力时仍需明确其差异。许多 硬件设备 依赖 固件 实现核心 功能(如开关机流程与断电数据保存),而软件则主导用户交互与商业应用。了解这两项技术如何在幕后协同驱动创新,对于充分释放其商业价值具有关键意义。
脚注
1. 固件,维基百科
2. Google 就 Pixel 固件 零日漏洞发出安全警告 , 黑客新闻,2024 年 6 月 13 日
复制链接