{
    "product": {
        "slug": "dive-into-systems",
        "name": "Dive into Systems",
        "kind": "book",
        "website": "https://diveintosystems.org/",
        "page": "https://listme.name/books/dive-into-systems",
        "tagline": "Free online textbook on how computers run programs, from C to circuits",
        "summary": "Dive into Systems is a textbook by Suzanne J. Matthews, Tia Newhall and Kevin C. Webb. It covers C, assembly, memory, operating systems and parallel computing for students with one computer science course behind them. The full text is free online, and No Starch Press sells a low-cost print edition.",
        "author": "Suzanne J. Matthews, Tia Newhall and Kevin C. Webb",
        "formats": [
            "web",
            "print"
        ],
        "pricing": "free",
        "price_note": "Free online; low-cost print from No Starch Press",
        "free_to_use": true,
        "open_source": false,
        "strengths": [
            "Full text free online",
            "Interactive tools and exercises on the project site",
            "Written for readers with one programming course"
        ],
        "limits": [
            "Covers less than the full systems textbooks",
            "Assumes a first programming course"
        ],
        "checked": "2026-10-10",
        "connected_to_publisher": false,
        "cover": "https://listme.name/assets/covers/dive-into-systems.webp",
        "overview": "The book guides readers through a vertical slice of a computer. It starts with how a program written in a high-level language becomes binary and circuits, then covers programming in C and assembly. Later chapters introduce operating systems and the costs that affect performance, such as the memory hierarchy, caching and code optimization. A final part covers parallel computing with shared memory and pthreads.\n\nThe authors designed the book as a primary textbook for introductory systems courses or as a supplement, and the project site adds interactive tools such as an assembly visualizer and online exercises. The free online edition and the low-cost print edition make it one of the most accessible textbooks here. It covers less ground than Computer Systems: A Programmer's Perspective, so it suits a first course rather than a second one.",
        "highlights": [
            "Vertical slice from C to circuits",
            "ASM Visualizer",
            "Memory hierarchy and caching",
            "Parallel computing with pthreads"
        ],
        "json": "https://listme.name/api/v1/products/dive-into-systems.json"
    },
    "rankings": [
        {
            "list": "computer-architecture-books",
            "name": "Computer architecture books",
            "page": "https://listme.name/best/computer-architecture-books",
            "rank": 6,
            "of": 11,
            "score": 87,
            "verdict": "A free, interactive introduction to how a computer runs a program, from C and assembly down to circuits. It covers less than the full systems textbook, so it ranks below CS:APP for readers who want depth.",
            "best_for": "Free first course in computer systems"
        }
    ],
    "alternatives": [
        {
            "slug": "computer-organization-and-design-risc-v",
            "name": "Computer Organization and Design RISC-V Edition",
            "score": 93,
            "page": "https://listme.name/books/computer-organization-and-design-risc-v"
        },
        {
            "slug": "computer-architecture-a-quantitative-approach",
            "name": "Computer Architecture: A Quantitative Approach",
            "score": 91,
            "page": "https://listme.name/books/computer-architecture-a-quantitative-approach"
        },
        {
            "slug": "code-the-hidden-language",
            "name": "Code",
            "score": 90,
            "page": "https://listme.name/books/code-the-hidden-language"
        },
        {
            "slug": "computer-systems-a-programmers-perspective",
            "name": "Computer Systems: A Programmer's Perspective",
            "score": 89,
            "page": "https://listme.name/books/computer-systems-a-programmers-perspective"
        },
        {
            "slug": "the-elements-of-computing-systems",
            "name": "The Elements of Computing Systems",
            "score": 88,
            "page": "https://listme.name/books/the-elements-of-computing-systems"
        },
        {
            "slug": "digital-design-and-computer-architecture",
            "name": "Digital Design and Computer Architecture",
            "score": 85.5,
            "page": "https://listme.name/books/digital-design-and-computer-architecture"
        },
        {
            "slug": "introduction-to-computing-systems",
            "name": "Introduction to Computing Systems",
            "score": 84.5,
            "page": "https://listme.name/books/introduction-to-computing-systems"
        },
        {
            "slug": "structured-computer-organization",
            "name": "Structured Computer Organization",
            "score": 82,
            "page": "https://listme.name/books/structured-computer-organization"
        },
        {
            "slug": "inside-the-machine",
            "name": "Inside the Machine",
            "score": 80,
            "page": "https://listme.name/books/inside-the-machine"
        },
        {
            "slug": "but-how-do-it-know",
            "name": "But How Do It Know?",
            "score": 77,
            "page": "https://listme.name/books/but-how-do-it-know"
        }
    ],
    "links": {
        "page": "https://listme.name/books/dive-into-systems",
        "markdown": "https://listme.name/books/dive-into-systems.md",
        "badge": "https://listme.name/badge/dive-into-systems.svg",
        "alternatives_page": "https://listme.name/alternatives/dive-into-systems",
        "alternatives_json": "https://listme.name/api/v1/alternatives/dive-into-systems.json"
    },
    "source": "https://listme.name",
    "license": "Free to read and cite with attribution to listme.name.",
    "docs": "https://listme.name/developers"
}