10 — Hardware Notes¶
You probably already have your primary machine: a MacBook Pro or Air with an M-series chip. This file is about when that’s enough and when you need something else. For the 13-month roadmap, you will need cloud Linux access at minimum, and you should budget for a cheap secondary Linux box by M7-M8.
Apple Silicon (M1/M2/M3/M4) for C development¶
Excellent for:
90% of your day: reading, writing, editing, testing, ASan/UBSan runs.
Native ARM64 codegen; you learn ARM assembly by default, which is a bonus.
Ridiculous battery life; you can do 10 hours of C study in a coffee shop.
Instruments is a first-class profiler.
clang/lldb bundled and current.
Rosetta 2 handles x86 binaries transparently for testing.
Painful or missing on Apple Silicon:
valgrind: no working port. Use ASan (which is faster anyway).
perf: Linux-only. Use Instruments locally + cloud Linux for perf work.
rr: Linux x86_64 only.
bpftrace / eBPF: Linux-only.
io_uring: Linux-only. You cannot benchmark io_uring on macOS — fundamental kernel API.
32-bit x86 legacy code: effectively gone; use Docker/QEMU if you must.
gdb: works but code-signing dance is annoying; lldb is easier.
Verdict: primary daily driver, absolutely. Sufficient for M1-M7 of the roadmap on its own. From M8 onward you need real Linux.
Getting real Linux — three options in order of cost¶
Option A: cloud VM ($5-20/mo)¶
Cheapest, most flexible. You pay only for hours you use if you spin down.
Provider |
Instance |
Cost |
Notes |
|---|---|---|---|
Hetzner Cloud |
CPX21 (3 vCPU, 4GB, x86_64) |
~€5/mo |
Best price/perf in Europe; EU location is fine from India latency-wise (200ms; use tmux) |
DigitalOcean |
Basic 2GB |
$12/mo |
India (BLR1) data center; low-latency from Bangalore |
AWS EC2 |
|
~$15/mo Mumbai region |
India (Mumbai) region; free tier for first year |
Oracle Cloud Free Tier |
Ampere A1 4 OCPU 24GB ARM |
Free (Always Free) |
Excellent value; ARM Linux, not x86 — no |
Recommendation: Hetzner CPX21 for a permanent Linux workstation ($5-6/mo including tax); Oracle Cloud Free Tier Ampere for a free always-on ARM box.
Option B: cheap Linux laptop / mini-PC ($<phone_number_or_numberic_id_or_random_id_12>)¶
One-time purchase; lives on your desk.
Option |
Cost (INR / USD) |
Notes |
|---|---|---|
Used ThinkPad T480 / T14 |
₹20,000-30,000 / $250-350 |
Robust, Linux-friendly, still has good keyboard. Buy off OLX/eBay India. |
Intel NUC or refurbished mini-PC |
₹25,000-45,000 / $300-550 |
Small, quiet, plug into monitor. |
Framework Laptop 13 |
₹95,000+ / $1100+ |
If you want new. Overkill for a secondary machine. |
Raspberry Pi 5 (8GB) |
₹8,000 / $100 |
ARM Linux, real Linux syscalls. Slow but functional. Great for io_uring/eBPF learning. |
Verdict for India: used ThinkPad T480 or T14 from a Bangalore/Delhi refurbisher is the ROI winner. ₹25,000 buys you a machine that will run Ubuntu 26.04 for the entire roadmap.
Option C: WSL2 on your work Windows laptop (if applicable)¶
If Zoho issued you a Windows workstation, WSL2 with Ubuntu 26.04 is a real Linux, including perf, io_uring, and bpftrace (kernel 5.10+). Zero cost. Only downside: filesystem crossing between WSL and Windows is slow.
Specs that matter for C work¶
Unlike ML, C dev is not GPU-bound and rarely RAM-bound. Priorities:
NVMe SSD — the single biggest factor in build times. Compilers thrash the disk.
CPU single-thread perf — linker and per-TU compile are largely single-threaded even with
-j.RAM — 8GB minimum; 16GB comfortable; 32GB overkill.
Network — for pulling packages, cloning repos, and SSH-ing to cloud boxes.
GPU: irrelevant unless you’re doing CUDA/Metal SIMD from C in M11+, and even then you can use cloud spot instances.
For concurrency / perf benchmarking¶
Your M-series Mac has 8-14 performance cores depending on chip. That’s a fine environment to learn concurrency, but production concurrency benchmarks should run on:
Target |
Why |
|---|---|
Cloud x86_64 with 16+ vCPUs |
Realistic “many cores contending on cache lines” scenario. Hetzner CCX23 (8 dedicated cores) or AWS c6i.4xlarge. |
A machine you can pin threads to specific cores |
Linux |
A machine with |
Cycle-accurate counter reads for cache misses etc. |
For M9-M10 concurrency work, budget ~10 hours/month of cloud time (~$5). You do not need a permanent 16-core machine.
For SIMD work in M11-M12¶
On Apple Silicon: you have ARM NEON natively. Write it, test it, benchmark it. This is legitimately production-relevant — all of Apple’s ML and llama.cpp’s Mac backend use NEON.
For AVX2/AVX-512: cloud x86_64 VM. Hetzner AMD Ryzen instances or AWS c7i (Ice Lake) give you AVX-512.
Peripherals worth having¶
External monitor — 27” 4K if budget permits; you will spend 8-hour sessions reading code.
Mechanical keyboard — not vanity; wrist health over 13 months. Any tenkeyless with brown/red switches.
Ethernet dongle — for the Linux mini-PC.
A physical notebook — handwritten diagrams of pointer / arena layouts. Faster than any drawing tool.
What most people get wrong about hardware¶
They think they need a $3000 rig. They don’t. A used ThinkPad T480 or a Hetzner CPX21 does 100% of what this roadmap requires. The bottleneck for the next 13 months is your attention, not your CPU. Spend money on books and a good chair; not on hardware.
Return to README.md · Return to ../README.md