Preface |
|
xiii | |
Acknowledgments and Contributions |
|
xv | |
Author |
|
xvii | |
How to Use This Textbook |
|
xix | |
|
Chapter 1 Introduction to Information Technology |
|
|
1 | (1) |
|
|
1 | (5) |
|
|
6 | (2) |
|
|
8 | (9) |
|
1.3.1 Computer Security Specialist |
|
|
10 | (1) |
|
1.3.2 Database Administrator |
|
|
10 | (2) |
|
1.3.3 Network Administrator |
|
|
12 | (1) |
|
|
13 | (1) |
|
1.3.5 System Administrator |
|
|
13 | (1) |
|
1.3.6 Webserver Administrator |
|
|
14 | (1) |
|
|
15 | (1) |
|
1.3.8 Overall Career Outlook |
|
|
16 | (1) |
|
|
17 | (12) |
|
1.4.1 Continuing Education |
|
|
17 | (3) |
|
|
20 | (3) |
|
1.4.3 Other Social Considerations |
|
|
23 | (6) |
|
Chapter 2 The CPU and Memory |
|
|
29 | (1) |
|
2.1 An Overview of a Computer System |
|
|
29 | (5) |
|
|
34 | (1) |
|
|
34 | (2) |
|
|
36 | (2) |
|
|
38 | (1) |
|
|
39 | (2) |
|
2.3 The Fetch-Execute Cycle |
|
|
41 | (6) |
|
2.3.1 Instruction Fetching and Decoding |
|
|
41 | (2) |
|
2.3.2 Operand Fetching and Instruction Execution |
|
|
43 | (2) |
|
|
45 | (2) |
|
|
47 | (8) |
|
2.4.1 The Impact of Memory Access |
|
|
47 | (1) |
|
|
48 | (3) |
|
2.4.3 How the Memory Hierarchy Works |
|
|
51 | (4) |
|
2.5 Determining Computer System Efficiency |
|
|
55 | (12) |
|
2.5.1 Instruction-Level Pipelining |
|
|
56 | (3) |
|
|
59 | (3) |
|
|
62 | (2) |
|
|
64 | (2) |
|
2.5.5 Putting It All Together: Benchmark Programs |
|
|
66 | (1) |
|
2.6 The Evolution of Computers |
|
|
67 | (12) |
|
2.6.1 Before the Generations |
|
|
67 | (4) |
|
2.6.2 The First Generation |
|
|
71 | (3) |
|
2.6.3 The Second and Third Generations |
|
|
74 | (1) |
|
2.6.4 The Fourth Generation |
|
|
75 | (3) |
|
2.6.5 The Impact of the Microprocessor |
|
|
78 | (1) |
|
Chapter 3 Storage and I/O |
|
|
79 | (1) |
|
3.1 Bits, Bytes, Words, and Other Terms |
|
|
79 | (3) |
|
|
82 | (1) |
|
|
82 | (5) |
|
|
87 | (5) |
|
|
92 | (2) |
|
|
94 | (16) |
|
3.3.1 Magnetic Disk Storage |
|
|
94 | (6) |
|
|
100 | (3) |
|
3.3.3 Optical Disc Storage |
|
|
103 | (2) |
|
3.3.4 Solid-State Storage |
|
|
105 | (2) |
|
3.3.5 Magnetic Tape Storage |
|
|
107 | (3) |
|
|
110 | (5) |
|
|
110 | (1) |
|
3.4.2 I/O Modules and Forms of I/O Communication |
|
|
111 | (2) |
|
|
113 | (2) |
|
|
115 | (1) |
|
3.5 The Study of User Interfaces |
|
|
115 | (1) |
|
3.5.1 Health-Related Issues |
|
|
115 | (2) |
|
|
117 | (1) |
|
|
118 | (5) |
|
Chapter 4 The Binary Numbering System |
|
|
123 | (1) |
|
|
123 | (3) |
|
4.2 The Binary Numbering System |
|
|
126 | (6) |
|
4.2.1 Bits and Storage Sizes |
|
|
126 | (1) |
|
4.2.2 Converting from Binary to Decimal |
|
|
127 | (1) |
|
4.2.3 Converting from Decimal to Binary Using Division |
|
|
128 | (1) |
|
4.2.4 Converting Decimal to Binary Using Subtraction |
|
|
129 | (1) |
|
4.2.5 Conversions Requiring More Than 8 Bits |
|
|
130 | (2) |
|
4.3 Octal and Hexadecimal Representations |
|
|
132 | (2) |
|
4.4 Negative Numbers and Fractions in Binary |
|
|
134 | (6) |
|
4.4.1 Two's Complement for Negative Numbers |
|
|
134 | (2) |
|
4.4.2 Fractional Representations |
|
|
136 | (4) |
|
4.5 Character Representations |
|
|
140 | (4) |
|
|
144 | (7) |
|
|
144 | (1) |
|
|
145 | (3) |
|
4.6.3 Other Binary Operations |
|
|
148 | (3) |
|
4.7 Error Detection and Correction |
|
|
151 | (8) |
|
|
151 | (2) |
|
4.7.2 More Than One Parity Bit |
|
|
153 | (1) |
|
|
153 | (2) |
|
|
155 | (4) |
|
Chapter 5 The Operating System |
|
|
159 | (1) |
|
5.1 What Is an Operating System? |
|
|
159 | (2) |
|
|
161 | (1) |
|
|
162 | (1) |
|
|
163 | (5) |
|
|
168 | (3) |
|
5.2.4 Resource Management |
|
|
171 | (2) |
|
5.2.5 Protection and Security |
|
|
173 | (1) |
|
|
174 | (1) |
|
5.3 Forms of Process Execution |
|
|
175 | (8) |
|
|
175 | (1) |
|
|
176 | (1) |
|
5.3.3 Concurrent Processing and Context Switches |
|
|
177 | (1) |
|
|
178 | (1) |
|
|
178 | (1) |
|
|
179 | (1) |
|
|
180 | (1) |
|
|
181 | (1) |
|
5.3.9 Comparing Forms of Process Execution |
|
|
182 | (1) |
|
5.4 Other System Software |
|
|
183 | (6) |
|
|
183 | (1) |
|
|
184 | (2) |
|
|
186 | (3) |
|
5.5 Booting and System Initialization |
|
|
189 | (1) |
|
5.6 User Accounts, Groups, and Permissions |
|
|
190 | (3) |
|
|
190 | (1) |
|
5.6.2 Permissions and Groups |
|
|
191 | (2) |
|
Chapter 6 Computer Networks |
|
|
193 | (1) |
|
6.1 Network Terminology and Concepts |
|
|
193 | (3) |
|
6.2 Computer Network Hardware |
|
|
196 | (1) |
|
|
197 | (1) |
|
6.2.2 Wireless Communication |
|
|
197 | (1) |
|
6.2.3 Ethernet and Forms of Cable |
|
|
198 | (1) |
|
6.2.4 Devices to Connect Networks Together |
|
|
199 | (6) |
|
6.3 Classifying Networks by Topology and Size |
|
|
205 | (5) |
|
|
205 | (3) |
|
6.3.2 Classifying Network Types by Size |
|
|
208 | (2) |
|
|
210 | (12) |
|
|
211 | (1) |
|
|
212 | (3) |
|
|
215 | (7) |
|
|
222 | (10) |
|
6.5.1 The Internet Backbone |
|
|
223 | (1) |
|
6.5.2 The Domain Name System |
|
|
224 | (4) |
|
|
228 | (4) |
|
|
232 | (7) |
|
|
232 | (2) |
|
|
234 | (1) |
|
|
235 | (2) |
|
|
237 | (2) |
|
|
239 | (1) |
|
7.1 Equivalence of Hardware and Software |
|
|
239 | (2) |
|
7.2 Categorizing Software |
|
|
241 | (8) |
|
|
241 | (4) |
|
7.2.2 Categorizing Software by Type |
|
|
245 | (1) |
|
7.2.3 Categorizing Software by License |
|
|
246 | (3) |
|
|
249 | (3) |
|
|
252 | (10) |
|
|
252 | (2) |
|
7.4.2 Webservers and Apache |
|
|
254 | (5) |
|
7.4.3 Proxy Servers and Squid |
|
|
259 | (3) |
|
7.5 A Look at Applications Software |
|
|
262 | (23) |
|
|
262 | (1) |
|
|
263 | (8) |
|
|
271 | (4) |
|
7.5.4 Database Management Systems and the Structured Query Language |
|
|
275 | (4) |
|
7.5.5 Other Business Software |
|
|
279 | (6) |
|
Chapter 8 Programming and Programming Languages |
|
|
285 | (1) |
|
8.1 An Overview of Programming |
|
|
285 | (5) |
|
8.2 An Examination of High-Level Programming Languages |
|
|
290 | (1) |
|
8.2.1 Early High-Level Languages |
|
|
290 | (5) |
|
8.2.2 Structured Programming Languages |
|
|
295 | (1) |
|
8.2.3 Object-Oriented Programming |
|
|
295 | (6) |
|
8.2.4 Just-In-Time Compilation |
|
|
301 | (1) |
|
8.2.5 Other Notable Languages |
|
|
302 | (2) |
|
8.3 Types of Instructions |
|
|
304 | (15) |
|
8.3.1 Variables and Declarations |
|
|
304 | (1) |
|
8.3.2 Input and Output Instructions |
|
|
305 | (2) |
|
8.3.3 Assignment Statements |
|
|
307 | (2) |
|
8.3.4 Selection Statements |
|
|
309 | (4) |
|
8.3.5 Iteration Statements |
|
|
313 | (3) |
|
8.3.6 Subroutines and Subroutine Calls |
|
|
316 | (3) |
|
8.4 Data Types and Data Structures |
|
|
319 | (3) |
|
8.5 Scripting and Scripting Languages |
|
|
322 | (7) |
|
Chapter 9 Information Security |
|
|
329 | (1) |
|
9.1 What Are Data and Information? |
|
|
329 | (2) |
|
9.2 Information Assurance and Security |
|
|
331 | (3) |
|
|
334 | (5) |
|
|
334 | (3) |
|
9.3.2 Disaster Recovery Planning |
|
|
337 | (2) |
|
9.4 IT Threats and Solutions |
|
|
339 | (15) |
|
9.4.1 Threats That Target Users |
|
|
339 | (2) |
|
9.4.2 Threats That Target Software |
|
|
341 | (3) |
|
9.4.3 Threats That Target Network Hardware and Networked Computers |
|
|
344 | (3) |
|
9.4.4 Unauthorized Access and Password Cracking |
|
|
347 | (2) |
|
|
349 | (3) |
|
9.4.6 Backups as a Solution |
|
|
352 | (2) |
|
9.5 Encryption Technologies |
|
|
354 | (10) |
|
9.5.1 What Is Encryption? |
|
|
354 | (2) |
|
9.5.2 Encryption Algorithms |
|
|
356 | (4) |
|
9.5.3 Encryption Software |
|
|
360 | (4) |
|
|
364 | (3) |
|
Chapter 10 The Windows Operating System |
|
|
367 | (1) |
|
10.1 A History of Windows |
|
|
367 | (4) |
|
|
371 | (1) |
|
10.2.1 Windows Default Directories |
|
|
371 | (2) |
|
10.2.2 Windows File Types |
|
|
373 | (2) |
|
10.2.3 Windows Files and Filenames |
|
|
375 | (1) |
|
10.2.4 Windows GUI Tools for Interacting with the File System |
|
|
376 | (3) |
|
10.2.5 Windows File Permissions and Sharing Options |
|
|
379 | (2) |
|
|
381 | (8) |
|
|
389 | (12) |
|
|
390 | (2) |
|
10.4.2 The Windows Task Manager |
|
|
392 | (2) |
|
|
394 | (3) |
|
10.4.4 System Performance Monitoring |
|
|
397 | (3) |
|
10.4.5 Logging Off, Shutting Down, Booting, Rebooting, and Safe Mode Booting |
|
|
400 | (1) |
|
10.5 Windows Administration |
|
|
401 | (18) |
|
|
403 | (3) |
|
10.5.2 Computer Management Tools |
|
|
406 | (4) |
|
10.5.3 The Windows Firewall |
|
|
410 | (2) |
|
10.5.4 The Windows Registry |
|
|
412 | (3) |
|
10.5.5 Other Administrative Tools |
|
|
415 | (4) |
|
Chapter 11 Windows Scripting |
|
|
419 | (1) |
|
11.1 Introduction to MS-DOS and PowerShell |
|
|
419 | (2) |
|
|
421 | (8) |
|
|
429 | (9) |
|
11.3.1 Variables, Assignments, Input, and Output |
|
|
429 | (3) |
|
11.3.2 Conditions and the DOS If Statement |
|
|
432 | (2) |
|
|
434 | (1) |
|
11.3.4 DOS Choice Command |
|
|
435 | (1) |
|
11.3.5 DOS Script Examples |
|
|
436 | (2) |
|
11.4 Introduction to PowerShell Concepts and Commands |
|
|
438 | (7) |
|
11.4.1 Objects in PowerShell |
|
|
438 | (1) |
|
11.4.2 A Look at Some PowerShell Commands |
|
|
439 | (3) |
|
11.4.3 Help, Aliases, and Entering Commands |
|
|
442 | (3) |
|
11.5 PowerShell as a Language |
|
|
445 | (8) |
|
11.5.1 Variables and Assignments |
|
|
445 | (3) |
|
|
448 | (1) |
|
|
449 | (4) |
|
11.6 Example Administrative PowerShell Scripts |
|
|
453 | (6) |
|
Chapter 12 Unix and Linux |
|
|
459 | (1) |
|
12.1 The Development of Unix and Linux |
|
|
459 | (5) |
|
12.2 Differences between Unix and Various Linux Distributions |
|
|
464 | (1) |
|
12.2.1 Comparing Unix and Linux |
|
|
464 | (1) |
|
12.2.2 Differences between Linux Distributions |
|
|
465 | (6) |
|
12.3 Examining Linux: Linux Files |
|
|
471 | (13) |
|
12.3.1 The Top-Level Directory Structure |
|
|
471 | (6) |
|
|
477 | (3) |
|
12.3.3 Inodes and Partitions |
|
|
480 | (4) |
|
12.4 Linux Users, Processes, and Services |
|
|
484 | (13) |
|
|
484 | (3) |
|
|
487 | (2) |
|
|
489 | (8) |
|
12.5 Why Is Linux Important? |
|
|
497 | (4) |
|
Chapter 13 The Linux Command Line |
|
|
501 | (50) |
|
13.1 An Introduction to the Linux Command Line and Bash |
|
|
501 | (9) |
|
13.1.1 Your Prompt and Entering Commands |
|
|
502 | (1) |
|
|
503 | (1) |
|
|
503 | (2) |
|
13.1.4 Tab Completion, History, and Command-Line Editing |
|
|
505 | (2) |
|
13.1.5 Aliases and Environment Variables |
|
|
507 | (1) |
|
13.1.6 Using ~ and Redirection |
|
|
508 | (2) |
|
13.2 Linux File System Commands |
|
|
510 | (10) |
|
13.2.1 Cd (Change Directory), Is (List), and pwd (Print Working Directory) |
|
|
510 | (2) |
|
13.2.2 Cp (Copy), mv (Move/Rename), and rm (Remove/Delete) |
|
|
512 | (2) |
|
|
514 | (1) |
|
13.2.4 Accessing Text Files |
|
|
515 | (2) |
|
13.2.5 Permissions and Ownership Commands |
|
|
517 | (3) |
|
13.3 Process Management Commands |
|
|
520 | (6) |
|
13.4 System Status Commands |
|
|
526 | (2) |
|
13.5 Basic System Administration Commands |
|
|
528 | (4) |
|
13.6 Advanced System Administration Commands |
|
|
532 | (5) |
|
13.6.1 File System Commands |
|
|
532 | (2) |
|
13.6.2 Software Installation Commands |
|
|
534 | (3) |
|
|
537 | (14) |
|
13.7.1 Variables and Assignment Statements |
|
|
538 | (1) |
|
13.7.2 Input, Output, and Parameters |
|
|
539 | (2) |
|
13.7.3 Conditions and if-then/if-then-else Statements |
|
|
541 | (4) |
|
|
545 | (3) |
|
13.7.5 Miscellaneous Commands and Comments |
|
|
548 | (3) |
Index |
|
551 | |