图解固件、驱动、软件的区别

大家好,我是良许。

不管我们使用什么操作系统,无论是 Windows、macOS 还是 Linux ,里面都安装了许多软件、驱动程序和固件。但是,这三者概念有区别呢?

我在朋友圈做了个小调查,发现很多人都不知道他们的关系,所以我写了这篇文章,给大家一个简单的科普。

[En]

I did a little survey in moments and found that many people didn’t know their relationship, so I wrote this article to give you a simple popular science.

图解固件、驱动、软件的区别

文字描述太抽象了。让我们直接去看漫画吧。

[En]

The text description is too abstract. Let’s go straight to the comics.

图解固件、驱动、软件的区别

图解固件、驱动、软件的区别

图解固件、驱动、软件的区别

图解固件、驱动、软件的区别

图解固件、驱动、软件的区别

好了,看完漫画,我们来看看正式的讲解。

[En]

All right, after reading the cartoon, let’s take a look at the formal explanation.

简单地说,固件、驱动程序和软件的根本区别在于它们的设计目的。

[En]

To put it simply, the fundamental difference between firmware, drivers, and software lies in their design purpose.

  • 固件是一种赋予设备硬件生命的程序
    [En]

    firmware is a program that gives life to the hardware of a device*

  • 驱动程序是操作系统和硬件组件之间的中介
    [En]

    the driver is the intermediary between the operating system and hardware components*

  • 软件可以间接操作硬件

1. 固件

固件(Firmware)就是写入 ROM (只读存储器)中的程序,固件担任着一个系统最基础最底层工作,直接控制硬件,比如计算机上电后第一个启动的程序 BIOS ,它可以与硬件交互,并检查它是否有任何错误。

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

我们可以在许多设备上看到固件,包括计算机、手机、遥控器、游戏机、智能手表、USB 驱动器和各种嵌入式系统。即使是电视遥控器也有一个预装的固件,可以实现你按下按钮的时候电视换台操作。

2. 驱动

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

操作系统并不支持机器上的所有硬件,所以一般来说,硬件制造商必须为自己的硬件编写驱动程序。

[En]

The operating system does not support all the hardware on the machine, so generally speaking, hardware manufacturers have to write drivers for their own hardware.

每个驱动程序都设计用于特定的设备或设备组。在计算机上,驱动程序使用各种总线接口来联系设备。此外,司机一般不与用户直接互动,因此许多用户完全不知道他们的存在。

[En]

Each driver is designed to work for a specific device or group of devices. On a computer, the driver uses various bus interfaces to contact the device. In addition, drivers generally do not interact directly with users, so many users are completely unaware of their existence.

驱动程序开发需要非常小心,因为它直接与硬件和操作系统打交道。如果设备驱动程序有问题,可能会导致系统崩溃,这就是为什么需要专业人员或团队为设备编写驱动程序。

[En]

Driver development needs to be very careful because it deals directly with the hardware as well as with the operating system. If there is a problem with the device driver, it can cause the system to crash, which is why professionals or teams are needed to write drivers for the device.

但是为什么不把 Firmware 做的很完美,做的不需要驱动支持呢?因为有不同的操作系统,而这些操作系统对于操作硬件的方式完全不同。所以不同操作系统的驱动是不能兼容的,原因就是驱动是为操作系统服务的。

3. 软件

与硬件不同,软件运行在计算机上,看不见,摸不着。

[En]

Unlike hardware, software runs on a computer, invisible and untouchable.

操作系统也是一种软件,并为安装在操作系统上的其他软件提供工作空间。前面提到的设备驱动程序实际上是一种软件,但它有一个更细分的类别,称为系统软件。

[En]

The operating system is also a software and provides a workspace for other software installed on the operating system. The device driver mentioned earlier is actually a kind of software, but it has a more subdivided category, called system software.

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

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

还有什么你不明白的吗?欢迎在评论区交流。

[En]

Is there anything else you don’t understand? welcome to communicate in the comment area.

原创不易,欢迎点赞,转发朋友圈,谢谢!

[En]

Original is not easy, welcome to like, repost moments, thank you!

Original: https://www.cnblogs.com/yychuyu/p/15590252.html
Author: 良许Linux
Title: 图解固件、驱动、软件的区别

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/524333/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 红警快捷键图示

    最近,实验室的同学们 周末偶尔会玩一玩红警,回忆一下童年,挺愉快的。下面记录一下快捷键,方便操作; 看到B站上红警08,还有对应的快捷键教学视频,也可以直接学习一下; https:…

    Linux 2023年6月14日
    0129
  • 国产银河麒麟Kylin V10操作系统-如何把常用文件夹加入左侧侧边栏(类似windows文件资源管理器中的收藏夹)

    国产银河麒麟Kylin V10操作系统-如何把常用文件夹加入左侧侧边栏(类似windows文件资源管理器中的收藏夹) 第一步:确保侧边栏正确显示。 打开”我的电脑&#8…

    Linux 2023年6月14日
    0157
  • DDoS攻击–Syn_Flood攻击防护详解(TCP)

    https://blog.csdn.net/qq_34777600/article/details/81946514 Original: https://www.cnblogs.c…

    Linux 2023年6月7日
    088
  • DNS 查询原理详解

    你可能会问,难道 DNS 服务器(比如 1.1.1.1)保存了世界上所有域名(包括二级域名、三级域名)的 IP 地址? 当然不是。DNS 是一个分布式系统,1.1.1.1 只是用户…

    Linux 2023年6月8日
    065
  • Java多线程volatile、ThreadLocal、线程池、atomic

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月11日
    094
  • 高通方案的Android设备几种开机模式的进入与退出

    高通方案的Android设备主要有以下几种开机模式,Android、EDL、Fastboot、Recovery和FFBM,其进入及退出的方式如下表。 adb reboot boot…

    Linux 2023年6月7日
    0139
  • JDK8-Lambda 表达式

    Lambda 表达式 Lambda 表达式是 JDK8 的一个新特性,可以取代大部分的匿名内部类,写出更优雅的 Java 代码,尤其在集合的遍历和其他集合操作中,可以极大地优化代码…

    Linux 2023年6月13日
    079
  • 资源笔记

    Spring Cloud Stream中文指导文档 Original: https://www.cnblogs.com/iforeverhz/p/16274259.htmlAuth…

    Linux 2023年6月7日
    0116
  • Dockerfile 使用 SSH docker build

    如果在书写 Dockerfile 时,有些命令需要使用到 SSH 连接,比如从私有仓库下载文件等,那么我们应该怎么做呢? Dockerfile 文件配置 为了使得 Dockerfi…

    Linux 2023年6月7日
    093
  • redis 开机启动安装

    先make把环境装上,然后可以选择用utils文件夹下的./install_server.sh命令进行开机启动安装 1、编写redis.conf配置文件 1)、 设置密码,打开re…

    Linux 2023年5月28日
    092
  • 【Linux】在Linux下文件io使用(二)

    在linux下,一切皆文件。当文件被打开时,会返回文件描述符用于操作该文件,从shell中运行一个进程,默认会有3个文件描述符存在(0、1、2); 0表示标准输入,1表示标准输出,…

    Linux 2023年6月13日
    0116
  • Linux 配置Git

    前言:请各大网友尊重本人原创知识分享,谨记本人博客: 南国以南i 一、用git –version命令检查是否已经安装 二、下载git源码并解压 wget https:/…

    Linux 2023年6月14日
    093
  • Grafana+Prometheus 搭建 JuiceFS 可视化监控系统

    作为承载海量数据存储的分布式文件系统,用户通常需要直观地了解整个系统的容量、文件数量、CPU 负载、磁盘 IO、缓存等指标的变化。 JuiceFS 没有重复造轮子,而是通过 Pro…

    Linux 2023年6月14日
    090
  • 基于 OSPF 路由的邻居邻接关系发现实践

    1、实验目的 理解 OSPF 邻居关系和 OSPF 邻接关系的含义及差别 观察 OSPF 邻居邻接关系的建立过程 观察 OSPF 链路状态数据库的同步过程 2、实验原理 OSPF …

    Linux 2023年6月8日
    0130
  • PHP array_count_values()

    array_count_values array_count_values() 函数用于统计数组中所有值出现的次数。 本函数返回一个数组,其元素的键名是原数组的值,键值是该值在原数…

    Linux 2023年6月7日
    096
  • SpringBoot-druid

    SpringBoot-druid 9.1 druid简介 Java程序很大一部分要操作数据库,为了提高性能操作数据库,又不得不使用数据库连接池。 Druid 是阿里巴巴开源平台上一…

    Linux 2023年6月14日
    0107
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球