Computer software is defined as a set of programs and procedures that are intended to perform specific tasks on a computer system. A software program is a set of instructions that are aimed at changing the state of computer hardware. At the lowest level, software is in the form of an assembly language, a set of instructions in a machine-understandable form. At the highest level, software is in the form of high-level languages, which are compiled or interpreted into machine language code.
TYPES OF SOFTWARE
The two main types of software are:
- System software.
- Application Software.
System software is a program that manages and supports the computer resources and operations of a computer system while it executes various tasks such as processing data and information, controlling hardware components, and allowing users to use application software. Systems software functions as a bridge between computer system hardware and the application software. System software is made up of many control programs, including the operating system, communications software and database manager.
Kinds of System Software
Systems software consists of three kinds of programs. They are the system management programs, system support programs, and system development programs.
- System Management Programs: These are programs that manage the application software, computer hardware, and data resources of the computer system. These programs include operating systems, operating environment programs, database management programs, and telecommunications monitor programs. Among these, the most important system management programs are operating systems. Telecommunications monitor programs are additions of the operating systems of microcomputers. These programs provide the extra logic for the computer system to control a class of communications devices.
- System Support Programs: These are the programs that help the operations and management of a computer system. They provide a variety of support services to let the computer hardware and other system programs run efficiently. The major system support programs are system utility programs, system performance monitor programs, and system security monitor programs (virus checking programs).
- System Development Programs: These are programs that help users develop information system programs and prepare user programs for computer processing. These programs may analyze and design systems and program itself. The main system development programs are programming language translators, programming environment programs, computer-aided software engineering packages.
TYPES OF SYSTEM SOFTWARE
There are three types of system software. They are
- Operating Systems.
- Tools and Utility Programs.
An operating system is a collection of integrated computer programs that provide recurring services to other programs or to the user of a computer. These services consist of disk and file management, memory management, and device management. In other words, it manages CPU operations, input/output activities, storage resources, diverse support services, and controls various devices.
Operating system is the most important program for computer system. Without an operating system, every computer program would have to contain instructions telling the hardware each step the hardware should take to do its job, such as storing a file on a disk. Operating system can be classified into two. They are:
- the command line e.g. Unix and MSDOS.
- graphical user interface e.g. Microsoft window and Linux.
Functions of Operating System
An operating system executes many functions to operate computer system efficiently. Among them, four essential functions are the followings.
- Resource Management: An operating system manages a collection of computer hardware resources by using a variety of programs. It manages computer system resources, including its CPU, primary memory, virtual memory, secondary storage devices, input/output peripherals, and other devices.
- Task Management: The function of the operating system that controls the running of many tasks. It manages one program or many programs within a computer system simultaneously. That is, this function of operating system manages the completion of users’ tasks. A task management program in an operating system provides each task and interrupts the CPU operations to manage tasks efficiently. Task management may involve a multitasking capability.
- File management: This is a function that manages data files. An operating system contains file management programs that provide the ability to create, delete, enter, change, ask, and access to files or data. They also produce reports on a file.
- User Interface: It is a function of an operating system that allows users to interact with a computer. A user interface program may include a combination of menus, screen design, keyboard commands. A well-designeduser interface is essential for an operating system to be popular. Because of the function, users can load programs, access files, and accomplish other tasks.
Examples of Operating Systems
The most popular microcomputer operating systems are DOS, OS/2, Windows NT, and Macintosh System. UNIX is a popular operating system that is available for microcomputers, minicomputers, and mainframe computer systems.
Examples of operating system can be classified into two. They are:
- Command line e.g. Unix and MSDOS.
- Graphical user interface e.g. Microsoft window and Linux.
(a) DOS: DOS stands for Disk Operating System. In the early 1980s, Microsoft got the right to QDOS (Quick and Dirty Operating System) developed by a small company, Seattle Computer, and then has been sold it under the name MS-DOS. Microsoft licenses a version called PC-DOS to IBM (International Business Machines) for its IBM personal computers, and its version, MS-DOS, to many other PC manufacturers.
File Access Table (FAT)
DOS creates a FAT for each disk during formatting. Every sector on the disk is represented by an entry in the FAT as part of a cluster. DOS looks for available clusters when a file is enlarged or created. When DOS allocates files on a freshly formatted disk, DOS uses the first cluster and sequences through a connected series of clusters, leaving many never-used clusters at the end of FAT. When a file is erased or shortened, DOS marks the released clusters in the FAT as available again. When a file is allocated more than one cluster, each cluster points to the next cluster that contains more of the files. The pointer is the next cluster number. The result is a chain of clusters that comprise the map of a file’s disk storage. Thus, FAT acts as a storage map and tells DOS exactly where to go on the disk to get all parts of a file.
Files on DOS Disks
The files on DOS disks have specific purposes. A COM file extension identifies a command file. Command files are the names of external DOS commands. Files with CPI extensions operate the display screen. A file with the DAT extension is a data file. Files with BAT extension are batch files.AUTOEXEC.BAT is a special batch file that runs automatically when a computer is started. EXE files are executable program files. SYS files are system files. SYS files are used to add or modify hardware support to the basic PC operation.
Advantages of DOS
- Commands are simple to remember and
- DOS is a very stable OS.
- DOS is the underlying OS of all Windows products today discounting the NT line (NT, Win2000, Win XP).
- DOS does not take up that much space on a hard drive, (only around 8 MB for a full installation).
- Very portable (look at bootdisks, although the functionality is not near that of a full OS, it works great for rescuing a crashed hard drive, Fdisking, formatting hard drives, and running old DOS apps that will not run with Windows or newer versions of DOS).
- DOS is a contraction for Disk Operating System.
- DOS is the most popular microcomputer operating system for IBM computers and compatibles ever sold worldwide.
- It runs thousands of applications, and is easy to use.
- DOS is easy for novices to use, and many publications and books are available for the operating system.
- DOS runs on low- priced IBM computers and compatibles.
- DOS does not require an expensive computer system while some others still do.
Disadvantages of DOS
- DOS has direct access to only 640 kilobytes of primary storage, although new microcomputers have much more primary storage. This restriction is an inherent limitation of DOS. Today’s new software for word processing, graphics, spreadsheets, and database management requires more primary storage.
- DOS is a single tasking operating system. It can support only one user and one program at a time.
- DOS has a character-based interface. A graphical user interface is easier to the users than the character-based interface.
(b) UNIX: This is a multiuser, multitasking operating system that runs on many different computer systems from microcomputer to mainframe, because UNIX is written in computer programming language, which is a language designed for system-level programming. UNIX is consisted of a kernel, the file system, the user interface. The kernel is the heart of the operating system. The file system has a hierarchical directory method for organizing files on the disk and the shell. UNIX was a minicomputer operating system used by programmers and computer science professionals some time before the rise of the microcomputer. This means that it has certain qualities making it useful to programmers – many supporting utility programs and documentation, for instance.
UNIX was originally developed in 1969 by K. Thompson, R. Canaday and D. Ritchie for minicomputers in the Bell Laboratories in the USA owned and run by AT & T. By the mid1970s, UNIX had been introduced to University of California at Berkeley by Thompson, then widespread into an academic world. Most computer science departments of universities have been using UNIX. UNIX initially became popular in industry because for many years AT & T licensed the system to universities for a nominal fee. The effect of this was that UNIX was carried by recent computer science and engineering graduates to their new places of employment. Rapid commercialization of UNIX followed on from this. This rapid commercialization caused the lack of standards. Many hardware and software vendors developed their own versions.
Advantages of UNIX
- UNIX is the portable operating system that can be used with many different computers from mainframe to microcomputer. The other operating systems such as DOS, Windows, Mac operating system, and OS/2 cannot be used for other systems.
- UNIX allows users to run multiple programs simultaneously.
- UNIX also shares it among multiple users.
- UNIX is not restrained by the computer systems such as conventional memory as the DOS and OS/2 systems are.
- Networking is another strong feature of a UNIX operating system. UNIX can be connected through several different kinds of equipment.
- It can share files among them.
Disadvantages of UNIX
- It can be difficult for novice microcomputer users to understand. For this reason it had a limited impact to date.
- Some of its features make it difficult for end users.
- Limited application programs are another disadvantage for UNIX. UNIX off-the-shelf programs for microcomputers are limited.
- An application program written for one version of UNIX may not run on other versions.
- There is also not a standard GUI for many UNIXs.
(c) Microsoft Window: Microsoft Windows is a series of graphical interface operating systems developed, marketed, and sold by Microsoft.
Microsoft introduced an operating environment named Windows on November 20, 1985asan add-on to MS-DOS in response to the growing interest in graphical user interfaces (GUIs). Microsoft Windows came to dominate the world’s personal computer market with over 90% market share, overtaking Mac OS, which had been introduced in 1984. The most recent client version of Windows is Windows 8; the most recent mobile client version is Windows Phone 8; the most recent server version is Windows Server 2012.
(d) LINUX: Linux is a great variant of UNIX. It has most of the features and, in some cases, better features of UNIX. Furthermore, it runs on lower end machines – 386- class system or higher with 8MB of memory. It requires only as small as 20MB of hard disk space to install it. It requires a CD-ROM drive.
Advantages of LINUX
- Low cost: You do not need to spend time and money to obtain licenses since Linux and much of its software come with the GNU General Public License.
- Stability: Linux does not need to be rebooted periodically to maintain performance levels. It does not freeze up or slow down over time due to memory leaks and such. Continuous uptimes of hundreds of days (up to a year or more) are not uncommon.
- Performance: Linux provides persistent high performance on workstations and on networks. It can handle unusually large numbers of users simultaneously, and can make old computers sufficiently responsive to be useful again.
- Network friendliness: Linux was developed by a group of programmers over the Internet and has therefore strong support for network functionality; client and server systems can be easily set up on any computer running Linux. It can perform tasks such as network backups faster and more reliably than alternative systems.
- Flexibility: Linux can be used for high performance server applications, desktop applications, and embedded systems. It allows to save disk space by only installing the components needed for a particular use.
- Compatibility: It runs all common Unix software packages and can process all common file formats.
- Choice: The large number of Linux distributions gives you a choice. Each distribution is developed and supported by a different organization. You can pick the one you like best; the core functionalities are the same; most software runs on most distributions.
- Fast and easy installation: Most Linux distributions come with userfriendly installation and setup programs. Popular Linux distributions come with tools that make installation of additional software very user friendly as well.
- Full use of hard disk: Linux continues work well even when the hard disk is almost full.
- Multitasking: Linux is designed to do many things at the same time; e.g ., a large printing job in the background will not slow down other work.
- Security: Linux is one of the most secure operating systems. “Walls” and flexible file access permission systems prevent access by unwanted visitors or viruses. Linux users have option to select and safely download software, free of charge from online repositories containing thousands of high quality packages.
A translator is a computer program that translates a program written in a given programming language into a functionally equivalent program into a different language. Depending on the translator, this may involve changing or simplifying the program flow, without losing the essence of the program, thereby producing a functionally equivalent program. Assembler, compiler and interpreter are examples of translators.
An assembler creates object code by translating assembly instruction mnemonics into operational codes, and by resolving symbolic names for memory locations and other entities. The use of symbolic references is a key feature of assemblers, saving tedious calculations and manual address updates after program modifications. Most assemblers also include macro facilities for performing textual substitution e.g ., to generate common short sequences of instructions as inline, instead of called subroutines.
A compiler is a computer program (or set of programs) that transforms source code written in a programming language (the source language) into another computer language (the target language, often having a binary form known as object code). The most common reason for wanting to transform source code is to create an executable program. A compiler is a special program that processes statements written in a particular programming language and turns them into machine language or “code” that a computer’s processor uses. Typically, a programmer writes language statements in a language such as Pascal or Computer one line at a time using an editor. The file that is created contains what are called the source statements. The programmer then runs the appropriate language compiler, specifying the name of the file that contains the source statements.
When executing (running), the compiler first parses (or analyzes) all of the language statements syntactically one after the other and then, in one or more successive stages or “passes”, builds the output code, making sure that statements that refer to other statements are referred to correctly in the final code. Traditionally, the output of the compilation has been called object code or sometimes an object module. The object code is machine instruction code that the processor can process or “execute”” once at a time.
More recently, the Java programming language, a language used in object-oriented programming, has introduced the possibility of compiling output (called byte code ) that can run on any computer system platform for which a Java virtual machine or byte code interpreter is provided to convert the byte code into instructions that can be executed by the actual hardware processor. Using this virtual machine, the byte code can optionally be recompiled at the execution platform by a just-in-time compiler .
Traditionally in some operating systems, an additional step was required after compilation that of resolving the relative location of instructions and data when more than one object module was to be run at the same time and they cross-referred to each other’s instruction sequences or data. This process was sometimes called linkage editing and the output known as a load module.
A compiler works with what are sometimes called 3GL and higher-level languages. An assembler works on programs written using a processor’s assembler language.
An interpreter is a computer program that executes, i.e. performs, instructions written in a programming language. An interpreter generally uses one of the following strategies for program execution:
- execute the source code directly.
- translate source code into some efficient intermediate representation and immediately execute this.
- explicitly execute stored precompiled code made by a compiler which is part of the interpreter system.
Early versions of the Lisp programming language and Dartmouth BASIC would be examples of the first type. Perl, Python, MATLAB, and Ruby are examples of the second, while UCSD Pascal is an example of the third type. Source programs are compiled ahead of time and stored as machine independent code, which is then linked at run-time and executed by an interpreter and/ or compiler (for JIT systems). Some systems, such as Smalltalk, contemporary versions of BASIC, Java and others may also combine two and three.
Software utilities or Utility Software is a type of computer system software also referred to as service program, tool, service routine, or utility routine. Utility software is system software designed to help analyze, configure, optimize or maintain a computer. Software Utilities are specifically designed to help the end-user manage and tune the computer hardware Software, Operating system or application software and perform as single precise task as opposed to application software which performs multi-tasking. These programs offer the various maintenance and performance evaluation utility tools to configure and optimize the various processes that influence the performance of your computer. Disk cleaners, anti-virus software, data compression programs, disk drive partition utilities, storage, editors, backup and archiving programs are some of the common examples of utility software.
Advantages of Utility Programs
- Disk Defragmenter: The contents of files get broken up at different locations in the hard disk. With the help of disk defragmenter, it is possible to bring all the fragments at one location and raise efficiency of working.
- Disk Cleaners: When hard disk becomes full of unwanted files. Disk cleaners are used to detect such unwanted files and delete them.
- Backup Utilities: With the help of backup utilities, you can copy all the information on a particular disk and restore the files which you want.
- Disk Compression: Disk compressors can help you increase the capacity of your disk by compressing its contents.
- Virus Scanners: Virus scanners, in computer terminology, are also known as anti-virus software which can help protect useful and important files from computer viruses.
- Network Utilities: Configuration of network settings and analyzing network connectivity are the main uses of network utilities.
- File Managers: With the help of file managers, you can easily move, copy, merge, generate, rename, catalog and delete files.
- System Profilers: System profilers help you to know details about the hardware and software used in the computer.
- Cryptographic Utilities: Cryptographic Utilities can help in converting ordinary language into code and also converting code into ordinary language. Thus, it is useful in encrypting and decrypting files.
- System Monitors: System monitors assist in analyzing the performance of the computer system.
- Registry Cleaners: Registry cleaners help in removing old registry keys which are out of use.
- Disk Checkers: Disk checkers help in the scanning process, which helps us find corrupted files and delete them for increasing the efficiency of the hard drive.
- Disk Space Analyzers: Disk space analyzers are useful in detecting the distribution of the used space.