↑ Table of Contents ↑ | X1: Development Basics → |
The easiest way to tell the difference between hardware and software is to kick it. If it hurts your toe, it's hardware. — Anonymous
Computers are to computing as instruments are to music. Software is the score whose interpretations amplifies our reach and lifts our spirits. Leonardo da Vinci called music the shaping of the invisible, and his phrase is even more apt as a description of software. — Alan Kay
The computer, at least in the form we think of it today, is a relatively new technological development. The first electronic computers were built in the 1940s, and desktop computers accessible to the general public date back only to the late 1970s. In a very short time, computers have become integral to nearly every aspect of our society, from education to business transactions to personal communications. However, although many people use them for work and pleasure every day, few have even a basic understanding of how computers work.
This chapter presents an overview of computer technology, focusing on what computers are, how they are organized, and what they can do. The coverage is not meant to be exhaustive — many of the topics introduced here will be revisited in later chapters. However, this overview should provide a framework for understanding computing concepts as you encounter them throughout the book, as well as making you a wiser consumer of computer technology.
When you think of the word "computer," you may picture a machine that sits on a desk and is used to create documents, send email, or explore the World Wide Web. This type of computer is often referred to as a personal computer (PC), since it is designed for use by one person at a time, or as a desktop computer, since it is small enough to fit on top of a desk. Or perhaps you think of a laptop computer, a small, portable device that integrates all the computer components into one unit. When people contemplate computers today, many think only of these types of machines; however, a wide variety of computers are used to fulfill different needs. Some, known as supercomputers, are large enough to fill entire rooms and can perform quadrillions of calculations per second. Researchers involved in complex tasks, such as modeling weather patterns or testing engineering designs, are the primary users of supercomputers. More recently, smaller handheld devices, such as tablets and smartphones, have exploded in popularity. These devices combine the basic functionality of a computer with other technologies, such as telephones, video conferencing, and music and video players. In addition, millions of tiny computers are embedded in and used to control everyday devices, such as automobiles, air conditioners, and microwave ovens. FIGURE 1 depicts various types of computers, ranging from a smartphone to a supercomputer.
FIGURE 1. Various types of computers: smartphone (Mictlancihuatl/Wikimedia Commons), tablet (Ovandevelde/Wikimedia Commons), laptop (Химки ТВ/Wikimedia Commons); desktop (Նարինե Մուրադյան/Wikimedia Commons); supercomputer (Oak Ridge National Laboratory/Wikimedia Commons).
In general, we will define a computer as a device that receives, stores, and processes information. Although the computers shown in FIGURE 1 may look different and perform diverse functions, they all fit this general definition. For example, a supercomputer can receive data from weather sensors, store that data, and process it to predict when storm conditions will arise. A personal computer can recognize characters typed by the user, store these characters in files, and process them to produce a document, spreadsheet, or email message. Likewise, a computer embedded in a car's antilock brake system can sense the spin of the wheels, process that data to compute the optimal braking pattern, and bring the car to a safe stop.
Although computers are pervasive in everyday life, few people fully comprehend how they are organized and perform their tasks. Even purchasing a personal computer can be an overwhelming experience involving highly technical information and obscure computer jargon. For example, FIGURE 2 compares the advertised specifications of two laptops from a major computer manufacturer. The first is a low-end laptop, meaning that it is inexpensive but provides limited features and uses older technology. The second is a high-end laptop, which maximizes performance by incorporating the latest technology, but at a higher cost. Understanding the trade-offs between these two laptops requires a significant amount of computer knowledge — and this is a streamlined version of only one table of options for one category of computer system marketed by one company!
Low-end Laptop ($330) | High-end Laptop ($5,466) | ||
HARDWARE | CPU | 4.4 GHz Intel Core i3 w/ 6 cores | 5.5 GHz Intel Core i9 w/ 24 cores |
Memory | 10 MB Cache 8 GB RAM 256 GB SSD | 36 MB Cache 64 GB RAM 1 TB SSD | |
Input/Output | 15.6" screen Intel UHD graphics card, built-in speakers built-in keyboard, trackpad, camera & microphone | 16" screen NVIDIA 400 Ada graphics card, built-in speakers built-in keyboard, trackpad, camera & microphone 32" external monitor, wireless keyboard & mouse | |
SOFTWARE | Operating System | Windows 11 Home | Windows 11 Pro |
Applications Software | Microsoft Office 365 (30-day trial) MacAfee+ Security (30-day trial) Microsoft Edge browser | Microsoft Office Professional MacAfee Business Protection (3 years) Microsoft Edge browser |
FIGURE 2.Hardware and software specifications of two laptop models (October 2024).
The remainder of this chapter will define key terms from FIGURE 2, as well as describe the basic workings of computers. Supplementing the explanations of many of the computing concepts, the chapter provides "Technically Speaking" features that relate those concepts to the systems in FIGURE 2. Thus, after completing this chapter, you should be able to appreciate many of the differences between these two systems.
✔ QUICK-CHECK 1.1: True or False? To be classified as a "computer," a device must have a keyboard and display screen.
A first step toward understanding the table in FIGURE 2 — and, by extension, computers in general — is to distinguish between hardware and software. Hardware refers to the physical components of the computer, such as the screen, keyboard, and storage. Software refers to the programs that execute on the computer, carrying out tasks such as word processing or surfing the Web. In FIGURE 2, the first three sections (labeled CPU, Memory, and Input/ Output) refer to the systems' various hardware components. The last two sections refer to software components.
Given the diversity of modern computers, it is difficult to describe a "typical" computer hardware system. However, certain features are common to most laptops, including a built-in screen, keyboard, trackpad, camera and speakers. Ports are provided for connecting external accessories such as a monitor or network connection. In addition, wireless devices such as a keyboard and mouse can be added for ease of use on a desk. For example, see FIGURE 3.
FIGURE 3. Laptop computer with external accessories.
Although specific components and their appearance may vary from computer to computer, virtually all modern computers have the same underlying structure. This structure is known as the von Neumann architecture, named after computer science pioneer John von Neumann, who formalized this method of computer organization in the early 1950s. The von Neumann architecture identifies three essential components that work together to function as a computer (i.e., a device that receives, stores, and processes information). Input/output devices allow the user to communicate with the computer by entering commands and then viewing the results. Memory stores information for the computer to process, as well as programs (i.e., instructions specifying the steps necessary to complete specific tasks). Finally, the central processing unit (CPU or processor) executes the program instructions in order to process data. These three components are connected by buses, collections of wires that carry information in the form of electrical signals (FIGURE 4).
FIGURE 4. The von Neumann architecture.
Computers that use the von Neumann architecture are known as stored-program computers, which means that they can initiate different tasks by retrieving different programs from memory. For example, to complete such actions as creating a text document or performing a computation, the user enters a command (perhaps by clicking on an icon), causing the CPU to access the associated program instructions from memory and execute them. If the user wishes to perform a new task, they simply enter a different command, and the CPU loads a new program into memory to execute. In fact, the von Neumann architecture enables multiple programs to reside in memory at the same time, allowing the CPU to juggle multiple tasks, such as switching back and forth between a Web browser and a text editor.
Additional details regarding each of the von Neumann architecture components are provided in subsequent sections.
✔ QUICK-CHECK 1.2: What are the three essential components of the von Neumann architecture?
✔ QUICK-CHECK 1.3: True or False? A bus is a collection of wires that carry information as electrical signals between the hardware components of a computer.
The CPU is the brains of the computer, responsible for controlling the internal workings of the machine. It is made of circuitry, or electronic components wired together to control the flow of electrical signals. The CPU is by far the most complex part of a computer system. The high-performance 24-core Intel i9 processor, for example, contains circuitry comprised of more than 4.2 billion individual components (FIGURE 5). All this circuitry is packaged onto a small silicon chip encased in plastic, with metal pins for connecting the chip to other hardware components. Other CPUs commonly found in personal computers include the Apple M1, Apple M2, AMD Athlon, AMD Ryzen, Intel Core i5, and Intel Core i7.
FIGURE 5. CPU circuitry and packaging (Intel Corporation).
In controlling the workings of the computer, the CPU has two key tasks: (1) fetching program instructions from memory, and (2) executing those instructions. As the ultimate behavior of computer programs can be complex, you might expect that the individual instructions executed by the CPU would also be complex, but they are not. Even programs with advanced capabilities are broken into sequences of very simple instructions, such as "add two numbers" or "copy a value from one location to another." Of course, it may require thousands or even millions of such low-level instructions to specify the behavior of a Web browser or word processor. Fortunately, CPUs can process instruction sequences extremely quickly, which enables the processors to handle these immense programs. CPU speed is generally measured in gigahertz (GHz), which indicates how many billions of instructions a CPU can execute in a second. For example, a 3.2GHz CPU can execute 3.2 billion simple instructions in a second, thus producing complex behavior at a speed that appears almost instantaneous to the human user.
Most modern CPUs are multi-core devices, meaning that they contain duplicate circuitry to enable the CPU to execute multiple operations simultaneously. This can greatly improve performance, as the CPU can effectively run multiple programs at the same time. You can think of cores as a mini-processors, packaged together on a single chip and sharing some resources. Each core within a CPU can be assigned a different program to execute (e.g., your email, Web browser, music streaming service) and the cores then execute their instructions simultaneously. Thus, a multi-core CPU can accomplish more tasks in a given period of time that a single-core processor could.
It is important to note that a faster CPU does not always translate to a faster application. The speed of many applications is constrained by other factors. For example, a word processing program is limited by the speed at which a person can type characters and the speed at which the monitor can display them — a faster processor will generally not improve its performance. CPU speed typically only becomes a factor in computation-heavy applications, such as scientific computing or graphics processing.
Technically Speaking
The first row of the table in FIGURE 2 lists the type of CPU contained in each system. Both are manufactured by the Intel Corporation, which is the largest producer of CPU chips in the U.S. Intel and other major CPU manufacturers (e.g., AMD, Apple, Samsung) sell a variety of CPUs along the cost/performance spectrum. These variations are similar to the disparity between different car models manufactured by the same automobile company.
✔ QUICK-CHECK 1.4: How many operations can a 2.0 GHz CPU execute in a single second: 2 thousand, 2 million or 2 billion?
✔ QUICK-CHECK 1.5: True or False? A multi-core CPU can execute more than one instruction at the same time.
The memory is the part of a computer that stores programs and data. The physical devices that make up computer memory vary significantly but all store and process information as binary digits, or bits. A bit is a unit of data that corresponds to one of two potential values, which we may think of as 0 and 1. For example, some memory devices store information as electricity running through a wire. We can think of electrical current on the wire as state 1 and no current as state 0. Other devices use holes burned into a reflective surface to store information. We can think of a hole as state 1 and no hole as state 0. As long as the device can clearly distinguish between two states, it can store information that we think of as bits.
Regardless of their physical implementation, bits are the building blocks of digital memory. While a single bit can only differentiate between two different values, sequences of bits have greater representational potential. If you combine two bits, there are four different patterns that can be used to represent values: 00, 01, 10, and 11. Similarly, three bits are able to represent eight values using the following patterns: 000, 001, 010, 011, 100, 101, 110, and 111. Each additional bit of storage doubles the range of potential values that can be stored, as shown in FIGURE 6. In general, N bits can represent 2N different values.
FIGURE 6. Bit patterns.
Although the bit is the building block of digital memory, memory capacity is usually specified in bytes. A byte is a collection of 8 bits and thus can represent 28 = 256 different values. Because that is sufficient for expressing many useful ranges of data, including every character on a keyboard, the byte is a more practical unit of measure. Collections of bytes can be identified using prefixes; for example, a kilobyte (KB) is roughly one thousand bytes of storage, a megabyte (MB) is roughly one million bytes of storage, a gigabyte (GB) is roughly one billion bytes of storage, and a terabyte (TB) is roughly one trillion bytes of storage (FIGURE 7).
FIGURE 7. Common data storage units.
As a byte is sufficient to represent a single character, it may be instructive to think of memory capacity in terms of text. A kilobyte can store more than one thousand characters of text (e.g., a few paragraphs), a megabyte more than one million characters of text (e.g., a book), a gigabyte more than one billion characters of text (e.g., a small library), and a terabyte more than one trillion characters of text (e.g., a large book repository). Although these capacities may seem large with respect to text, storing other types of data can require extensive memory. For example, a high-resolution photograph might require several megabytes of storage, the audio track of a single song as much as 50 megabytes, and a full-length video multiple gigabytes.
Although the von Neumann architecture portrays computer memory as a single component, modern computers use a combination of memory types, each with its own performance and cost characteristics (FIGURE 8). The memory technologies that enable the fastest transfer of bits to and from the CPU are those that use electronic circuitry, where 1 and 0 are represented as the presence or absence of voltage over wires. Cache and RAM (short for Random Access Memory) are examples of this type of electronic memory. Cache memory, which is usually built into the CPU chip itself, utilizes high-speed circuitry to provide extremely fast access to data. RAM memory, which is packaged on separate chips, communicates with the CPU using lower-speed circuitry; thus, data stored in RAM cannot be accessed as quickly as data in cache, but RAM is significantly less expensive to build. Computer designers balance cost and performance by including a small amount (usually measured in megabytes) of cache for storing critical data and a larger amount (usually measured in gigabytes) of RAM for storing additional data.
FIGURE 8. Various types of memory: RAM chips (Bruno/Pixabay), hard drive(JaneB/Pixabay), flash drive (Victor Jumbo/Pixabay) and compact disk (Whisper380/Pixabay).
Cache and RAM together form a computer's main memory (or primary memory), holding all data that the CPU is actively using. Although main memory is crucial in that its data can be accessed very quickly, it is expensive in comparison to other technologies. In addition, main memory is volatile, meaning that it requires a constant flow of electricity to maintain its stored values. When you turn off a computer, the values stored in cache and RAM are lost. Thus, computers require secondary memory, which is less expensive and can provide permanent storage. Secondary memory comes in a variety of technologies. A hard drive (HD) is a metal disk that stores bits as magnetized and non-magnetized spots. The disk rotates under a sensor, which detects the spots and interprets them as bits. Although this technology is considerably slower than that of memory built from circuitry, hard drive storage is much less expensive and can retain data without power. Personal computers and laptops often replace or augment a hard drive with a solid-state drive (SSD) which stores data as electrical charges captured in non-volatile electronic circuitry. Solid-state drives allow for faster storage and access of data, but at a higher cost. Both types of secondary memory are capable of permanently storing vast amounts of information (usually measured in gigabytes or terabytes), which can be transferred into main memory when needed.
CDs, DVDs, and flash drives are examples of inexpensive, portable secondary memory. A CD (Compact Disk) is a plastic and aluminum disk that stores up to 700MB of data as patterns on its reflective surface. Using CD-ROM (Compact Disk—Read Only Memory) technology, the patterns are burned onto the surface of the disk with a laser and therefore cannot be overwritten. Using CD-RW (Compact Disk—ReWritable) technology, patterns are formed in a photosensitive coating on the surface of the disk, allowing data to be overwritten repeatedly. DVD disks are similar to CDs but can store up to 8.5GB of data due to higher-density storage and more advanced compression techniques. Flash drives come in a variety of forms, including the thumb-sized sticks that are commonly referred to as memory sticks or thumb drives. They utilize the same technology as solid-state drives and so can store massive amounts of data (gigabytes or even terabytes) and provide fast access. Flash drives and many other secondary memory devices connect to the computer using a standard USB (Universal Serial Bus) interface.
Technically Speaking
Both laptops in FIGURE 2 contain and/or support the full range of memory types. The primary differences between them are the amount of each memory type they contain and some technical details.
✔ QUICK-CHECK 1.6: Which of the following is a type of volatile memory: hard drive, solid-state drive, RAM or compact disk?
✔ QUICK-CHECK 1.7: True or False? Since 8 bits can represent 256 different values, it follows that 16 bits can represent 512 different values.
Clearly, a computer is not very useful if it is not able to communicate with people or other computers. Input devices allow the computer to receive data and instructions from an external source, such as a person entering commands at a keyboard. Examples of input devices are keyboards, mice, track pads, microphones, and cameras. Similarly, output devices allow the computer to display or broadcast its results. Examples of output devices are monitors, printers, and speakers. Devices that enable the computer to communicate with other computers are both input and output devices. Examples include modems, Ethernet adapters, and wireless networking adapters.
While they are not listed in FIGURE 2, all computers provide ports for connecting accessories. For example, an external monitor might be connected to a computer using an HDMI (High-Definition Multimedia Interface) port. Additional devices, such as chargers, external storage drives and speakers, might be connected via a USB (Universal Serial Bus) port. Most computers also support connecting devices using Bluetooth, a short-range wireless technology.
Input and output technology is constantly evolving, making it easier for users to interact with computers and for computers to interact with one another. For example, the introduction of the mouse as an input device was key to the popularization of personal computers in the 1980s. Similarly, improvements in flat-screen technology led to smaller and lighter laptop computers in the 1990s. High-resolution touchscreens enabled the development of smartphones and tablets in the 2000s. Today, wireless-networking technology is prevalent, allowing users to access email and the Web through convenient, mobile devices (FIGURE 9).
FIGURE 9. iPhone 16 (Apple) and Galaxy Z Fold6 (Samsung).
Technically Speaking
Both laptops in FIGURE 2 include an assortment of input/output devices, including a keyboard, trackpad, camera and microphone for input, and a screen and speakers for output.
✔ QUICK-CHECK 1.8: True or False? Keyboards and mice are examples of computer input devices.
Whereas hardware encompasses the physical components of the computer, software refers to the programs that execute on the hardware. A software program is a collection of instructions for the computer (more specifically, the CPU) to carry out in order to complete some task. For example, word processors such as Microsoft Word and Corel WordPerfect contain instructions for creating and managing documents; graphics programs such as Adobe Photoshop and CorelDRAW contain instructions for creating and displaying graphical images; and Web browsers such as Microsoft Edge, Apple Safari and Google Chrome contain instructions for accessing and displaying Web pages. Programs such as these are known as applications software, each being designed to carry out tasks within a particular application area, such as word processing, graphical design, or Web access. Since computers are used in many diverse application areas, it is not surprising that a wide variety of applications software is available. In contrast to applications software, systems software manages the resources and behavior of the computer itself. The largest and most integral systems software on a computer is its operating system.
An operating system is a collection of programs that controls how the CPU, memory, and I/O devices work together to execute programs. When a computer is turned on, a small part of the operating system is automatically loaded into memory. In turn, it loads other components of the operating system, which then execute continuously in the background to control the workings of the computer.
The most critical functionality of the computer is controlled by the component of the operating system known as its kernel. The kernel manages the CPU's operation, controlling how data and instructions are loaded from memory and accessed by the CPU. Most modern computers are multitasking machines, meaning that more than one program can reside in main memory at the same time, sharing the CPU's resources. For example, a computer user might perform several tasks simultaneously, such as downloading mail, viewing a Web page, and listening to music. By switching control of the CPU back and forth between active programs at a very fast rate, the kernel can produce the appearance of simultaneous execution. In addition to controlling the flow of programs and data between the CPU and memory, the kernel also coordinates other hardware components, allowing software applications to access memory and interact with the input/output devices. This allows a program being executed by the CPU to receive input from a keyboard, fetch data from a hard drive, display results on a screen, and even print the results to a laser printer.
Other components of the operating system perform specialized tasks that allow the computer to function. The file system manages the computer's memory, organizing storage into files and directories (or folders). A file is a document that stores information, such as text (e.g., a term paper), an image (e.g., a picture of your family), sound (e.g., a song), or a program (e.g., a Web browser). The file system component of the operating systems keeps track of where individual files are stored so that they can be accessed when needed. To make storage and retrieval easier for the user, memory is usually divided into directories. A directory (also known as a folder) is a collection of files that are organized together and labeled with a common name. For example, a student in an English class might place all their essays in a single directory and name it "ENG101 Essays," so that they can easily locate them. Directories are hierarchical in nature, meaning that a directory can store other directories, as well as files. Thus, the student could organize all their schoolwork in a hierarchical structure by creating a directory for each class and then adding subdirectories for essays and assignments within each directory.
To make interacting with the computer easier for the user, most operating systems — including Microsoft Windows and MacOS — provide a graphical user interface (GUI). A GUI (pronounced gooey) uses intuitive, visual elements to simplify the process of viewing files and executing programs. Although their organization and appearance may differ, most modern GUIs have similar features and behaviors. Programs, directories, and files are represented as icons — small pictures that convey some aspect of the element they symbolize. By pointing the mouse and clicking on a program or file icon, the user can obtain information about or perform operations on that program or file. For example, the MacOS operating system uses a compass icon (FIGURE 10) to represent its default Web browser, Safari. Microsoft Windows 11 uses a swirly-E icon to represent its default browser, Edge (FIGURE 11). When a user clicks on one of these icons, the operating system opens the associated program, allowing the user to surf the Web. In both GUIs, directories are represented as folder icons.
By clicking the mouse on a folder icon, the user can open that directory and view its contents in a separate window. Windows represent separate workspaces that can be active at the same time, displaying files or executing programs. FIGURE 11 shows a screenshot of MacOS Sequoia, the version of the Apple operating system first released in 2024. The desktop contains a taskbar at the bottom of the screen with icons for common applications. The active window on the screen is Keynote, Apple's presentation software, and a menu of commands for that application appear at the top of the screen (e.g., File, Edit, Format). Clicking on any of these commands would result in a pull-down menu of options. FIGURE 11 shows a screenshot of Windows 11, the version of the Microsoft operating system released in 2021. The desktop similarly contains icons representing directories and programs, as well as an open program window.
FIGURE 10. MacOS Sequoia (Apple, 2024).
FIGURE 11. Windows 11 (Microsoft, 2024).
Technically Speaking
Both laptops in FIGURE 2 are packaged with the Microsoft Windows 11 operating system and a suite of applications software.
✔ QUICK-CHECK 1.9: True or False? As computer programs can be complex and difficult to write, they are known as "hardware."
✔ QUICK-CHECK 1.10: Which of the following is NOT a main task that an operating system performs: (1) managing the CPU's operation, (2) organizing storage into files and directories, (3) downloading and displaying Web pages, or (4) providing a graphical user interface for the user to interact with?
↑ Table of Contents ↑ | X1: Development Basics → |