The x86-64 architecture remains a dominant foundation for modern computing, supporting personal computers, professional workstations, servers, and cloud platforms. Linux on x86-64 is especially important for software that requires performance, reliability, security, and close interaction with hardware. However, many developers work mainly through high-level languages, compilers, runtimes, and operating-system abstractions, which can hide how the processor actually executes their programs.

This booklet is designed to make that hidden behavior understandable. Its purpose is not simply to teach assembly language or celebrate low-level programming. Instead, it explains how instructions, registers, memory, privilege levels, and processor mechanisms work together inside a modern Linux system.

The material begins with essential topics such as instruction execution, register behavior, processor pipelines, and memory access. It then develops toward more advanced subjects, including cache hierarchies, virtual memory, paging, interrupts, exceptions, and privilege boundaries. Practical tools such as GDB and performance-analysis utilities are used to connect theoretical concepts with real, observable behavior.

A key idea throughout the booklet is the distinction between architecture and microarchitecture. Architecture defines what the processor guarantees to software, including instructions, registers, memory behavior, and privilege rules. Microarchitecture describes how a specific processor implements those guarantees through pipelines, execution units, caches, branch prediction, and other internal techniques. Understanding both helps readers reason more accurately about correctness, performance, and system behavior.

The booklet also examines instructions at the machine level, follows changes in register state, and relates observations to Intel and AMD architectural specifications. In the final project, one instruction is studied from its binary encoding through execution and internal processor behavior. This approach makes low-level concepts measurable, verifiable, and easier to trust.

The intended readers include programmers, systems engineers, security researchers, and students who want to understand what happens beneath software abstractions. The booklet requires careful study, but it rewards that effort with stronger technical confidence. Readers gain a better ability to analyze performance, interpret compiler output, diagnose system problems, understand security boundaries, and work with complex systems using precise knowledge instead of assumptions.

By exposing the relationship between software instructions and physical processor behavior, the booklet helps readers move beyond superficial explanations. It encourages disciplined investigation, careful measurement, and evidence-based reasoning, providing a durable foundation for work in systems programming, debugging, optimization, and security.

Its central message is clear: low-level knowledge is not outdated nostalgia. It is a practical capability that remains essential for understanding, building, securing, and optimizing modern software systems.