With more and more connected devices around us, the chance that you’ve been hit by an update notification is high. But what do these software updates do? How do they actually work, and why are they important?
Hardware and Software
Modern electronic devices require two main parts to function: the hardware and the software. The hardware usually refers to physical electronic pieces inside a device (usually a collection of microchips, logic gates and specialised processing chips, such as those to process radio waves for communication, or process audio for sound), while the software is the set of instructions that tells the device what to do. Hardware without software doesn’t do anything (a computer without an Operating System such as Windows or MacOS isn’t capable of running anything) and software without hardware have nothing to send instructions to (a copy of windows or MacOS is useless without a computer to run it on).
Motherboards, graphic cards, monitors, RAM stick, and hard disk drives are all examples of hardware contained in a computer that are useless without software. On the other hand Microsoft Windows (or any other operating system like macOS or Linux), internet browsers (like Mozilla Firefox or Safari), applications like Adobe Photoshop, Instagram, Spotify, and drivers for a soundcard or a graphic card are all examples of software.
Types of Software
Due to the complexities of modern electronic devices, an abstraction layer is often created between the physical chips and the software (usually some form of operating system, such as Android or Windows). This abstraction layer is referred to as firmware. Firmware allows the operating system to make generic calls to the hardware (for example, open microphone, to allow for an audio recording or phone call), which the firmware interprets and then sends the correct instructions to the hardware, the physical chips, to turn on the microphone.
Firmware exists because there is hundreds of different hardware modules (such as bluetooth, wifi, cameras etc.) produced by different manufacturers that all behave slightly differently. It would be very challenging for an operating system to be able to communicate directly with such a disperate array of hardware, so instead they communicate with the firmware which exposes a known method or action that the operating system understands.
In other words, the firmware acts as the translator between hardware and software (most of the times, an operating system). It receives the software instructions and further passes them on to the hardware components.
An operating system is a core programme that manages the interactions between other programmes and the hardware. It is usually comprised of a core (also known as kernel) which enumerates the available hardware, either directly for simple devices or via firmware for more complex devices. tprovides a scheduler which tries to balance the contention of multiple tasks (applications) being run simultaneously around the ability of the processor (the brain of the device) usually only being able to run one task at a time. For example, the Operating System will be in charge of making sure that launching an app such as the web browser won’t interupt sound being played by another application. Modern operating systems like Windows, Android, iOS, or Linux also usually bundle a number of ancillary services, such as the user interface and basic utilities for the device. This includes, for example, a sound managing interface to set the volume of applications playing on the device or a network interface to easily connect to WiFi networks.