乐趣区

关于java:图解固件驱动软件的区别

大家好,我是良许。

不论咱们应用什么操作系统,无论是 Windows、macOS 还是 Linux,外面都装置了许多软件、驱动程序和固件。然而,这三者概念有区别呢?

我在朋友圈做了个小考察,发现竟然很多人不分明他们的关系,因而写下此文来给大家做个简略的科普。

文字描述太形象了,咱们间接来看漫画吧。

好了,看完漫画,咱们再来看正规的解释是怎么的。

简略来讲,固件、驱动程序和软件之间的基本区别在于它们的设计目标。

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

1. 固件

固件(Firmware)就是写入 ROM(只读存储器)中的程序,固件负责着一个零碎最根底最底层工作,间接管制硬件,比方计算机上电后第一个启动的程序 BIOS,它能够与硬件交互,并查看它是否有任何谬误。

BIOS 调用另一个称为疏导加载程序的程序,该程序执行唤醒在硬盘驱动器内休眠的操作系统并将其放入随机存取存储器 (RAM) 的工作。

咱们能够在许多设施上看到固件,包含计算机、手机、遥控器、游戏机、智能手表、USB 驱动器和各种嵌入式零碎。即便是电视遥控器也有一个预装的固件,能够实现你按下按钮的时候电视换台操作。

2. 驱动

驱动(Drive):驱动程序即增加到操作系统中的一小块代码,其中蕴含无关硬件设施的信息。当计算机程序申请与某个硬件设施交互时,设施驱动程序充当硬件设施与应用它的程序之间指令的转换器。

操作系统并不反对机器上的所有硬件,所以一般来讲硬件厂商都要为本人的硬件编写驱动程序。

每个驱动程序都旨在为特定或一组设施工作。在计算机上,驱动程序应用各种总线接口来分割设施。此外,驱动程序个别不间接与用户交互,所以很多用户齐全不晓得它们的存在。

驱动程序的开发须要十分小心,因为它间接与硬件打交道,同时也与操作系统打交道。如果设施驱动程序呈现问题,可能会导致系统解体,这就是为什么须要业余人员或团队来为设施编写驱动程序的起因。

然而为什么不把 Firmware 做的很完满,做的不须要驱动反对呢?因为有不同的操作系统,而这些操作系统对于操作硬件的形式齐全不同。所以不同操作系统的驱动是不能兼容的,起因就是驱动是为操作系统服务的。

3. 软件

与硬件不同,软件是运行在电脑里,看不见摸不着。

操作系统也是一个软件,并且为装置在操作系统上的其他软件提供了工作空间。后面提到的设施驱动程序其实也是一种软件,不过它有个更细分的品种,称为系统软件。

如果用户编写了一个软件,想要操作硬件(比方光驱、U 盘等),他必须通过操作系统提供的接口来实现,而无奈间接与硬件交互。

值得注意的一点是,软件是一个狭义的术语。咱们在日常应用中所说的「软件」个别是指应用软件,比方:微信,QQ,浏览器等等。

还有什么不明确的,欢送评论区交换哦~

原创不易,欢送点赞、转发朋友圈,感激!


最初,最近很多小伙伴找我要 Linux 学习路线图 ,于是我依据本人的教训,利用业余时间熬夜肝了一个月,整顿了一份电子书。无论你是面试还是自我晋升,置信都会对你有帮忙!

收费送给大家,只求大家金指给我点个赞!

电子书 | Linux 开发学习路线图

也心愿有小伙伴能退出我,把这份电子书做得更完满!

有播种?心愿老铁们来个三连击,给更多的人看到这篇文章

举荐浏览:

  • 干货 | 程序员进阶架构师必备资源免费送
  • 书单 | 程序员必读经典书单(高清 PDF 版)

欢送关注我的博客:良许 Linux 教程网,满满都是干货!

退出移动版