Various schemes such as absolute, relocating, and direct-linking. Compilers:
If you manage to get your hands on a copy, here is the roadmap of what to expect: Evolution of operating systems and hardware.
+--------------------------------------------------+ | User Applications | +--------------------------------------------------+ | Compilers / Interpreters / Macro Processors | +--------------------------------------------------+ | Linkers / Loaders / Assemblers | +--------------------------------------------------+ | Operating System Kernel / I/O | +--------------------------------------------------+ | Bare Hardware | +--------------------------------------------------+ Why a 1972 Textbook Still Matters Systems Programming By John J Donovan Pdf Free
While the specific hardware architectures Donovan references are largely obsolete, the structural logic remains unchanged. Donovan's Core Concept 1970s Hardware Context Modern Equivalence IBM System/360 Assembly GNU Assembler ( as ), NASM Macro Processor Conditional assembly macros C Preprocessor, Rust Macros Relocatable Loader Punched card memory allocation Dynamic Linker ( ld.so ), Virtual Memory Compilers Basic syntax-directed translation LLVM, GCC, modern optimization passes Legitimate Access and Free Alternatives
and related low-level architecture guides on GitHub. : Programs that substitute and specialize macro definitions
Languages like Rust, Go, and Zig have triggered a renaissance in systems programming. The core challenges these modern languages solve—such as memory safety and concurrent execution—are rooted in the concepts Donovan outlined.
: Programs that substitute and specialize macro definitions for macro calls, allowing for more efficient code reuse. Arpaci-Dusseau. A fantastic
by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau. A fantastic, freely available online textbook covering virtualization, concurrency, and persistence.
Knowing how code interacts with the CPU and memory.