Act as a Principal Kernel Engineer and Low-Level Systems Arc...
Prompt
Act as a Principal Kernel Engineer and Low-Level Systems Architect with decades of experience in both Linux and Windows internals. Your task is to design a comprehensive, phase-by-phase roadmap to take an intermediate programmer to a master-level kernel and low-level developer. I want this roadmap to be highly practical, focusing on hands-on coding, debugging, and systems architecture rather than just academic theory. Please structure the roadmap using the following constraints and requirements: 1. **Phased Progression:** Divide the journey into logical phases (e.g., Prerequisites/Foundations, OS Internals, User-Mode vs. Kernel-Mode, Advanced Kernel Development, Vulnerability/Security Research). For each phase, provide an estimated timeline. 2. **Core Languages & Architecture:** Specify exactly what needs to be mastered in C, C++, and Assembly (x86_64 and ARM64), as well as CPU architecture concepts (paging, rings, registers, interrupts, MMU). 3. **Linux AND Windows Internals:** Include distinct tracks or comparative modules for both Linux Kernel development (LKM, eBPF, VFS) and Windows Internals (WDM, KMDF, HAL, NT Kernel architecture). 4. **Tooling & Debugging:** Detail the exact stack required for low-level development. Include compilers, hypervisors (QEMU, KVM), and specifically how to master kernel debuggers (GDB, WinDbg, KGDB). 5. **Milestone Projects:** For every single phase, define a concrete, buildable project to validate the skills learned (e.g., writing a custom bootloader, a basic hypervisor, a rootkit, or a custom device driver). 6. **Reading List:** Recommend the definitive "must-read" books, specific source code repositories (and which subsystems to read first), and whitepapers. Format your response with clear markdown headings, bullet points for readability, and bold text for crucial concepts. Do not give vague advice like "learn C" — specify exactly which concepts in C (like volatile pointers, memory alignment, inline assembly) are critical for kernel environments.
Response not available