Book description
How Computers Really Work is a hands-on guide to the computing ecosystem: everything from circuits to memory and clock signals, machine code, programming languages, operating systems, and the internet.
But you won’t just read about these concepts, you’ll test your knowledge with exercises, and practice what you learn with 41 optional hands-on projects. Build digital circuits, craft a guessing game, convert decimal numbers to binary, examine virtual memory usage, run your own web server, and more.
Explore concepts like how to:
•Think like a software engineer as you use data to describe a real world concept
•Use Ohm’s and Kirchhoff’s laws to analyze an electrical circuit
•Think like a computer as you practice binary addition and execute a program in your mind, step-by-step
The book’s projects will have you translate your learning into action, as you:
•Learn how to use a multimeter to measure resistance, current, and voltage
•Build a half adder to see how logical operations in hardware can be combined to perform useful functions
•Write a program in assembly language, then examine the resulting machine code
•Learn to use a debugger, disassemble code, and hack a program to change its behavior without changing the source code
•Use a port scanner to see which internet ports your computer has open
•Run your own server and get a solid crash course on how the web works
And since a picture is worth a thousand bytes, chapters are filled with detailed diagrams and illustrations to help clarify technical complexities.
Requirements: The projects require a variety of hardware – electronics projects need a breadboard, power supply, and various circuit components; software projects are performed on a Raspberry Pi. See Appendix B for a complete list. Even if you skip the projects, the book’s major concepts are clearly presented in the main text.
Table of contents
- Cover Page
- Title Page
- Copyright Page
- Dedication
- About the Author
- About the Tech Reviewers
- BRIEF CONTENTS
- CONTENTS IN DETAIL
- ACKNOWLEDGMENTS
- INTRODUCTION
- 1 COMPUTING CONCEPTS
- 2 BINARY IN ACTION
- 3 ELECTRICAL CIRCUITS
- 4 DIGITAL CIRCUITS
- 5 MATH WITH DIGITAL CIRCUITS
-
6 MEMORY AND CLOCK SIGNALS
- Sequential Logic Circuits and Memory
- The SR Latch
- Using the SR Latch in a Circuit
- Clock Signals
- JK Flip-Flops
- T Flip-Flops
- Using a Clock in a 3-Bit Counter
- Summary
- Project #6: Construct an SR Latch Using NOR Gates
- Project #7: Construct a Basic Vending Machine Circuit
- Project #8: Add a Delayed Reset to the Vending Machine Circuit
- Project #9: Using a Latch as a Manual Clock
- Project #10: Test a JK Flip-Flop
- Project #11: Construct a 3-bit Counter
- 7 COMPUTER HARDWARE
- 8 MACHINE CODE AND ASSEMBLY LANGUAGE
-
9 HIGH-LEVEL PROGRAMMING
- High-Level Programming Overview
- Introduction to C and Python
- Comments
- Variables
- Stack and Heap Memory
- Math
- Logic
- Program Flow
- Functions
- Object-Oriented Programming
- Compiled or Interpreted
- Calculating a Factorial in C
- Summary
- Project #14: Examine Variables
- Project #15: Change the Type of Value Referenced by a Variable in Python
- Project #16: Stack or Heap
- Project #17: Write a Guessing Game
- Project #18: Use a Bank Account Class in Python
- Project #19: Factorial in C
-
10 OPERATING SYSTEMS
- Programming Without an Operating System
- Operating Systems Overview
- Operating System Families
- Kernel Mode and User Mode
- Processes
- Threads
- Virtual Memory
- Application Programming Interface (API)
- The User Mode Bubble and System Calls
- APIs and System Calls
- Operating System Software Libraries
- Application Binary Interface
- Device Drivers
- Filesystems
- Services and Daemons
- Security
- Summary
- Project #20: Examine Running Processes
- Project #21: Create a Thread and Observe It
- Project #22: Examine Virtual Memory
- Project #23: Try the Operating System API
- Project #24: Observe System Calls
- Project #25: Use glibc
- Project #26: View Loaded Kernel Modules
- Project #27: Examine Storage Devices and Filesystems
- Project #28: View Services
-
11 THE INTERNET
- Networking Terms Defined
- The Internet Protocol Suite
- A Trip Through the Internet
- Foundational Internet Capabilities
- Networking Is Computing
- Summary
- Project #29: Examine the Link Layer
- Project #30: Examine the Internet Layer
- Project #31: Examine Port Usage
- Project #32: Trace the Route to a Host on the Internet
- Project #33: See Your Leased IP Address
- Project #34: Is Your Device’s IP Public or Private?
- Project #35: Find Information in DNS
- 12 THE WORLD WIDE WEB
- 13 MODERN COMPUTING
- A ANSWERS TO EXERCISES
- B RESOURCES
- INDEX
Product information
- Title: How Computers Really Work
- Author(s):
- Release date: December 2020
- Publisher(s): No Starch Press
- ISBN: 9781718500662
You might also like
book
Code: The Hidden Language of Computer Hardware and Software, 2nd Edition
Computers are everywhere --- most obviously in our laptops and smartphones, but also our cars, televisions, …
book
Computer Networks, Fifth Edition
Computer Networks, 5/e is appropriate for Computer Networking or Introduction to Networking courses at both the …
book
Complete A+ Guide to IT Hardware and Software: CompTIA A+ Exams 220-1101 & 220-1102, 9th Edition
Master IT hardware and software installation, configuration, repair, maintenance, and troubleshooting and fully prepare for the …
book
How Linux Works, 3rd Edition
Unlike some operating systems, Linux doesn’t try to hide the important bits from you—it gives you …