What is software, what is hardware, software in computer, application software, types of software, system software, software meaning, software examples, software and hardware, software definition, hardware definition.
CONCEPT OF HARDWARE AND SOFTWARE
The hardware and software of a computer consist of various electronic, electro-mechanical, and electro-magnetic devices along with the interfacing buses connecting them. In other words, the hardware of the computer consists of the bare machinery, Software, on the other hand, consists of the set of instructions, commands, programs, etc. This can make the bare machinery operate and fulfill our objectives. If the hardware is the body, then the software the soul of a system. For a computer to operate, both the hardware and the software are indispensable
Types of Software
Depending upon the type of work software is required to perform, it can be classified into two categories of system software and application software.
System software is the one that closely interact with the hardware of a computer. This software depends upon the architecture of the underlying computer. They are responsible for controlling the resources of the system and perform other activities related to the system. The different kinds of system software are operating system, loader, linker, and translators.
An operating system is system software that acts as an interface between the user and the bare hardware. The operating systems currently in use are Linux, Windows 10, UNIX, macOS High Sierra, etc. The major functions of an operating system are:
• Process and processor (CPU) management
- Memory management
• Device management
• File management
To put it simply, the operating system manages all the resources of a computer. It also interprets all the commands that it receives from the user to the underlying hardware. Today’s operating systems come with a smart graphic user interface (GUI) that is easy to operate. They also offer several utilities such as calculators, text editors, scanning software, drawing tools, and image editing tools. a class of system software that translates a program written in one programming
Translators cover language into another. Compiler, assembler, interpreter, etc. are a few of the most used translators. The source programming language is either a high-level programming language or assembly language. The target language in almost all cases is machine language which is essentially in binary (1’s and O’s – high voltage and low voltage), a language understood by the computer. Translators are system software because they need a thorough understanding of the architectural configuration of the underlying hardware. This knowledge is necessary because the target code is machine-dependent. The machine instruction set supported by a particular architecture may not be supported by another. Compilers are system software that translates a program written in high-level language (HLL) into machine language. C, C++, Java, etc. are examples of this.
Thus, compilers have to be aware of the syntactic nuances of the HLL and the instruction set, addressing modes, register configuration, etc. of the machine in which the target program is supposed to be executed. The syntactic specification of a programming language is given to the compiler using the grammar of the language. Thus, a compiler designed for the C programming language would not be able to process a program written in the Java language. This is because the C compiler has been provided with the grammar rules of the C language and would consider statements written using Java as incorrect. The output of a compiler is in machine language and uses the instructions supported by the CPU of the computer. Thus, a compiler designed to generate machine code for a computer housing an Intel processor would not be able to generate machine code for a computer containing a Motorola processor For any compiler it is essential to specify both the source language as well as the target machine in which
the output program will be executed. The machine code generated by the compiler is known as object code. Assemblers translate a program written in assembly language to machine language. Assembly language consists of instructions supported by the underlying processor. The difference between assembly and machine language is that assembly language uses mnemonics such as ADD, SUB, etc., whereas machine language uses the corresponding binary operation codes for each of these mnemonics.
The linker links together the object codes belonging to all the sub-routines/functions of a program and forms an executable code. This executable code may be stored in the secondary memory and can be loaded into the main memory as and when required for execution.
A loader is system software that loads a program to be executed from the secondary memory into a designated area of the main memory. Modern-day operating systems have a loader incorporated within them. Absolute loaders, relocatable loaders, direct linking loaders are few forms of loaders. A special loader known as the bootstrap loader deserves a special mention in this respect. As mentioned earlier, the bootstrap loader loads the memory-resident portion of the operating system into the main memory immediately after the computer is switched on. The operating system then takes control of the computer.
Application software is the one that is meant to perform a specific activity and aid users in various ways. Word processing software, image editing, spreadsheet packages, database software, and accounting software are all examples of application software. Each of these has been designed to serve a special purpose.