1.2 Types of Software
1.2 Types of Software
- System Software
- Application software
- programming tools and
language translators
Software
Software can be defined as a collection of
programs (or set of instructions) which make
hardware functional to complete the desired
task
e.g.)
Ms Word, Excel, Power Point, Google Chrome
A system software knows how to operate and use different hardware components
of a computer. It provides services directly to the end user, or to some other
software.
e.g.) operating systems, system utilities, device drivers, etc.
System Software: Operating System
As the name implies, the operating system is a system software that operates the
computer. An operating system is the most basic system software, without which
other software cannot work.
The operating system manages other application programs and provides access
and security to the users of the system.
Some of the popular operating systems are Windows, Linux, Macintosh, Ubuntu,
Fedora, Android, iOS, etc.
System Software: System Utilities
Software used for maintenance and configuration of the computer system is called
system utility.
Some system utilities are shipped with the operating system for example disk
defragmentation tool, formatting utility, system restore utility, etc.
Another set of utilities are those which are not shipped with the operating system
but are required to improve the performance of the system, for example, anti-virus
software, disk cleaner tool, disk compression software, etc.
System Software: Device Drivers
When it comes to the overall working of a computer system, the operating system
does the work.
But everyday new devices and components are being added to a computer system.
It is not possible for the operating system alone to operate all of the existing and
new devices, where each device has diverse characteristics.
That’s where a device driver comes into the picture, as the name signifies, the
purpose of a device driver is to ensure proper functioning of a particular device.
System Software: Device Drivers
The device driver acts as an interface between the device and the operating
system. It provides required services by hiding the details of operations performed
at the hardware level of the device.
Note:
- Computers and humans understand completely different languages while
humans are able to write programs in high-level language, computers
understand machine language
- Due to this difference in the language, there is a continuous need for conversion
from high level to machine level language, for which translators are needed.
Classification of Programming languages
Two major categories of computer programming languages are
- low-level languages and
- high-level languages
Note:
- Writing a code in machine language is very difficult for a human being as one
has to remember all operation codes and machine addresses.
- Also finding errors in the code written in machine language is difficult.
To simplify the writing of code, assembly language was developed that allowed
usage of English-like words and symbols instead of 1s and 0s
e.g.)
MOV AL, 61h ; Load AL with 97 decimal (61 hex)
Classification of Programming languages
But one major drawback of writing a code in this language is that the code is
computer specific, i.e., the code written for one type of CPU cannot be used for
another type of CPU
High level languages are machine independent and are simpler to write code into.
Instructions are using English like sentences and each high level language follows
a set of rules, similar to natural languages.
e.g.)
C, C++, Java, Python, Ruby etc.
language translators
Though writing a code in High level language is easy for a human being but these
languages are not understood by the computer.
Each assembler can understand a specific microprocessor instruction set only and
hence, the machine code is not portable.
Compiler
Compiler converts the source code into machine code at one go.
If the code follows all syntactic rules of the language, then it is executed by the
compiler.
Interpreter takes one line, converts it into executable code if the line is
syntactically correct, and then it repeats these steps for all lines in the source
code.
Note:
A computer system can work without application software, but it cannot work
without system software.
Such ready-made application software can be used by end users as per their
requirements.
Customised Software
These are custom or tailor-made application software, that are developed to meet
the requirements of a specific organisation or an individual.
The developers of some application software provide their source code as well as
the software freely to the public, with an aim to develop and improve further with
each other’s help. Such software is known as Free and Open Source Software
(FOSS).
e.g.)
Ubuntu, Python, Libreoffice, Openoffice, Mozilla Firefox, etc.
Proprietary or Free and Open Source Software
Sometimes, software are freely available for use but source code may not be
available. Such software are called freeware.
Examples of freeware are Skype, Zoom, Adobe Reader, etc.
When the software to be used has to be purchased from the vendor who has the
copyright of the software, then it is a proprietary software.
Examples of proprietary software include Microsoft Windows, Tally, Quickheal,
etc.
Summary
System software
- Operating system
- System utilities
- device drivers
Programming tools
- classification of programming languages
- language tools
- program development tools
Summary
Application software
- General purpose software
- customised software