A Software is a set of programs, which is designed to perform a well defined function. A program is a sequence of instruction written to solve a particular problem.
There are three types of software:
- System software
- Application software
- Utility software
System Software
The system software is a collection of programs designed to operate,control and extend the processing capabilities of the computer itself. System software serves as the interface between the hardware and the end users.
Features of a system software:
- Close to the system
- Fast in speed
- Difficult to understand
- Less interactive
- Smaller in size
- Difficult to manipulate
- Generally written in low level language
There are three types of system software:
- Operating systems
- Language processors
- Device drivers
Operating Systems
An Operating system (OS) is an interface between a computer user and computer hardware. An operating system is a software which performs all the basic tasks like file management, process management, handling input and output, and controlling peripheral devices such as disk drives and printers.For hardware functions such as input and output and memory allocation, the operating system acts as an intermediary between programs and the computer hardware,although the application code is usually executed directly by the hardware and frequently makes system calls to an OS function or is interrupted by it.
Some popular operating systems includes Linux Operating System, Windows, MacOS, VMS OS, AIX,etc
Features of Operating Systems:
- Memory Management
- Processor Management
- Device Management
- File Manegement
- Security
- Error detecting aids
- System performance
- System User coordination
- Job accounting
Language Processors
A special translating software is used to translate the program written in high level language into machine made code is called Language processor and the program after translated into machine code (object program/object code).The term is also used for translators between software implementations and hardware/ASIC microchip implementations of the same program, and from software descriptions of a microchip to the logic gates needed to build it.
There are three types of language processors:
- Compiler
- Assembler
- Interpreter
The language processor that reads the complete source program written in high level language as a whole in one go and translate it into an equivalent program in machine language is called as a compiler.There are many different types of compilers which produce output in different useful forms. A cross-compiler produces code for a different CPU or operating system than the one on which the cross-compiler itself runs. A bootstrap compiler is often a temporary compiler, used for compiling a more permanent or better optimised compiler for a language.
Ex:C,C++,C#,Java, etc.
Assembler
The Assembler is used to translate the program written in assembly language into machine code. The output generated by assembler is the object code or machine code understandable by the computer. Sometimes there is more than one assembler for the same architecture, and sometimes an assembler is specific to an operating system or to particular operating systems. Most assembly languages do not provide specific syntax for operating system calls, and most assembly languages can be used universally with any operating system, as the language provides access to all the real capabilities of the processor, upon which all system call mechanisms ultimately rest. In contrast to assembly languages, most high-level programming languages are generally portable across multiple architectures but require interpreting or compiling, much more complicated tasks than assembling.
Ex:EAX,EBX,ECX,etc.
Interpreter
The translation of single statement of source program into machine code is done by language processor and executes it immediately before moving on to the next line is called an interpreter.Early versions of Lisp programming language and minicomputer and microcomputer BASIC dialects would be examples of the first type. Perl, Raku, Python, MATLAB, and Ruby are examples of the second, while UCSD Pascal is an example of the third type.
Device Drivers
System software that controls and monitors functioning of a specific device on computer is called device driver. It is programmed without using a User Interface (UI). The hardware is linked to a computer bus/communication subsystem via which device drivers interact with the device. They are hardware-dependent and operating-system-specific (OS). They offer the interrupt processing essential for any time-dependent asynchronous hardware interface. Each device like printers, scanner, microphone, speaker,etc, has a device driving software.
Application Software:
Application Software products are designed to satisfy a particular need of a particular environment. Some examples of application softwares are as follows:
- Payroll software
- Inventory management software
- Income tax software
- Microsoft Word
Features of application software:
- Easy to design
- More Interactive
- Easy to understand
- Easy to manipulate and use
- Slow in speed
Applications may be bundled with the computer and its system software or published separately and may be coded as proprietary, open-source, or projects. The term "app" usually refers to applications for mobile devices such as phones.The delineation between system software such as operating systems and application software is not exact, however, and is occasionally the object of controversy. For example, one of the key questions in the United States v. Microsoft Corp. antitrust trial was whether Microsoft's Internet Explorer web browser was part of its Windows operating system or a separate piece of application software. As another example, the GNU/Linux naming controversy is, in part, due to disagreement about the relationship between the Linux kernel and the operating systems built over this kernel. In some types of embedded systems, the application software and the operating system software may be indistinguishable from the user, as in the case of software used to control a VCR, DVD player, or microwave oven. The above definitions may exclude some applications that may exist on some computers in large organisations. For an alternative definition of an app: see Application Portfolio Management.
Application software that assists system software in doing their work is called Utility Software. Thus Utility software is actually a cross between system software and application software.Some utility software used in daily life are :
- Antivirus
- Disk management tools
- File management tools
- Compression tools
- Backup tools
Although a basic set of utility programs is usually distributed with an operating system (OS), and this first party utility software is often considered part of the operating system, users often install replacements or additional utilities. Those utilities may provide additional facilities to carry out tasks that are beyond the capabilities of the operating system.
Many utilities that might affect the entire computer system require the user to have elevated privileges, while others that operate only on the user's data do not.
nice
ReplyDelete