Software is a collection of computer programs and documents that direct the computer to do the tasks. The program defines a sequence of instructions or set of instructions that store in the storage medium. Examples of storage media are hard drive, CD, DVD, pen drives, and USB on which the software can store. If you want to use a program, first transfer the program into the computer's memory from storage media.
There are two main categories of computer software.
- System Software
- Application Software
Computer uses the system software for proper functioning of the computer. The user can use the Application software for doing specific tasks. System software act as an intermediate between hardware and application software. The application software act as a mediator between system software and user.
System Software
System Software is necessary for proper working of the computer. It provides basic operation and functionality to the computer, so that the computer can work itself. Whenever the user uses the computer, they don't need to be aware of underlying software, and they can simply use it. For example if you want to print the document, you simply use the printer. You don't need to know the device driver, because when request any device to use, the corresponding device driver software interrelates with appropriate hardware device to perform the specific task.
Main functions of system software Provide basic functionality.
- Acts as an interface between hardware components and application software.
- Control all hardware components of the computer.
- The user can simply use the computer without knowing the underlying software.
System software is further divided into two categories.
- System software for computer management
- Operating system
- Device drivers
- System utilities
- System software for developing software
- Programming languages
- Translator software
- Linker
- Loader
Let us discuss the system software one by one in detailed.
System software for computer management
Operating system
It is a first and most required software that is required for the computer to operate.
The main features of the Operating System
- It provides the environment on which the user and application software can do their work.
- It acts intermediate between hardware and user. Not only that, but it also controls and coordinates the use of hardware components among the user and application software.
- The OS manages the all resources and allocates them to the user and other program whenever that is needed.
Examples of operating systems are Windows 7,Window XP, Windows 8, Windows 10, MacOS, Linux, Unix, and Android OS.
Device Drivers
Device Driver is the translator or intermediate between hardware and software. Device driver is a system software which is needed for proper functioning of hardware devices like keyboard, mouse, speaker, webcam, printer, monitor, hard disk, scanner, and so on. For each device, the corresponding device driver software must be installed on the computer then only that device can work properly. For example, when we want to print a text, a printing command is sent to the printer driver which converts the command into certain forms that should be understood by the printer. The device driver software for all commonly used hardware devices are given by respective device manufacturers.
Today, most of the operating system comes with preinstalled device drivers like keyboard, mouse, and monitor.
System Utilities
It is the system software that helps the user maintaining the computer. Utility programs are available to the user for easy handling of the computer. It is required to enhance the functionality of the computer. The necessary utility software is usually included with the operating system for the basic functioning of the computer.
Some examples of utility software programs are given below:
- Anti-virus utilities:-used to scan the computer system.
- Debugger utilities:-used to test and debug the other program and also to solve programming errors.
- System monitors:-used to monitor the resources and performance of the computer.
- Cryptography utilities:- used to encrypt and decrypt the data streams and files.
- Data compression utilities:-used to compress the content of the files.
- Disk compression utilities:- used to compress/ uncompressed the contents on the disk.
- Disk partitioning utilities:-used to divide the disk into multiple logical driver volumes that can treat as an individual drive. Each drive follows its file system.
- Network utilities:-used to configure, check and maintain the connection of the computer network.
- Backup utilities:- used to make a copy of all information of hard disk that can be restored in the case of disk failure or file corruption.
- File managers utilities:- used to manage the file system on the computer. They provide the basic tools to handle the file system. Also, it allows us to edit text documents that editing includes to write, delete, rename, save it to disk, insert pictures, and so on.
If you want to see the system utilities on your computer, you can view it by going through the start menu, all programs, accessories, system tools on Windows OS.
System software for developing software
Programming language
The programming language is the computer language that consists of a sequence of instructions to perform a specific task. The programming language is being used to write a program that directs and controls the computer to produce the output. Each programming language has its own set of keywords and syntax for writing instruction. For writing a program, many programming languages have developed. Still, more are being developed. These programming languages are grouped into three different categories that are:
- Machine language
- Assembly language
- High-level language
Machine language
It is the lowest level programming language that uses the numeric form to write an instruction. These programs could be executed directly by the hardware of the computer. The machine language program consists of binary digits or bits like 0s and 1s.
The main features of machine language
- The computer can understand the instruction written in machine language since it is the lowest level programming language.
- It uses the string of 0s and 1s to write an instruction.
- The instruction could make the hardware of the computer or the CPUs of the computer perform a specific task.
- Each CPU has its own unique set of machine language.
- This is a machine-dependent language since it depends upon the processor of the computer. That means the machine-level program written on one computer may not run on another computer with a different processor.
- The program written in machine language is hard to read and modify because it has written in binary code. For example:10000101110.
- The machine language program is called machine code or object code.
- It can be very difficult for us to write a program by using machine language.
Assembly language
It is the low-level language that lies between high-level and low-level language. It was very easier to write a program than machine language.
The main features of assembly language
- It uses the symbolic representation that is given by the CPU manufacturers, for writing a program.
- It is the small English-like representation of machine language, that is, it allows the programmer to use mnemonics for writings a program in assembly language.
- It is machine-dependent. Each assembly language is designed for a specific computer or even a particular operating system.
- Program written in assembly language is converted into machine code or object code then only it will be executed by a processor of the computer.
- For conversion, use the translator software such as assembler Which converts it into the object or machine code.
High-level programming language
- It is an English-like language.
- It uses specific notation to write an instruction that is syntax and semantics.
- It is very easy for the programmer to understand.
- A program written in a high-level language is known as source code that has to be converted into object code by using a compiler or interpreter.
- Programs written in a high-level language are easily portable across other computers.
- The user can execute the program written in the high-level language without knowing the underlying CPUs operations.
- For examples C,C++, java, Fortran, python, C#, .net, etc.
Translator
Program written in either high level or assembly language has to convert into machine language code because the computer can understand only binary digits. The conversion has to be done by the translator software. The output of these translators is known as object code. There are three different types of translators that are
- Assembler
- Compiler
- Interpreter
Assembler
This software has used to convert a program written in assembly language into machine code or object code. The conversion follows a 1:1 ratio, which means one assembly language instruction will be converted into a machine language instruction.
Compiler
This software has to be used to convert a program written in a high-level language into machine language. The high-level program refers to source code, and the converted program refers to object code. The object code is also known as executable code. Most of the high-level programming language has its own compiler. For example C++, Java, Cobol, and FORTRAN. The compiler also uses to find an error in the program.
The compilation would be done in two steps.
- Break the source code into semantic representation and form the corresponding intermediate code.
- The intermediate code has to convert into an object or executable code.
Interpreter
It is similar to a compiler. It is a software in which the high-level program has to convert into a machine language program. The interpreter reads the source program line by line, converts it into machine code, executes the line and, then only moves to the next line. The example: python and basic programming languages use interpreter software for conversion.
Linker
The linker is software that is used to combine executable code with required other modules. It is also used to include the other libraries.
Loader
The loader is software used to load and relocates the executable codes in the memory storage. At the runtime, the loader has to allocate space in memory and then load the executable file for execution.
Application Software
Application software is software that allows the user for developing an application and performing a specific task. This application software is a single program or a set of the program in a single package. It provides the interface between the user and the monitor. The application software is usually written in a high-level language. The application software can use in different purpose and different environments such as document creation, graphics, media players, accounting, banking, telecommunications, etc.
Some example of application software are given below:
- Word Processor