Figure out the difference between firmware, driver and software


Hello, I’m Liang Xu.

No matter what operating system we use, whether windows, MacOS or Linux, there are many software, drivers and firmware installed. But what are the differences between the three concepts?

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

Figure out the difference between firmware, driver and software

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

Figure out the difference between firmware, driver and software

Figure out the difference between firmware, driver and software

Figure out the difference between firmware, driver and software

Figure out the difference between firmware, driver and software

Figure out the difference between firmware, driver and software

Well, after reading the cartoon, let’s see what the formal explanation is.

In short, the fundamental difference between firmware, drivers, and software is their design purpose.

  • Firmware is a program that gives life to device hardware
  • The driver is the intermediary between the operating system and hardware components
  • Software can operate hardware indirectly

1. Firmware

Firmware is a program written into ROM (read only memory). Firmware acts as the most basic and bottom work of a system and directly controls the hardware. For example, the program BIOS that starts first after the computer is powered on can interact with the hardware and check whether there are any errors.

The BIOS calls another program called the boot loader, which performs the work of waking up the operating system sleeping in the hard drive and putting it into random access memory (RAM).

We can see firmware on many devices, including computers, mobile phones, remote controls, game consoles, smart watches, USB drives and various embedded systems. Even the TV remote control has a pre installed firmware, which can change the TV channel when you press the button.

2. Drive

Driver: a driver is a small piece of code added to the operating system that contains information about a hardware device. When a computer program requests to interact with a hardware device, the device driver acts as a converter of instructions between the hardware device and the program using it.

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

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.

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

But why not make firmware perfect and do it without driver support? Because there are different operating systems, and these operating systems operate the hardware in a completely different way. Therefore, drivers of different operating systems are incompatible because drivers serve the operating system.

3. Software

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

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

If a user writes a software and wants to operate the hardware (such as optical drive, USB flash disk, etc.), he must implement it through the interface provided by the operating system, but cannot interact directly with the hardware.

It is worth noting that software is a broad term. In our daily use, “software” generally refers to application software, such as wechat, QQ, browser, etc.

What else don’t understand? Welcome to the comment area~

It’s not easy to be original. Welcome to praise and forward to the circle of friends. Thank you!

Finally, recently, many friends came to me for helpLinux learning RoadmapSo I stayed up late in my spare time for a month and sorted out an e-book according to my own experience. Whether you are interviewing or self-improvement, I believe it will help you!

Figure out the difference between firmware, driver and software

Free to everyone, just ask everyone to give me a praise!

E-book | learning roadmap for Linux Development

I also hope some friends can join me and make this e-book more perfect!

Have you got anything? I hope the old fellow will take three strikes to show this article to more people.

Recommended reading:

Welcome to my blog:Liangxu Linux tutorial network, full of dry goods!