Computers have two fundamental elements to function: hardware and software. Computer hardware consists of the tangible parts we can touch. Software is an intangible element that cannot be touched and allows the system to function. For a computer to work, we need system software. Then we install other program software and application software.
A software is a set of tools or programs intended to perform one or more functions within the system. These programs, tools and utilities can be developed by users or by specialized companies.
Table of Contents
Concept
Software is the logical part of any computer system, enabling it to function . A computer can operate in machine code or binary code. The graphical interface interprets the instructions we give to the system and then displays the result visually.
Essentially, the software translates our instructions to the processor , graphics card, or whatever component it may be, so that it can perform the calculations and give us a specific result based on the given instructions. The software translates the data generated by the hardware and displays it on the screen in a way that is easily understandable.
Within software, we can find three main groups : system software, programming software, and application software. Additionally, we can also categorize each of these groups as free software or proprietary /licensed software.
System software
This is the first major group within software and is the most important, as it allows us to communicate with the hardware quickly and easily. The prime example is the operating system, which enables us to communicate with the computer's hardware . We also have device drivers, diagnostic tools, repair and optimization tools, servers, and utilities.

Operating System
A simple graphical interface allows us to communicate with the hardware, interact with it, and perform various tasks . The quintessential computer operating system is Microsoft Windows . As a free alternative, we have Linux/UNIX , and there's also Apple's macOS , the company's own operating system for its computers. Other operating systems include Google Android and Apple iOS for smartphones, and LG webOS for Smart TVs.
Device drivers
They are also known as drivers . A driver is a program that is installed after the operating system is installed and optimizes communication between specific hardware and the operating system . It allows the hardware to function optimally and efficiently.
Diagnostic tools
It allows monitoring and control of the hardware, displaying the hardware load, component temperature, transfer rate, and countless other parameters.
Correction and optimization tools
Tools that allow software to run more efficiently and consume fewer resources. These utilities can detect problematic software, delete registry entries, and perform other functions. Perhaps the best known and most widely used is CCleaner.
employee
An application capable of handling client requests and returning a logical response. This type of software can run on any computer, including specialized, autonomous machines known as servers. A widely used example of this type of software is VMware.
Utility
They are tools that allow maintenance tasks, support for the construction and execution of programs and tasks in general.
Programming software
We are more or less familiar with the most common groups used, but all these tools must be developed and subsequently optimized and improved by development experts. To develop these tools, programming software is needed ; these are programs that assist in the creation and development of applications using logical and programming knowledge.
The simplest and perhaps most familiar examples are compilers and text editors . Initially, a text editor is used to write the program, and then it is compiled to verify that there are no errors or inaccuracies that could cause problems. The text must be based on one of the existing programming languages. Currently, there are also Integrated Development Environments (IDEs ), which are various software packages that include programming tools based on programming languages.

Text editor
Programs that allow you to create and modify digital files that consist only of text and are commonly known as text files or 'plain text'. The best known is Windows Notepad.
compilers
It translates a program written in a programming language into a common language, combining different elements or fragments into a single unit. It is usually translated into machine language, although sometimes it is translated into intermediate code or text. These processes are known as compilation , which is simply translating a program into another language and thus detecting possible errors or problems in the original program.
Interprete
Software capable of analyzing and executing other programs . These differ from compilers and assemblers in that, while the latter translate the entire program from the programming language to machine code, interpreters only translate the necessary part, usually instruction by instruction, and do not store the result of this translation.
Linker
Program that takes elements generated during the first steps of compilation, the information of all the necessary resources, discards the resources that it does not need and thus links the object code with the necessary libraries and produces an executable file.
Scrubber
A program used to test and eliminate potential errors in programs. This code may be running in an instruction set simulator. This technique offers significant power in terms of the ability to stop when certain conditions are met, but it is somewhat slower at executing code than using a dedicated tool.
Integrated Development Environment
An IDE (Integrated Development Environment) is a software application that offers comprehensive services to facilitate software development for developers and programmers. An IDE typically consists of a source code editor, automated build tools, and a debugger.
app software
This is the one we use every day. Each of these applications, programs, or utilities that we use on our computer falls into this last group . This is the result of software programming and is usually focused on a specific operating system, although sometimes these utilities can be used on more than one operating system. They are the third and final step and are designed for the end user.

Office automation applications
These are word processors , such as Microsoft Word , although spreadsheets, databases, and other utilities are also included. Some are paid, like the one mentioned, and some are free, like OpenOffice.
Educational program
Tools designed for training that allow you to learn easily , with different tests, explanations and dynamic and simple examples.
Medical program
Computer programs used in medicine are used to monitor patients' conditions and easily detect potential health problems. These programs are considered medical devices and must comply with specific regulations.
Math program
A tool capable of performing, supporting, or illustrating various mathematical problems. These are a specific division within scientific computing, encompassing computer algebra systems, numerical computation systems, dynamic geometry systems, and others. There are groups and projects dedicated to the study and dissemination of this free mathematical software, enabling faster work through these tools.
Assisted Design Program or CAD
These programs are designed for the development of engineering, industrial design, and architectural projects . They are typically used to develop parts, components, or structures. The best-known tools are CATIA and AutoCAD.
Numerical Control Program or CAM
It is special software for machines that use tools and are operated by programmer commands on a storage medium , as opposed to manual control using handwheels or levers.
Free software
These are programs or sequences of instructions used in a digital device. Their purpose is to perform a specific task or solve a particular problem. The developer of these programs waives any right to profit from them and offers them for anyone to use at will, provided that these third parties do not profit from them.
Free software allows users to obtain the program, copy it, study it, modify it, and redistribute it freely, but without making a profit.
«Free software refers to the freedom of users to run, copy, distribute, study, modify this software and then make it accessible to everyone»
Definition of the Free Software Foundation

Proprietary software
Any computer program that imposes some kind of limitation on the user's ability to use, modify, or redistribute it, whether modified or not. These types of programs or tools are typically the most common in the major operating systems on the market. Some are inexpensive, while others are very expensive.
Perhaps the most common and well-known example is Microsoft Office , currently the most popular office suite, which is not free. However, not all proprietary tools or software are necessarily paid . For instance , Google Chrome and Mozilla Firefox, two widely used browsers , allow customization but cannot be re-released , yet they are free for the user. Valve Steam, the most popular digital store for video games, does not allow editing, distribution, or customization, but access and use are free.

