-->

是什么固件和操作系统之间的差异?(What is the difference between th

2019-08-18 05:30发布

在嵌入式设备如打印机,交换机,我很困惑固件和操作系统之间的区别是什么。 是嵌入式设备的操作系统与PC类似(Linux和Windows)?

例如,我有有一个嵌入式Web服务器,让我能够远程管理打印机的打印机。 当我打开制造商网站,我发现,OS是:OS 9.86。 什么样的操作系统,这是? 请参阅: 移相器8560支持与驱动程序

Answer 1:

固件是指位于在非易失性存储器中的小块代码。 在那些在办公室中常见的这些天硬件外围设备(如打印机,VoIP电话等),固件通常加载(如操作系统代码签名验证),并负责管理(例如,闪烁在恢复模式OS)操作系统即安装在机器上。 这是操作系统的工作开展实际的任务(如打印)。

硬件供应商通常使用Linux的衍生物(例如,思科IOS),或一个实时操作系统(例如VxWorks的 )。



Answer 2:

正如其他人所指出的那样,固件是在设备的非易失性存储器。 它包含的指令的设备,因为它从关机或复位启动执行。 这可能是该软件的设备上的整体,或者它可以包含指令跳转到指令上的一些其他部件,例如,当PC的BIOS使所述处理器读取的硬盘驱动器上的第一个扇区(或软盘或CD -ROM)来发现下一个运行的代码。

操作系统是应用程序访问设备的功能,提供服务的设备上运行的代码。 例如,它可在处理器的时间分片,文件系统来访问,输入和输出,等等。

嵌入式设备不需要操作系统提供给应用程序,但可能是一个合适的模型为各生产厂家在编写软件使用。 可以想象的是,打印机可以将所有其与一些中断处理程序一个正在运行的程序固件,无需到web服务器从操作系统中分离出来。 我不知道该特定模式。

问题的关键是,一个操作系统可以在固件中存在,并且固件可以在没有OS存在。 他们是独立的概念。



Answer 3:

简单的说:

THE

包含利用硬件进行文件管理内核,一个图形用户界面(GUI)或以最小的一个命令行接口(CLI)

核心

操作系统软件,操作系统和硬件之间的守门人和翻译的一部分。

换句话说(维基百科),内核的主要功能是调节访问计算机的资源:

  • -中央处理器
  • -内存
  • -I / O
  • - 系统调用

固件

  • 根据定义,固件是存储在ROM中的任何指令。
  • 固件是软件和硬件之间的事情的话一出戏,它引用了频谱“易于修改的”
  • 固件是独立于操作系统,模糊的线条是当整个OS存储在ROM中的异常的,因此通过定义考虑固件
  • 固件通常包含加载操作系统内核的引导程序
  • 固件是最低限度指令来协调多个通用硬件组件
  • 如果你完全自定义/打印与VLSI你的逻辑/指令到你自己的电路(我想谈论固件时意识到这一点是很重要的),不需要固件
  • 固件是在消费类产品像一个RC车,操作系统不是
  • 固件是在所有/大多数电子产品,操作系统不是
  • 病毒在固件可能永远不会被检测到或移除。 操作系统上的病毒可以用新鲜的清除安装

当你打开电脑:

固件→内核→全部OS

基本上



Answer 4:

固件:

/启动任何设备(计算机,打印机,扫描仪,数码相机等)来启动运行时,它应具有的初始程序,当它被加电运行。 这个最初的计划被称为固件 。 它也被称为引导程序 ,也称为BIOS。 它安装在ROM(非易失性存储器,其内容是永久性的)。

固件所在的操作系统内核(请记住,内核是操作系统的一部分)负载和成在启动时的主存储器(RAM)。 固件通常用汇编语言或高级语言如C / C ++。

操作系统:

操作系统是管理计算机的硬件,并建立应用程序运行环境的完整软件栈。 换句话说,操作系统执行设备的指定任务。 内核是在这个软件堆栈的底部,只要你的设备启动并运行保持运行。 当我说的操作系统管理硬件,它实际上是管理硬件资源(CPU,内存,输入和输出)的任何请求内核。



Answer 5:

相吻合断什么其他已经公布:

固件不仅仅是引导或BIOS的更多,尽管这是在大多数消费类设备共同使用的术语。

在更复杂的应用中,现场可编程门阵列(FPGA),复杂可编程逻辑器件(CPLD),以及其他类似的技术,用于创建配置逻辑电路,其可以去远远超出由微控制器或较大的处理器上运行的线的可执行代码提供一种机制。 这通常是应用特定集成电路(ASIC),芯片被放下后,其不能被改变的替代方案。

在这些应用中的固件确实不是简单地加载代码得到的东西开始更多。 应用程序可以被设计为处理多个并行操作,包括但决不限于解决路由,信号处理,数学协处理,定时器,电源和复位测序,甚至LED和中继控制装置。

用于创建定制设备的可能性是无穷的,并在FPGA和CPLD的情况下,可以被重新编程。

上述类型的固件(通常)在VHDL,其描述了同步或异步并行逻辑来表示所希望的功能编程。 的设计通常布置以经由任一个存储器映射地址范围或通过某些其它协议(例如,PCI / PCI-X / PCIe)的访问的软件。 由固件设计创建的寄存器表示为期望的特征的一组控制和状态。

操作系统上另一方面,提供软件接口以内的一些处理环境中发挥作用(即,提供上下文和“规则”,以利用处理器和任何软件可访问的硬件或固件)。 操作系统既可以放下了固件处理规则或(更常见),它是从任一ROM,闪存,或其他介质装入不仅仅是软件。

OS的机器无关的部件和硬件之间的接口以多种形式出现: 板支持包 (BSP),驱动程序等的BSP通常在哪里处理器和特定板的外围设备地址被设置,除其他事项外是。 许多实时操作系统(RTOS)供应商提供一些基本的BSP设置和/或工具把事情开始。

有些设计师将保持BSP设计简单到只需要得到的东西去,并写了许多接口的独立的RTOS BSP协议达成的硬件或固件; 这是自定义固件更为普遍。

是的,嵌入式设备的操作系统是“相似”的电脑。 的区别是在频谱,但他们都从根本上工作相同,并为应用程序在某些外设的操作执行上下文。 至于实际上是在打印机什么类型的操作系统? 有没有真正知道没有更多的信息的方式(他们只发布的版本是9.86 ...可能是定制的,可以是数字的RTOS或GPOSes中的任何一个); 还不清楚是否与固件列出的OS实际上是在下载或只与兼容性的符号。

我希望帮助!



Answer 6:

固件是占据整个硬件资源的应用程序。 在换句话说,不存在操作系统能够动态地加载在系统上的应用程序。 该应用程序是操作系统本身。 应用程序操纵硬件的所有资源。 因此,应用程序是非常与硬件集成的,它几乎无法进行交硬件。 这就是为什么应用程序称为固件:软件是走坚至指定的硬件。

例如,在你的空调的固件控制的指定的压缩机和指定的控制面板。 因此,固件将是对其他空调型号不可行的。(当然,在固件上的其它设备不能工作)的固件是非常依赖于硬件的。

最初,为“固件在非易失性存储设备,诸如ROM,EPROM或闪速存储器保持”固件被定义。 但定义是过时的:您的整个计算机将固件内唯一的,但没有任何的软件,如果你的计算机上使用固态硬盘(SSD)。

从我的角度来看,没有基于嵌入式Linux的固件,或者在您使用SSD,你应该调用所有软件的固件。



文章来源: What is the difference between the firmware and the operating system?