固件和软件有什么区别?

从技术上讲,固件(Firmware)只是软件(Software)的一个子集,因为后一个术语包括每一个有用的代码。然而,在实践中,软件一词指的是非常不同的一类程序。

一般来说,固件是直接与硬件接口的低级代码的名称。在该层之上工作的任何程序都包含该软件。使困惑?这是一个更深入的了解。

多种类型的软件

软件一词的问题在于它太宽泛了。任何可以控制计算机或任何其他电子设备的指令集都可以被视为软件。

在计算的早期,这不是问题,当时所有程序都是用汇编语言编写的,并直接与硬件接口以完成任何任务。但如今,计算设备在层层代码上运行,用户只接触到最上面的程序。

称为应用程序软件(Application Software)的此类用户友好程序包括您在 PC 上使用的所有应用程序和实用程序,例如 Web 浏览器或文字编辑器。下面是操作系统(System)处理低级细节,如将视觉呈现到屏幕和处理输入。

大多数人认为它到此结束,但操作系统很少直接与硬件通信。操作系统下面还有另一层,它为系统软件提供了一种访问硬件功能的简单方法。这就是固件(Firmware)

固件:软件(Software)基础层(Foundation Layer)

在大多数高级编程语言中,在屏幕上显示图像等操作是一个简单的命令。然而,在计算机的某个地方,有一段代码负责将该命令转换为实际的处理器指令。

固件(Firmware)是硬件和软件之间的纽带,允许开发人员通过简化的编程接口而不是 CPU 特定的指令来使用设备的功能。对于计算机,此固件是众所周知的基本输入输出系统 (BIOS)(Basic Input Output System (BIOS)),即使没有操作系统也可以访问。

在电视遥控器或路由器等更简单的电子设备中,固件也兼作操作系统。此类机器不适用于安装 PC 等第三方应用软件,而是依靠固件来执行所有必要的任务。

如何在设备上(Device)安装固件(Firmware Installed)

没有固件,任何电子设备都无法使用。这就是为什么所有电子元件都带有制造商预安装的固件的原因。

即使在计算机上,该程序也存储在主板上的专用闪存芯片上,而不是硬盘驱动器上。这使得在没有安装操作系统的情况下启动计算机和配置硬件设置成为可能。

在大多数设备上更新固件既不容易也没有必要。作为机器的基本控制代码,弄乱它会导致硬件无法使用。计算机是个例外,它允许用户通过刷新芯片 来安装 BIOS 升级。(BIOS upgrades to be installed)

固件与软件:概览

Firmware Software
Essential code that directly controls the hardware components. Optional programs that utilize firmware to perform complex tasks.
Stored on a dedicated chip on the device. Installed on the hard disk memory.
Comes pre-installed by the manufacturer. Can be installed and configured by the user.
The lowest layer of code that supports operating systems and other software. Higher-level code that relies on the firmware below it for hardware abstraction.
Often the sole controlling program in simple electronic devices. Cannot function without firmware.
Hardware specific. Firmware differs for different processor architectures and cannot be interchanged. Hardware independent. OS functions the same on different processor families, though application software is usually OS specific.
Updated very rarely, if at all. Cannot be uninstalled. Easy to upgrade and remove.

固件与软件(Firmware Different From Software)有何 不同?

硬件(Hardware)软件(Software)通常被称为电子设备的两个组件,但这并不是完整的画面。操作系统(Systems)应用程序不能直接与硬件通信,需要一层专门的代码来弥合差距。

那个链接元素是Firmware。它由直接控制硬件的特定于架构的指令组成,并且在简单的电子设备中也充当基本操作系统。在其他设备中,固件为软件提供了一个抽象接口,允许操作系统使用硬件而不关心底层架构。

由于其本质,固件预装在主板本身的闪存芯片上,独立于写入磁盘的任何软件。与简单的软件包安装不同, 它只能通过专门的流程进行更新(即“刷新”) 。(updated (ie. “flashed”) with specialized processes)

所有电子设备和外围组件都带有自己的固件。数码(Digital)相机、智能手机、SSD(SSDs)甚至USB驱动器——如果它有需要控制的硬件,那么板载固件可以对其进行管理。



About the author

我是一名硬件工程师,专门从事iPhone、iPad等苹果产品的设计和开发。我在 iOS 和边缘设备以及 Git 和 Swift 等软件开发工具方面都有经验。我在这两个领域的技能使我对 Apple 设备操作系统 (OS) 如何与应用程序和数据源进行交互有了深刻的理解。此外,我在 Git 方面的经验使我能够处理代码版本控制系统,这有助于在开发软件时提高效率和生产力。



Related posts