固件与软件|软件和固件之间的区别

在本文中,我们将尝试理解术语固件和软件,这两者如何适应计算机和嵌入式系统的世界,并通过了解软件和固件之间的差异来比较固件与软件。

如果您在电子行业中,那么固件和软件术语非常受欢迎。无论您是使用计算机还是嵌入式系统,您都可能使用这些术语,有时会互换。

但是,固件和软件有什么区别?在计算机和基于微控制器的嵌入式系统的上下文中使用时,它们的定义是什么?让我们尝试更详细地理解这些术语。

什么是软件?

软件

任何计算机系统基本上都包含两个部分:硬件和软件。硬件是物理内容,例如处理器,内存,存储,钥匙,触摸屏等。为硬件正常运行,您需要软件。软件不过是硬件来处理信息的一组指令。

假设您有一台带有最新处理器,RAM,图形卡等的全新PC。只有在有适当的软件时才可以使用此PC,我们称其为操作系统。这是启动计算机所需的基本软件。您可以在需要时添加其他软件(例如浏览器,照片编辑器,视频播放器等)。

从上述语句中,我们可以将计算机软件分为两类。他们是:

  • 系统软件
  • 应用软件

系统软件

这是一组必需程序,需要协调计算机的硬件组件。操作系统是系统软件,它是计算机硬件与用户之间的接口。

系统软件的另一个示例是编译。编译器是一个程序,将用高级语言写入机器语言的指令将其转换为可以用硬件理解的机器语言。每种高级语言都需要自己的编译器软件。

应用软件

这是一项旨在执行特定任务的设定指令。通常,应用程序软件不会直接控制硬件,这是系统软件进入图片的位置。该应用程序将指令发送到系统软件(例如OS或编译器),然后系统软件指示硬件。

有几个应用程序软件,例如Office Suite(MS Office或Libre Office),媒体播放器(VLC),照片编辑(Adobe Photo Shop),视频编辑(Adobe Premier Pro),Anti-Virus(Avast,Norton,Norton),财务管理软件(Tally),Web浏览器(Chrome,Firefox)等。

什么是固件?

固件1

固件也是一个软件。但是固件的背景是不同的。它通常是一个直接控制硬件的小程序。因此,固件有时被称为低级软件。

您可以在各种设备中找到固件,例如电视遥控器,计算机硬盘驱动器,主板BIOS,键盘,机器人,路由器等。尽管电视遥控器中的固件读取了按键的输入并激活红外线,但计算机硬盘驱动器中的固件的作用略有不同。

当我们指示计算机将文件保存在硬盘驱动器上时,操作系统会接收此指令并通过驱动程序与硬盘驱动器进行通信。当硬盘驱动器收到这些说明时,硬盘驱动器中的固件会激活其硬件控制机制(控制读 /写头,激活拼盘电机等),然后将数据存储在硬盘驱动器上。

因此,很明显,该设备的固件是直接控制硬件并用作操作系统和设备之间的填充物的软件。我们可以说,固件是硬件驻留在硬件中的一部分,通常是闪存。但是,开发固件(编程语言,编译器等)的工具与开发软件的工具非常相似。唯一的区别是,固件与硬件紧密耦合。

固件通常是一个永久的软件,它位于硬件的ROM上,不打算修改。最好的例子是我们个人计算机中的BIOS。

BIOS或基本输入 /输出系统通常是我们在计算机上供电时运行的第一件软件。BIOS的工作是检查硬件错误,并初始化启动过程的其余部分。

如果BIOS从其位置损坏或完全擦除(通常是非易失性的内存),则您根本无法打开计算机。其他固件也可以这样说。如果由于任何原因而丢失了设备的固件(硬盘驱动器,键盘等),则硬件将失去其功能,甚至可能必须更换。

固件与软件

以下表说明了固件与软件的简单比较。

固件 软件
这是一小部分软件,可以直接控制硬件。 它是一个可以独立的程序(一组指令)(例如在OS上)或专门应用程序(在OS上运行)。它无法直接控制硬件。
固件是低级软件,位于硬件和操作系统之间。 软件(应用程序软件)位于OS之上,与硬件没有直接交互。
通常打算不修改。 可以根据用户的喜好修改 /自定义。
固件通常是硬件,并且是硬件的。 应用软件通常是特定于操作系统的。
它的尺寸很小,通常仅编程一次。 根据应用程序的类型,软件的大小各不相同,您可以安装,并根据需要卸载多次。
固件存储在硬件的闪存存储中。 软件存储在计算机的辅助存储设备上。
固件的典型示例是BIOS。 软件的示例包括MS Office,Photo Shop,VLC媒体播放器。

固件与嵌入式系统中的软件

在嵌入式系统行业中,术语固件和软件通常可以互换使用。您甚至可以看到工作清单说“嵌入式固件工程师”或者“嵌入式软件工程师”具有相同 /相似的职位描述。这是因为嵌入式系统的应用侧与系统侧一起开发。

在使用Barebone Design(无操作系统)时,您将拥有的只是一些微控制器Vender特定文件(CPU支持标题和驱动程序)和几个第三方驱动程序(用于显示,TCP/IP等)。这些文件处理软件的硬件端。

使用标题和驱动器,我们编写了应用程序软件,最后将所有文件汇编为单个二进制文件。

如果您使用的是OS(例如VXWorks或Freertos),那么RTOS会照顾上下文切换和内存管理,但是即使如此,您仍必须在MicroController特定驱动程序,RTOS文件和第三次的帮助下编写应用程序软件党司机。

结果,术语固件和软件通常在嵌入式系统的背景下互换使用。

结论

简单地介绍了固件和软件的概念。您了解了什么是软件,什么是固件,固件与软件的比较,在嵌入式系统的背景下的固件和软件的定义。

如果您是固件工程师或软件工程师,请在下面评论您对固件和软件的定义,以便学生和年轻工程师可以学习一些新知识。

发表评论

您的电子邮件地址不会被公开。必需的地方已做标记*

电子豪华粉丝
<\/i>","library":""}}" data-widget_type="nav-menu.default">
Baidu
map