alert_red.gifupdated.gifLAST UPDATE: 10/20/06; 9/26/07alert_red.gif

Still Under  Reconstruction!
I am rewriting this, with better graphics, to make it more suitable for independent learning, and more efficiently Web oriented.
Note that the blinking text designates things that I need to work on; the material is not wrong, but can be improved.
(Don't worry, I don't like blinking text, either, so there will not be any in the finished product!)

LEARNING MODULE II
SOFTWARE

     This learning module covers computer software in general and system software in particular. It only surveys application software in its context with system software.  The reason is that application software is covered, in the Lab exercises of this course and is, thus, spread out over the whole course.  (The applications presented in this course are word processors, spreadsheets, database management programs, graphics tools, e-mail, and Web Browsers; see the Labs for treatment of them.) If you are an independent learner (not enrolled in the on-campus course), consult the Study Guide for this learning module before continuing.  In any case, if you haven't already done so, read the Introduction to the Study Guide (not available, until the course is taught online).

The primary goals of Learning Module II are:

  1. to provide a concise overall picture of software under the categories of system software and application software.
  2. to present the basics of system software in general and operation systems in particular as a background on which the lab component of the course can be built.  Unfortunately this requires that we cover chapter VIII of the textbook, out of sequence, after Chapter I along with Chapter II.
  3. to summarize and contrast the different categories of application software that are covered separately in the lab exercises.
TPQ 1: Rewrite the preceding objectives in terms of personal accomplishments to be attained after finishing the study of this learning module.

The sequence of presentations in this learning module is as follows.  You can click on any link to jump directly to that section.

  1. SOFTWARE CLASSIFICATIONS
  2. SOFTWARE FEATURES
  3. SYSTEM SOFTWARE
  4. TYPES OF OPERATING SYSTEMS
  5. DEFACTO O.S. STANDARDS
  6. APPLICATION SOFTWARE
  7. SUMMARY
  8.  
     Software is a general term that refers to computer programs which are collectively stored on secondary storage media. The following presentation begins with an overview of software in general and then focuses on System Software in particular. System Software is the foundation of a computer system, so it is the logical place to start the discussion of the subject of software. This presentation ends with a concise summary of Application Software which is prerequisite to the our study of Word Processing & Desktop Publishing, Graphics, Electronic Spreadsheets, Database Management, and Telecommunications, and Integrated Applications which will be the focus of the laboratory sessions where the exercises associated with these concepts are to be performed.  Software may be distributed commercial packages (purchased "off the shelf") , public domain ("freeware") minimal-cost shareware (try before you buy; buy on the honor system), or custom designed (by programmers employed by the institution using the software).  Open source software is freeware that may be modified by the owner, i.e. the source code is "open" to rewriting by anyone; it is a prime example of the "Open Source Movement".

1. SOFTWARE CLASSIFICATIONS:

       I like to separate all software into three categories  (See  FIGURE S-1*.) that I subdivide into groups of three to make them more memorable (I'll bet you can redraw the whole illustrations, minus the words, after a quick glance!)   However, as I mentioned in the OVERVIEW OF COMPUTERS Learning Module I, most introductory texts only distinguish two, __________(1) Software and _____________(2) Software (which must, by default, contain what I consider a distinct category, Control Software.)   FIGURE S-2 illustrates the software functionality (what different categories of software do and how they interact); note that, in this diagram, all the rectangles are software categories and all but the upper right rectangle are system software.   (FIGURE S-2 is actually from a single user viewpoint; contrast this with FIGURE S-4, which illustrates UNIX, a multi-user O.S.).


FIGURE S-1: SOFTWARE OVERVIEW
(FOR GENERIC LARGE-SCALE COMPUTER SYSTEMS)

Click on the above link to view FIGURE S-1; it is probably best viewed in a separate window that can be moved while reading this text at the same time.
(To do this, right click (on a PC) or hold the mouse button down (on the Mac) and select Open Link in a New Window from the pop-up menu.)

1.1 System Software (See Section 3, below):

System Software facilitates the use of a computer system for system maintenance, programming, running applications, etc. It has three main subcategorizes:

  1. Management Programs, which includes Operating Systems (such as Windows, MacOS, and Linux for microcomputers or UNIX for multi-user systems) as well as Database Management Systems (system software on multi-user systems, but application software on microcomputer systems) and communications software.
  2. Support programs include service programs that make a computer system "user friendly", e.g. GUIs like Windows 3.1 for MS-DOS or X Windows for UNIX as well as programs that monitor system usage, security, and performance and programs that maintain the system environment.
  3. Software Development programs including computer languages and software engineering tools.
1.2 Application Software (See Section 6, below):
  1. Application software converts the computer ( a general-purpose device) into a special-purpose "tool" that enhances user productivity.
  2. There are numerous categories of application software; see the list in section 6, below;  FIGURE S-2 lists a few common application application programs, relating them to system software as well as generic hardware of a single user system.
FIGURE S-2:
GENERIC SOFTWARE FUNCTIONS




SAQ 1: (a) What is the difference between system software and application software? 
(b) What is the PC equivalent of "INPUT-OUTPUT MANAGER" in Figure S-2.

2. SOFTWARE FEATURES:

2.1 Integrated Software vs. Application Suites:combines multiple applications:

  1. Integrated software combines two or more distinct kinds of programs into a single application. These have the advantages of (1) having common commands in the separate applications and (2) allowing one to produce output from any combination of the applications
    1. Typical integrated packages include five applications: a word processor, file management program, electronic spreadsheet, graphics program, and communications program.
    2. Example: Microsoft Works which is available in both the IBM and Macintosh environments.
  2. Application suites are stand-alone applications that are "packaged" together.
    1. Each application of a suite can be purchased and used independently of the other applications.
    2. All applications of a suite have a similar user interface and are designed to cooperate; modern suites allow one application to be opened within another, e.g. a wordprocessing document can contain a spreadsheet.
    3. Examples:
      1. The most commonly used general productivity application suite is Microsoft ________(3) which is available in FSU computer labs.
      2. Netscape _________(4) is a suit of communications applications that include Messenger (browser), Composer (HTML editor), Messenter (e-mailer and newsgroup client), and AOL Instant Messenger.
SAQ 2.1: What is the difference between an integrated package and a software suite?

2.2 User Interfaces:

  1. In general, the human-computer interface has two basic forms:
    1. command line interpreter (CLI) where instructions are typed using a specific syntax (grammar);
    2. graphical user interface (GUI) where icons (intuitively informative little pictures on a computer screen that represent disks, files, programs, etc. which can be opened/closed, copied, executed, etc.), dialog boxes (small information input boxes superimposed on the computer screen where user choices can be made using toggle switches, checklists, fill-in-the-blanks, etc.) and menus are manipulated by mouse, track ball, touch screen, etc. Palettes and toolboxes provide selections of graphic devices that can be used to enhance a document.  Note that GUIs can be built into the O.S. (Windows 95 and later and MacOS) or superimposed on a text-based O.S. (Windows 3.1 is superimposed on MS-DOS and UNIX shells are interfaces to the UNIX kernel; see FIGURE S-4).
  2. EXAMPLES: user interface with the Operating System (See Sec. 3.1, below.) include:
    1. CLIs like_______(5) MS-DOS (for micros), VMS for VAX minicomputers, and UNIX, and
    2. GUIs like _______(6), Windows, MacOS, X Windows for UNIX, etc.).
2.3 User Assistance:
  1. Documentation: Information packaged with software whose purpose is to explain the software's purpose, characteristics, and capabilities as well as to assist the user to make efficient use of its features. It may consist of written manuals and external documentation that can be shown on the computer screen while the software is running.
  2. On-line Help: Computerized documentation designed to provide context sensitive glossaries, step-by-step procedures, hints, etc. to the user. It is usually accessible from the keyboard or a menu in a GUI.
  3. Training: Tutorials that assist a new user to become familiar with and proficient in the use of a particular software product. It is usually both on paper and governed by software.
  4. Customer Support Services: Major software companies provide free 24-hour telephone assistance to registered purchasers of their software.
3. SYSTEM SOFTWARE (If possible, you should keep FIGURE S-1 open while reading this whole section.):

        System software is designed to act as an interface between users or their application programs and the computer system itself. System software has three basic categories: system management(which includes the operating system (O.S.), the foundation of system software), system support, and system development.

3.1 System Management:

  1. The BIOS (Basic Input Output System) is the most fundamental software of a computer system.  It is the firmware that "boots" your computer, i.e. that gets you computer started when you turn it on. (This feature is the basis of the BIOS being called a "bootstrap" program, particularly in older computer terminology.)  It checks your system hardware, loads the operating system and file system from secondary storage into RAM, executes the operating system and then turns control of the system over to the operating system.  (See Figure S-3)  For example on a PC, the BIOS is responsible for the scrolling data displayed about your computer system, before Windows screen appears. (On a Mac the BIOS is simply called the "firmware".)
    1. The BIOS also assists the operating system by governing the flow of data to and from peripheral devices, thus acting as an interface between input/output devices and the operating system. (See Figure S-3 where the BIOS is represented as a generic term "INPUT-OUTPUT MANAGER.)
    2. The BIOS typically is provided on EEPROM (electrically erasable programmable read only memory, explained in sec. of LM .)  This makes it possible to upgrade your system BIOS by "flashing your BIOS", i.e. writing a new program to the firmware.
FIGURE S-3:
BOOTING A COMPUTER TO STARTING AN APPLICATION

Compare FIGURE S-3 with Figure 8-3 in Shelly & Cashman and Figure 3-19 (old version).

SAQ 2.2: Replace "BOOTSTRAP" and "ROM", in Figure S-3, with their modern equivalents.
  1. The Operating System facilitates the (1) user's and/or (2) program's access to the computing system. Within the O.S., the Supervisor program governs computer operations, coordinates activities within the computer system, and controls system resources. In general the O.S. has three primary management functions:
    1. Job management (allocation and scheduling of the CPU): A single CPU can process only one program at a time; however, a CPU can be shared by giving sections of CPU time to different programs in a specified sequence.
      1. Processing may be interrupted by an event (e.g. the access of an I/O device) or by reaching the end of a time slice (a specified length of CPU time). The interrupt signals the execution of another application, which normally will be the continuation of one that was previously interrupted.  Because the processor is executing millions of instructions per second it appears to users to actually be running the applications simultaneously.
      2. Scheduling schemes govern the sequencing of programs. The simplest is the first-come-first-served scheme; a priority scheme gives CPU time according to the importance of the user or program.
    2. Resource management (allocation and scheduling of peripheral devices):
      1. The method of allocation varies according to the type of device.  Transfer of data to/from a device is controlled by its device driver, a program that controls a particular type of ___________(7) device. A device driver could be viewed as a "software interface" between the computer and the device (as opposed to the physical connection which would be its  "hardware interface").  (See Figure S-2 and the even better illustration from the Computer Desktop Dictionary.) Device drivers now come bundled with operating systems, particularly for PCs which boast of "plug and play" peripheral additions.(However, if you purchase a new device, for which the operating system has no embedded driver, you will have to install the new device driver.)  A device driver essentially converts the general input/output instructions, form the BIOS of the operating system, to instructions that the specific device can execute.
      2. Peripheral devices are allocated by the O.S. in response to the requests or requirements of the programming being run. Sequential access devices (e.g. tape drives) may be assigned for the program duration, but direct access (e.g. disk drives) devices can be assigned and released as needed.
      3. Spooling, which allows I/O to be stored on disk until needed, frees the computer for other tasks and allows more efficient usage use of I/O devices. For example, output can be spooled to a "printer server" and the user can continue to use his or her computer while the printing waits until a printer is available. See Figure 8-8 in Shelly & Cashman.
    3. Data management (allocation/scheduling of memory, both RAM & Secondary Storage):
      1. There are numerous O.S. strategies for sharing of RAM or secondary storage (which is essential to the efficiency of multitasking or multi-user systems).
      2. Basic Input/Output System (BIOS): converts keyboard characters to computer code and reverses this process to output to a secondary storage device or output device.
      3. Virtual memory O.S. allows a computer with limited RAM to be "fooled into thinking that its memory is larger" by replacing the part of a program that is in RAM (when it is finished executing) with the subsequent part which is on disk storage; this process can be repeated until all parts of the program are "rotated" through RAM. The entire program only resides on disk; its parts are sequentially switched into RAM, executed, and then replaced.  (See section 4.D.a.)
  2. Database management (In micro systems this is classed as ___________(8) software, rather than system software.) programs are used to
    1. create new data files,
    2. edit data files,
    3. reorganize, sort, merge, etc. data files, and
    4. access data selected by interactive user inquiries from a terminal.
  3. Data communications programs facilitate the transfer of data between primary memory and peripheral devices or other computers (via networking or telecommunications).
SAQ 3: (a) What is the difference between an job management and resource management?  (b) In Windows, what are the equivalents of "job management" in Figure S-1 and "job scheduler" in Figure S-2?

3.2 System Support (for the user):

  1. Service Programs facilitate the use of the computer system in an efficient and user-friendly way.
    1. ___________(9)are designed to provide an intuitive access to O.S. commands, via windows and dialog boxes, thus avoiding the need to memorized the commands or their syntax (grammar) which is necessary with ___________(10)
    2. Utilities are programs that perform repetitive, routine tasks on their own.  For example, the Bootstrap program, which is permanently stored in the computer (usually in ___________(11)), loads the disk O.S. when the computer is switched on.  (See Figure S-3, and  Figure 8-3 in Shelly & Cashman.)
    3. Device drivers are programs written by the manufacturer of peripheral devices; these programs allow their device to be connected to a specific make of computer.
SAQ 4a: (a) Modify the explanations on Figure S-3 so that it applies to using Micorsoft Word, on a Windows O.S., to open an unfinished word document (.doc).  (b) Modify the explanations on Figure S-3 so that it applies to using a browser (e.g. Netscape Navigator) to open a Web page.  (c) Generalize the idea illustrated in  , i.e. give the three steps a person follows for any use of a computer.
  1. System Monitors keep a running record of :
    1. system usage (job accounting, priority enforcement, etc.)
    2. the performance of programs and system hardware. Performance can be effected by selecting CPU scheduling schemes, changing priorities, adding more or faster resources, and alleviating bottlenecks.
    3. the security of the system and the individual user's files.
  2. System Maintenance:
    1. Fault-tolerance capabilities allow computers to automatically overcome system problems that arise; this requires multiprocessing capability. (See section 4.E, below.)
    2. The O.S. can prompt the user when it needs input in order to continue executing. It sends error or warning messages to the user in case of program termination or malfunction of some component of the computer system. Sometimes the user can intervene in the O.S. to overcome the problem.
    3. If a program crashes, use to much time (e.g. infinite loop) or memory, etc. the O.S. terminates its execution.
SAQ 4b: What is the difference between system monitors and system maintenance?

3.3 System Development (for developing software or writing programs):

  1. Language Translators are software that translate programs written in computer language (source code) into machine language (object code) (These are treated in more detail in the LM X, Programming Languages.):
    1. assemblers translate a complete assembly language program into object code;
    2. compilers translate a complete high level language program into object code;
    3. interpreters translate individual instructions of a high level language and executes them immediately; this allows greater interaction with the computer while programming but programs run slower than those from assemblers and compilers
  2. Application Development Systems and System Development Programs assist the programmer in developing and coding software, for example:
    1. an editor allows the programmer to create, edit, or modify programs or data;
    2. a debugger facilitates the isolation and elimination of program errors;
    3. CASE (Computer Assisted Software Engineering) packages, a hot topic in software development circles, actually generate programs from general user specifications.
SAQ 5: What is the difference between (a) assemblers and compilers and (b) compilers and interpreters on the other?

4. TYPES OF OPERATING SYSTEMS:

  1. Single-user O.S.
    1. The simplest O.S. (e.g. MS-DOS and Macintosh Systems 1-6), can handle only one task (executing program) at a time.
    2. A multitasking O.S. (e.g. OS/2, Windows 95 and above, and Macintosh System 7.0 and above) allows the user to run several "tasks" (i.e. running programs or applications) simultaneously. The user can give a priority to each task and/or switch back and forth between tasks with the aid of the O.S
    3. A multithreading O.S. is similar to multitasking, but here a single program can have several parts of it being executed a the same time.
    4. A time-sharing O.S. is a special case of multitasking where each task is given a portion of the CPU time (a "time ______(12)"); each of these is processed in a round robin mannergiving equal opportunity to each task.
    5. A relatively new phenomena, hand held computers, have spawned specialized operating systems and scaled-down versions of standard OS, e.g. Windows CE and JavaOS.  These are being, used not only in small computers, but also in other microprocessor-based appliances and wireless communications devices.
  2. Multiuser (e.g. UNIX or VAX/VMS; see section 5.2, below.) are far more complex than single-user O.S. In a multi-user environment the system manager directs the O.S., via a console, to set policy parameters such as priority rules, I/O assignments, and default memory allocations. A job control language (JCL) is used to communicate special tasks associated with a program to the O.S.  Multiuser systems were originally designed to facilitate the utilization of a single CPU by multiple users, i.e. a central computer accessible via multiple terminals.  However, network access has been added so their in considerable overlap with Network OS discussed in the next section.
  3. Network OS (e.g. Windows NT, Novell's NetWare, etc.) manage multiple users; however they share resources of a network rather than of a single CPU like older multiuser O.S. See section 5.2.
  4. Micro vs. Mini/Mainframe/Supercomputer:
    1. Micro O.S. are usually "public"; mini/mainframe/supercomputer O.S. are "proprietary" and single vendor.
    2. Mini/mainframe/supercomputer O.S. are usually bundled (include essential program-ming languages and standard application packages); micro O.S. are usually unbundled.
    3. Micro software, being O.S. dependent, is typically not portable.
  5. Virtual features extend the capabilities of a system beyond its hardware limitations.  TPQ:  Look up "virtual" in Wikipedia (on the Navigation Panel).  Compare all the different useages of the word.
    1. Virtual memory: Virtual storage O.S. augment primary memory with secondary storage. Programs that are too large to fit into primary memory (RAM) are subdivided into fixed-length pages or variable-length segments which can be switched, under O.S. control, from secondary storage into primary memory whenever they are needed. SeeFigure 8-7 in Shelly & Cashman.
    2. A Virtual machine is a computer that is independent of any operating system.
      1. Different O.S. are stored in different areas of primary memory with the virtual machine O.S. controlling the other O.S. This makes it possible for each user to interact with the O.S. appropriate to his/her application. This helps eliminate software compatibility problems.
      2. The new computer language called "Java" creates programs for a "virtual machine" which can run on any computer or O.S.
  6. Multiprocessing: Systems containing only a single CPU require the simplest types of O.S. Systems involving multiple CPUs require more sophisticated multiprocessing O.S. that coordinate the interaction of the CPUs. Multiprocessor systems include (in order of complexity) the following:
    1. Coprocessing: Slave processors, under the overall control of a master processor, are assigned tasks that are independent of one another, e.g. the graphics coprocessors that are common in current microcomputers, especially those of "gamers".
    2. Fault-tolerant systems: These are designed to "sense" the failure of any CPU and switch its tasks to one of several backup CPUs.
    3. Parallel processing: Independent CPUs are integrated so they simultaneously process ___________(13) parts of a program while sharing memory.Need SG comments and an Illustration?
  7. Generality:
    1. Computer-specific O.S. work only one type of computer, e.g. the Mac O.S.
    2. Family-specific O.S. work on processors with similar architecture, e.g. Windows on all computers using the Intel processors and their clones (AMD and Cyrix).
    3. Hardware-independent O.S. (e.g. UNIX, the only O.S. currently available on micros, minis, and mainframes) will work on any computer but has to have a "kernel" written for each specific architecture.  (See Figure S-4.)
SAQ 6: Distinguish the "confusin' Multis", multitasking, multithreading, multi-user, multiprocessing, i.e. identify the most important characteristic that distinguishes each concept.
SAQ 7: What is the difference between a multiuser system and a network?
SAQ 8: What is the difference between multiprocessing, coprocessing and parallel processing?

5.  O.S. STANDARDS:

5.1 Single-user O.S.:

  1. CP/M ("Control Program for Micros") was the first de facto standard for 8 bit micros.
  2. MS-DOS has been the de facto standard for micros based on Intel/clone microprocessors. MS-DOS was augmented with a GUI called ___________(14).(Note, however, that Windows, up through version 3.1, was not an O.S. itself, only an addition to MS-DOS.)  All versions of Windows after ___________(15) are complete O.S., independent of MS-DOS.
  3. Multithreaded, multitasking, multiprocessing O.S. are the wave of the future; when they are implemented the distinction between single-user and multi-user OS will disappear.
    1. Amiga DOS, a platform put out of business by the marketing of inferior Wintel machines and Macs, was multitasking 1985!  The Amiga platform is apparently making a comeback using Linux; see section 5.3, below.
    2. Multithreading and multiprocessing along with virtual memory has been provided by OS/2, Windows, and MacOS through most of the 90's.
    3. Multiprocessing capabilities are built into the newest OS; see section
  4. The two dominant single-user O.S. are Windows and the MacOS:
    1. The latest version of PC Windows is Windows XP.   I think the most important characteristic is that it is built on the Windows 2000 kernal (see section 5.2.D, below)  which makes it much more stable than the 95/98/Me code.  Like previous versions of Windows, it is an upgrade of the basic Windows environment, so if you are familiar with one you can use the others effectively. 
      1. The Windows family did not become a true, stand-alone OS until Windows 95, launched in 1995, long after the GUI OS of most other PCs.
      2. No longer supported (as of July, 2006) is Windows Me (for "Millennium Edition") which  replaced Windows 98 on Sept. 14, 2000, adding more support for digital cameras, multi-player games on the Internet and home networking. However, its unenthusiastic reviews turned to severe criticism.  TechTV has gone back to Windows 98, Second Edition and discouraged everyone using Me, calling it a Microsoft effort to charge people for OS upgrades that can be downloaded, free, from Microsoft's Web site.
      3. The next version of Windows is called Windows Vista (formally known as Longhorn) which was released in early 2007.  See Microsoft's Web pages for Vista and the Microsoft Vista FAQ page.
    2. The growing acceptance of the Macintosh has made its MacOS  a second standard.  Mac OS 9, made available 10/23/99, was a significant upgrade of the several versions of OS 8.   However, a the really significant changes appeared in  Mac OS X which is based on UNIX; this is a fundamental shift in Apple's philosophy, from proprietary software to the public domain (UNIX).
5.2. Multiuser O.S. are dominated by UNIX and Windows NT:
  1. System software for multiple user systems come in two fundamentally different (but overlapping) forms:
    1. In multiuser systems , users access a centralized computer system (CPU plus peripherals) via terminals (or workstations).  UNIX, a platform-independent OS, has become the most commonly used multiuser system software and versions (Linux, and FreeBSD) are becoming popular on PC based platforms.
    2. In Network OS users access a network of computer resources (including multiuser systems and subnetworks).  Such OS are based on a client/server model of processing where the users of a network utilize client software on their workstations (not terminals) to access the resources of the network that are managed by server software.  Windows NT and Novell Netware are examples of such system software.
  2. UNIX is the de facto standard of platform-independent multi-user O.S.
    1. UNIX is the only O.S. widely available on micros, minis, and maxis.  Because it evolved in the public domain it has become the defacto nonproprietary multiuser operating system in the world today.  The trademarked UNIX belongs to The Open Group, an industry standards organization, which certifies official UNIX implementations.
    2. UNIX evolved, particularly in academic environments, with many extensions that resulted in several different versions; however, these have been standardized as the Portable Operating System Interface (POSIX)
    3. UNIX is highly portable.  This is because it is written in a high-level language, C, making it less hardware-dependent than O.S. written in machine language.
    4. The organization of UNIX is illustrated in Figure S-4.
      1. ... Only the interface between the kernel and the CPU depends on the computer architecture.
      2. Surrounding the kernel is the shell (a command language interpreter as well as a programming language) which monitors user input and interprets it as requests to operate the system. A powerful feature of the shell is that it may be modified and customized by the user to optimize the use of a particular computer system.
      3. Surrounding the shell are Utilities and Workbenches that facilitate the use of the computer system.
    5. New PC versions of "UNIX-like" OS that are becoming popular include:
      1. Linux, a public domain derivative of UNIX, is popular alternative to proprietary operating systems.  (See section 5.3.B.)
      2. FreeBSD is a relatively new PC implementation of BSD UNIX (Berkeley Software Distribution UNIX) which was developed at the University of California at Berkeley between 1979 and 1993.  BSD enhancements, known as the "Berkeley Extensions," include networking, virtual memory, task switching, and large file names (up to 255  chars.).  (See section 5.3.C.)

FIGURE S-4:
SCHEMATIC OF THE UNIX OPERATING SYSTEM


  1. Windows NT is the most commonly used proprietary multi-user O.S.  It is not strictly a multiuser O.S. in the sense of UNIX but is a client/server based OS that is actually two products:
    1. Windows Workstation is the client component, designed especially business users, who need to utilize networked resources. Since older (16-bit) applications run in a separate areas of RAM, one can crash without affecting other processes running on NT. Security and management features, not available on single-user OS versions, are built-in. Windows NT Workstation has the same desktop user interface as other versions of Windows. The PC and NT versions of Windows were supposed to be merged inWindows 2000 (Section 5.2.D, below.), but there will not be a complete "one-Windows" until Windows XP.
    2. Windows Server ... supports symmetric multiprocessing (SMP) and provides transaction processing for hundreds of online users.  It is really designed for LAN-based business environments, but its stability has caused many single users (including me) to use it instead of Windows 98 or Windows Me.   It can be combined with an Internet server (providing TCP/IP, the Internet protocol suite) to provide Web server facilities.
  2. Windows 2000, unlike most new and planned OS (Linux, FreeBSD, BeOS, and MacOS X) is not UNIX based).  Informed gossip says it has 35 million lines of code (over four times the size of the much more efficient Linux) and despite approximately 63 thousand bugs" is "much more reliable than Windows NT 4.0 (which is much more reliable than the crash-prone Windows 98 and disasterous Windows Me).  Important features of Windows 2000 include:
    1. Windows 2000 is Windows NT Server 5.0 renamed; this means it is part of the Windows NT family (designed for server based networks), NOT the Windows 95/98 (desktop PCs) family.  This is confusing because, until now Microsoft OS with dates have been associated withdesktop PCs and those with letters, like "NT", have been associated with client-server.  Windows ME (See section 5.1.D.a.i, above.) is the upgrade for the desktop Windows 98!  See the CNET article on Windows Me vs. Windows 2000.
    2. A fully-customizable administrative console that can be based on tasks rather than files, applications, or users
    3. A new file directory approach called Active Directory that lets the administrator and other users view every file and application in the network from a single point-of-view.
    4. Dynamic Domain Name Server (DNS), which replicates changes in the network using the Active Directory Services, the Dynamic Host Configuration Protocol (DHCP), and the Windows Internet Naming Service (WINS) whenever a client is reconfigured.
    5. The ability to create, extend, or mirror a disk volume without having to shut down the system and to back up data to a variety of magnetic and optical storage media.
    6. A Distributed File System (DFS) that lets users see a distributed set of files in a single file structure across departments, divisions, or an entire enterprise.
    7. Close integration with and support for Microsoft's Message Queue Server, Transaction Server, and Internet Information Server (IIS).
SAQ 9: Why are "terminals" associated with multiuser O.S. while "workstations" are associated with network O.S.?

5.3 The New Generation of Single-user OS (most based on personalized UNIX):
 
  1. Linux, the dark horse challenger in the PC world:
    1. Linux a public domain UNIX-like operating system, designed specifically for PCs, that has a growing a reputation as a very efficient and fast-performing system.  It has been developed by a community of developers not interested in commercial gain, and, consequently, it has gained an almost a cult-like following. Because it is truly portable, they proclaim Linux as an alternative to the OS monopoly of Microsoft.
    2. Linux was originally developed, in 1991, by Linus Torvalds while he was at the University of Helsinki.  Since then it has evolved with Torvalds and others using extensions developed by members of the Free Software Foundation for the GNU project.  They have insured that it conforms to the POSIX standard for UNIX; therefore, developers can write programs that can be ported to other operating systems.
    3. Linux is a complete multiuser, multitasking operating system who's kernel, like that of UNIX, is the core of the operating system.   The shell, utilities, etc. that extend the kernel were developed in the GNU project and include:
      1. the X Windows GUI,
      2. an implementation of TCP/IP,
      3. the standard UNIX Emacs editor, and
      4. other standard UNIX utilities.
    4. Unlike Windows, MacOS, and other proprietary systems, Linux is in the public domain (free or minimal cost).  A remarkable feature that comes from it's public domain stature it that the operating system itself can be customized by users or even extended by contributors.
    5. Commercial versions of Linux must conform to the Free Software Foundation's copyleft stipulations that mean any version of Linux must also be freely available in the public domain.  The most popular commercial distribution of Linux is Red Hat.
    6. More information about Linux can be found at http://www.linux.org/
  1. FreeBSD  is a public domain, UNIX-like operating system based on U.C. Berkeley's 4.4 BSD-lite release for PC compatibles. BSD (for "Berkeley Software Distribution") is a very popular version of UNIX developed at Berkley campus of the University of California. The numbers preceding "BSD" in the name refer to a specific release. e.g. "4.4 BSD" refers to the fourth update to the fourth major revision of BSD UNIX. BSD UNIX has been popular and many commercial implementations of UNIX systems are based on IT or including FreeBSD. {Expand?}
  2. Mac OS X,  launched on March 24, 2001, is now the OS of choice for the modern Apple platform.  It is entirely Unix based and was a complete departure from the propriety operating systems previously associated with Apple computers.  OS X runs native applications as well as legacy applications, from earlier Mac OS.   OS X is specifically designed to be modular in order to incorporate updates and future inovations in its structure. 
    1. OS X incorporates the latest in operating systems technology including protected memory, pre-emptive multitasking, multithreading and SMP ("symmetric multiprocessing" which can utilize multiple processors).  
    2. The core of OS X is the open source Darwin kernel which makes it compliant with the latest versions of Unix including enhanced BSD 4.4, the Mach 2.5 microkernel, and POSIX.
    3. Web references:
      1. For the latest, visit Apple's OS X site.
      2. CNET Review.
    NOTE: All of the PC OS can be installed on a computer, making it a "virtual machine" (See section 4.E.b, above>); however, if you do this, be sure to install Windows first, because (in true Microsoft "carnivor" fashion) it wipes out access to other OS.  The other OS do not do this so you can install, for example, BeOS or Linux, after you install Windows and use them alternatively with Windows.
SAQ 10: What is the difference between (a) DOS and Windows 3.1, (b) Windows 3.1 and Windows 95, (c) Unix and Linux?

6. APPLICATION SOFTWARE:

     The following categorization of application software (by Tony) is according to function. The particular applications with which students will gain experience in this course are distinguished links to the particular Labs where they are covered; however, they are treated, in detail, within the Lab component of this course. Self-explanatory terms are not described. (Note that the CONTROL software that was categorized separately in Fig. S-1, has been included as Application Software under 6.3; this, unfortunately, is the traditional way of organizing Software into two categories)

6.1 Categories of General Productivity Software:

  1. Word Processing (e.g. Microsoft Word) software is used to create and edit text-based documents. (See Lab 4 and Lab 5.)  Modern word processors have considerable graphic capabilities (giving them "desktop publishing" capabilities (See section 6.1.D.e, below.)) as well as some HTML editing capabilities that allow them to produce rudimentary Web pages.
  2. Number Processing:
    1. Business/Financial:
      1. Spreadsheet (e.g. Microsoft Excel) applications facilitates the creation of a two-dimensional grid of "cells"; cells can contain of words, numbers, or formulas that perform calculations using the numbers in other cells. (See Lab 6 and Lab 7.)
      2. Accounting, Personal Finance, etc.
    2. Math/Science (Statistical Analysis, Numerical Analysis, etc.)
  3. Organizing:
    1. File Management Systems (FMS) (e.g. the file management component of Microsoft Works) facilitate the organization of data into files on secondary storage.   A FMS provides a means of accessing and manipulating the format and data to produce "reports", a subset of the total data in the file. FMS can only process single files; thus they are of a subset of  Data Base Management Systems (next item) ; in fact, FMS are being completely replaced by the more sophisticated DBMS. (See Lab 8.)
    2. Data Base Management Systems (DBMS) (e.g. Microsoft Access) are a superset of FMS that allow much more complex data organization structures.  Specifically they allow the reports to include information from several different files.  (See  Lab 8.)
    3. Project Management, etc.
  4. Multimedia Creation Software (See section 3 of LM V, Input & Output.):
    1. Graphics:
      1. Analytical (Science/Math);
      2. Illustrative (Business): Charts, Graphs, etc. that are available within spreadsheets to graphically illustrate the data (See Lab 6 and Lab 7.);
      3. Design (CAD/CAM, Architectural, Surveying, Mapping, etc.);
      4. Artistic;
      5. Desktop Publishing (e.g. Microsoft Powerpoint) combines word processing and graphics to facilitates decorative presentations. (See Lab 9.)This popular field of the late 80's and early 90's appears to be evolving to full multimedia. (See the next section.)
      6. Multimedia Publishing (integration of text, graphics, animation, audio, and video) a superset of desktop publishing allows animation, video, and audio to be added to traditional text and graphics to produce dynamic, graphic presentations.  These have now found an exciting vehicle in the World Wide Web.  (See Lab 9.)
    2. Audio:
      1. voice communications involves applications that facilitate speech recognition and speech synthesis.
      2. music applications facilitate the human composition and computer generation and playback of digital music
      3. sound effects, essential to computer gaming, are being incorporated in all kinds of other applications
  5. Communications:
    1. Networking software facilitate the connections between computers and the integration of their resources (described in more detail in LM VI, Overview of Communications and Networking).
    2. Telecommunications applications provide a variety of long distance "services" (described in more detail in LM VII, Overview of Cyberspace):
      1. communication (e-mail, chat, teleconferencing, etc.),  (See Lab 3.)
      2. resource access (e.g. file transfer and remote logo), and
      3. Information access (e.g. browsers allow access to the World Wide Web)  (Se Lab 2 and Lab 10.)
SAQ 11:  What is the difference between (a) DBMS and FMS and (b) networking software and telecommunications software?

6.2 Educational Software & Entertainment Software:

  1. Educational (help menus, demonstrations, Tutorials,  etc.) applications based on interactive software.
    1. Individualized learning tools facilitate independent, self-paced learning learning
    2. Group learning tools facilitate the presentation of educational courses that are not groups that are not bound to physical locations and fixed schedules, e.g. this course.
    3. Help facilities are being integrated into most software applications to help new users
  2. Entertainment:
    1. Game software provide the "gamer" with opponents, either in the form of a computerized opponent or real opponents that play online via a network, either local or the Internet.
    2. Creative Software such as musical composition, artistic innovation, etc.
  3. Virtual Reality (VR) is given a distinct category because it has roles in both educational and entertainment applications. VR, only in an embryonic state, is the simulation of a real or imagined 3D environment that usually can be interactively "experienced" in real-time.  More advanced applications involve such facilities as wrap-around display screens, actual rooms augmented with wearable computers, and haptic joystick devices that let you feel the display images (tactile feedback). The Virtual Reality Modeling Language (VRML) allows the creator to specify images and the rules for their display and interaction using textual language statements. (See Learning Module IX, SURVEY OF COMPUTER LANGUAGES.)VR has two basic categories:
    1. The simulation of real environments such as the interior of a building or a the streets of a town often with the purpose of training or education
    2. The creation of an imagined environment, typically for a game or educational adventure

    3.  
6.3 Professional Software:
  1. Management (Transaction Processing, General Ledger, MIS, Decision Support)
  2. Professional (Doctors, Lawyers, Scientists, Farmers, etc.)
  3. Artificial Intelligence (Expert Systems, Natural Language Processing, and Image Processing)
  4. Simulation and Modeling
  5. Control and Automation (process control, automated manufacture, robotics, etc.)
  6. etc.
SAQ 11: Redraw a version of Figure S-1 that applies explicitly to PCs.  (Hint: recall the inclass discussions about what is and what is not system software on PCs and not that a PC is NOT a robot or automated factory.)

7. SUMMARY OF THIS LEARNING MODULE:
  1. Software is generally classified into two categories:
    1. System software allows the user to manage a computer system, provides support, and facilitates software development.
    2. Application software consists of programs that turn a general purpose computer into a special purpose tool, e.g. word processor, web browser, game, etc.
    NOTE: Tony prefers to include a third category, Control software that allows the user to control electronic devices; if such devices do work, this is robotics.  The inclusion of this third category conforms to his basic three-category subdivision of all information in this course.
  2. General characteristics of software include:
    1. Integrated software combines multiple applications within one package
    2. User interfaces allow the user to interact with software.  They have evolved from the text-based command line interface (CLI) to today's graphical user interface (GUI).
    3. User assistance provide documentation, on-line help, training, and customer support to the user.
  3. In general, System Software (See Figure S-1.) may be classified into three basic categories, applicable to multiuser systems as well as PCs:
    1. Management software includes operating systems (the main component of PC system software), database management, and communications software. (Note that the latter two are system software in multiuser systems but application software on PCs.)
    2. Support software includes service programs (GUIs, utilities, etc.), monitoring programs (for performance, performance, usage, etc.), and maintenance (recovery, fault tolerance, etc.)
    3. Software Development software includes programming languages, software development tools and utilities.
  4. Types of Operating systems:
    1. OS differ dramatically according to whether they are single user or multiuser systems.
    2. Virtual features (e.g. virtual memory, virtual machines, etc.) allow software to extend the capabilities of a system beyond its hardware limitations.
    3. Multiprocessing systems incorporate more than one CPU.  These may be categorized as to whether they facilitate coprocessing, fault-tolerance, parallel processing, etc.
    4. OS may be platform specific (computer specific or CPU family specific) or platform independent.
  5. Defacto Standards are the OS that have become standards simply by their popularity and common use:
    1. Single user OS have evolved from DOS based CLIs to the current multitasking, multithreaded, GUI-based OS with defacto standards like Windows, MacOs, Linux, etc.  Variations of single user OS are being incorporated into hand-held computing devices, microprocessor-based appliances, and wireless communications devices.
    2. System software for multiple user systems come in two overlapping forms:
      1. Multiuser systems consist of a central computer/peripherals that is accessed via terminals or workstations.  UNIX, a platform-independent OS, has become the most commonly used multiuser system software and versions (Linux, and FreeBSD) are becoming popular on PC based platforms.
      2. Network OS are based on a client/server model where the users of a network use client software on their workstations to access the resources of the network that are managed by server software.  Windows NT and Novell Netware are examples of such system software.
    3. Linux, currently the "hottest" platform independent OS, is a "UNIX-like" OS that may rival the dominance of Microsoft Windows and NT.
  6. Application software, when run, turn the computer into a particular tool.  They are classified, in this course, into three categories in order to conform to the basic three-category subdivision of all information in this course;other texts will probably have different subdivisions.
    1. General productivity applications, utilized by virtually all computer users, include word processors, electronic spreadsheets, database management systems, communications software, and multimedia.
    2. Educational and Entertainment applications, which have a great deal in common, incorporate user/computer interactivity.
    3. Profession software, that assist professionals carry out specific tasks, is now available for virtually every profession known to society.