Systems & Hardware
The layer below the OS: CPU instruction sets (RISC-V, AArch64, x86-64), OS ABIs (POSIX, ELF, calling conventions), firmware (UEFI, ACPI, TPM), and hardware buses (PCIe, USB, NVMe).
Must Know
4 specsRISC-V is the only fully open, royalty-free ISA gaining mainstream adoption โ in SiFive/StarFive SoCs, SSD controllers, RISC-V Linux, and embedded MCUs. The base spec is required reading for anyone doing hardware or firmware on RISC-V.
AArch64 now dominates mobile (every smartphone), Apple Silicon (M-series Macs, iPad), and increasingly servers (AWS Graviton3/4, Ampere Altra, Neoverse). Cross-compilation, performance tuning, and assembly work all require knowing the ISA.
x86-64 dominates server (cloud compute), desktop, and laptop computing. Understanding the SDM is required for OS development, JIT compilation, security research, and any performance-critical native code.
POSIX defines the lingua franca of Unix/Linux systems programming. Every system call pattern, signal handler, file descriptor idiom, and shell script convention in the Linux/macOS world comes from this spec.
Should Know
10 specsRequired for any OS kernel, hypervisor, or firmware work on RISC-V. Every RISC-V Linux port, OpenSBI, U-Boot, QEMU model, and Keystone security monitor implements this spec.
Every C/C++/Rust/Go/Swift program on x86-64 Linux follows this ABI. Understanding it is essential for FFI bindings, inline assembly, debugger step-over logic, and compiler backend development.
Every function call on AArch64 (Apple Silicon, Android arm64, AWS Graviton) follows AAPCS64. Required for correct assembly, FFI bindings from any language, and compiler backend targeting Arm64.
Every compiled binary on Linux is ELF. Understanding ELF is essential for debugging, reverse engineering, dynamic linking, build toolchains, binary patching, and tools like readelf, objdump, ldd, and patchelf.
Every modern x86-64 and AArch64 server, workstation, and PC uses UEFI. Required for OS development, bootloader work (GRUB, systemd-boot, shim), Secure Boot policy, and firmware engineering.
ACPI is how every OS discovers hardware topology, manages CPU power states, handles thermal throttling, and receives platform events. Required for kernel, power management, and firmware development on all modern x86/Arm platforms.
TPM 2.0 is the hardware root of trust for modern Secure Boot, disk encryption, remote attestation, and zero-trust device health verification. Understanding it is essential for enterprise security architecture and cloud confidential computing.
PCIe is the universal high-speed peripheral bus. Understanding lane width, bandwidth, BAR mapping, and MMIO is essential for GPU compute (CUDA/ROCm), NVMe performance tuning, SR-IOV NIC virtualization, and DPDK kernel-bypass networking.
USB is the universal connector. Understanding USB PD for 240W power delivery, USB4 tunneling for Thunderbolt docks, and USB 3.x throughput tiers is essential for hardware-connected software, embedded development, and device driver work.
NVMe is the interface for all modern SSDs. Understanding queue depth, namespace management, ZNS for log-structured workloads, and NVMe-oF for disaggregated storage is required for storage system design, cloud storage backends, and OS I/O subsystem work.
Niche / Specialized
5 specsPOWER runs mission-critical IBM mainframe-class workloads. Required for AIX, IBM i (AS/400), and Linux-on-POWER development, and for anyone building compilers or tools targeting POWER.
Required for writing RISC-V assembly, setting up cross-compilation toolchains, or building compilers and OSes targeting RISC-V.
Every debugger, profiler, crash reporter, and sanitizer on Linux/macOS reads DWARF. Understanding it is critical for improving build-time debug quality, diagnosing toolchain issues, and building custom binary analysis tools.
LSB defines what 'Linux-compatible binary' means in practice. Critical for ISVs shipping pre-compiled software across distros and for understanding minimum glibc version requirements in cross-distro deployments.
SMBIOS is how software reads hardware inventory: CPU model, RAM config, system UUID, and BIOS version. Cloud hypervisors inject SMBIOS tables to identify instance type; asset management tools harvest them for CMDB population.