Dive Into Systems

Dive Into Systems

A Gentle Introduction to Computer Systems
by Suzanne J. Matthews, Tia Newhall, and Kevin C. Webb
June 2022, 875 pp.
ISBN-13: 
9781718501362

Use coupon code PREORDERDIVE to get 30% off!

Dive Into Systems is a vivid introduction to computer organization, architecture, and operating systems that is already being used as a classroom textbook at more than 25 universities.

This textbook is a crash course in the major hardware and software components of a modern computer system. Designed for use in a wide range of introductory-level computer science classes, it guides readers through the vertical slice of a computer so they can develop an understanding of the machine at various layers of abstraction.

Early chapters begin with the basics of the C programming language often used in systems programming. Other topics explore the architecture of modern computers, the inner workings of operating systems, and the assembly languages that translate human-readable instructions into a binary representation that the computer understands. Later chapters explain how to optimize code for various architectures, how to implement parallel computing with shared memory, and how memory management works in multi-core CPUs. Accessible and easy to follow, the book uses images and hands-on exercise to break down complicated topics, including code examples that can be modified and executed.

Author Bio 

Suzanne J. Matthews is an Associate Professor of Computer Science at the United States Military Academy, West Point. She holds a PhD in Computer Science from Texas A&M University. Her research interests are in parallel computing, single board computers, and computer science education.

Tia Newhall is a professor in the computer science department at Swarthmore College. She holds a PhD in Computer Science from the University of Wisconsin. Her research interests are in parallel and distributed systems.

Kevin C. Webb is an Associate Professor of Computer Science at Swarthmore College. He holds a PhD in Computer Science from UC San Diego. His research interests are in networks, distributed systems, and computer science education.

Table of contents 

Chapter 0: Introduction
Chapter 1: By the C, by the C, by the Beautiful C
Chapter 2: A Deeper Dive into C Programming
Chapter 3: C Debugging Tools
Chapter 4: Binary and Data Representation
Chapter 5: What von Neumann Knew: Computer Architecture
Chapter 6: Under the C: Diving into Assembly

Chapter 7: 64-bit x86 Assembly (x86-64)
Chapter 8: 32-bit x86 Assembly (IA32)
Chapter 9: ARM Assembly
Chapter 10: Key Assembly Takeaways
Chapter 11: Storage and the Memory Hierarchy
Chapter 12: Code Optimization
Chapter 13: The Operating System
Chapter 14: Leveraging Shared Memory in the Multicore Era
Chapter 15: Looking Ahead: Other Parallel Systems and Parallel Programming Models

All chapters in red are included in this Early Access PDF.

Reviews 

"I’ve read a lot of books on computers in my time—some focused on the hardware and others centered on programming—but I’ve never seen one quite like Dive into Systems. On the one hand, this is a fantastic introduction to C programming for those who already know Python; on the other hand, it dives into the depths of the underlying hardware architecture. And then, after popping up to take a deep breath, there’s another deep dive into the world of assembly language. Suffice it to say that I’ll certainly be recommending this little beauty to my Python-obsessed friends."
—Clive “Max” Maxfield, author of Bebop to the Boolean Boogie and How Computers Do Math

"Dive into Systems does a great job of introducing hardware architecture, including the language that is often used to communicate with it - the C programming language. C programming concepts were explained by contrasting it with Python concepts and examples, so any experienced Python user will feel right at home with the explanations."
—Emily Liu, Security Consultant and Advanced Reviewer

"Dive into Systems takes interested developers on tour through computer architecture from the C programming language perspective. The authors take great care to explain critical computer systems concepts with many well-illustrated examples. Each chapter builds on the previous content, providing a rich history and a meticulously constructed dive into computer architecture."
—George D., Advanced Reviewer