. . .

Technology has been developing for the entirety of the history of the human race. Only recently have we come to call gadgets and electronic devices technology. In today’s terms, a water mill is not something ground-breaking but at the time, it was the best possible answer, not to mention steam engines.

Today, technology often has two parts to the equation, hardware and software. But, what is software, actually? Is it a one single thing or are there multiple instances of software? It is a complex topic so let us break it down into something more digestive.

What is Software?

Software can be defined as a collection of instructions that tell a computer what to do. It is contrasted with hardware, which are the actual parts that do the work, such as processors, memory, graphics cards, moving objects such as robotic arms, and many more things.

Software can be many things, from operating systems to machine languages, to applications such as web browsers. It is not a simple topic, but it can be categorized, making it easier to understand.

Types of Software

Software can be categorized in more than one way but typically, we should start with the purpose of the software, its intended goal. This is commonly referred to as purpose, use or domain.

System software is used to moderate and manage hardware behavior. System software makes essential operation possible and allows users to have other software working on top of it, so system software is in a sense, a platform. System software has two subgroups.

Operating systems are used as one of those platforms, and are a collection of software which manages the hardware and provides an intermediary layer between the hardware and other software, running on top of it. Operating systems are typically shipped with more software, which can help the user do basic tasks.

Driver software is used to directly translate instructions to the hardware. Since there is a lot of hardware, there can be multiple variations of driver software, each responsible for communicating with and instructing a specific piece of hardware, such as a processor, printer, RGB lights, or anything else.

Utilities are there to help the user control the system and modify it to their own needs and requirements.

Application software is a special group of software that is meant to run on top of the operating system. It can be anything from a web browser to a calculator. 

All of this would not be possible without computer programming tools. In this category, we find compilers and linkers. A compiler translates one programming language into another, that the computer can understand. A linker links multiple executables and objects into libraries, so that the end result is an application which can actually be loaded into RAM, and therefore be used by the computer and user.

Malicious Software

There is also another kind of software, called malicious software. These can come in any shape or form, and can be trojan viruses, which infiltrate the computer and send information to a third-party, to more problematic viruses, such as ransomware, which encrypt data and require one to pay for the decryption key.

Malicious software can only be obtained through untrusted sources so one should always pick their sites carefully, as well as the content they download.

Software is a complex and large topic and hopefully, it has been simplified enough to be understood by everyone.