When hardware started to develop more and be sold to individuals, software became more relevant. Home users could not program their computers themselves, as typically they would not take the time to learn programming languages, and this led to the development of easy-to-use software for home computers like systems software and application software.
System software
System software manages the computer hardware behaviour, ensuring that all parts of a computer work together to carry out the functions required to make devices and software run smoothly. System software is also designed to provide a platform for running application software, and it includes operating systems, device drivers and utilities.
Operating systems
Any device that has a computer has an operating system (OS). Computers and other smart devices that contain computers, like smartphones, are designed and built with a specific operating system (OS) in mind. This OS will determine the compatibility of all software required to make the device function.
There are many types of operating systems (OS) for desktop and mobile devices, and some OSs are more popular than others. The most popular OS for personal computers is Microsoft Windows, which runs on most manufacturer's PCs, with Apple's macOS holding a much smaller share of the market as it only runs on Apple computers. In the mobile sector, the majority of smartphones run on the Android OS, which is built by Google and customised by individual phone manufacturers like Samsung. Apple's iOS is also very popular, but again, only runs on Apple's iPhones.
Each OS has its advantages and disadvantages and its recommended use. That is why some operating systems work better for desktop devices than for mobile devices and vice versa.
Specialised OS also exist for various specific computing needs. In the supercomputing and servers sector, Linux distributions are dominant. For embedded and real-time systems, other specialised classes of OS exist, such as CarOS for the automotive industry.
Device drivers
Hardware devices and software are often created by different companies, and they speak different languages. A device driver is a "translator” that makes a bridge between the hardware and the software so they can understand each other. It controls or operates a particular type of hardware device that is attached to a computer or smart device.
That translator is a software interface to hardware devices, enabling operating systems and other computer programs to access hardware functions without needing to know precise details about the hardware being used.
Without drivers, the computer would not be able to send and receive data correctly to hardware devices. All pieces of hardware require a driver, from your internal computer components such as your graphics card to your external peripherals, like a printer. The good news is, most computers, smartphones, and tablets come with required and generic drivers pre-installed, and many operating systems now automatically detect when a new device, such as an external hard drive, has been plugged in and will install the required device driver.
Utility programs
This is a kind of system software designed to assist users in the maintenance and care of their computers and smart devices. They help us to analyse, configure, optimise and maintain the operating system, device hardware and application software.
Some utility programs are bundled in with operating system software these days. Others you buy or source in some other way.
Most utilities are highly specialised and designed to perform only a single task or a small range of tasks. However, there are also some utility suites that combine several features in one piece of software.
Although utilities are part of the system software, they are not part of the OS per se. They are loaded into memory as needed, either by the user or the OS.
What are the key uses of utility software?
Maintain and increase the efficiency of a computer system.
Aid in keeping the computer free from unwanted software threats such as viruses or spyware.
Allow the user to customise their desktop and user interface.
Manage computer memory and enhances performance.
Take care of your computer by having a good antivirus program and running it regularly, along with the disk cleanup and disk defragmenter. A disk cleanup removes selected unnecessary files that are taking up space on your hard drive. This can include recycle bin contents, temporary internet files and memory dump files. A disk defragmenter recognises the files on your hard drive and helps them run more efficiently by consolidating “fragmented” files.
Application software
In contrast to system software, application software allows people to do things on computers, smart phones, and tablets like play games, watch videos, or write text.
For most people, applications are the actual reason for using a computer, and there are thousands of them. Applications are the programs that you use to read and write letters, term papers and books, crunch numbers, listen to music, view web pages through the internet and movies from DVDs, create pictures, play games, and do everything else a computer does. On smartphones and tablets, even basic features like phone calls and photos run on apps programmed to perform those tasks.
Applications relate to the operating system and are created for a specific OS. That is why some applications that have been created for Apple computers may not work on devices with another operating system installed. Likewise, apps running on iOS, the iPhone operating system, will not work on phones and tablets running on Android, a Google-developed mobile OS used by many smartphone manufacturers today.
Devices such as laptops and smartphones come with many standard applications pre-installed so that you can use your device out of the box. If you require additional apps or software programmes for specific tasks, such as video editing or payroll management, it is much easier to utilise these extra tools today than in the past. Today, applications that are not pre-installed on your device can be downloaded from the internet or mobile app store, or accessed online through your internet browser.
We have come a long way from the 1990s, when software programmes like Microsoft Office were downloaded to your computer's internal storage from a physical CD. Now, Microsoft 365, encompassing the entire suite of office applications, is hosted online and you can choose to download the program to your device or access it through an internet browser. Many other software application programs utilise this same model, enabling you to login from any computer, smartphone, or tablet, and pick up right where you left off. These new business models of subscribing to a software application service, known as Software as a Service, or SaaS, are made possible by the evolution of software meeting the evolution of internet connectivity, which we will explore more in the next chapter.
When buying application software, you need to make sure that it is compatible with the OS installed in your device. If the application developer does not have a version compatible with your device's OS, check to see if there is a version of the program available to access via an internet browser.
Software may also not run well because it is not compatible with your physical architecture (type of CPU); or if the device does not have enough resources (storage capacity, speed). System requirements for software can be found on the website of the software provider.
You do not need to buy software all the time. There are alternatives like freeware, shareware and open source. Start by looking for what you would like the software to do, then compare prices, check the compatibility with your operating system, and enjoy testing different alternatives.
Be careful when you test free software as there are software "viruses” that can damage your computer or data. Protect your device with an antivirus.
Sign up to solve exercises
After completing chapter 3, you should be able to:
Explain what software is and why we need it to communicate with our devices.
Understand computer languages and how we can use them to create software.
Explain software design and the skills needed for it.
Understand how the applications we use every day for different tasks work.