ZeePedia

COMPUTER SOFTWARE: Operating Systems, Device Drivers, Trialware

<< structure of HTML tags, types of lists in web development
Operating System: functions, components, types of operating systems >>
img
Introduction to Computing ­ CS101
VU
LESSON 10
COMPUTER SOFTWARE
To discuss the role of software in computing systems
To learn to differentiate among software belonging to the system and application categories
To learn about software ownership
We mentioned in Lesson 4 that at the highest level, two things are required for computing
Hardware: The physical equipment in a computing environment such as the computer and its peripheral
devices (printers, speakers...)
Software: The set of instructions that operates various parts of the hardware. Also termed as "computer
program"
Computer Software
The HW needs SW to be useful; the SW needs HW to be useful
When the user needs something done by the computer, he/she gives instructions in the form of SW to
computer HW
These instructions need to be written in a language that is readily understood by computer uP
10.1 Machine Language
A system of codes directly understandable by a computer's CPU is termed this CPU's native or
machine language. Although machine code may seem similar to assembly language they are in fact
two different types of languages. Machine code is composed only of the two binary digits 0 and 1.
Every CPU has its own machine language, although there is considerable overlap between some. If CPU
A understands the full language of CPU B it is said that A is compatible with B. CPU B may not be
compatible with CPU A, as A may know a few codes that B does not.
10.2 Language Translators
Human programmers write programs in a language that is easy to understand for them. They use
language translators to convert that program into machine language. It converts the human
understandable code in uPs understandable code, i.e. a language that is easy to understand for the uPs
10.3 Software Development
A software development process is a process used to develop computer software. It may be an ad hoc
process, devised by the team for one project, but the term often refers to a standardised, documented
methodology which has been used before on similar projects or one which is used habitually within an
organisation.
The SW development process involves many steps, and coding, that is typing the instructions in a high-
level language is only a small part of that process ­ taking-up only around 15% of the effort
Hardware
Operating System
Device Driver
Utility
Language
Scientific
Business
Productivity
Entertainment
Translator
Apps.
Apps.
Apps.
Apps.
System software
Application software
51
img
Introduction to Computing ­ CS101
VU
The Software Development Process
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design
Implementation
10.4 Major Types of SW
System SW
System software is responsible for controlling, integrating, and managing the individual hardware
components of a computer system.
System software performs tasks like transferring data from memory to disk, or rendering text onto a
display Specific kinds of system software include loading programs, operating systems, device drivers,
compilers, assemblers, linkers, and utilities.
Software libraries that perform generic functions also tend to be regarded as system software. System
software stored on non-volatile storage on integrated circuits is usually termed firmware. These
generally perform the background tasks in a computer. These programs, many times, talk directly to the
HW.
Application SW
Programs that generally interact with the user to perform work that is useful to the user. These programs
generally talk to the HW through the assistance of system SW.
10.5 System SW are programs that ...
Control the overall operation of the computer
OS
Interact directly with HW
Device drivers
Perform system management & maintenance
Utilities
Are used to develop or maintain other programs
Language translators
10.6 Operating System
It performs its work invisibly to control the internal functions of a computer, e.g. maintaining files on
the disk drive, managing the screen, controlling which tasks the uP performs and in what order. It
interacts directly with the computer HW. Other SW normally does not directly interact with the HW,
e.g.
Windows
Mac OS
Linux
UNIX
Solaris
DOS
CP/M
VMS
Firmware
ROM is a component of OS that permanently stored on a chip. It is a firm ware program. When a
computer is powered-on, it is the first program that it always executes. Firmware consists of startup and
52
img
Introduction to Computing ­ CS101
VU
a few low-level I/O routines that assist the computer in finding out and executing the rest of the OS. On
IBM-compatible PC's, it is called BIOS
10.7 Utilities:
It is a small program that provides an addition to the capabilities provided by the operating system. In
some usages, a utility is a special and nonessential part of the operating system. These are the computer
programs that perform a particular function related to computer system management and maintenance
Examples:
1.  Anti-virus SW
2.  Data compression SW
Disk optimization SW
Disk backup SW
10.8 Language Translators
Programs that take code written in a HLL and translate it into a low-level language that is easily
understood by the uP
1. Compiler translates the program written in a HLL in one go. The translated code is then used by the
uP whenever the program needs to be run
2. Interpreter translates the HLL program one statement at time. It reads a single statement, translates
it into machine language and passes that machine language code to the uP and then translates the next
statement, and so on ...
10.9 Device Drivers
A device driver, often called a driver for short, is a computer program that is intended to allow another
program (typically, an operating system) to interact with a hardware device. Think of a driver as a
manual that gives the operating system (e.g., Windows) instructions on how to use a particular piece of
hardware.
A device driver essentially converts the more general input/output instructions of the operating system
to messages that the device type can understand.
10.10 Application SW
Application SW are programs that interact directly with the user for the performance of a certain type of
work
Scientific/engineering/graphics SW
Mathematica; AutoCad; Corel Draw
Business SW
The billing system for the mobile phone company
Productivity SW
Word processors; Spreadsheets
Entertainment SW
Games
Educational SW
Electronic encyclopedias; The VU Web site
53
img
Introduction to Computing ­ CS101
VU
Hardware
Operating System
Device Driver
Utility
Language
Scientific Business Productivity Entertainment
Translator
Apps.
Apps.
Apps.
Apps.
System software
Application software
10.11 Another way of classifying SW
Shrink-Wrapped SW
You can just go to a shop and buy it
Custom-built SW
You cannot just go to a shop and buy it; you have to find someone who can develop it for you
Shrink-Wrapped SW
SW built in such a way that it is useful for many different users in many different ways.
Example: MS Word. Individuals use it and so do many large corporations. It is used for writing one-
page letters and also to typeset books
Custom-Built SW (1)
These SW are built for a particular organization to fulfill the needs of that particular organization. This
type of SW is expensive because the builder has to recoup costs and make a profit from a single sale
Example: A system for predicting the preferences of the Nortwest Airline pilots
Custom-Built SW (2)
This is other type of custom built SW. The delivery time is longer. Customers get more productivity out
of it because it is built according to their exact specifications ­ just like a custom-built shoe fits better,
but generally is more expensive, and requires a longer period for delivery
10.12 Who Owns Software?
Generally, although a piece of SW that is being used by millions, it is not owned by any of them!
Instead, it is owned by the maker of the SW
The makers let us use their SW but keep the ownership to themselves. When we buy a SW package, we
do not really buy it ­ we just buy a license that allows us to use it, the ownership stays with the maker
However, there are variations on this theme ...
10.13 Main types of SW licensees
Proprietary ­ Most software on a Windows PC or a Macintosh belongs to this category
Freeware ­ Most software on a Linux PC belongs to that category
54
img
Introduction to Computing ­ CS101
VU
Shareware ­ the category which lies between the above two categories
10.14 Proprietary SW License
Proprietary software, as defined by the Free Software Foundation, means any software that is not free
software or is only partially free. The modification, use and redistribution is prohibited, or requires
express permission the originator. The user needs to pay the maker of the SW for buying a license that
allows the user to use the SW
The license, generally, does not transfer the ownership of the SW; it just allows the user to use it. The
user is legally barred from making copies of the licensed SW. Generally, the license is for the personal
use only. Most SW in use in the world is of this type.
Examples: Windows, Mac OS, MS Word, Adobe Photoshop, Norton Antivirus
Types of Proprietary Licenses
Single-user license
Multi-user license
Concurrent-user license
Site license
10.15 Freeware SW License
It is also known as "Public Domain SW". It allows the user to free use of the SW. The author, however,
generally retains ownership. It can usually be downloaded from various Web sites.
Examples: Linux; LaTeX; Netscape Web browser ­ the Navigator; MS Web browser ­ the Internet
Explorer
10.16 Open-Source SW License
Some authors give away the machine code only, which is extremely difficult to modify, if at all. Others
even give away the high-level language source code so that users can make changes according to their
own requirements. The later practice is called open-source licensing.
Generally is any computer software whose source code is either in the public domain or, more
commonly, is ed by one or more persons/entities and distributed under an open-source license .
Such a license may require that the source code be distributed along with the software, and that the
source code be freely modifiable, with at most minor restrictions, such as a requirement to preserve the
authors' names and statement in the code,
Examples: Linux; Netscape Navigator
10.17 Shareware SW License
Shareware is software that 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. A shareware program is accompanied by a request for payment, and
often payment is required per the terms of the license past a set period of time. shareware are similar in
that they can be obtained and used without monetary cost. Usually shareware differs from open source
software in that requests of voluntary "shareware fees" are made, often within the program itself, and in
that source code for shareware programs is generally not available in a form that would allow others to
extend the program.
A shareware's program source, maintenance and extensibililty can sometimes be negotiated for a
licensing fee with the author(s) similar to standard proprietary software.
Examples: WinZip, Download Accelerator
55
img
Introduction to Computing ­ CS101
VU
10.18 Trialware
It is similar to shareware but difference is that the SW is usable for a short period only. When the period
is expired, it is no more in use until the license is not purchased. The trial period may vary according to
its developer. This period may range from a week to a few months.
It can be downloaded from the Internet or alternatively.
What have we learnt today?
We have found out about the role software plays in a computing environment
We also learned to distinguish between software belonging to the system and application categories
We also discussed the different types of software licenses
Topics of some of the future lectures
Operating system
Application SW
Productivity SW
Word processor
Spreadsheets
Presentation making
Databases
Programming Languages
The SW development process
The Web development series of lectures is clearly focused on developing SW
Focus of the Next Lecture
The role of the OS in a computing environment
The various functions that an OS performs
The main components of an OS
Various types of OSes
56
Table of Contents:
  1. INTRODUCTION
  2. EVOLUTION OF COMPUTING
  3. World Wide Web, Web’s structure, genesis, its evolution
  4. Types of Computers, Components, Parts of Computers
  5. List of Parts of Computers
  6. Develop your Personal Web Page: HTML
  7. Microprocessor, Bus interface unit, Data & instruction cache memory, ALU
  8. Number systems, binary numbers, NOT, AND, OR and XOR logic operations
  9. structure of HTML tags, types of lists in web development
  10. COMPUTER SOFTWARE: Operating Systems, Device Drivers, Trialware
  11. Operating System: functions, components, types of operating systems
  12. Forms on Web pages, Components of Forms, building interactive Forms
  13. APPLICATION SOFTWARE: Scientific, engineering, graphics, Business, Productivity, Entertainment, Educational Software
  14. WORD PROCESSING: Common functions of word processors, desktop publishing
  15. Interactivity to Forms, JavaScript, server-side scripts
  16. ALGORITHMS
  17. ALGORITHMS: Pseudo code, Flowcharts
  18. JavaScript and client-side scripting, objects in JavaScript
  19. Low, High-Level, interpreted, compiled, structured & object-oriented programming languages
  20. Software Design and Development Methodologies
  21. DATA TYPES & OPERATORS
  22. SPREADSHEETS
  23. FLOW CONTROL & LOOPS
  24. DESIGN HEURISTICS. Rule of thumb learned through trial & error
  25. WEB DESIGN FOR USABILITY
  26. ARRAYS
  27. COMPUTER NETWORKS: types of networks, networking topologies and protocols
  28. THE INTERNET
  29. Variables: Local and Global Variables
  30. Internet Services: FTP, Telnet, Web, eMail, Instant messaging, VoIP
  31. DEVELOPING PRESENTATIONS: Effective Multimedia Presentations
  32. Event Handlers
  33. GRAPHICS & ANIMATION
  34. INTELLIGENT SYSTEMS: techniques for designing Artificial Intelligent Systems
  35. Mathematical Functions in JavaScript
  36. DATA MANAGEMENT
  37. DATABASE SOFTWARE: Data Security, Data Integrity, Integrity, Accessibility, DBMS
  38. String Manipulations:
  39. CYBER CRIME
  40. Social Implications of Computing
  41. IMAGES & ANIMATION
  42. THE COMPUTING PROFESSION
  43. THE FUTURE OF COMPUTING
  44. PROGRAMMING METHODOLOGY
  45. REVIEW & WRAP-UP of Introduction to Computing