Hardware needs to be operated by a set of instructions. These sets of instructions are referred to as programs. Software represents the set of programs that govern the operations of a computer system and make the hardware run smoothly .
It is that component of a computer system, which we cannot touch or view physically. It comprises the instructions and data to be processed using the computer hardware.
Some examples of software include:
- Operating systems like Ubuntu or Windows 7/10
- Word processing tools like LibreOffice or Microsoft Word
- Video player like VLC Player
- Photo editors like GIMP and LibreOffice draw
A document or image stored on the hard disk or pen drive is referred to as a soft-copy.
Once printed , the document or an image is called a hard-copy.
Need for Software
- The sole purpose of a software is to make the computer hardware useful and operational.
- A software knows how to make different hardware components of a computer work and communicate with each other as well as with the end-user.
- We cannot instruct the hardware of a computer directly. Software acts as an interface between human users and the hardware.
Types of Software
1. System Software
The software that provides the basic functionality to operate a computer by interacting directly with its constituent hardware is termed as system software.
It provides services directly to the end user, or to some other software.
Examples of system software:
- Operating System: Acts as an interface between user and machine. It allocates and manages the resources of the computer. Examples of operating systems are Windows, Linux, Macintosh, Ubuntu, Fedora, Android, iOS, etc.
- System Utilities: Software used for maintenance and configuration of the computer system is called system utility. Examples of system utilities are anti-virus software, disk cleaner tool, disk compression software, etc.
- Device Drivers: A device driver acts as a mediator between the operating system and an externally attached device to the computer. The responsibility for overall control, operation and management of a particular device at the hardware level is delegated to its device driver.
2. Programming Tools
The programming languages used to write instructions to the computer in high-level language, the language translators used to convert high-level language to machine level language and the code editors used to write the instructions are all known as programming tools.
Examples of Programming tools:
- Classification of Programming Languages: Two major categories of computer programming languages are low-level languages and high-level languages.
Low - level languages are machine dependent languages and include machine language and assembly language.
High - level languages are machine independent and are simpler to write code into.
- Language translators: As the computer can understand only machine language, a translator is needed to convert programs written in assembly or high level language to machine language. The program code written in assembly or high-level language is called source code . The source code is converted by a translator into the machine understandable form called object (machine) code.
The three types of translators used in computing systems are
- Assembler - An assembler is a system program that converts an assembly language program into the machine language of the host computer.
- Compiler - A compiler is a system program which translates a program written in a high level language into its equivalent program in machine language.
- Interpreter - An interpreter converts a high-level language program into an equivalent machine language program one line at a time and executes it, if no error is encountered.
- Program development tools: In order to simplify the program development, there are softwares called Integrated Development Environment (IDE) consisting of a text editor, building tools and debugger. A program can be typed, compiled and debugged from the IDE directly.
3. Application Software
Application software are made to perform a specific task. This software works on top of the system software.
Two categories of Application Software are:
- General Purpose Software - The application software developed for generic applications, to cater to a bigger audience in general are called general purpose software. Such ready-made application software can be used by end users as per their requirements. Examples of general purpose softwares are Adobe Photoshop, GIMP, Mozilla web browser, iTunes, etc.
- Customized Software - These are custom or tailor-made application software, that are developed to meet the requirements of a specific organization or an individual. Examples of user-defined software include websites, school management software, accounting software, etc.