CS10001 Class Note: Chapter 4Software Basics: The Ghost in the Machine
Objectives
Describe three fundamental categories of software and their relationship
Explain the relationship of algorithms to software
Discuss the factors that make a computer application a useful tool
Describe the role of the operating system in a modern computer system
Describe how file systems are organized
Outline the evolution of user interfaces from early machine-language programming to
futuristic virtual-reality interfaces
Explain why unauthorized copying of software is against the law
Linus Torvalds and the Software Nobody Owns
Linus Torvalds
Best known as the Linux creator
The Linux operating system is the best-known example of open source software.
Today Linux powers Web servers, film and animation workstations, scientific
supercomputers, and a handful of handhelds.
Computer programs
The three major categories of software:
Compilers and other translator programs: enable programmers to create other software
Software applications: serve as productivity tools to help computer users solve problems
System software: coordinates hardware operations and does behind-the-scenes work the
computer user seldom sees
Application vs. Operating Systems
Processing with Programs
Food for thought
The hardware in a computer system is equipped to produce whatever output a user
requests.
A fast, stupid machine
Programmers begin with an algorithm: a set of step-by-step instructions written in a
natural language, for example, English.
The steps are often ambiguous, error-prone generalities.
The steps are translated into the vocabulary of a programming language.
Debugging is done to correct errors.
The language of computers
Machine language: numeric codes that represent basic computer operations
High-level language: falls between machine language and natural human language (C++,
Java, VB.NET, etc.)
Compilers translate high-level language into machine language.
Natural languages: resembles languages used by humans
Translation software
Software Applications: Tools for Users
Consumer applications
Many software companies have replaced
or supplemented the printed documentation with:
Tutorials
Reference materials
Help files
Online help
Updating: minor bug fixes and enhancements
Upgrading: Users can upgrade a program to the new version by paying an upgrade fee to
the software manufacturer.
Newer releases often have additional features and fewer bugs.
Service Packs contain minor revisions and are usually free.
Compatibility
It allows software to function properly with the hardware, operating system, and
peripherals.
Programs written for one type of computer system; may not work on another.
Disclaimers
Software manufacturers limit their liability for software problems by selling software
“as is.”
EULA (End User License Agreement )
Licensing: Commercial software is copyrighted so it can’t be legally duplicated for
distribution to others.
Software license
Volume licenses
Distribution of software via:
Direct sales
Retail stores
Mail-order catalogs
Web sites
Not all software is copyrighted
Public domain software
Shareware
Web applications
Web applications fall into several categories:
Some Web applications perform simple data-processing tasks that could also be
performed by traditional programs running on stand-alone PCs
Most Web applications take advantage of the Web’s connectivity
Many Web applications leverage the Web’s strength as a huge repository of
information
Some Web applications support online business transactions
News-oriented Web applications provide up-to-the-minute reports
Other Web applications support a more traditional form of information broadcasting
Vertical-market & custom software
Tends to cost far more than mass-market applications
Job-specific software:
Medical billings
Library cataloging
Legal reference software
Restaurant management
Single-client software needs
System Software: The Hardware-Software Connection
What the operating system does
System software
A class of software that includes the operating system and utility programs, handles
these details and hundreds of other tasks behind the scenes.
Operating system functions:
Supports multitasking
Manages virtual memory
Maintains file system
Responsible for authentication and authorization
Utility programs and device drivers
Utility programs
Serve as tools for doing system maintenance and repairs that aren’t automatically
handled by the operating system
Make it easier for users to:
Copy files between storage devices
Repair damaged data files
Translate files so that different programs can read them
Guard against viruses and other potentially harmful programs (as described in the
chapter on computer security and risks)
Compress files so they take up less disk space
Perform other important, if unexciting, tasks
Symantec Norton Utilities is a popular utility package that includes software tools for
recovering damaged files, repairing damaged disks, and improving disk performance.
Device drivers
Small programs that enable I/O devices—keyboard, mouse, printer, and others—to
communicate with the computer
Included with the operating system, bundled with peripherals, or given away as
separate products
Where the operating system lives
Some computers store their operating system in ROM.
Others include only part of it in ROM.
The remainder of the operating system is loaded into memory in a process called
booting, which occurs when you turn on the computer.
Most of the time the operating system works behind the scenes.
Interacting with the operating system, like interacting with an application, can be intuitive
or challenging, and it depends on something called the user interface.
The User Interface: The Human–Machine Connection
User interface
The interface defines the look and feel of the computing experience from a human point
of view.
Desktop operating systems
MS-DOS is an operating system in which the user interacts using characters rather than
graphics:
Letters
Numbers
Symbols
Features include:
Command-line interface (commands are typed)
Menu-driven interface (commands are chosen from on-screen lists)
GUI (Graphical User Interfaces), pronounced “gooey”
Mac OS was developed by Macintosh in 1984 using GUI.
Microsoft Windows is now the most popular operating system.
UNIX and Linux
UNIX was developed at Bell Labs before personal computers were available.
Linux was created by Linus Torvalds and continues to be a work-in-progress.
UNIX has dominated the multi-user server market for decades.
Many choose to use dual-boot PCs to switch between Windows and Linux, simply, by
rebooting.
UNIX allows a timesharing computer to communicate with several other computers or
terminals at once.
Linux is free for anyone to use or improve.
UNIX remains the dominant operating system for Internet servers.
Some form of UNIX is available for personal computers, workstations, servers,
mainframes, and supercomputers.
Hardware and software platforms
Windows Vista – 5 versions
Windows Server 2008
Windows XP
Windows CE
Windows Mobile
Mac OS X (10)
Mac OS 9
Linux, Sun solais, and UNIX variations
BlackBerry OS
Palm OS
Cross-platform applications, such as Microsoft Office and Adobe Photoshop, are
programs available in similar versions for multiple platforms.
Mac users can buy software emulation programs that:
Create a simulated Windows machine in the Mac
Translate all Windows-related instructions to Mac equivalents
Future applications may be tied to networks rather than to desktop platforms
Microsoft.NET strategy
Java, a platform-neutral computer language developed by Sun Microsystems for use
on multiplatform networks
Virtual machines
Tomorrow’s user interfaces
Future user interfaces will be built around emerging development technologies such as:
The end of applications
Natural-language interfaces
Agents
Virtual realities
File Management: Where’s My Stuff?
Organizing files and folders
One solution to this problem is to organize data files logically.
Both Windows and the Mac support the notion of common system folders with selfexplanatory names:
My Documents (Documents)
My Pictures (Pictures)
My Music (Music)
File-management utilities
View, rename, copy, move, and delete files and folders
Hierarchies help with organization
Help with locating a file
Get size, file type, and last modification date
Managing files from applications
Operations: Open, Save As, Save, and Close
Locating files
Modern operating systems include search tools that can help you find files
New operating systems have built in file management tools to help users keep track of
files
Virtual folders can “contain” files located all over your computer
Defragmentation: the cure for fragmented files
As you work with a file, its contents become scattered into different tracks and sectors of
your hard drive.
Software Piracy and Intellectual Property Laws
The piracy problem
The software industry is a $50 billion a year business sector.
Billions of dollars and tens of thousands of jobs are lost each year to software pirates.
One-third of all software is illegally copied.
Intellectual property and the law
Intellectual property includes the results of intellectual activities in the arts, science, and
industry.
Laws ensure that mental labor is justly rewarded and encourage innovation. (Copyright,
Trademark, Patent, etc.)
The information age requires the outdated and inconsistent intellectual property laws to
be changed and adapted.
Inventing the Future Tomorrow’s Evolving Applications and Interfaces
The WIMP (windows, icons, menus, and pointing devices) interface is easier to learn and use
than earlier character-based interfaces.
The SILK interface incorporates many important emerging user interface software
technologies:
Speech and language
Image and virtual reality
Knowledge
Lesson Summary
This chapter provides some general answers to the “What is software” question, along with
details about each of the three major categories of software:
Compilers and other translator programs, which enable programmers to create other
software
Software applications, which serve as productivity tools to help computer users solve
problems
System software, which coordinates hardware operations and does behind the scenes
work the user seldom sees
Popular operating systems include Windows, Mac OS X, UNIX, and Linux.
The user interface is a critical communication component in operating systems, applications,
programming languages, and utilities.
Tomorrow’s interfaces are likely to rely on three-dimensional graphics and animation to
create virtual realities.
Software piracy is a major concern in the computer industry.