You are on page 1of 52

MODULE 1

OPERATING SYSTEMS
FUNDAMENTALS
After reading this module and completing the exercises,
you will be able to:
Explain basic operating system concepts

Describe the categories of operating systems

Discuss the primary roles of an operating system

Describe the five major operating system components

Discuss the history of operating systems

List several current general-purpose operating systems

Computers come in many and varied physical forms. There are supercomputers
that perform complex computing tasks at incredible speeds, business servers that provide
enterprise-level networked applications, desktop and laptop PCs, tablets, smartphones,
and wearable computers. Plus, there are many devices you may not even think of as
having a computer, such as those embedded in everyday devices like cars, televisions,
and household appliances. Without an operating system (OS), however, these devices
are only a collection of electronic parts. It takes an operating system to turn a computer
into a functioning device for work or play. The operating system is the software that
starts the basic functions of a computer, displays documents on the computer’s monitor,
accesses the Internet, and runs applications—it transforms the computer into a powerful
tool. There are many kinds of operating systems, but only a few have captured a wide
audience. Server operating systems like Windows Server 2019 and UNIX run on network
servers, and client operating systems like Windows 10, macOS, and Ubuntu Linux run on
desktop computers. Some operating systems are very specialized and rarely seen, such as

1
2 MODULE 1  Operating Systems Fundamentals

those that run the electronics in a car. Others are ubiquitous, such as Android and iOS,
which run on mobile devices.
This book covers the fundamental tasks performed by most operating systems,
delving into process scheduling, file systems, memory management, and other critical
functions performed by modern OSs. You’ll take an in-depth look at the desktop OSs
many people are familiar with, such as Windows 10, Linux, and macOS. You’ll also
examine popular server operating systems: Windows Server 2019, Windows Server 2016,
and UNIX/Linux. (Note that several distributions of Linux/UNIX can be either client or
server operating systems.) This module sets the foundation for understanding desktop
and server operating systems by introducing you to concepts that apply to most OSs. With
this knowledge under your belt, you will have a solid frame of reference to understand
operating system specifics as they are discussed in later modules.

About the Hands-On Projects


Be sure to read and complete the activities in the “Before You Begin” section of the
Introduction. The hands-on projects in this book require that you first set up your lab
environment so it’s ready to go. The “Before You Begin” section gives you step-by-step
instructions for the suggested lab configuration to use with all activities in this book.
Completing the hands-on projects is important because they contain information about how
operating systems work that is best understood through hands-on experience. If for some
reason you can’t do some of the projects, you should at least read through each one to make
sure you don’t miss important information.

Table 1-1 summarizes what you need for the hands-on projects in this module.

Table 1-1 Hands-on project requirements

Hands-On Project OS/Requirements Notes


Hands-On Project 1-1: Any OS Internet access required
Exploring the History of the
Computer
Hands-On Project 1-2: A Windows 10 computer or
Exploring the Components of virtual machine, as specified in
the Windows 10 OS the “Before You Begin” section
of the Preface
Hands-On Project 1-3: Working Windows 10 A sound card with speakers
with Devices in Windows 10 or headphones attached is
desirable
MODULE 1  Operating Systems Fundamentals 3

Table 1-1 Hands-on project requirements (continued)

Hands-On Project OS/Requirements Notes


Hands-On Project 1-4: A Fedora 30 Linux virtual
Exploring the Fedora Linux machine or computer, as
Interface specified in the “Before You
Begin” section of the Preface
Hands-On Project 1-5: Viewing Fedora 30 Linux
Disk and Process Information
in Linux
Hands-On Project 1-6: A macOS Mojave computer,
Exploring the macOS Desktop as specified in the “Before You
Begin” section of the Preface

An Introduction to Operating Systems


Before we discuss how an operating system works, let’s review the basic functions of
any computer. A computer’s functions and features can be broken down into the three
basic tasks all computers perform: input, processing, and output. Information is input to
a computer from an input device such as a keyboard or sensor, or from a storage device
such as a disk drive; the central processing unit (CPU) processes the information, and
then output is usually created. The following example illustrates the process:
• Input—A user running a word-processing program types the letter A on the
keyboard, which results in sending a code to the computer representing the letter A.
• Processing—The computer’s CPU determines what letter was typed by looking up
the keyboard code in a table that resides within the computer’s memory and is part
of the operating system.
• Output—The CPU sends instructions to the graphics cards to display the letter A,
which is then sent to the computer monitor.
The three functions described above involve some type of computer hardware,
but the hardware is controlled and coordinated by the operating system. Without an
operating system, every application you use would have to know the details of how to
work with each of the hardware devices. Without the operating system to coordinate
things, only one application could run at a time. For example, you couldn’t open a Web
browser while working on a Word document. The operating system can be seen as the
go-between for the applications you run and the computer hardware.
In a nutshell, an operating system (OS) is a computer program that provides the
following features:
• User interface—The user interface provides a method for users to interact with the
computer, usually with a keyboard and mouse or touch screen. A user clicks, touches,
or types; the computer processes the input and provides some type of output.
4 MODULE 1  Operating Systems Fundamentals

• Storage management—A key function of business computers is the storage of


information. The file system is the method by which an OS stores and organizes
files and manages access to files on a storage device, such as a disk drive, SD card,
or USB flash drive.
• Process and service management—A process is a program that’s loaded into memory
and run by the CPU. It can be an application a user interacts with, such as a Web
browser, or a program with no user interface that communicates with and provides
services to other processes. A process without a user interface that runs in the
background is usually called a service in Windows and a “daemon” in Linux. Most
operating systems have built-in services to handle network communication, control
access to various input/output devices, manage the file system, and so forth. The
operating system controls the loading, execution, and termination of both built-in
and user-installed processes.
• Memory and I/O management—When a user performs an action that starts an
application, the OS must determine if sufficient memory exists to load the
application and where in memory it should be loaded. When an application
terminates, the OS must mark the memory used by the application as free so other
applications may use it. In addition, the OS ensures that I/O devices such as USB
ports and video cards are accessed by only one process at a time.
• Security and resource protection—Operating systems used on business systems provide
methods for securing access to resources. This function includes protection from
accidental unauthorized access, such as when a poorly written program attempts
to access memory outside of its allocated space, and from purposeful unauthorized
access, such as from malware or an outside attacker. The OS also provides access
controls that can be configured to limit which users can access particular files or
make system configuration changes.
• The kernel—The kernel is the heart of the OS and runs with the highest priority. It
performs many of the tasks mentioned in this list. The kernel schedules processes to
run, making sure high-priority processes are taken care of first; performs memory and
I/O management; and provides a number of security and resource protection functions.
Each of the above OS components are discussed in more detail throughout this
book. Several of these components are covered later in this module in the section titled
“Primary Operating System Components.” However, before we delve further into these
components, we’ll examine categories and roles of operating systems.

Operating System Categories


To better understand how operating systems work, it is helpful to understand some of
the more common categories of operating systems and the terminology used to describe
them. We’ll discuss three broad categories: single-tasking versus multitasking, single-user
versus multiuser, and general-purpose versus real-time.
MODULE 1  Operating Systems Fundamentals 5

Single-Tasking Versus Multitasking Operating Systems


As the name suggests, a single-tasking operating system can execute only a single
process at a time. This means that if you are browsing the Internet with a Web browser,
you can’t be listening to Spotify at the same time on the computer. I know, it’s hard to
imagine! A multitasking operating system quickly switches between all the processes
that are loaded into memory and scheduled to run, so Spotify can play music while
you’re typing a document and the Chrome browser is downloading a file.
While most people haven’t experienced a single-tasking OS recently on a
desktop or laptop computer, it wasn’t too long ago that a single-tasking system was
in widespread use: Apple’s iOS 3 (and earlier versions) was a single-tasking OS for
the iPhone and iPad. It wasn’t until June 2010 that iOS 4 brought multitasking to the
iPhone and November 2010 that iOS 4.2 allowed multitasking on the iPad. Prior to
that, only the app that was visible on the iPhone or iPad screen was actually running.
So, if you were using the messaging app, you couldn’t listen to iTunes, for example.
Keep in mind that you could have multiple apps loaded into memory at the same time,
but only the foreground app (the one visible on the screen) received CPU time. The
hardware these early versions of iOS ran on was capable of multitasking, but Apple was
concerned about reliability and managing access to the hardware by third-party apps.
Other single-tasking OSs include CP/M, PC-DOS, and MS-DOS, versions of Windows
prior to Windows 3, and Palm OS. CP/M, PC-DOS, and MS-DOS are command-line OSs
and were the original OSs to run on the IBM PC in the early 1980s. MS-DOS, owned by
Microsoft, was the precursor to Windows, which got multitasking capabilities with version
3.0. Palm OS was used in a class of devices called personal digital assistants (PDAs).
PDAs were handheld devices that ran email programs, calendars, note-taking apps, Web
browsers, and other productivity applications but didn’t have integrated phones. PDAs
were an impetus for the development of the smartphone.
Another place where you often find single-tasking OSs is in embedded systems.
An embedded system is a computing device designed for a specific task, such as
controlling a dishwasher or handling the braking system in an automobile. They often use
inexpensive microcontrollers that run at speeds as low as 1 MHz, don’t have multitasking
capabilities, might have as little as 8 KB of memory, and run a simple OS that does little
more than load a program and start it. That isn’t to say that all embedded systems are
single-tasking, but many are.
Modern business computers and mobile devices use a multitasking operating system.
These devices have multiple CPU cores, multiple gigabytes of RAM, and can execute
billions of instructions per second. They are built for multitasking, so running a
single-tasking OS on them would be a complete waste of computing resources.
There are two general types of multitasking. The first method is known as cooperative
multitasking. In this method, the operating system gives CPU control to a process and
waits for it to terminate or enter a waiting state, thereby giving up control of the CPU. The
OS then gives CPU control to the next process waiting for CPU time. The problem with this
method of multitasking occurs when a process doesn’t relinquish control of the CPU in a
6 MODULE 1  Operating Systems Fundamentals

timely manner, either due to poor software design or an error that keeps the process in
an infinite loop. In the former case, other tasks are unable to run until the current process
terminates. In the latter case, the system will freeze and become unresponsive with no
recourse but to reboot the computer. This type of behavior was seen frequently with early
versions of Windows because they used cooperative multitasking until Windows 95.
Figure 1-1 shows the basic concept of cooperative multitasking. In the figure, there is
a process ready queue of the processes waiting for CPU time. The OS gives CPU control to
Process 1. When Process 1 relinquishes control of the CPU, the OS gives CPU control to
Process 2, and Process 1 moves to the bottom of the process ready queue (or is removed
from memory if it terminates).

Process ready queue Operating system action CPU control


Process 1
Give Process 1 Process 1
Process 2
CPU control does some work
Process 3

yes Process 1 no
finished?

Process 2
Give Process 2 Process 2
Process 3 CPU control does some work
Process 1

Process 2
yes no
finished?

Process 3
Give Process 3 Process 3
Process 1
CPU control does some work
Process 2

and so forth

Figure 1-1 Cooperative multitasking

Clearly, cooperative multitasking has drawbacks because the performance of the


system as a whole is dependent on all the processes playing by the rules and, as the name
suggests, cooperating. A better multitasking method is preemptive multitasking, as
MODULE 1  Operating Systems Fundamentals 7

illustrated in Figure 1-2. In the figure, the running process can be replaced with another
process at any time based on a system interrupt, a higher-priority task requiring the CPU,
or the time-slice timer expiring.

Process ready queue Operating system action CPU control


Process 1
Give Process 1 Process 1
Process 2
CPU control does some work
Process 3

Time
yes slice expired no
or interrupt/
trap?

Process 2
Give Process 2 Process 2
Process 3 CPU control does some work
Process 1

Time
yes slice expired no
or interrupt/
trap?

Process 3
Give Process 3 Process 3
Process 1
CPU control does some work
Process 2

and so forth

Figure 1-2 Preemptive multitasking

Operating systems used on server, desktop, and laptop computers developed since the
early 2000s use preemptive multitasking operating systems. In preemptive multitasking,
the operating system is in strict control of which processes get CPU time. It gives each
process a slice of time with the CPU, alternating between processes, including those that
belong to the OS. Because the operating system is in charge, it has a lot of control over
how much of the computer’s resources are allocated to each program. As a result, the
computer must use more of its processor power and memory to support the operating
system, but reliability and a responsive computer are the result. Playing music while
8 MODULE 1  Operating Systems Fundamentals

working in a document and a Web browser on a preemptive multitasking system is not


a problem—all processes get enough CPU time to do their jobs—and the user is often
unaware that the system has been rapidly switching between tasks.

Single-User Versus Multiuser Operating Systems


A single-user operating system allows only one user at a time to interact with the OS
user interface, start processes, make system configuration changes, and interact directly
with the file system. Single-user systems may be single-tasking systems as well, but they
don’t have to be. However, all single-tasking systems, such as those mentioned in the
previous section, are also single-user systems. Windows 10 and earlier Windows client
versions are arguably single-user systems. A user signs in to the system using a keyboard
and mouse and has full purview over system resources. While that user is signed in, no
other user may sign in and access the Windows user interface. A protocol called Remote
Desktop Protocol (RDP) allows a user to remotely sign in to a Windows 10 system,
but only if no user is signed in at the local console. Note that Microsoft has recently
introduced a multiuser version of Windows 10, but only as part of a Microsoft Azure
feature called Windows Virtual Desktop.
While Windows 10 may eventually offer true multiuser support, previous versions
of Windows such as Windows 8 and Windows 7 have been single-user systems. Mobile
operating systems such as Apple iOS and Android are also single-user systems.
Don’t confuse network file sharing with a multiuser system. While network users can
access shared files and printers on many single-user systems, they don’t interact directly
with the operating system or have the ability to load applications that use the computer’s
CPU and memory resources.
A true multiuser operating system allows multiple users to sign in to it, start and
stop processes (that is, run user applications), interact with the user interface, and access
the local file system. Linux/UNIX operating systems have always supported multiple
users, and Windows Server versions also allow multiple users through RDP, where one
user can be signed in to the local console and other users can be signed in remotely. The
remote users have the same access to the Windows user interface, file system, CPU, and
memory as the locally signed-in user. A multiuser operating system is, by definition, also
a multitasking operating system.

General-Purpose Versus Real-Time Operating Systems


Most of the operating systems mentioned so far are considered general-purpose operating
systems. A general-purpose operating system is designed to provide a convenient
user interface and run applications in a home or business environment with reasonable
performance. These operating systems usually require a responsive user interface because
users expect a file or application to load quickly when they double-click it. Users are not
typically concerned with background processes unless they affect the application that
is currently running. In short, general-purpose operating systems are designed to run
business, productivity, or entertainment applications. A user probably doesn’t care if it
MODULE 1  Operating Systems Fundamentals 9

takes .5 seconds to calculate a spreadsheet or .7 seconds, as long as it does so correctly and


in a reasonable amount of time.
A real-time operating system (RTOS), on the other hand, is designed to process
inputs and produce outputs not just in a reasonable amount of time, but in a very specific
and repeatable amount of time. Real-time systems perform tasks like controlling assembly
line robotic systems, controlling Federal Express sorting facilities, managing the electrical
grid, running amusement park rides, and controlling self-driving automobiles. In such
systems, the difference between completing a task in .5 seconds or .7 seconds could mean
a restart of the assembly line at least or the loss of life at worst. Not only must real-time
systems respond quickly to changing conditions, they must be predictable. Components
of real-time systems such as the communication network and storage system are called
deterministic because it is possible to determine the worst-case response times under
a given set of conditions. Examples of RTOSs include VxWorks from Window River
Systems; QNX, which is a real-time UNIX-like OS currently owned by BlackBerry;
LynxOS, another UNIX-like system owned by Lynx Software Technologies; and Windows
10 IoT, the Internet of Things version of Windows that succeeds Windows CE. Many
other proprietary RTOSs are used in particular industry niches.
RTOSs are not designed to run business applications on traditional computer hardware.
Most of the software that runs on them is custom-developed for embedded system
hardware with a custom user interface or no user interface at all. While they may not be
as visible as general-purpose OSs, they have become more prevalent in people’s everyday
lives, especially because they play an important role in the Internet of Things (IoT).

Operating System Roles


Operating systems can be defined by the role they play from the perspective of the user
and the system’s interaction or lack thereof with other systems. In some cases, a single
operating system can be deployed in multiple roles depending on the application it will
serve. You can classify most operating systems as one of the following:
• Client
• Server
• Standalone
Each of these roles is discussed in the following sections.

Note
Unless otherwise specified, the descriptions of operating system roles in the following
sections are discussed in the context of a general-purpose operating system running in a
home or business environment.
10 MODULE 1  Operating Systems Fundamentals

Client Operating Systems


The primary purpose of a client operating system is to run applications requested by
a user and request data from network servers as necessary. Many OSs classified as client
operating systems, such as Windows 10 and macOS, and client distributions of Linux,
such as Ubuntu Desktop, can perform some server functions, but their primary purpose is
to be used as a client. Client OSs are usually installed on desktop or laptop computers and
mobile devices and use a graphical user interface (GUI). Client OSs usually include client
versions of many network applications. For example, Windows 10 comes with Client for
Microsoft Networks for accessing shared files and printers. Linux clients come with the
Linux equivalent of Client for Microsoft Networks, called SAMBA, as well as the Linux
native file sharing protocol, Network File System (NFS). Client OSs also come preinstalled
with the client half of Dynamic Host Configuration Protocol (DHCP) and the Domain
Name System (DNS) protocol. In addition, most client OSs are performance-tuned for
running foreground applications (user applications) instead of background services.
Figure 1-3 shows the Performance Options dialog box in Windows 10. In contrast,
Windows Server has Background services selected because most of the work done by
servers is performed by services running in the background.

Figure 1-3 Performance options in Windows 10

Server Operating Systems


The primary purpose of a server operating system is to share network resources
such as storage and printers and provide network services to clients. Windows Server,
macOS Server, UNIX, and many Linux distributions fall in this category. A server OS
MODULE 1  Operating Systems Fundamentals 11

is tuned to share files efficiently and perform network operations in response to client
requests. It usually comes with server services such as a DHCP server, a DNS server, a
file server protocol, a Web server, and perhaps a directory service such as Microsoft’s
Active Directory. Server OSs may also be used as virtualization hosts on which several
virtual servers can run. For optimal resource usage and performance, many server OSs
can be configured to operate without a GUI, so administrators must be familiar with the
OS’s command-line interface. For example, the default installation of Windows Server is
Windows Server Core, which has no GUI (see Figure 1-4), and most Linux distributions
intended as servers are installed with only the shell interface (see Figure 1-5).

Figure 1-4 The Windows Server Core initial logon screen

Server OSs often have built-in functions for fault tolerance, load sharing, and
scalability. Fault tolerance is the ability of a system to recover from a hardware or
software failure. For example, a server OS typically supports clustering, which is the
ability of two or more servers to act as one, for fault tolerance, load sharing, or both. A
server cluster designed for fault tolerance is often called a failover cluster, whereby two or
more servers share identical configurations and have shared access to data. If one server
fails, another takes over its tasks. A load-sharing cluster, or load-balancing cluster,
has two or more servers that alternate in taking client requests, which provides faster
response time to clients. Many servers also support hot swapping of components such as
hard disks, memory, and even processors so that if a component fails, a new component
12 MODULE 1  Operating Systems Fundamentals

Figure 1-5 A Linux shell interface

can be swapped in without shutting the system down. For scalability , some servers
support hot adding of components so that more storage, RAM, or processors can be
added while the system is running.
The type of hardware that server OSs are typically installed on also differs from
that of client OSs. A server OS is usually installed on a more powerful computer that
may have several high-speed network interfaces and terabytes of storage. In addition,
fault tolerance is not just a function of the server OS; the hardware must also support
fault-tolerant features such as hot swapping and failover clustering—features that client
computers lack. The server hardware can also take different forms, including traditional
tower computers, rack-mounted servers, and blade servers. Server OSs and some server
hardware features are discussed in more detail in Module 10.

Standalone Operating Systems


A standalone operating system, as the name suggests, is not designed to interact with
other OSs or access network resources. You may be hard-pressed to find a standalone OS
today, as almost every computing device has a network interface and can, at the very least,
connect to the Internet. You’re most likely to find a standalone OS running in an embedded
system. If the system has no need to communicate with a network, it can be designed with
a very basic OS that has no network interface or an OS with disabled network functions to
save memory and maximize performance. The OSs that run older or isolated traffic signal
systems are likely to be standalone, as are the OSs that run automobile electronic systems
and industrial machinery. This is changing as computer-controlled devices are being built
with IoT in mind, so operational and performance data from these devices can be collected
and analyzed to make processes more efficient.
MODULE 1  Operating Systems Fundamentals 13

Aside from embedded systems, you have to travel back in time to the MS-DOS
era and early Windows and Macintosh days to find a general-purpose OS that was
standalone. These early OSs didn’t come with networking software, but with a little
patience and know-how, they could be “upgraded” to client OS status with third-party
software and a network card, usually to connect to a Novell Netware or UNIX server.
Now that you have a good idea of OS categories and roles, it’s time to take a closer
look at some of the components of modern multitasking operating systems that you’ll
find in most general-purpose, real-time, single-user, and multiuser OSs.

Primary Operating System Components


In this section, we’ll examine some of the operating system components that work behind
the scenes. These components allow users and application developers to get the most out
of modern computers without bogging them down with the details of process scheduling,
memory and I/O management, and resource protection. Without most of these components,
computers would be stuck in an era where you could only run a single program at a time
and your application would have to know the details of how to talk to network cards,
graphics cards, disk drives, and other devices. With modern operating systems, a built-in
process, service, or device driver provides these functions so application developers can
focus on their applications rather than the specifics of communicating with the computer
hardware. Specifically, we’ll examine the following OS components in the next few sections:
• The boot procedure
• Process and service management
• Memory and I/O management
• Security and resource protection
• The kernel

Watch “The Boot Process” video in MindTap.

The Boot Procedure


Before the operating system can perform its tasks, it must be loaded into memory and
started just like any program. This is called the boot procedure. The boot procedure is
a series of steps performed by every computing device that starts with the application
of power to the CPU and other hardware components and ends with a running system
ready to perform work. The boot procedure can be broken down into six general steps
that apply to almost all computing devices that include an operating system:
1. Power is applied to the CPU and other hardware components.
2. The CPU starts.
3. The CPU executes the firmware startup routines.
14 MODULE 1  Operating Systems Fundamentals

4. The operating system is located by the firmware.


5. The OS is loaded into RAM.
6. OS processes and services are started.
The last step in the procedure will vary the most depending on which operating
system is booted and how it is configured; that step is discussed in more detail in the
“Process and Service Management” section. Step 1 is rather self-explanatory; you need
electrical power to make a computer run. Step 2, while it sounds simple enough, requires
more explanation and is covered in Module 3, “The Central Processing Unit.” But, what
about Steps 3 and 4? What exactly is the firmware? Firmware is program code that is
stored on computer hardware in non-volatile memory and is responsible for performing
diagnostic tests and booting the operating system. Non-volatile memory is memory that
maintains its contents when no power is applied to the system. Non-volatile memory is
typically flash memory in modern systems or electrically erasable programmable read-only
memory (EEPROM) in older systems. On newer PCs, the firmware is called the BIOS or
UEFI. The firmware contains an initial bootstrap program that locates and then loads the
bootloader program, which is responsible for loading the initial process that makes up
the operating system. With general-purpose OSs like Windows and Linux, the bootloader
is typically stored on the disk where the OS is stored. The bootloader for Windows Vista
and later versions is called Boot Manager (BOOTMGR); NTLDR is used in older versions of
Windows. Linux systems use a variety of bootloaders, including Grub and LILO.

Note
On simple embedded systems, there may not be a separate bootstrap and bootloader
program. In these cases, the program in firmware that loads the OS is usually referred to as
the bootloader.

The Role of the BIOS


As mentioned, the basic input/output system (BIOS) and Unified Extensible
Firmware Interface (UEFI) are firmware programs that play an important part in the
boot process of a computer and the loading of an OS. Every computer that runs a general-
purpose OS, including mobile devices, has some sort of BIOS that is executed during
system startup. Even specialized devices like routers and access points have a BIOS that
performs hardware tests and loads the OS. On most systems, the BIOS has the following
properties and performs the following tasks:
• Resides on a chip on the computer’s motherboard; it is usually flash memory or
EEPROM in older systems
• Initializes I/O devices
• Performs tests at startup, such as memory and hardware component tests, called
the power-on self-test (POST)
MODULE 1  Operating Systems Fundamentals 15

• Provides a user interface to allow hardware configuration such as CPU overclocking


or disk configuration
• Locates and loads the operating system that interfaces with the user

Note
This section refers to BIOS as the firmware on a computer that performs startup functions
and loads the OS. The term “BIOS” is usually associated with PCs; newer PCs, as noted,
use a newer form of BIOS called UEFI. Other systems may refer to the startup firmware by
other names, so the term “BIOS” is used generically here to mean the startup firmware of a
computer.

Every PC has a BIOS, which is stored in a flash memory chip. Flash memory, which
you are familiar with from using thumb drives, does not lose its memory contents when
the computer is turned off. In early PCs, the BIOS was stored in an EEPROM chip, which
requires special circuitry built into the motherboard to update the firmware.

Note
On very old systems and some specialty devices and embedded systems, firmware might be
stored in erasable programmable read-only memory (EPROM) or even read-only memory
(ROM) chips. To program or reprogram an EPROM chip, it must be removed from the system
and programmed by a device called an EPROM burner. ROM chips cannot be reprogrammed.

When a computer is built, the BIOS is configured with a default set of parameters.
The BIOS configuration stores information about the amount of RAM, the storage devices,
and other I/O devices on the computer. The BIOS configuration is stored in a memory
chip called the complementary metal oxide semiconductor (CMOS). A CMOS chip
uses a low-power memory technology that is powered by a small battery. Users can make
changes to the BIOS configuration by accessing the BIOS setup screen before the computer
boots. Figure 1-6 shows a sample BIOS setup screen on a computer. Whenever you turn
on your PC, the machine wakes up and begins executing the startup program inside the
BIOS. This program initializes the screen and keyboard, tests computer hardware, such
as the CPU and memory, initializes the hard disk and other devices, and then loads the
operating system—Windows 10 or Linux, for example. Figure 1-7 illustrates the main
operating system components in a general design. Different OSs may have a somewhat
different architecture; for example, the GUI may run in user mode on some OSs.
16 MODULE 1  Operating Systems Fundamentals

Figure 1-6 A BIOS setup screen

User applications

User mode services User applications

User mode

User mode device drivers

Process manager Interrupt service routines File system managers

Kernel mode

Memory manager Kernel mode device drivers GUI

Hardware

Figure 1-7 General operating system design


MODULE 1  Operating Systems Fundamentals 17

Tip
If a computer is turned on but cannot access a device, such as the main disk drive, check the
BIOS settings to make sure that the BIOS knows about the device and is correctly configured
for it. If the BIOS gets corrupted or incorrect settings prevent the system from booting,
you may need to reset the BIOS; this process varies on different systems. To prevent BIOS
tinkering, you can often set up a password in the BIOS to control who can access the settings.
You can access the BIOS settings when the computer starts by pressing a designated key. On
many computers, this key is F1, F2, or ESC—a message on the screen when the computer
boots tells you which key to use, or you can consult your computer’s documentation.

Process and Service Management


As discussed, a process is a program that is loaded into memory and executed by the
CPU. A program can be a user application, an operating system service, or even the
kernel. It’s important to note that a program only becomes a process once it is loaded into
memory and scheduled to run. On a Windows 10 system, you can see all the running
processes by using Task Manager, as shown in Figure 1-8. In the figure, only some of the

Figure 1-8 A list of processes on a Windows 10 system


18 MODULE 1  Operating Systems Fundamentals

running processes are shown because the system currently has 61 processes running:
one application, 24 background processes, and 36 built-in Windows processes. (These
numbers vary greatly depending on what your OS is currently doing, how long you’ve
been signed in, and what applications are installed.) In general, the background processes
listed by Task Manager are not essential for the operating system to function and include
processes such as antimalware, Windows file indexer, and Cortana. The Windows
processes are required for full system functionality and include the registry service, user
interface components, network services, interrupt handlers, and logon services.

Note
The legacy name for processes is “jobs.” The term “job” came about when computer systems
were largely single-tasking and programs were scheduled to run one after another in a
procedure called batch processing. Some systems still use “job,” so if you see the term, think
“process.” You might also hear the term “task,” as in Windows Task Manager. Again, “task” is
just another term for “process.”

Kernel Mode Versus User Mode Processes


Certain key processes, such as those started by the kernel, must have high priority in
relation to other processes so when they have work to do, they will be scheduled for
CPU time as soon as possible. In addition, some processes must have full access to the
computer hardware, including all the memory and I/O devices. Other processes, such as
those started by a user, don’t require access to all the computer memory and I/O devices.
To support this distinction in process requirements, most CPUs support two modes of
operation: kernel mode and user mode. Kernel mode is a CPU mode in which a process
has unrestricted access to the computer hardware and has access to privileged CPU
instructions. Privileged CPU instructions include those that switch between kernel and
user mode and those that configure interrupts, timers, and I/O devices. User mode is a
CPU mode in which the process can only access memory locations allocated to it by the
OS, must ask the OS to access I/O devices on its behalf, and can’t execute privileged CPU
instructions. Most of the OS components discussed here operate completely or partially in
kernel mode. If a user mode process attempts to execute a privileged instruction, an I/O
address, or a memory address outside of its allocated range, an error will be generated and
the process will be terminated.

Tip
Kernel mode is also referred to as privileged mode.
MODULE 1  Operating Systems Fundamentals 19

Process Creation and Termination


The operating system manages process creation and process termination. When a process
is created, it is assigned a process ID (PID). The PID identifies the process, allowing other
processes to communicate with it and the user to manage it. For example, to see processes
that you started in Linux, you can type the ps command; the output contains the PID.
You can terminate a process using its PID by typing kill PID, where PID is the process ID.
Figure 1-9 shows the gedit process being created and running concurrently with the shell,
the ps command, and then the kill command to terminate gedit.

Figure 1-9 Creating, listing,


and terminating a process in Linux

A process uses resources such as CPU time, memory, input/output devices, and
the file system. Many of the resources required by a process are allocated when the
process initially loads, but processes can request resources such as additional memory
and file handles during runtime. A file handle is an identifier for a file that contains
all the information the file system needs to locate and access the file. When a process is
terminated, the resources are released back to the operating system so they can be used
by other processes.
Processes are usually created in one of four ways:
• By the bootloader—When a computer boots, the initial OS process is loaded and
started by the bootloader. In Windows and Linux, the kernel is loaded, which in
turn starts other kernel-related processes such as the memory manager.
• Through a request by the operating system—After the kernel is loaded and initialized,
other kernel mode processes such as services and device drivers are loaded. On
Linux systems, a process called systemd or init is the first user mode process started;
it is responsible for starting most of the other user mode processes that start when
the system boots. Some processes will start other processes, and you’ll have a tree
of processes loaded starting with systemd (or init, depending on the version of
Linux). The loading of OS processes continues until the entire OS is loaded into
memory. A partial screenshot of the Linux pstree command in Figure 1-10 shows
the process tree in Fedora Linux. On Windows systems, after the kernel mode
processes and device drivers are loaded, the kernel loads the Windows Session
Manager, which loads several critical processes, including wininit and winlogon.
Wininit starts most of the services that are configured to start when the system
20 MODULE 1  Operating Systems Fundamentals

Figure 1-10 The process tree in Linux

boots, and the authentication service (called lsass) is used to verify user credentials.
Winlogon handles the user logon procedure, calling lsass to verify credentials, and
starts the Desktop Window Manager (dwm) that manages much of the Windows
10 user interface. A free utility called Process Explorer shows a graphical process
tree on Windows systems (see Figure 1-11).

Tip
You can download Process Explorer and many other system utilities from
https://docs.microsoft.com/en-us/sysinternals/.

• By another process—Any process can start another process. When a process creates a
new process, the creating process is referred to as the parent and the new process
is called the child. A parent process can have several child processes, and the child
processes can have child processes as well. In some cases, both the parent and child
process remain scheduled for execution and run concurrently. In other cases, the
parent process waits until the child process terminates before it continues to run.
You can see this in action at a Linux system shell prompt. If you type the name of
a program—for example, gedit—and press Enter, a new window opens with the
gedit program, but you won’t be able to type anything more at the shell prompt
until you close gedit. However, if you type gedit& and press Enter, the gedit window
opens but your shell prompt immediately returns, awaiting the next command.
MODULE 1  Operating Systems Fundamentals 21

Figure 1-11 Process Explorer on Windows 10

By adding the & to the end of the command, you are telling the shell to create a
new process but continue running. Figure 1-9, shown previously, illustrates this
point.
• By a user—When a user double-clicks an application icon or file, or types the
name of a program at the command prompt, a process is created that contains
the application and its data. On Windows systems, the explorer process loads the
application and becomes the parent process; on Linux systems, the shell process
performs that task.

Memory and I/O Management


One of the functions of the operating system is to manage memory and access to I/O
devices. Memory is managed by a dedicated memory manager that runs in kernel mode.
When a process is loaded and started, the OS must allocate enough memory for the
process and its data and load the process into that space. When a process terminates,
22 MODULE 1  Operating Systems Fundamentals

the OS must mark the memory as free so other processes can use it. In addition, for user
mode processes, the memory manager configures registers on the CPU that specify the
start and end of each process’s allocated address space. If the process attempts to access
an address outside of those limits, an error is generated and the process is terminated. In
this way, the memory manager, along with the CPU, prevent a process from accessing and
perhaps corrupting the memory space of the OS or another process.
I/O management is required to prevent more than one process from accessing an I/O
device at the same time. That isn’t to say that two or more processes can’t access the video
card or USB bus; clearly they can. But, access to all devices is done in an orderly fashion,
through a single process called a device driver. A device driver is usually a kernel mode
process that accesses hardware devices directly on behalf of user mode processes or other
kernel mode processes. Ideally, the operating system loads a device driver for each I/O
device on the computer. The driver understands how to communicate with the device
and keeps track of requests to read or write to the device from multiple processes. In
this way, the driver is the only process that accesses the device, and it knows the state
of the device so as not to perform conflicting operations, such as writing to the device
when it is expecting a read operation. Many device drivers have a user mode component
and a kernel mode component. User mode processes communicate with the user mode
component through a call to the OS, which in turn communicates with the kernel
mode component. The user mode component might perform high-level operations for a
particular class of device such as storage devices. Then the user mode component passes
the request to the kernel mode driver for the particular storage device being accessed
(for example, a hard disk or DVD). Figure 1-12 shows the basic structure between the
operating system and hardware devices.

Note
If the OS doesn’t recognize a device on a system, it could be because the OS doesn’t have a
built-in device driver or the device driver needs to be updated. Most OSs allow users to install
new or updated drivers that can be downloaded from the computer or device manufacturer’s
Web site.

Interrupts
One of the challenges of developing a reliable and responsive operating system is the
unpredictable nature of the environments in which computers are used. Users type at the
keyboard and move and click the mouse in unpredictable patterns, and network packets
can arrive at any time. One way for an operating system to deal with all of the input/
output devices is to periodically schedule the assigned device driver to check if data is
ready to be received or sent. But, what if the user is just reading a Web page on the screen
and not touching the keyboard or mouse? In that case, the CPU is doing unnecessary
MODULE 1  Operating Systems Fundamentals 23

Operating system

Monitor driver code Disk driver code User mode drivers

Software

Monitor Hard disk DVD/CD-ROM


Kernel mode drivers
device driver device driver device driver

Video card Hard disk DVD/CD-ROM


controller controller
Hardware

Monitor Hard disk DVD/CD-ROM


drive drive

Figure 1-12 Device drivers provide communication between the OS and


hardware devices

work to check if those devices are active. And, while the OS is checking on devices that
aren’t currently being used, there could be dozens of network packets arriving at the
network interface that need to be read. This type of I/O handling is called polling—the
OS checks each device one after the other in a round-robin fashion to see if it requires
attention. In general, polling is not a very efficient method of handling I/O unless there
are few I/O devices and the system doesn’t have to do a lot of non-I/O processing. Polling
might work—for example, in some embedded system applications where one or two
sensors need to be read periodically—but the CPU has little else to do that is time-critical.
Because of the shortcomings of polling, most systems use interrupts. An interrupt
is a signal, usually generated by an I/O device, that alerts the CPU and OS that a device
needs attention (data needs to be read or written, for example). Many interrupts are
hardware interrupts in which a signal generated by an I/O device causes a pin on the
CPU to change state (from on to off or vice versa). These pins on a CPU are usually
called interrupt request (IRQ) lines. When the CPU detects the IRQ line, it stops what
it is doing, determines the source of the interrupt, and starts execution of the interrupt
service routine (ISR), also referred to as an interrupt handler. If the interrupt is caused
by an I/O device, the ISR calls the relevant device driver to service the device. After the
device is serviced, program control resumes with the process that was running when the
interrupt occurred. If you’ve ever been happily typing a Word document and suddenly
24 MODULE 1  Operating Systems Fundamentals

the characters stopped appearing in the document for a brief period, it’s possible
that your Word session (and the interrupts the keyboard generates) was interrupted by
higher-priority interrupts, such as the disk drive or a flurry of network packets arriving.
In other words, interrupts are prioritized. Critical system devices such as the system
timer have the highest priority, as do certain hardware conditions such as a detected
power failure. An operating system can prioritize other interrupts according to the
perceived importance of the devices using them. Interrupts can also be generated by
software so important processes get immediate CPU access or certain error conditions are
handled quickly. A software interrupt is called a trap and can be generated by user mode
programs when they need immediate kernel services. You can see a list of IRQs and the
devices or processes using them in the Microsoft System Information app (msinfo32.exe),
as shown in Figure 1-13.

Figure 1-13 Interrupts on a Windows 10 system

The use of interrupts on a system is, in part, what can make a system unpredictable,
and interrupts can be a source of unreliability or conflicts. ISRs must be written carefully
and efficiently, as they are usually executed in kernel mode. Errors that occur in kernel
mode are usually catastrophic. To prevent unnecessary interruptions, ISRs turn off
interrupts of equal or lower priority; this is called interrupt masking . Higher-priority
interrupts can, however, interrupt a lower-priority interrupt. Because some interrupts
are turned off while an ISR is running, it must do its work quickly so other devices that
need attention can be serviced in a timely manner. A certain class of interrupts called
MODULE 1  Operating Systems Fundamentals 25

non-maskable interrupts (NMI) cannot be turned off. NMIs are primarily reserved for
error conditions such as divide by zero or memory errors, but they can also be used for
system debugging.

Security and Resource Protection


You’ve already seen one way that an OS provides protection—through memory and
I/O management, along with user mode and kernel mode processes. These features
prevent processes from having intentional or unintentional conflicts with the operating
system, the computer hardware, and each other. However, what about protection from
malware or from users who attempt unauthorized access to the system, the network,
or the file system? Modern general-purpose OSs and even many RTOSs running on
embedded systems provide controls to prevent unauthorized access to the system and
its data.
Malware protection starts with protected memory space. Before OSs had kernel and
user operating modes, malware could easily cause major damage by directly accessing
memory space and hardware devices without having to go through the OS. Now, if a user
launches a program infected with malware, the program can only perform actions that
the user has authorization to perform. The damage could still be substantial, especially
for that user’s files and data, but the operating system and other users’ files are likely
to be safe unless the user has wide-ranging privileges on the system—for example, an
administrator user. Malware launched by a system administrator can wipe out an entire
system because administrator accounts (such as the Administrator on Windows systems
or the root user on Linux systems) can usually access any and all files, change system
configurations, install device drivers, and format hard drives. Fortunately, most OSs try to
prevent such occurrences by scanning programs before they are loaded into memory and
executed.

Authentication and Authorization


Authentication and authorization are critical security and protection services provided
by most general-purpose OSs. Authentication verifies that an account trying to access a
system is valid and has provided valid credentials (username and password, for example).
Authorization verifies that an authenticated account has permission to perform an action
on a system, such as open a file or perform configuration changes. These two critical OS
functions provide some protection from malware and attackers. These topics are explored
in more detail in Module 10, “Sharing Resources and Working with Accounts.”

The Kernel
The kernel, as mentioned, is often the first process loaded when an OS boots, and
it is responsible for managing and protecting resources. The kernel runs with the
highest priority on the system—when the kernel needs access to the CPU, it gets access
immediately. As noted, scheduling computer processes and managing resources, such as
memory and processor usage, are key tasks of the OS kernel.
26 MODULE 1  Operating Systems Fundamentals

The jobs performed by the kernel can include the following:


• Managing interactions with the CPU
• Managing interrupt handlers and device drivers
• Handling basic computer security
• Managing use of the computer’s memory
• Managing priority levels assigned to programs and computer processes
In Windows systems, the name of the kernel file is ntoskrnl.exe. In macOS, the kernel
is called XNU. The actual kernel name in Linux depends on the distribution and release of
Linux. You can determine information about the kernel by using the uname -sr command
in Linux. (See Hands-On Project 1-4 to learn how to execute the uname command.)

A Short History of Operating Systems


The history of operating systems is a long and complex subject. This short history is not
meant to be comprehensive; it merely presents enough background information to show
how some of the features in modern computers and operating systems developed.
Initially, computers were used as automated calculators to solve all sorts of
mathematical and statistical problems. Computers were extremely large, often taking up
entire rooms. Although you can legitimately trace the history of today’s digital computers
back 100 years or more, no practical designs were used by significant numbers of people
until the late 1950s. Scientists programmed these computers to perform specific tasks;
they were single-tasking and single-user. The operating systems were rudimentary and
were often not able to do more than read punch cards or tape that contained the program
instructions and write output to Teletype machines (machines resembling typewriters).
A tape or deck of cards was loaded, a button was pushed on the machine to indicate
the input was ready, and the machine started to read the instructions and perform the
operations requested. If all went well, the work was done and the output was generated.
The computer sat idle until the next set of instructions was fed to it.
True, there was computer history before this point, but it did not involve any sort of
operating system. Any program that the computer ran had to include all logic to control
the computer. Because this logic was rather complex, and not all scientists were computer
scientists, the operating system was developed as a tool that allowed non-computer
scientists to use computers. The OS reduced programming work and increased efficiency.
Obviously, there was not all that much to “operate” on—mainly the punch card and tape
readers for input and the Teletype printer for output. There also was not that much to
operate with; memory capacity was very limited, and processors ran at a glacial pace by
our standards (but were fast for that time). The objective in operating systems design,
therefore, was to keep them very small and efficient.
It took only a few decades for computers to begin to appeal to a broader audience.
Although computers of the late sixties and early seventies were crude by today’s standards,
they were quite capable and handled extremely complex tasks. These computers
MODULE 1  Operating Systems Fundamentals 27

contributed to the development of space travel, submarine-based ballistic missiles, and


international finance. Computers of this time used only a few kilobytes of RAM and
rudimentary storage of only a few megabytes. This period also saw the beginning of a
global, computer-based communications system called the Internet. Applications became
logically more complex, requiring larger programs and large amounts of data.

From the Trenches . . .


In the 1990s, student registration, accounting, student aid, and all other administrative
functions in a state’s community college system were performed on one large computer
at each community college—that had only 4 MB of RAM. The system administrators of
those computers considered these machines to have more than enough memory to run all
administrative functions for a single college. Today, those functions are performed at each
location on servers; each server is much smaller in physical size, and each uses tens of GB or
more of RAM.

As always, necessity was the mother of invention. Input and output devices were
created, and computer memory capacity and speed increased. With more devices to
manage, operating systems became more complex, but the goal of the OS—to be small and
fast—was still extremely important. This round of evolution, which began to take off in
the mid-seventies, included the display terminal, a Teletype machine with a keyboard that
did not print on paper but projected letters on a screen (commonly referred to as a cathode
ray tube or CRT). The initial CRT was later followed by a terminal that could also show
simple graphics; the terminal looked like an early computer, but it was only a monitor and
a keyboard without a CPU or processing capability. The magnetic tape drive, used to store
and retrieve data and programs on tape, could store more than paper tape and was less
operator-intensive. It was quickly followed by numerous manifestations of magnetic disks.
The next evolution was the ability to share computer resources among various
programs. If a computer was very fast and could quickly switch among various programs,
you could do several tasks seemingly at once and serve many people simultaneously.
Some of the operating systems that evolved in this era are long lost to all but those
who worked directly with them. However, there are some notable players that were
responsible for setting the stage for the full-featured functionality we take for granted
today. Digital Equipment Corporation’s (DEC’s) PDP series computers, for example, ran
the DEC operating system, which was simply known as OS. A popular DEC OS was
OS/8, which was released in 1968 and ran on PDP-8 computers. PDP-8 computers were
general-purpose machines that at one time were the top-selling computers across the
world. The PDP series could also run Multics, which was the basis for the development of
the first version of UNIX, a multiuser, multitasking operating system. (Multics is widely
considered to be the first multiuser, multitasking OS.)
28 MODULE 1  Operating Systems Fundamentals

Note
To find out more about the once popular PDP-8 computers, visit www.cs.uiowa.edu/~jones/pdp8.

The original UNIX was developed at AT&T Bell Labs in 1969 by Kenneth Thompson
and Dennis Ritchie as an improvement on Multics. Later, DEC VAX computers used
Virtual Memory System (VMS), a powerful, multitasking, multiuser operating system that
was strong on networking. IBM mainframes made a series of operating systems popular,
starting with GM-NAA I/O in the early sixties and later with System/360. Many others
would follow, including CICS, which is still in use today.
Programming computers at this time was still a very complicated process best left
to scientists. In the mid-1960s, right after the first interactive computer game was
invented at the Massachusetts Institute of Technology (MIT), a simple programming
language was developed at Dartmouth College, aimed at the nonprogrammer. It was
dubbed BASIC, or Beginner’s All-purpose Symbolic Instruction Code, and became
a widely used programming language for many years to follow. A few years later, in
1975, Bill Gates discovered BASIC and became interested enough to write a compiler
for it. (A compiler is software that turns computer code written by people into code
that is understood by computers.) Gates then sold the compiler to a company called
Micro Instrumentation Telemetry Systems (MITS). MITS was the first company to
produce a desktop computer that was widely accepted and could conduct useful work
at the hands of any knowledgeable programmer. That same year, Gates dropped out
of Harvard to dedicate his time to writing software. Other programming languages
introduced around this time included Pascal, C, and other versions of BASIC supplied
by various computer manufacturers. Only a couple of years later, Gates’ new company
(Microsoft) and others adapted popular mainframe and minicomputer programming
languages, such as FORTRAN and COBOL, so they could be used on desktop
computers.
The introduction of the microcomputer in the mid-1970s was probably the most
exciting thing to happen to operating systems. These machines typically had many of
the old restrictions, including slow speed and little memory. Many microcomputers
came with a small operating system and read-only memory (ROM) that did no more
than provide an elementary screen, keyboard, printer, and disk input and output. Gates
saw an opportunity and put together a team at Microsoft to adapt a fledgling version
of a new microcomputer operating system called 86-DOS, which ran on a prototype
of a new microcomputer being developed by IBM called the personal computer (PC).
86-DOS was originally written by Tim Paterson (from Seattle Computer Products)
as the Quick and Dirty Operating System (QDOS) for the new 8086 microprocessor.
86-DOS (or QDOS) evolved in 1980 through a cooperative effort between Paterson
and Microsoft into the Microsoft Disk Operating System, or MS-DOS. MS-DOS was
MODULE 1  Operating Systems Fundamentals 29

designed as a command-line interface, which means that users typed in commands


instead of using the graphical user interface (GUI) point-and-click method that is
common today.

Note
The original MS-DOS did not offer a GUI desktop from which to click menus and icons. The
command-line interface is available in modern Windows operating systems, as well as in
Linux and macOS. Some server administrators prefer to use a command-line interface
because it offers better control over the operating system.

MS-DOS became a runaway success for Microsoft, and it was the first widely
distributed operating system for microcomputers that had to be loaded from disk or tape.
There were earlier systems, including Control Program/Monitor (CP/M), that used some
features and concepts of the existing UNIX operating system designs, but when IBM
adopted MS-DOS for its PC (calling it PC DOS), the die was cast.
What did MS-DOS do? It provided the basic operating system functions described
earlier in this module, and it was amazingly similar to what was used before on larger
computers. It supported basic functions, such as keyboard, disk, and printer I/O—and
communications. As time went on, more and more support functions were added,
including support for such things as hard disks. Then along came the Apple Macintosh in
1984, with its GUI and mouse pointing device, which allowed users to interact with the
operating system on a graphical screen. The mouse allowed users to point at or click icons
and to select items from menus to accomplish tasks. Initially, Microsoft chose to wait on
development of a GUI, but after Microsoft saw the successful reception of the interface on
Apple computers, it developed one of its own.
When the Macintosh was introduced, it seemed light years ahead of the IBM PC.
Its operating system came with a standard GUI at a time when MS-DOS was still based
on entering text commands. Also, the Macintosh OS managed computer memory well,
something MS-DOS did not do. And, because Mac OS managed all computer memory
for the application programs, you could start several programs and switch among them.
Mac OS was also years ahead in I/O functions such as printer management. In MS-DOS,
a program had to provide its own drivers for I/O devices; MS-DOS provided only the
most rudimentary interface. On Mac OS, many I/O functions were part of the operating
system.
Microsoft, however, did not stay behind for long. In 1985, Microsoft shipped an
extension to its DOS operating system, called Microsoft Windows, which provided a GUI
and many of the same functions as Mac OS. The first Windows was really an operating
“environment” running on top of MS-DOS, made to look like a single operating system.
Today’s Windows is no longer based on DOS and is a full-fledged operating system.
30 MODULE 1  Operating Systems Fundamentals

Note
Although Apple was six years ahead of Microsoft in offering a friendly GUI-based OS, Apple
ultimately fell well behind Microsoft in sales because it chose not to license the Mac OS to
outside hardware vendors.

Numerous incarnations of operating systems have come and gone since those days.
Today, both Windows and macOS are very similar in what they can do and how they do
it; they have a wealth of features and drivers that make the original DOS look elementary.
However, their principal functions are unchanged: to provide an interface between the
application programs and hardware, and to provide a user interface for basic functions,
such as file and disk management. While many consider Linux superior to both Windows
and macOS, Windows reigns supreme on the user desktop in business networks, with
macOS a distant second, followed by Linux. The datacenter presents a different picture,
however, where Linux servers rule the day.
Let’s review the important pieces of OS development history. Although pre-1980s
computing history is interesting, it doesn’t hold much relevance to what we do with
computers today. Tables 1-2 and 1-3 show the major milestones in operating system
development. The tables summarize 8-, 16-, 32-, and 64-bit operating systems. In general,
a 64-bit operating system is more powerful and faster than a 32-bit system, which is more
powerful and faster than a 16-bit system, and so on. You will learn more about these
differences in Module 2, “Modern Client and Server Operating Systems,” and Module 3,
“The Central Processing Unit.”

Table 1-2 Operating system releases from 1968 to 1999

Operating Approximate
System Date Bits Comments
UNIX (Bell/ 1968 8 First widely used multiuser, multitasking operating
AT&T) system for minicomputers
CP/M 1975 8 First operating system that allowed serious business
work on small personal computers. VisiCalc, a
spreadsheet application released in 1978, was the first
business calculation program for CP/M, and to a large
extent made CP/M a success.
MS-DOS 1980 16 First operating system for the very successful IBM PC
family of computers. Lotus 1-2-3 was to MS-DOS in
1981 what VisiCalc was to CP/M. Also in 1981, Microsoft
introduced the first version of Word for the PC.
PC DOS 1981 16 IBM version of Microsoft MS-DOS
MODULE 1  Operating Systems Fundamentals 31

Table 1-2 Operating system releases from 1968 to 1999 (continued )

Operating Approximate
System Date Bits Comments
Mac OS 1984 16 The first widely distributed operating system that was
totally graphical in its user interface. Also, Mac OS
introduced the use of a mouse to PC-based systems.
Mac System 1987 16 Mac OS implemented cooperative multitasking so that
Software 5 more than one application could be run at one time.
Mac System 1988 16 Mac OS was significantly stabilized and was also
Software 6 adapted to run on portable computers.
Windows 3.0 1990 16 First usable version of a graphical operating system for
the PC
Linux 0.01 1991 16 Linus Torvalds made the first version of Linux available
through an FTP download site.
Mac System 1991 32 Mac OS was redesigned to have a new interface, more
Software 7 applications, and to use 32-bit addressing.
MCC Interim 1992 16 The first actual distribution of Linux was offered
Linux through the University of Manchester in England.
Windows for 1993 16 First version of Microsoft Windows with peer-to-peer
Workgroups networking support for the PC
(Windows 3.11)
Windows 1993 32 Microsoft’s first attempt to bring a true 32-bit,
NT (New preemptive multitasking operating system with
Technology) integrated network functionality to the world of
personal computing. Windows NT was later offered in a
Workstation version and a Server version.
Red Hat Linux, 1994 16/32 Linux kernel version 1.0 was released, as were the first
SUSE, and the distributions of Red Hat Linux and SUSE Linux.
Linux kernel 1.0
Windows 95 1995 16/32 An upgrade to Windows 3.x, mostly 32-bit code, with a
much improved user interface and increased support
for hardware. It offered native support to run 32-bit
applications and many networking features. Windows
95 represented a different direction than Windows
NT because it was intended to provide backward
compatibility for 16-bit applications, and it continued to
allow applications to directly access hardware functions.
Windows 98 1998 32 Implemented many bug fixes to Windows 95, more
extended hardware support, and was fully 32-bit
GNOME 1.0 1999 16/32 The GNOME 1.0 desktop (similar in function to
desktop Windows) became available as free software and
grew to become one of the most popular UNIX/Linux
desktops.
32 MODULE 1  Operating Systems Fundamentals

Table 1-3 Operating system releases from 2000 to the present

Operating Approximate
System Date Bits Comments
Windows 2000 2000 32 A major revision of the Windows NT operating
system; Windows 2000 was much faster and more
reliable than Windows NT. The Windows 2000 kernel
contained more than twice as many lines of code
used in Windows NT. Windows 2000 came in several
versions, including Professional, Server, Advanced
Server, and Datacenter.
Windows 2000 32 Microsoft’s operating system upgrade of Windows
Millennium 98, designed specifically for the home user, with
Edition (Me) improved multimedia capabilities.
Mac OS X 2001 32 Introduced as a significant departure from the
earlier Mac OS versions because it was rewritten to
have UNIX-based Darwin as the foundation for the
operating system code. Updated versions of the
OS continue to be issued, with the Mojave version
(macOS 10.14) being the most current at this writing.
Linux kernel 2.4 2001 32/64 Enabled compatibility with Plug and Play devices,
including USB devices
Windows XP 2001 32/64 The successor to Windows Me and Windows 2000
Professional, available in four editions: Home,
Professional, Tablet PC, and Media Center. The
Home Edition was a 32-bit system that focused on
home use for photos, music, and other multimedia
files. The Professional Edition, available in 32-bit
and 64-bit versions, was intended for office and
professional users who needed more computing
power and extensive networking capabilities. The
Tablet PC Edition was tailored for tablet PCs that
use speech and pen capabilities and offered great
mobility, such as native wireless communications.
Finally, the Media Center Edition was for enhanced
digital media use involving television, audio, video,
and graphics.
Windows 2003 32/64 Available in Standard Edition, Web Edition,
Server 2003 Enterprise Edition, and Datacenter Edition, this
operating system was designed as a server platform
for Microsoft’s .NET initiative, which integrated all
types of devices—PCs, handheld computers, cell
phones, and home appliances—for communications
over the Internet.
Linux kernel 2.6 2003 32/64 Provided support for larger file system storage, new
CPUs, more stable 64-bit CPU support, and support
for many more simultaneous users
MODULE 1  Operating Systems Fundamentals 33

Table 1-3 Operating system releases from 2000 to the present (continued )

Operating Approximate
System Date Bits Comments
Windows Vista 2006 32/64 Introduced a newer security philosophy that
employed a restricted user account control mode.
Came in five editions: Home Basic, Home Premium,
Business, Enterprise, and Ultimate.
Windows R2 2006 32/64 An interim release of Windows Server 2003 for
Server 2003 R2 compatibility with Windows Vista and to add
new features, particularly for medium-sized and
large organizations. Offered the same editions as
Windows Server 2003.
Windows 2008 32/64 Employed the new security philosophy begun with
Server 2008 Windows Vista and extended security for servers
in part by offering greater modularity to achieve a
smaller attack profile. The main editions included
Standard, Enterprise, Datacenter, Web, and HPC
(High Performance Computing).
Mac OS X Snow 2009 32/64 Dropped support for PowerPC processors and
Leopard switched to using only Intel processors
Windows 7 2009 32/64 Employed enhanced security features, with fewer
headaches and stumbling blocks for the user,
compared to Windows Vista. Offered many new
desktop features. The editions included Home
Basic, Home Premium, Professional, Enterprise, and
Ultimate.
Windows 2009 64 only An interim release for Windows Server 2008 that
Server 2008 R2 included built-in compatibility with Windows 7. It
had desktop changes similar to those in Windows 7.
Offered the same versions as Windows Server 2008.
Microsoft’s current plans are only to develop new
operating systems for 64-bit computers.
Mac OS X Lion 2011 32/64 Introduced the Launchpad feature
Linux kernel 3.x 2011 32/64 Included automatic defragmentation, improvements
to container support, and better driver support
Mac OS X 2012 64 Added the popular iMessage app found on iOS and
Mountain Lion the Notification Center. Dropped support for 32-bit
Intel processors.
Windows 8/8.1 2012/2013 32/64 Windows 8 was Microsoft’s first attempt to unify the
mobile and desktop computing space. The touch-
centric interface was not well accepted; to mollify
users, Microsoft quickly released Windows 8.1, which
walked back some of the disliked user interface
changes from previous Windows versions.
(continues)
34 MODULE 1  Operating Systems Fundamentals

Table 1-3 Operating system releases from 2000 to the present (continued )

Operating Approximate
System Date Bits Comments
Windows 2012/2013 64 only Windows Server 2012 was released along with
Server 2012/R2 Windows 8 and had the same user interface
problems. Windows Server 2012 R2 was released
along with Windows 8.1. Windows Server 2012/R2
made substantial enhancements to its virtualization
engine, Hyper-V, and added cloud-centric features.
Windows Server 2012/R2 had Standard and
Datacenter editions along with Foundation and
Essentials. Enterprise edition was later dropped.
Mac OS X 2013 64 only
Mavericks
Mac OS X 2014 64
Yosemite
Linux kernel 4.x 2015 32/64 Added support for live patching of the kernel,
primarily aimed at installing security updates
without requiring a reboot
Mac OS X El 2015 64 only
Capitan
Windows 10 2015 32/64 Windows 10 finished walking back the user interface
problems of Windows 8 while providing a single OS
that worked well on the desktop as well as on touch-
centric mobile devices like the Microsoft Surface.
Speculation is that Windows 10 may be the last
named version of Windows.
macOS Sierra 2016 64 only
Windows 2016 64 only Windows Server 2016 emphasizes virtualization,
Server 2016 flexible storage solutions, and cloud computing,
and includes a version called Nano Server that has
a very small footprint for embedded and virtual
deployments. Microsoft support for containers was
first introduced in Windows Server 2016.
macOS High 2017 64 only
Sierra
Windows 2018 64 only Released in late 2018, Windows Server 2019 focuses
Server 2019 on integration with Microsoft Azure, containers, and
virtualization.
macOS Mojave 2018 64 only
Linux kernel 5.x 2019 32/64 Adds energy-aware scheduling, which is of primary
importance in mobile devices
macOS 2019 64 only
Catalina
MODULE 1  Operating Systems Fundamentals 35

Tip
Check out Paul Thurrott’s Web site at www.thurrott.com/category/windows/windows-10 to read
about the latest in Windows 10.

All of these PC operating systems changed the roles of the big machines’ dynasty.
Many big machines are now obsolete; others are used for calculation and data storage
as back-end functions for the PC. Even in this arena, they are threatened today as PC
operating systems and hardware extend further and further.
Many older operating systems are no longer around because of hardware changes.
In Module 3, you look more closely at hardware architecture and what it means for the
operating system. A good example of hardware that is no longer feasible to run an OS is
the Z80 CPU produced by Zilog. Zilog manufactures semiconductors and created the first
microprocessor.
When the cheaper and more flexible Intel 8088 and 8086 microprocessors were
introduced in the IBM PC, the MS-DOS platform was a more attractive choice for most
users. The Z80 and its CP/M operating system slowly died out. The same happened to
some operating systems that used IBM PC hardware, but for other reasons. A prime
example is IBM’s own OS/2 operating system, first released in 1987 and developed jointly
with Microsoft. The OS/2 system required extensive hardware, and it could not run older
MS-DOS applications. Many people wanted to continue to run MS-DOS applications, so
OS/2 was not a big hit. Because new software for OS/2 was slow to come and offered no
substantial new features, people were hesitant to use it. Today, you will find OS/2 mainly
in environments where it is used to interface to large IBM mainframes with custom-
developed applications. For an operating system to be successful, many things must work
together: availability of hardware and application programs, the right mix of features, and
good timing. Try Hands-On Project 1-1 at the end of this module to learn more about the
history of computers and operating systems.

Current General-Purpose Operating Systems


The operating systems discussed in this book are the most common in today’s home and
business computing environments, and they fall into several families:
• Windows client operating systems
• Windows server operating systems
• UNIX/Linux operating systems
• Apple Macintosh macOS
In Module 2, you learn about these families in more detail. This section provides a
brief summary.
36 MODULE 1  Operating Systems Fundamentals

At the time of this writing, the two Windows client versions that are used most
frequently are Windows 7 and 10. However, as of January 2020, before this book was
published, Windows 7 reached its “end of life,” which means Microsoft discontinued
support for Windows 7, including security updates. While there are still many Windows
7 systems in use and probably will be well after January 2020, this book will focus on
Windows 10. Microsoft continually issues updates for Windows systems that increase
their security and performance, and Windows 10 receives updates twice annually that
change or add features. Windows 10 feature descriptions and screenshots in this book are
based on Windows 10 version 1903, which was released in March 2019.
The most popular Microsoft server operating systems are Windows Server 2012,
Windows Server 2016, and Windows Server 2019. Support for Windows Server 2008
ended in January 2020, while support for Windows Server 2012 is scheduled to end in
October 2023. Feature descriptions and screenshots of Windows Server in this book will
be based on Windows Server 2016 and Windows Server 2019.

Note
Windows 8 was not well received and almost all systems that were initially configured
with Windows 8 were upgraded to Windows 8.1 when it became available. However, most
Windows 8.1 users have since upgraded to Windows 10, so Windows 8 and Windows 8.1 are
not covered in detail in this book.

The multiuser UNIX operating system has been popular among industrial-strength
users for many years. It is especially appealing to members of the scientific and research
communities for its power to perform complex tasks and maintain large databases.
There are many flavors of UNIX, but the two main design standards are the Berkeley
Software Distribution (BSD) standard and the System V Release 4 (SVR4) standard.
This book focuses on SVR4 UNIX. Linux is a UNIX look-alike system that is popular as a
server operating system in business, education, and government and is rapidly replacing
UNIX. Linux operating system distributions are particularly popular for servers and are
gaining ground on the desktop, in part because they take advantage of a huge open
source software community. Open source software is typically developed by hundreds or
thousands of volunteers, relies on peer review, contains code in the public domain, and is
typically distributed for free. The Linux screenshots and features covered in this book are
based on Fedora 30 Workstation and Fedora 30 Server.

Tip
You can learn more about open source software at www.opensource.org and sourceforge.net.
MODULE 1  Operating Systems Fundamentals 37

The macOS operating system for Apple Macintosh computers is popular in the
educational and graphics sectors, particularly for video editing and desktop publishing.
Its use in the corporate world is often for these applications, and it is also very popular
among home users. Corporate users sometimes regard macOS as difficult to set up for
networking in a medium-sized to large organization with complex networks, although
Apple has addressed many of these concerns. MacOS is popular with home users because
the desktop is intuitive and home network setup is user friendly. Also, some home users
are already familiar with macOS from using it at school. The Mac screenshots and features
covered in this book are based on macOS Mojave.
In Module 2, you will take a much closer look at the individual operating systems
mentioned here. In that module, you will find out more about the hardware required
to run each operating system, and which versions you will see in which environments.
Try the hands-on projects at the end of Module 1 to learn more about Windows-based,
Linux, and macOS operating systems, including how to use tools for obtaining system
information, how to view device drivers, how to see multitasking in operation, and how
to use desktop applications.

Module Summary
• All computers perform three basic tasks: application on a single computer at the same
input, processing, and output. An operating time.
system is a specialized computer program • Two common types of operating systems
that provides a user interface, file system, are desktop (or client) and server operating
processes and services, and a kernel. systems.
• An operating system provides the foundation • The BIOS is low-level program code that
upon which to run the components of a operates between the computer hardware
computer and execute applications. and a higher-level operating system to
• A basic task of an operating system is to initiate communications with hardware
enable a computer to perform I/O functions devices, perform hardware tests at startup,
so that it can use software applications and and enable the startup of the higher-level
communicate with computer hardware. operating system.
• Operating systems can be understood in terms • Device drivers can extend the native
of characteristics such as time sharing, real- functions of an operating system to provide
time operation, and multiuser capabilities. access and control over different types of
• Early operating systems tended to be single- devices, such as printers and DVD drives.
tasking, but modern systems are largely • The history of operating systems and
multitasking. computers represents a progression
• A true multiuser system is one in which from physically huge computers to large
multiple users access and run a single computers to desktop-sized computers that
38 MODULE 1  Operating Systems Fundamentals

have powerful processing capabilities and was the refinement of the GUI, as seen in
operating systems. the development of Windows-based and
• An operating system may be geared to run Mac OS systems.
a large mainframe computer or a small PC. • Current popular operating systems include
However, small PC systems can now be Windows 10, Server 2012/R2, Server 2016,
very powerful; when combined, they can be Server 2019, UNIX/Linux, and macOS
used in many places instead of mainframe Mojave. Of the systems listed, the server
systems. operating systems are primarily discussed
• From a user standpoint, one of the most in the last three modules of the book, along
significant advances in operating systems with some networking basics.

Key Terms
authentication interrupt request (IRQ) line
authorization interrupt service routine (ISR)
basic input/output system (BIOS) kernel
Beginner’s All-purpose Symbolic Instruction kernel mode
Code (BASIC) load-sharing cluster
boot procedure Microsoft Disk Operating System (MS-DOS)
bootloader multitasking operating system
bootstrap multiuser operating system
client operating system non-maskable interrupt (NMI)
clustering non-volatile memory
command-line interface operating system (OS)
complementary metal oxide semiconductor personal digital assistant (PDA)
(CMOS) polling
computer hardware power-on self-test (POST)
cooperative multitasking preemptive multitasking
deterministic process
device driver process ID (PID)
embedded system real-time operating system (RTOS)
fault tolerance scalability
file handle server operating system
file system service
firmware single-tasking operating system
general-purpose operating system single-user operating system
graphical user interface (GUI) standalone operating system
hot adding trap
hot swapping Unified Extensible Firmware Interface (UEFI)
interrupt user interface
interrupt masking user mode
MODULE 1  Operating Systems Fundamentals 39

Review Questions
1. Which of the following is a basic function 6. While on a coffee break, your colleague
all computers perform? (Choose three.) asserts that cooperative multitasking is
a. processing the best operating system design. What is
b. Internet access your response? (Choose three.)
c. graphics a. A disadvantage of cooperative
d. input multitasking is that it relies on each
e. email program to decide when to give
f. output control back to the operating system.
2. Which of the following executes b. Cooperative multitasking can be faster
instructions provided by computer than other forms of multitasking
programs? because it increases the clock speed of
a. NIC the processor.
b. USB c. Cooperative multitasking OSs can
c. CPU freeze due to a process getting stuck in
d. drive an infinite loop.
3. You are asked to develop a process that d. Modern operating systems use
runs in the background and handles preemptive multitasking so that the
network communications. What type of operating system is fully in control.
process should you develop? e. Cooperative multitasking is best used
a. service on real-time operating systems.
b. ISR 7. You have been asked to recommend
c. kernel an operating system for a project that
d. foreground requires precise timing of I/O devices and
4. Which of the following is a feature deterministic response times to events.
typically provided by an operating Which OS should you recommend?
system? (Choose two.) a. Android
a. file system b. VxWorks
b. spreadsheet c. Linux
c. database app d. PDP-10
d. kernel 8. Which of the following is best to run on a
5. A friend of yours described a program he client operating system?
is writing that runs on a microcontroller a. DHCP server
and will read sensors and write to devices b. Active Directory
that control industrial equipment. What c. virtualization
type of system is his program most likely d. Web browser
working with? 9. Which component of the operating
a. general-purpose operating system system gets called when a process must be
b. multiuser operating system allocated memory and scheduled to run?
c. embedded system a. kernel
d. multitasking system b. user interface
40 MODULE 1  Operating Systems Fundamentals

c. file system 15. Your manager has asked you to terminate


d. application a process running on a Linux server.
10. A new application you are installing Before you can terminate the process,
is critical to business operations and what information do you need?
downtime is to be avoided. In addition, a. the PID
fast response times are necessary, so b. the file handle
performance must be scaled when more c. the IRQ number
users start using the system. What OS d. the I/O address
and server hardware feature should you 16. Which of the following are ways that a
consider implementing on the system on process is created? (Choose two.)
which the application is installed? a. by the bootloader
a. single-tasking b. by the BIOS POST routine
b. interrupts c. by a file handle
c. real-time d. by the user
d. clustering 17. Which of the following is performed by
11. Which of the following best describes the the BIOS? (Choose two.)
MS-DOS operating system? a. runs the power-on self-test
a. client b. starts the operating system
b. real-time c. manages the file system
c. standalone d. allocates memory to applications
d. embedded 18. Which method of I/O handling uses a
12. Which of the following are you most round-robin technique?
likely to find in firmware? a. interrupts
a. kernel b. NMI
b. bootstrap c. polling
c. LILO d. RTOS
d. ISR 19. Which type of operating system is most
13. A colleague asks you where the code for likely to be part of an embedded system?
the power-on self-test is located. What do a. task-switching
you tell her? b. cooperative multitasking
a. bootloader c. real-time
b. hard disk d. batch processing
c. non-volatile memory 20. Which aspect of security and protection
d. random access memory services verifies that an account has
14. You’re writing a program that must permission to perform an action on an
enable and disable interrupts. In which operating system?
CPU mode must your program operate? a. authentication
a. user mode b. determinism
b. real-time mode c. preemption
c. POST mode d. authorization
d. kernel mode
MODULE 1  Operating Systems Fundamentals 41

Hands-On Projects

Note
Please read the “Before You Begin” section of this book’s Introduction for details on
the suggested lab configuration for all the projects.

At the end of each module in this book, hands-on projects give you direct experience in
applying what you have learned about operating systems. As you are completing the
hands-on projects, keep a lab book, notebook, or word processor handy so you can record
your findings for later reference.
These projects use a variety of OSs, including a Windows client and a Windows server.
For people who use a Windows client, note that the instructions apply to Windows 10. For
projects that use a Windows server, instructions will apply to Windows Server 2019. Projects
that require Linux will use Fedora 30 with the default GNOME desktop, and those that require
macOS will use Mojave. Other OS versions and releases can be used with small changes to
the instructions. The Linux projects are tailored for the Fedora 30 distribution. If you choose
to use a different Linux distribution, plan to use one with the GNOME desktop; the steps in
the hands-on projects will still apply in most cases. All of the Linux commands you learn to
use in the terminal window will work on any Linux distribution and desktop, and in many
UNIX distributions as well. The macOS projects primarily use the default macOS desktop.
Because macOS is built on BSD UNIX (the Darwin distribution), some projects also use the
terminal window in macOS for practicing UNIX commands.

Note
In some Windows projects, you may see the User Account Control (UAC) box, which is
used for security to help thwart intruders. If you see this box, click Continue. Because
computer setups may be different, the box is often not mentioned in the actual
project steps.

Hands-On Project 1-1: Exploring the History of the Computer


Time Required: 30 minutes
Objective: Explore the history of the computer on the Internet.
Required Tools and Equipment: Any computer with a Web browser and Internet access
Description: In this project, you use the Internet to review the history of computers, software,
and the Internet.
1. Start and log on to any computer with Internet access and a Web browser. Open a Web
browser and go to www.computerhistory.org/timeline.
42 MODULE 1  Operating Systems Fundamentals

2. Determine the answers to the following:


• Which three PCs were released in 1977?

• What was the first non-kit PC developed in 1973?

• What important data storage medium was released in 1983?

• What does ASCII stand for, and in what year did it come out?

• What was the name of the first fully transistorized computer, which was developed in
1955?

• What input and output devices were used by the Manchester Mark I computer?

• In what year was the World Wide Web born via the development of Hypertext Markup
Language (HTML), and who developed HTML?

3. Visit the Hobbes’ Internet Timeline 25 at www.zakon.org/robert/internet/timeline. (The site


is copyright © 1993–2018 by Robert H. Zakon.) Determine the answers to the following:
• BITNET, one of the predecessors of the Internet, was launched in 1981. What does
BITNET stand for?

• What worm struck the Internet in 2001?

• What food could you order through the Internet in 1994?

• What famous person sent an email in 1976?

• What country offered Internet voting for local elections in 2005?

• In 2008, what kind of network did NASA test?

4. Close your browser.


MODULE 1  Operating Systems Fundamentals 43

Hands-On Project 1-2: Exploring the Components of the Windows 10 OS


Time Required: 20 minutes
Objective: Explore Windows 10 components.
Required Tools and Equipment: A Windows 10 computer or virtual machine, as specified in
the “Before You Begin” section of the Preface
Description: In this project, you explore Windows 10 components by using some Windows
system tools.
1. Sign in to your Windows 10 computer with an administrator account.
2. You’ve just used one important OS component—the user interface. While everything
you do on a computer demonstrates the progression of input, then processing, and
then output, let’s try some other obvious examples. For instance, right-click Start and
click Windows PowerShell to start a PowerShell session. PowerShell is like a command
prompt except that it’s more powerful. Type 25*25 and press Enter. PowerShell returns
the result of 625. PowerShell reads your input, processes it, and produces the output.
3. Try a more useful PowerShell function. Type Get-ComputerInfo and press Enter.
(Capitalization is not important in PowerShell commands.) This time, the processing
takes a little more time and the output is extensive. PowerShell tells you just
about everything you want to know about your computer, including information
about the processor, BIOS, and process. To see the output page by page, type
Get-ComputerInfo | more and press Enter. The | more part of the command sends
the output to a program called more that paginates the output. Press <Space> to
proceed to the next page or q to quit. Type Get-Command and press Enter to see the
long list of commands available in PowerShell. Close the PowerShell window.
4. Right-click Start again to see a list of administrative tasks that are particularly important
to an IT administrator or computer technician. Click System. The System command
loads the Settings app, and you see a summary of your computer configuration in the
right pane, including the processor, RAM, and Windows version. The left pane shows a
list of settings categories. Close the Settings window.
5. Right-click Start and click Device Manager to see a list of I/O devices. Double-click
Processors to see the type, speed, and number of processors installed.
6. Click the View menu and then click Resources by connection to see how the devices
are using memory and interrupts. Double-click Interrupt request (IRQ) to see interrupt
information, and then scroll down and double-click Memory to see how devices are
using memory (see Figure 1-14). The details of what you see aren’t important unless
you have to troubleshoot a conflict or you are writing device drivers for Windows. Close
Device Manager.
7. Right-click Start and click Disk Management to see details about the installed storage
on your computer. You’ll work more with Disk Management in Module 4, “File Systems.”
Close Disk Management.
8. Right-click Start and click Computer Management. This tool contains a collection of
other system tools, such as Device Manager and Disk Management, so you can manage
much of the computer from a single tool. Click to expand Services and Applications
44 MODULE 1  Operating Systems Fundamentals

Figure 1-14 I/O device resource usage in Device Manager

and then click Services. You see a list of installed services and their status. Click the
Status column heading twice to sort the services by status and bring the Running
services to the top of the list. Close Computer Management.
9. Right-click the taskbar and click Task Manager. Click in the Type here to search
box, type notepad, and press Enter. Move the Notepad window so you can see Task
Manager. Click More details at the bottom of Task Manager. Under the Apps section,
you see Notepad and Task Manager and then many processes under Background
processes.
10. Right-click Notepad and click Go to details. The Details tab opens and notepad.exe
is highlighted. You see its process ID (PID), status, amount of memory used, and other
information. With notepad.exe highlighted, click End task. Click End process when
prompted; the Notepad window closes and the process is no longer listed in Task
Manager. Occasionally, you may have to use Task Manager in this way to terminate a
hung process. Close Task Manager.
11. Stay logged on if you’re going on to the next project.

Hands-On Project 1-3: Working with Devices in Windows 10


Time Required: 15 minutes
Objective: Disable and enable a device.
Required Tools and Equipment: Windows 10; a sound card with speakers or headphones
attached is desirable
MODULE 1  Operating Systems Fundamentals 45

Description: In this project, you disable a device, reboot Windows, verify that the device is not
functional, and re-enable the device.
1. Sign in to your Windows 10 computer with an administrator account, if necessary.
2. Right-click Start and click Device Manager.
3. Double-click Sound, video and game controllers. Right-click the device shown, take
note of the options, and then click Disable device. Click Yes to confirm. If you are
prompted to reboot, confirm and reboot the system. (Windows isn’t entirely consistent
on the issue of when a reboot is required.) Most devices allow you to update the driver,
disable the device, and uninstall it. However, certain devices such as the keyboard, disk
drives, and processor don’t allow you to disable them.
4. If you had to reboot, sign in as an administrator. Notice on the far right side of the
taskbar that the speaker icon in the notification area has a red circle with a white X,
indicating the device is disabled. Right-click the speaker icon and click Open Sound
settings.
5. Notice that the Output and Input sections indicate no devices are found. Keep the
Settings window open, open Device Manager, and double-click Sound, video and
game controllers, if necessary. Notice the down arrow on the audio device, indicating it
is disabled. Right-click the audio device and click Enable device. You immediately see
the Settings window reflect that a sound device is available and functioning. To verify,
slide the Master volume slider to hear the Windows sound. Close the Settings window.
6. Sometimes a misbehaving device needs to be disabled and then re-enabled. Another
option is to uninstall it and reinstall it. In Device Manager, double-click Network
adapters, right-click the network adapter, and click Uninstall device. Click Uninstall
when prompted.
7. The network adapter is gone in Device Manager, but of course it’s still physically
installed. Right-click the computer icon at the top of Device Manager; the icon bears
the name of your computer. Click Scan for hardware changes. Windows looks for
installed Plug and Play devices and installs the appropriate device driver if it can. In this
case, it should find the network adapter and install the driver. Sometimes, uninstalling
and reinstalling a device can solve a problem with the device because the driver is
reinstalled. If the problem remains, try rebooting the system after uninstalling the
device. Close Device Manager.
8. Stay logged on if you’re going on to the next project.

Hands-On Project 1-4: Exploring the Fedora Linux Interface


Time Required: 15 minutes
Objective: Explore the Fedora Linux desktop.
Required Tools and Equipment: A Fedora 30 Linux virtual machine or computer, as specified
in the “Before You Begin” section of the Preface
Description: In this project, you explore the Fedora 30 desktop and view some of the common
tools available in Fedora 30. While you can use other versions of Linux, Fedora 30 is suggested
46 MODULE 1  Operating Systems Fundamentals

for these projects because they are written with that distribution in mind. Note that Fedora 30
comes with the GNOME desktop by default.
1. Start your Linux computer and log on.
2. Notice the bar at the top of the desktop. This is the top panel, which contains the
Activities menu, a digital clock, and a place to access settings for the network, control
the sound volume, and log on and off from the system. Click Activities to access the
Favorites side panel and the search box.
3. In the Favorites side panel (see Figure 1-15), you have access to common applications
such as a Web browser and a file manager. Applications can be added to this panel;
you’ll do this in the next module. Click the Show Applications icon (it looks like a square
grid of white dots) at the bottom of the panel to see more tasks and apps.

Figure 1-15 Fedora 30 with the GNOME desktop, Favorites side panel,


and search box

4. Click Settings to see a list of settings tools. Click Details near the bottom of the Settings
window to see basic system information (see Figure 1-16). Click each of the options in
the left pane to see what can be configured from here. Close the Details window.
5. Click Activities and click the Show Applications icon. Click Utilities to see a list of
utilities that come with Fedora, including a calculator, disk management utilities, and
system monitoring.
6. Click Terminal to open the terminal application, which provides a command-line
interface to Linux, much like the command prompt in Windows. In the terminal window,
type uname –a to see detailed version information for the Linux OS and the kernel.
7. Type man uname and press Enter. The resulting display provides documentation about
the uname command. (The man command is used to access the Linux help system.)
MODULE 1  Operating Systems Fundamentals 47

Figure 1-16 The Details window in Linux

8. Press Page Up and Page Down to page through the manual pages. When you are
finished browsing the man pages, press q to exit the manual documentation.
9. Type ls -la and press Enter to view information about files in the current folder. The
current folder is shown by the information in the brackets before the $ prompt. The
default prompt syntax is user@computer folder, where user is the logged-on user,
computer is the name of the computer (localhost is the name by default), and folder is
the name of the folder the shell is currently in, which is called the working directory
in Linux. Your working directory likely is shown as ~, which is shorthand for the user’s
home folder.
10. Type cd Documents and press Enter. Case is important in Linux, so Documents is
different from documents; be sure to capitalize the D. You see that your prompt changes,
but unlike the Windows command prompt, you don’t see the entire path. To see the
entire path of your working directory, type pwd and press Enter (pwd stands for “print
working directory”).
11. Type cd / (be sure to use a forward slash) and press Enter to go to the root of the file
system. Type ls and press Enter to see a list of folders in the root. Type cd ~ and press
Enter to get back to your home folder. Close the terminal window.
12. On the far right side of the desktop, click the power icon. A small panel opens. Here you
can adjust the sound volume, manage network connections, view information about the
current user, log off the system, and shut down or lock the system, among other things.
On the lower-right side of the open panel, click the power icon. You are informed that
the system will power off in 60 seconds. Click Cancel if you are continuing to the next
project.
48 MODULE 1  Operating Systems Fundamentals

Hands-On Project 1-5: Viewing Disk and Process Information in Linux


Time Required: 10 minutes
Objective: Examine disk and process information in Linux.
Required Tools and Equipment: Fedora 30 Linux
Description: In this project, you use a command-line and GUI process tool in Linux to look at
running processes. You also explore the Disks utility.
1. Log on to your Linux computer, if necessary. Click Activities, click Show Applications,
click Utilities, and then click Terminal.
2. Type pstree and press Enter to see a snapshot of the hierarchy of running processes.
To paginate the output, type pstree | more and press Enter. Press space to advance to
the next page. Press q to quit.
3. To see a real-time view of running processes, type top and press Enter. Top lists the
“top” CPU-using processes first. The display changes as different processes use the CPU.
Leave top running.
4. Click Activities, click Show Applications, click Utilities, and then click System Monitor.
This application is similar to Task Manager in Windows. Running processes are listed
in alphabetical order by default. Scroll down until you see top. Click top and click End
Process on the lower-left side of the window. Click End Process to confirm. You see in
the terminal window that top stops.
5. Scroll up near the top of the window and click bash. This is the process for the open
terminal window. Click End Process and click End Process again to confirm. You see
that the terminal window closes.
6. Click Activities, click Show Applications, click Utilities, and then click Disks. Browse
the installed disks and look at the information in the right pane as you click each disk
in the left pane. You’ll notice that storage in Linux is represented much differently than
in Windows. You’ll explore storage in more detail in Module 4, “File Systems.” Close all
open windows and shut down your Linux computer.

Hands-On Project 1-6: Exploring the macOS Desktop


Time Required: 10 minutes
Objective: Examine the macOS desktop.
Required Tools and Equipment: A macOS Mojave computer, as specified in the “Before You
Begin” section of the Preface
Description: In this project, you explore the macOS Mojave desktop. You also examine Activity
Monitor, an application that is similar to Task Manager in Windows and System Monitor in
Linux.
1. Boot the macOS system. If you need to provide logon information, enter your name and
password and press Enter or Return. (Note: If you are using a Mac keyboard, the key
is labeled Return. On PCs, the key is labeled Enter. Throughout this book, the term Enter
will be used, but just substitute Return if you are using a Mac keyboard.)
MODULE 1  Operating Systems Fundamentals 49

2. Notice the menu options in the menu bar at the top of the screen. Click the Apple icon
and click About This Mac to see information about your Mac (see Figure 1-17). Click
each of the tabs to get information about the various components, support, and service.

Figure 1-17 MacOS Mojave Overview screen


Source: Apple Inc.

3. Next, observe the bar at the bottom of the screen. This bar is called the Dock; note that
it may be located at a side or the top of the screen on some systems. Point to each icon
in the Dock to see what it does and record some of the icon names. The contents of the
Dock can be customized, so different systems may have different icons.
4. Click the Go menu at the top of the desktop. From here, you can explore files, view the
network, access the iCloud drive, and open applications and utilities. Click an open area
of the desktop to close the Go menu.
5. Click Help on the menu bar at the top of the desktop. Click macOS Help to open the
user guide.
6. Type Using USB devices in the Search box. Press Enter and notice the range of topics
from which to choose.
7. Close the User Guide window by clicking the red button on the upper-left side of the
window. An X appears on the button when you point to it.
8. Click Go in the menu bar at the top of the screen. Click Utilities.
9. Double-click Terminal. Use the scroll bar, if necessary, to find the Terminal icon.
10. Type man ls and press Enter to view documentation about the ls command. As you can
see, macOS is similar to Linux at the command line.
11. Press the spacebar to page through the documentation. Press q to exit the
documentation and return to the command prompt in the terminal window.
12. Type ls -la and press Enter to see a listing of files similar to those you saw in Fedora.
13. Click the Terminal menu at the top of the desktop and click Quit Terminal.
50 MODULE 1  Operating Systems Fundamentals

14. In the Utilities window, double-click Activity Monitor. You see a list of running
processes in the left column. The columns to the right show information similar to that
in Task Manager (see Figure 1-18).

Figure 1-18 MacOS Activity Monitor


Source: Apple Inc.

15. Click the Memory, Energy, Disk, and Network tabs to see the information they
provide.
16. In the Dock, click the Photos app. You may need to hover your mouse over the icons
until you find the Photos app.
17. In Activity Monitor, find and click the Photos process. If necessary, you can click the
Process Name column heading to sort the processes alphabetically. With Photos
selected, click the white circle with the X in the upper-left part of the window to close
Photos. Click Quit. If Quit doesn’t work, you can click Force Quit to terminate an app.
The Photos window closes.
18. Shut down your Mac.
MODULE 1  Operating Systems Fundamentals 51

Critical Thinking
Critical thinking activities are provided in some modules of this book; they give you an
opportunity to use the skills you have learned to perform a task without step-by-step
instructions. Case projects present a practical problem for which you supply a written
solution. There is not always a specific right or wrong answer to these critical thinking
exercises. They are intended to encourage you to review the module material and delve
deeper into the topics you have learned.

Critical Thinking: Case Projects


Case Project 1-1: Basic Operating System Functions
The Lawson City and County Planning Department has recently received a new budget
allocation to purchase new desktop and server systems. Because the budget has been
strapped for many years, the department hasn’t been able to upgrade its systems. Most of
the desktop computers are running Windows 7 or Windows 10 v1703. The server systems are
Windows Server 2008 and Windows Server 2012. The department has network and Internet
connectivity through a combination of older wired and wireless technologies.
Before they begin making decisions, the planning office managers ask you to make a
presentation to cover the basics of operating systems. They ask you to begin the presentation by
explaining basic functions that operating systems perform and current choices available for the
desktop and server computers. Create a presentation and give it to the class or your instructor.

Case Project 1-2: Device Drivers


This case project and the rest in this module are follow-ups to Case Project 1-1.
One of the managers has heard that current device drivers are important to consider when
choosing an operating system. Improve your presentation by including an explanation of device
drivers, why they are important, and why it’s critical to have reliable and secure device drivers.

Case Project 1-3: Choosing a New Server


High on the list of needs is implementing a new server. A small committee of planning
department employees has been formed to look at options for a server operating system.
What options should they consider, which do you recommend, and why do you recommend
them? Write a short memo for your instructor.

Case Project 1-4: Choosing New Desktop Systems


What desktop operating systems might be used to replace the Windows 7 and Windows 10
computers? Explain your answer. What operating system capabilities should the planning
department look for when replacing these computers? Also, how might system costs affect
the decision? Write a short memo for your instructor.

You might also like