Software is a set of instructions designed to perform a defined task and tells the computer how to work. System software and Application software are the two main categories of software. System software works as a linking interface between a hardware device and the end user. It helps to generate the user interface and allows the operating system (OS) to interact with the computer hardware.
Features of System Software:
· Closeness to the system.
· Difficult to design, manipulate and understand.
· Usually written in a low-level language.
· Smaller in size.
· It must be efficient.
· Fast Speed.
It operates the computer when the user starts it. An OS acts as a link between software and hardware.
The following are the most important tasks performed by the OS
· Memory Management: It tracks the primary memory and allocates memory to process the request.
· Processor Management: It allocates the main memory (RAM) to a process and deallocates it when it is no longer required.
· File Management: It allocates resources to each task performed in the system.
· Security: Prevents unauthorized access to programs and data employing passwords.
· Error detecting Aids: It produces dumps, traces, error messages, and other debugging methods.
· Scheduling: The OS schedules the process through its scheduling algorithms.
A compiler is used to convert high-level programming languages or human-readable languages into low-level programming languages or executable machine codes. It performs preprocessing, lexical analysis, parsing, semantic analysis, conversion of input programs to an intermediate representation, code optimization, and code generation.
Examples: GCC (C compiler), javac (Java Compiler), etc.
An interpreter translates high-level instructions into an intermediate form, which is then executed. Interpreters are fast as it does not need to go through the compilation stage. It continuously translates the program until an error is met and stops running, making debugging easy.
Examples: Python, Matlab, Ruby, etc.
It is a program that converts assembly language (the low-level programming language expressed in a more human-readable form) into machine code. It takes the basic commands and operations and converts them into binary code specific to a type of processor.
Examples: GAS, GNU, etc.
System software is used to manage the computer itself. It runs in the background, maintaining the computer's basic functions so users can run higher-level application software to perform certain tasks.