Hardware and Software
A computer consists of both hardware and software and both are equally important for the working of the computer system. The electronic components of a computer system that we can see and touch are called hardware. Software is a general term used for computer programs that control the operations of the computer. A program is a sequence of instructions that perform a particular task. A set of programs form software. It is the software which gives hardware its capability. Hardware is of no use without software and software cannot be used without hardware.
Types of Software
Software can be broadly are categorized as:


System Software
System Software is the software that is directly related to coordinating computer operations and performs tasks associated with controlling and utilizing computer hardware. These programs assist in running application programs and are designed to control the operation of a computer system. System software directs the computer what to do, when to do and how to do. System software can be further categorized into


Operating System
An Operating system is the most important system software. It is a set of programs that control and supervise the hardware of a computer and also provide services to application software, programmers and users. It manages all hardware and software, input, output and processing activities within the computer system, the flow of information to and from the processor, sets priorities for handling different tasks, and so on. Without operating system a computer cannot do anything useful. When a computer is switched on, the operating system is the first program that is loaded onto its memory. A user cannot communicate directly with the computer hardware, so the operating system acts as an interface between the user and the computer hardware. Some of the popular operating systems used in personal computers are DOS, Windows, UNIX, Linux, Solaris, etc. An operating system can be a Single User or a Multiuser operating system. A single user operating system allows only one user to work at any time but a multiuser operating system allows two or more users to use a powerful computer at the same time. For example Windows 7 is a single user operating system while Linux is a multiuser operating system.
Need for an Operating System
Operating system provides a platform, on top of which, other programs, called application programs can run. As discussed before, it acts as an interface between the computer and the user. It is designed in such a manner that it operates controls and executes various applications on the computer. It also allows the computer to manage its own resources such as memory, monitor, keyboard, printer etc.
Our choice of operating system, therefore, depends to a great extent on the CPU and the other attached devices and the applications we want to run. The operating system controls the various system hardware and software resources and allocates them to the users or programs as per their requirement.
Functions of an Operating System
An operating system has variety of functions to perform. Some of the prominent functions of an operating system can be broadly outlined as:

· Priority Scheduling: Each task is given CPU time according to the priority assigned to that task. The program with higher priority will be given CPU time before a program with lower priority. The CPU executes the task till it is completed or there is some interrupt request i.e. till the time operating system has to stop (interrupt) the current task due to an unavoidable job request. The major drawback of Priority scheduling is that even a small job has to wait for a long time when a long duration job with higher priority is being executed.
· Round Robin Scheduling: This type of scheduling technique is also known as Time Sharing Scheduling. In this, each program or task is given a fixed amount of time to execute. The CPU continues with the execution till either the allotted time is over or there is some interrupt request or the task is completed before the allotted time. If the task is not completed at the end of the allotted time, it is put at the end of the queue. So each task gets its allotted share of CPU time. This scheduling technique improves the response time and provides an interactive environment. Hence time sharing operating system is very useful in network environment as each user is allowed to share the network resources.

· Buffering: In this technique the temporary storage of input and output data is done in Input Buffer and Output Buffer. Once the signal for input or output is sent to or from the CPU respectively, the operating system through the device controller moves the data from the input device to the input buffer and for the output device to the output buffer. When the signal is sent to/from the operating system to the respective device controllers, the program doesn’t wait rather it returns to its processing. In case of input, if the buffer is full, the operating system sends a signal to the program which processes the data stored in the buffer. When the buffer becomes empty, the program informs the operating system which reloads the buffer and the input operation continues. Similarly for output when the program being executed has to display some output, it fills the buffer and then informs the operating system. Thereafter the operating system empties the buffer by sending data to the output device and in the meantime the program fills another buffer. This technique is called overlapped processing. This is because while the operating system reloads one buffer, the executing program doesn’t stop as it is able to retrieve/fill data from/in another buffer.
· Spooling (Simultaneous Peripheral Operation on Line): This is a device management technique used for processing of different tasks on the same input/output device. Say for example there are various users on a network sharing the same printer. At one point of time more than one user might give print command. The speed of the printer is very slow as compared to the CPU processing. So the operating system temporarily stores the data of every user on the hard disk of the computer to which the printer is attached. The individual users need not wait for the printing process to be complete. Instead the operating system sends the data from to hard disk to the printer one by one.

· Partitioning: The total memory is divided into various partitions of same size or different sizes. This helps to accommodate number of programs in the memory. The partition can be fixed i.e. remains same for all the programs in the memory or variable i.e. memory is allocated when a program is loaded on to the memory. The later approach causes less wastage of memory but in due course of time, it may become fragmented.
· Virtual Memory: This is a technique used by the operating system by virtue of which the user can load the programs which are larger than the main memory of the computer. In this technique the program is executed even if the complete program is not loaded on to the main memory. The operating system divides the main memory into equal sizes called pages. A part of the program resides in the main memory and is called the active set. The rest is in the secondary storage device in the form of tracks/sectors or blocks. With the help of Page Map Tables (PMT), the operating system keeps track which page of main memory is storing which block of secondary memory. A virtual address (which is not the real physical address) is mapped either to the main memory or the secondary memory. Hence virtual memory allows more programs and even larger programs to be executed in the main memory leading to efficient memory utilization.

Types of Operating System
OS are classified into the following types depending on their capability of processing







Commonly Used Operating Systems
Some of the commonly used operating systems are discussed below:
1. Windows: Microsoft launched Windows 1.0 operating system in 1985 and since then Windows has ruled the world’s software market. It is a GUI (Graphic User Interface) and various versions of Windows have been launched like Windows 95, Windows 98, Win NT, Windows XP, Windows 7 and the latest being Windows 8.
2. Linux: Linux is a free and open software which means it is freely available for use and since its source code is also available so anybody can use it, modify it and redistribute it. It can be downloaded from www.linux.org. It is a very popular operating system used and supported by many companies. The defining component of this operating system is the Linux kernel.
3. BOSS (Bharat Operating System Solutions): This is an Indian distribution of GNU/Linux. It consists of Linux operating system kernel, office application suite, Bharateeya OO, Internet browser (Firefox), multimedia applications and file sharing.
4. UNIX: It is a multitasking, multiuser operating system originally developed in 1969 at Bell Labs. It was one of the first operating systems developed in a high level language, namely C. Due to its portability, flexibility and power, UNIX is widely being used in a networked environment. Today, ”UNIX” and "Single UNIX Specification" interface are owned and trademarked by The Open Group. There are many different varieties of UNIX, although they share common similarities, the most popular being GNU/Linux and Mac OS X.
5. Solaris: It is a free Unix based operating system introduced by Sun Microsystems in 1992. It is now also known as Oracle Solaris. Solaris is registered as compliant with Single UNIX Specification. It is quite scalable and is used on virtual machines.
Mobile Operating Systems (Mobile OS)
It is the operating system that operates on digital mobile devices like smart phones and tablets. It extends the features of a normal operating system for personal computers so as to include touch screen, Bluetooth, WiFi, GPS mobile navigation, camera, music player and many more. The most commonly used mobile operating systems are – Android and Symbian.
Android: It is a Linux derived Mobile OS released on 5th November 2007 and by 2011 it had more than 50% of the global Smartphone market share. It is Google’s open and free software that includes an operating system, middleware and some key applications for use on mobile devices. Android applications are quiet user friendly and even one can easily customize the Smartphone with Android OS. Various versions of Android OS have been released like 1.0, 1.5, 1.6, 2. x, 3.0 etc. Most Android phones use the 2.x release while Android 3.0 is available only for tablets. The latest Android version released is 4.2.2. The Android releases have dessert inspired codenames like Cupcake, Honeycomb, Ice Cream sandwich and Jelly Bean.
Symbian: This Mobile OS by Nokia (currently being maintained by Accenture) designed for smartphones. It offers high level of functional integration between communication and personal information management. It has an integrated mail box and it completely facilitates the usage of all Google applications in your smartphone easily. Symbian applications are easy to shut down as compared to Android applications. Various versions like S60 series, S80 series, S90 series, Symbian Anna etc have been released. The latest Symbian releases (Symbian Belle) can support 48 languages.
Language Processors
We know that computer understands instructions in machine code, i.e. in the form of 0s and 1s. It is difficult for us to write computer program directly in machine code. The programs are written mostly in high-level languages, i.e. BASIC, C++, Python etc. A program written in any high-level programming language (or written in assembly language) is called the Source Program or Source Code.
The source code cannot be executed directly by the computer. The source code must be converted into machine language to be executed. The program translated into machine code is known as Object Program or Object code.
The special translator system software that is used to translate the program written in high-level language (or Assembly language) into machine code is called language processor or translator program.
The language processors can be any of the following three types- Assembler, Compiler and Interpreter.
Assembler
The Assembler is used to translate the program written in Assembly language into machine code. The input of Assembler is a source program that contains assembly language instructions. The output generated by assembler is the object code or machine code understandable by the computer.
Compiler
The language processor that translates the complete source program as a whole in one go into machine code is called compiler. Some of the examples are C and C++ compilers.
The program translated into machine code is called the object program. The source code is translated to object code successfully if it is free of errors. If there are any errors in the source code, the compiler specifies the errors at the end of compilation with line numbers. The errors must be removed before the compiler can successfully recompile the source code again.
Interpreter
The language processor that translates a single statement of source program into machine code and executes it immediately before moving on to the next line is called an Interpreter. If there is an error in the statement the interpreter terminates its translating process at that statement and displays an error message.
Only after removal of the error, the interpreter moves on to the next line for execution.
Utilities
A utility software is one which provides certain tasks that help in proper maintenance of the computer. The job of utility programs is to keep the computer system running smoothly. Nowadays many utility softwares are part of the operating system itself. Even if there is no utility software on your computer, the computer works but with the right kind of utility software loaded, the computer becomes more reliable and even its processing speed increases. Some of the commonly use utility softwares are antivirus, Disk defragmenter, backup, compression etc.
Antivirus
An antivirus is utility software which detects and removes computer viruses. If the software is not able to remove the virus, it is neutralized. The antivirus keeps a watch on the functioning of the computer system. If a virus is found it may alert the user, flag the infected program or kill the virus. Some of the common types of viruses are:
· Boot Sector Virus: A boot sector virus displaces the boot record and copies itself to the boot sector i.e. where the program to boot the machine is stored. So first the virus is loaded on to the main memory and then the operating system. Whenever a new disk is inserted the virus copies itself to the new disk. The antivirus overwrites the correct boot record on the infected boot sector and also cleans the bad sectors.
· File Virus: A file virus generally attacks executable files. They can attach to various locations of the original file, replace code, fill in open spaces in the code, or create companion files to work with an executable file. Most of the file viruses are memory resident and wait in the memory until the user runs another program. While another program is running, the virus replicates.
· Macro Virus: This virus infects an important file called normal.dot of MS Word. As soon as the application is opened the virus gets activated. It damages the formatting of documents and even may not allow editing or saving of documents.
· Trojan Horse: It is a code generally hidden in games or spreadsheets. Since they are hidden, the program seems to function as the user wants but actually it is destroying the program. A Trojan horse does not require a host program to embed itself. It is a complete program. Its main objective is to cause harm to the data. They can create bad sectors on the disk, destroy file allocation tables and cause the system to hang.
· Worm: Worm is a program capable of replicating itself on a computer network. A worm also does not require a host as it is a self contained program. They generally travel from one computer to another across communication links on a network. They generally disrupt routine services.

The memory is used in small chunks randomly. Sometimes when a memory chunk of appropriate size is not available, the operating system breaks or fragments the files resulting in slower access to files. A disk defragmenter scans the hard disk for fragmented files and brings all the fragments together.

This utility is used to create the copy of the complete or partial data stored in a disk or CD on any other disk. In case the hard disk crashes or some other system failure occurs, the files can be restored using backup software.

This utility is used to compress large files. Compression is useful because it helps reduce resources usage and the file transmission on the network becomes easier.

This utility scans for file that have not been accessed/used since long. Such files might be occupying huge amount of memory space. In that case the Disk Cleaner utility prompts the user to delete such files so as to create more space on the disk. If the files are important, the user might take a backup before deleting them.

This utility helps the user in storing, indexing, searching and sorting files and folders on the system. The most commonly used tool is the Windows Explorer and Google Desktop.
Application Software
Application software is bought by the user to perform specific applications or tasks, say for example making a document or making a presentation or handling inventory or managing the employee database. Application software can be of two types – General Purpose Application Software and Customized Application software.
General Purpose Application Software
Some of the application software is made for the common users for day to day applications and uses. These are also referred as Office Tools. The users may use them in the manner they want. Some of the popular types of general purpose application software are discussed below:

We use word processing software for various uses like writing a simple document to designing special art effects. Since we can attach images and different shapes, can use different colors, even a poster can be designed using word processing software. Features like Mail Merge, Macro has further enhanced the word processing software and made it very useful.



Customized Software
Customized Software is one which is tailor made as per the user’s requirement. Such type of software is customer specific. It is made keeping in mind the individual needs of the user and so are also referred as Domain Specific Tools. Such software cannot be installed and used by any other user/customer since the requirements may differ. Some examples of customized software are discussed below:







Open Source Concepts
Software are mainly categorised into the following categories based on their licenses:
1. Proprietary
2. Shareware
3. Freeware
4. Open source
5. Free Software

We pay a supplier for a copy of the software which these days may be supplied on physical media (disks) or downloaded from the Internet. We get the permission to use the software on one or sometimes more than one machines. Examples of this type of software include Microsoft Office and Microsoft Windows.

Shareware is basically a software for trial purpose that the user is allowed to try for free, for a specified period of time. It is usually downloaded from the Internet. When the trial period ends, the software must be purchased or uninstalled.

Freeware software is free of cost and is usually bundled up with some operating system or any other software. Examples of freeware include Microsoft Internet Explorer which comes bundled up with any Microsoft operating system. The author of the freeware software is the owner of the software, though people may use it for free. The source code is not available, so no modifications can be done. Freeware should not be mistaken with Open Source Software or Free Software.

Open Source Software (OSS) is the software which gives the users freedom to run/use the software for any purpose and in any manner. They can be used, modified and even redistributed. In simple terms it can be freely used but it may not be free of charge. The source code is freely available to the customer. Python, TuxPaint etc are examples of Open Source Software.

This type of software is freely accessible and can be freely used, modified, copied or distributed by anyone. And no licence fee or any other form of payment need to be made for a free software. The source code is also accessible in case of free softwares.
No comments:
Post a Comment