ch04 - Computer Science

advertisement
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.
Download