Professional Documents
Culture Documents
OPERATING SYSTEMS
FUNDAMENTALS
After reading this module and completing the exercises,
you will be able to:
Explain basic operating system concepts
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.
Table 1-1 summarizes what you need for the hands-on projects in this module.
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).
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
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.
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
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
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
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).
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
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.
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.
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.
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
User applications
User mode
Kernel mode
Hardware
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.
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.”
Tip
Kernel mode is also referred to as privileged mode.
MODULE 1 Operating Systems Fundamentals 19
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
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
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.
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
Software
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.
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.
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
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
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.”
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
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
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
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
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.
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
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.
• 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?
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.
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.
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.
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
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
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.
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).
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.