This chapter introduces the reader to the essentials of computer software. Computer software refers to computer program(s)that causes a computer to carry out particular operations. The chapter starts with the definition of software, followed by its relationship with the hardware. The discussion continues with the types of software, namely, system software and application software, their roles along with the hardware in building up a fully functional computer system. In the later part of the chapter, piracy and techniques of its prevention are explained. The chapter concludes by providing an overview of software terminology.
After reading this chapter, you will be able to understand:
The computer system, which consists of hardware and software
Software, which is defined as collection of data and instructions in a computer
The categories of software, namely system software and application software
The process of installing and uninstalling software
Software piracy—an unauthorized way of copying an internally developed software
A computer system consists of hardware, the electronic devices that are capable of computing and manipulating information, and software (set of instructions) that carries out predefined tasks to complete a given job. As we know, a computer cannot think or perform on its own. It performs operations like addition, subtraction, multiplication, and division only when the user instructs it to do so. The user issues instructions and the CPU acts in accordance with the instructions. The sets of instructions, which control the sequence of operations, are known as programs, and collectively programs are called software. It is an intangible commodity, that is, the part of a computer system that users cannot touch.
We can equate hardware and software with human body and human intelligence, respectively. All human physical actions such as walking and eating are based on the thoughts and feelings, which is raised by the brain. If the brain does not raise thoughts and feelings, we do not perform any physical activity. Similarly, the actions and functioning of every hardware equipment are driven by software. The combination of physical equipment (hardware) and logical instructions (software) gives modern computing systems their power and versatility.
Software is a generic term for organized collection of computer data and instructions. It is responsible for controlling, integrating, and managing the hardware components of a computer and to accomplish specific tasks. In other words, a software tells the computer what to do and how to do it. For example, software instructs the hardware what to display on the user's screen, what kinds of input to take from the user, and what kinds of output to generate. Thus, software communicates with the hardware by organizing the control sequences, and the hardware carries out the instructions defined by the software.
As discussed earlier, a computer needs to be instructed to perform any task. These instructions are given in the form of computer programs, which are written in computer programming languages. A program controls the activity of the processor. The moment the hardware (processor, memory, etc.) acts as per the instructions of a program, the program is said to be in running or executing state.
A set of programs, which are specifically written to provide the user a precise functionality like solving a specific problem, is termed as a software package. For example, word-processing software package provides functionality to the computer so that it can be used to create text documents like letters and mailing lists. Similarly, an image-processing software package assists a user in drawing and manipulating graphics.
Software refers to the computer programs that are loaded into a computer system, and hardware refers to all the visible devices, which are assembled together to build a computer system (see Figure 11.1). Both software and hardware go hand in hand; you cannot have one without the other. Even though hardware is the physical part of a computer, it is nothing unless it has software to control it. In a way, hardware is like a car without a driver; one needs both to get the work done. Software is a set of instructions that tells the hardware what to do and how to perform the requested actions. Thus, hardware and software share a special relationship. If hardware is the “heart” of a computer system, software is its “soul.” Both are complementary to each other.
Figure 11.1 Hardware and Software
An analogy can be taken of a video game system, which comprises a console, games cassettes, joystick, and display screen as the hardware. The games in the cassettes can be considered as the software. To play a particular game, the cassette of that game has to be loaded on the console and then the game can be played. Similarly, to get a particular job done by a computer, the relevant software is loaded in the storage device, which makes a computer perform the desired functions. Therefore, it is evident that the software is vital. Another inference from this analogy is that different software can be used on the same hardware to perform different jobs, just as different games can be played on the same console by using different cassettes.
Software can be categorized as system software and application software (see Figure 11.2). System software is a generic term for referring to any computer program whose purpose is to help the user to run the computer system, whereas application software employs the capabilities of a computer directly to a task that the user wishes to perform. As an analogy, we can equate an electric bulb to an application and the electric power generation plant to a system. The power plant merely generates electricity. It is not really of any use until harnessed to an application like the electric bulb, which performs a service that the user desires.
Figure 11.2 Software Categories
System software consists of several programs, which are directly responsible for controlling, integrating, and managing the individual hardware components of a computer system. You must have noticed that a new computer system is always accompanied with some software stored in either a CD or a DVD, which is supplied by the manufacturer. This software manages and supports the computer system and its information processing activities.
System software is more transparent and less noticed by the users as it usually interacts with the hardware or the applications. This software provides a programming environment in which programmers can create applications to accommodate their needs. This environment provides functions that are not available at the hardware level and performs the tasks related to the execution of an application program. Hence, system software acts as an interface between the hardware of the computer and the software applications (see Figure 11.3).
Figure 11.3 System Software, Application Software, and Hardware
In simple terms, system software makes the computer functional. It provides basic functionality like file management, visual display, keyboard input, etc., and are used by application software to accomplish these functions. Some examples of system software are operating systems, device drivers, language translators, and system utilities.
Operating System: It is the first layer of software loaded into the computer memory when it starts up. As the first software layer, all other software that gets loaded after it depends on it for various common core services. These common core services include disk access, memory management, task scheduling, and user interfacing. In addition, the operating system ensures that different programs executing at the same time do not interfere with each other. It provides a software platform on top of which other programs can run. In simple words, the operating system organizes and controls the hardware. Examples of operating systems are Windows XP, UNIX, and Linux. The basic functions of an operating system are (see Figure 11.4 also):
Figure 11.4 Operating System
Device Drivers: Device drivers are system programs, which are responsible for proper functioning of devices. Every device, whether it is a printer, monitor, mouse, or keyboard, has a driver program associated with it for its proper functioning. Whenever a new device is added to the computer system, a new device driver must be installed before the device is used. In modern operating systems, most hardware drivers, such as the keyboard driver, come with the operating system. A driver acts like a translator between the device and program (typically, an operating system) that uses the device. For example, when a user prints a document, the processor issues a set of generic commands to the printer driver, and the driver translates those commands into specialized instructions that the printer understands. Note that each device has its own set of specialized commands that only its driver understands. A device driver is not an independent program; it assists and is assisted by the operating system for the proper functioning of the device (see Figure 11.5).
Figure 11.5 Device Drivers
Language Translators: Computers only understand machine language that is a language consisting of 0's and 1's. However, it is difficult for a programmer to understand the machine language. To ease the burden of a programmer, special programming languages called high-level programming languages were developed that resemble natural languages like English. Since computer understands only machine language, a tool is required which could translate a program written in a high-level programming language to machine language. Hence with every programming language, a language translator is also developed, which accepts the programs written in the programming language and transforms them into a form suitable for execution (see Figure 11.6). In other words, language translators help in converting programming languages into machine language. To be precise, they convert programming statements into the 0's and 1's that the computer is able to process. Language translators are divided into three major categories: compiler, interpreter, and assembler, which have been discussed in Chapter 10, “Computer Programming and Languages.”
Figure 11.6 Translating Source Code into Executable Code
Typical software generally comprises millions of lines of programming statements or code. The code is divided into logical groups and stored in different independent modules so that debugging and maintenance of the code becomes easier. Before execution, different object codes resulting from the independent modules have to be linked together to create an executable program. A linker is a system program that links together several objects, modules, and libraries to form a single, coherent program (executable program). The part of the operating system that brings an executable file residing on disk into memory and executes it is known as loader.
System Utility: System utility programs perform day-to-day tasks related to the maintenance of the computer system. They are used to support, enhance, and secure existing programs and data in the computer system. They are generally small programs, having specific tasks to perform. Some utility programs are usually provided along with the operating system, some are free while some need to be purchased from the third-party commercial vendors. Most common functions of system utilities include:
The most often seen software by a user is the application software. It is used to accomplish specific tasks rather than just managing a computer system. For a user, the computer system has no specific use without the application software. Application software may consist of a single program, such as Microsoft's Notepad (for writing and editing simple text), or a collection of programs, which work together to accomplish a task such as database management software. Application software may also include a larger collection of related but independent programs and packages (a software suite), which have a common user interface or shared data format, such as Microsoft Office suite.
Application software is dependent on system software. A system software (like operating system) acts as an interface between the user and the computer hardware, while application software performs specific tasks. Applications are softwares that perform tasks for the user besides helping the computer operate, which is the task of system software. Application software is controlled by system software, which manages hardware devices and performs background tasks for them. The distinction between the two is important. Without system software, the computer will not run, and without application software, the computer, no matter how powerful, will not be helpful in meeting user requirements. Think of it this way—applications apply the computer's thinking power to business tasks such as tracking the general ledger or billing your customers. Figure 11.7 illustrates that application software executes on the system software, which lies on the hardware layer.
Figure 11.7 Relationaship between Application and System Software
Application software ranges from games, calculators, and word processors (document creating programs), to programs that paint images on screen (image editors). Applications represent real world tasks. They can be easily divided by looking at exactly what function they serve. Some of the most commonly used application software are discussed below.
Word Processors: A word processor is a software used to compose, format, edit, and print electronic documents (see Figure 11.8). Word processing is one of the earliest applications for Office productivity and the personal computer. It involves not only typing, but also checking the spelling and grammar of the text and arranging it correctly on the page. A variety of different typefaces are available for a variety of effects. It is possible to include pictures, graphs, charts, and many other things within the text of the document. It also allows for changes in margins, fonts, and colour. Nowadays, virtually all personal computers are equipped with a word-processing program, which has functions for writing letters, reports or other documents, and printing. Examples of some well-known word processors are Microsoft Word and WordPerfect.
Figure 11.8 Word Processor
Spreadsheets: One of the first commercial uses of computers was in processing payroll and other financial records, so the programs were designed to generate reports in the standard “spreadsheet” format used by bookkeepers and accountants. A spreadsheet application is a rectangular grid, which allows text, numbers, and complex functions to be entered into a matrix of thousands of individual cells. The spreadsheet provides sheets containing cells, each of which may contain text and/or numbers. Cells may also contain equations that calculate the results from the data placed in other cells or a series of cells. A simple example might be a column of numbers totalled in a single cell containing an equation relating to that column (see Figure 11.9).
Figure 11.9 Spreadsheet Application
Spreadsheet software is used predominantly for accounting and other numerically based tasks, because financial and mathematical data and analysis are often managed in a tabular style, with columns of financial figures being manipulated and then influencing other data computations. Microsoft Excel and Lotus 1-2-3 are examples of spreadsheet applications.
Image Editors: Image editor programs are designed specifically for capturing, creating, editing, and manipulating images. These graphic programs provide a variety of special features for creating and altering images. In addition to offering a host of filters and image transformation algorithms, some image editors also enable the user to create and superimpose layers. Most graphic programs have the ability to import and export one or more graphic file formats. These computer programs enable the user to adjust an image to improve its appearance. With image editing software, one can darken or lighten an image, rotate it, adjust its contrast, crop out extraneous detail, and much more. Examples of these programs are Adobe Photoshop, Adobe Illustrator, and CorelDraw (see Figure 11.10).
Database Management Systems: Database management software is a collection of computer programs that allow storage, modification, and extraction of information from a database (which is a collection of interrelated records) in an efficient manner. It supports the structuring of the database in a standard format and provides tools for data input, verification, storage, retrieval, query, and manipulation. When such software is used, information systems can be changed much more easily as the organization's information requirements change. New categories of data can be added to the database without disrupting the existing system. It also controls the security and integrity of the database from unauthorized access. FoxPro, MS-Access, and Oracle are database management systems (see Figure 11.11).
Figure 11.11 DBMS Application
Presentation Applications: A presentation is a means of expressing ideas in the form of visual images, audio, and animation. To prepare presentations, presentation software is used. Presentation software allows the users to create presentation by producing slides or handouts for presentation of projects. Essentially, such computer programs allow users to create a variety of visually appealing electronic slides for presentations. Microsoft PowerPoint is one of the most famous presentation applications (see Figure 11.12).
Figure 11.12 File System
Desktop Publishing Software: The term desktop publishing is usually used to describe the creation of printed documents using a desktop computer. It is a technique of using a personal computer to design images and pages, assemble type and graphics, and then using a laser printer or image setter to output the assembled pages onto a paper, film, or printing plate. Desktop publishing software is used for creating magazines, books, newsletters, and so on. Such software assist in creating sophisticated documents including complicated page designs, detailed illustrations, and camera-ready typefaces. Quark Express and Adobe PageMaker are desktop publishing software (see Figure 11.13).
Figure 11.13 Desktop Publishing Software
Once software (system or application) is carefully selected and purchased, it should be installed on the computer to start working with it. During the installation-process, files are copied to their appropriate folders and icons are added to the system menus and/or desktop. Software has recently become much more user friendly in this area. Most softwares handle the installation chores without a lot of input from the user.
The zip files format was originally created by Phil Katz in January 1989. A zip file is a collection of files compressed into a single unit (file) to take up less space and reduce download times. Before using a zip file, the user needs to unzip (uncompress) it. To zip or unzip a file, utility such as WINZIP, PKZIP, and NETZIP is used. In some cases, a self-extracting (exe) zip file can be created that does not require any utility to open and uncompress the file.
The process of copying software from CD-ROM (or floppy disks) to the hard disk and configuring it to work with the computer hardware is known as software installation (see Figure 11.14). Software vendors provide special programs, known as installer, to carry out the installation process. An installer decompresses the required files within it and places them in proper folders. It is the process of arranging a program in a computer system such that the program works as desired by the user. The first step in installation is to locate the actual installation file. Installation files usually have the extension .EXE or .ZIP. If the installation is of .EXE extension (usually setup.exe or install.exe), simply double-click it and follow the instructions that appear on the screen. On the other hand, if the file has a .ZIP extension, the user needs to unzip the compressed files and then install the software.
Figure 11.14 Software Installation Process
Usually software needs timely maintenance and upgrades to cater to the growing needs of the users and hardware changes. Sometimes the older version of the software (or parts of it) is replaced by their newer versions. This process of adopting a newer version of existing software with an enhanced feature is known as software upgrade. Generally, a new release (or version) of software contains new functionalities and upgrades are numbered. For example, various upgrades of Microsoft Internet Explorer had the versions IE4.0, IE5.0, IE5.5, and IE6.0.
Apart from software upgrade, the existing software also undergoes the process of update. Software update is a new release (or version) of software that is generally understood to be an error-correction release and does not contain new functionality. A software update usually adds relatively minor new features to a product or corrects errors (bugs)found since the program has released. Another important term related to software upgrade and update is software patch. A software patch is a collection of one or more files that correct flaws in the performance, reliability, or security of a specific software product. Each patch remedies a specific set of reported errors in the version of the product to which the patch applies. Every patch is identified by a unique number, such as “patch567.” The number is used in manufacturing to identify the errors that the patch corrects (see Figure 11.15).
Figure 11.15 Software Upgrade, Update, and Patch
Sometimes software is installed just for testing or perhaps it has been superseded by a better software. Hence, unwanted software should be uninstalled, that is, cleanly removed. Uninstall program completely removes all files of that program and all associated files in other directories. Note that simply deleting the folder in which the software is stored will not remove all the files related to that software; it needs to be uninstalled to remove all the linked files of the software. When a program is installed, its files are copied to the system disk, and changes are made to certain system files and folders to allow the program to work properly. Properly uninstalling a program means deleting all the files and undoing any changes made to system files.
Software piracy is the unauthorized copying of an organization's internally developed software or the illegal duplication of commercially available software. While purchasing software, the user gets a licence to use the application but it cannot be copied on other machines. The use of the software must comply with the product licence agreement that is included with the software. A software license is a type of proprietary licence, which acts as a memorandum of contract between the producer and the user of computer software. It is sometimes also called an end-user license agreement (EULA), which specifies the permissions granted by the owner to the user.
There are six basic forms of software piracy, and all are harmful for the software publisher as well as the for the end user.
Softloading: Softloading (also known as softlifting) means sharing a program with someone who is not authorized by the licence agreement to use it. A common form of softloading involves purchasing a single licensed copy of software and then loading the software onto several computers, in violation of licensing terms. For example, sharing software with friends, co-workers, and others.
Software Counterfeiting: Software counterfeiting means producing fake copies of software and making it look authentic. This involves providing the packaging box, CDs or floppies, and manuals, all designed to look like the original product. Most commonly, a copy of a CD is made with a CD burner, and a photocopy of the manual is made. Counterfeit software is sold on street corners, and sometimes unknowingly sold even in retail stores. Counterfeit software is sold at prices far below the actual retail price.
Internet Downloading: It is the fastest growing form of piracy. With the growing number of users online and with the rapidly increasing connection speeds, the exchange of software on the Internet has attracted an extensive following. Currently, there are hundreds of thousands of “warez” sites providing unlimited downloads to any user. Often, the software provided through these warez sites is cracked to eliminate any copy protection schemes.
Renting: It involves someone renting out a copy of software for temporary use, without the permission of the copyright holder. The practice, similar to that of renting a video of a movie, violates the licence agreement of software.
Hard Disk Loading: This form of piracy involves installing an unauthorized copy of software onto a computer being sold to the end user. It is often committed by hardware dealers. This makes the deal more attractive to the buyer, at virtually no cost to the dealer. Dealer usually does not provide the buyer with manuals or the original CDs of the software.
Licence Misuse: Software is distributed under special discount licences to high-volume customers, computer manufacturers, or academic institutions. After getting a copy of software, manufacturers, customers, or institutions redistribute the software to others who do not hold or qualify for these licences. This constitutes the misuse of licence. Some of the ways a licence can be misused are:
Software piracy all over the world has become a major problem. To avoid this, several licence and copyrights are issued to the software and the users. A copyright is a form of intellectual property that grants its holder the legal right to restrict the copying of an original, creative expression for a defined period. Nowadays, some software developers use software copyrights in order to ensure that the software they develop will remain free, using licences such as the general public license (GPL). It is a good idea to put the copyright notice on the computer software both on the packaging and in the program as it serves as a warning to others that the software is protected by copyright. In addition to the copyright notice, warning against unauthorized use should also be mentioned. The general rule is that the creator of some work is the first owner of copyright on it. Here are some guidelines to prevent software piracy:
Piracy affects us all. It is not just the IT industry that loses out to software piracy; the user is often left in a vulnerable position. They will not be entitled to technical support or have access to information regarding upgrades. Illegal products may be incomplete, virus contaminated, or their functionality may be impaired. Hence, if software consumers have any information regarding the abuse or illegal sale of software, they should contact the software copyright holder.
Some of the common terms used in the field of software are given below:
Public Domain Software: Public domain software refers to any program that is not copyrighted. This software is free and can be used without restrictions, that is, the user can copy, distribute, and even modify the software without obtaining permissions from the software developer. Usually, public domain software is offered through websites, electronic bulletin boards, user groups, and other sources.
Freeware: The term freeware is commonly used for copyrighted software that is given free by its owner. Though it is available for free, the owner retains the copyright, which means that a user does not have the right to modify anything in the software. Thus, freeware software permits redistribution but not modification. Freeware usually carries a licence that permits redistribution but may have other restrictions such as limitations on its commercial use. Freeware is an umbrella term that covers:
Shareware: Shareware is the software that is distributed free on a trial basis. It allows people to redistribute copies for a limited period. Anyone who continues to use a copy is required to pay a licence fee. Therefore, the free use of the software is usually limited to a certain period. It is distributed without payment ahead of time as is common for proprietary software. Typically shareware software is obtained free of charge by downloading, thus allowing one to try out the program ahead of time. It is accompanied by a request for payment, and often payment is required as per the terms of the licence past a set period. WinZip software is an example of shareware, which is distributed with a 30-day trial period.
Commercial Software: Commercial software represents the majority of software purchased from software publishers. This software comes pre-packaged, is available in software stores, and can be obtained through the Internet. It is developed by business organizations, which aim to earn profits from its use. It is always copyrighted. The licensing restrictions vary somewhat from vendor-to-vendor and product-to-product, and change frequently. It is generally more expensive than competing shareware products, for example Microsoft Windows.
Open-Source Software: Open-source software is created by generous programmers and released into the public domain for public use. The underlying programming code is available to the users so that they may read it, make changes to it, and build new versions of the software incorporating their changes for software. Usually these softwares are distributed under an open-source licence—GPL. Such a licence requires that the source code should be distributed along with the software, and that the source code is freely modifiable, with least restrictions, such as the requirement to preserve the author's names and copyright statement in the code. The Linux operating system is an example of open-source software.
Proprietary Software: In general, proprietary describes a technology or product that is owned exclusively by a single company that carefully guards knowledge about the technology or the product's internal working. Some proprietary products can only function properly, if at all, when used with other products owned by the same company. Example of a proprietary product is Adobe Acrobat, whose portable document format (PDF) files can only be read with Acrobat Reader. Proprietary software is also called as closed-source software (CSS). Its use, redistribution, or modification are prohibited or restricted so much that the user effectively cannot use it freely.
Firmware: Firmware is a program or data that has been written onto read-only memory (ROM). For example, the BIOS (which is installed inside a computer on a chip) checks different parts of the system before loading the operating system into memory. Being firmware, it ensures that it will always be available and will not be damaged in the case of a power failure. ROMs, PROMs, and EPROMs that have data or programs recorded on them are firmware (see Figure 11.16).
Figure 11.16 Firmware
18.216.231.245