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

大家好,我是良许。

不管我们使用什么操作系统,无论是 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)

大家都在看

  • Docker基础知识

    Docker 是什么 Docker 经常被提起的特点: Docker 技术的基础: Docker 组件: Docker 安装 Docker 常见命令 容器相关操作 获取容器相关信息…

    Linux 2023年6月7日
    0108
  • shell order

    1,与 “-a” : a是and if [ 条件1 -a 条件2 ] ;then shell order shell order … fi 2,…

    Linux 2023年5月28日
    0105
  • 机器学习学习笔记之二:决策树

    使用决策树算法的基本思路 划分数据集,使被划分的特征作为决策树的节点。通常采用二叉树(也可以采用非二叉树)作为最终形成的决策树形式,即将数据集按照某个特征进行划分成两个子数据集,并…

    Linux 2023年6月14日
    075
  • 【演讲】2020年马云谈疫情过后的新风口

    2020年马云谈疫情过后的新风口 【关键词】:疫情、新风口、数字化趋势、传统行业转型、教育 一、演讲背景 背景 2020线上智博会,马云8分钟演讲30次提到数字化 原视频 2020…

    Linux 2023年6月13日
    0113
  • Linux下info page指令

    在所有的Unix Like系统当中,都可以利用man 来查询指令或者是相关文件的用法;但是,在Linux里面则又额外提供了一种在线求助的方法,那就是利用info这个好用的家伙啦!基…

    Linux 2023年6月8日
    090
  • Tensorflow-逻辑斯蒂回归

    1.交叉熵 逻辑斯蒂回归这个模型采用的是交叉熵,通俗点理解交叉熵 推荐一篇文章讲的很清楚: 因此,交叉熵越低,这个策略就越好,最低的交叉熵也就是使用了真实分布所计算出来的信息熵,因…

    Linux 2023年6月6日
    083
  • Spring Boot 项目部署到 Linux服务器

    1.首先将SpringBoot项目打包成JAR包,然后通过FTP工具上传到Linux,执行如下命令: java -jar xxx.jar & 该命令执行后,启动jar,一旦…

    Linux 2023年6月14日
    073
  • RPA微信机器人汇总

    bash;gutter:true; 一、微信广告PDF对账单数据提取机器人 【机器人详情】 微信广告对账结算单为PDF文件,从每一期对账单文件中提取结算数据,统计成excel表格,…

    Linux 2023年6月7日
    0129
  • 《Redis开发与运维》——(五)Redis持久化(脑图)

    posted @2021-01-09 15:04 雪山上的蒲公英 阅读(122 ) 评论() 编辑 / 返回顶部代码 / Original: https://www.cnblogs…

    Linux 2023年5月28日
    093
  • POJ1475(Pushing Boxes)–bbffss

    假设只有一个箱子。游戏在一个R行C列的由单位格子组成的区域中进行,每一步, 你可以移动到相邻的四个格子中的一个,前提是那个格子是空的;或者,如果你在箱子旁边,你也可以推动箱子前进一…

    Linux 2023年6月7日
    0108
  • LINUX系统虚拟机环境的安装

    安装VM和Centos Step 1 去BIOS里修改设置开启虚拟化设备支持 设置BIOS: 1.开机按F2 、F12 、DEL 、ESC 等进入BIOS ,一般来说可以看屏幕的左…

    Linux 2023年6月7日
    084
  • [Python]Tkinter 做简单的窗口视窗GUI(参考莫烦笔记)

    Label & Button 标签与按钮 Entry & Text 输入与文本框 ListBox 列表部件 Radiobutton 选择按钮 Scale 尺度 Ch…

    Linux 2023年6月13日
    0130
  • 二进制安装docker

    下载二进制包 压到 /usr/local/bin ,我用的版本比较新 https://download.docker.com/linux/static/stable/x86_64/…

    Linux 2023年6月6日
    0100
  • 应用配置管理,基础原理分析

    工程可以有点小乱,但配置不能含糊; 一、配置架构 在微服务的代码工程中,配置管理是一项复杂的事情,即需要做好各个环境的配置隔离措施,还需要确保生产环境的配置安全;如果划分的微服务足…

    Linux 2023年6月14日
    0113
  • jdk 安装(图形界面版)

    在这里为大家提供jdk8的Linux版安装包,下载链接: 提前将jdk安装包放入U盘中,插入U盘,VMware会自动识别,选择将U盘接入虚拟机 打开终端 为避免权限不足,开始之前确…

    Linux 2023年6月8日
    0112
  • redis 基于SpringBoot Reids 的工具类

    redis 基于SpringBoot Reids 的工具类 package com.mhy.springredis.utils; import org.springframewor…

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