0.2 The series: OS → networking → security → HTTPS → Go → C → Rust
This guide belongs to one course, read in this order:
1 OS & Linux ──▶ 2 Networking ──▶ 3 Security ──▶ 4 HTTPS walkthrough
2a OSI map 3a From Zero (one request through
2b TCP/IP 3b In Depth every guide)
════════════════ Go and Rust, alongside every step ════════════════
Languages track: Go ──▶ C ──▶ Rust (you are here)
GC + the C's control, with the
runtime machine discipline checked by the compiler
| Step | Guide | What it gives you | What you rebuild here in Rust |
|---|---|---|---|
| 1 | Operating Systems, Linux, and Containers | processes, memory, files, sockets, signals, containers | Part IV: syscalls, signals, fsync, ps from /proc, mmap, a namespace container |
| 2a | The OSI Model, One Click at a Time | one click through all seven layers | Chapter 64 walks the same layers |
| 2b | Networking from Zero (TCP/IP) | addressing, TCP, UDP, DNS, TLS, packet capture | Ch 32, 45, 46: TCP/UDP servers, framing, a raw-bytes DNS client, HTTP from a socket |
| 3a | Security from Zero | hashing, AEAD, passwords, TLS, PKI, OWASP Top 10 | Ch 49, 52, 56: rustls, AES-GCM, Argon2, HMAC, JWT auth |
| 3b | Security Engineering in Depth | supply chain, smuggling, SSRF, races, parsers | Ch 48, 50, 53–55: SSRF guard, smuggling-safe proxy, fuzzing, cargo deny |
| 4 | The HTTPS Request Lifecycle | one request end to end, then the server side | Ch 47–50, 64: production server, retries, proxy, the whole-series walkthrough |
| L1 | Go — The Complete Field Guide | a GC'd, runtime-scheduled systems language | the phrasebook in §0.3; Go comparisons in every chapter |
| L2 | C — The Complete Field Guide | manual memory, UB, the ABI, sockets, the kernel | Ch 6–7 (ownership replaces C's discipline), 33–34 (unsafe, FFI), 57 (layout) |
| L3 | Rust — The Complete Field Guide ← you are here | memory safety without a GC, fearless concurrency | — |
Why Rust comes last in the languages track. Rust's rules make the most sense once you have seen both alternatives fail. In C you have seen a use-after-free, a double free, and a data race. In Go you have seen GC pauses, nil-pointer panics, and the slice aliasing bug in Go §6.6. After that, the borrow checker stops looking like an obstacle. It is the C guide's ownership discipline, written down as rules and enforced at compile time.
Reading paths:
- From Go (backend engineer): Part 0 → Ch 1–12 (slowly, especially 6–8) → 16–22 → 28–31 → 47–48 → 62 → 68.
- From C (systems / embedded): Part 0 → Ch 1, 6–10 → 16–19 → 22 → 28–29 → 33–34 → Part IV → 57–61.
- Security engineer: Ch 1, 6–10 → 33 → Part VI → 49–50 → 55.
- SRE / platform: Ch 1–12 → 24 → 30–31 → Part IV → 47 → 65–67.
Across the series, at a glance
| Topic | OS / network / security side | Go side | C side | Rust chapter |
|---|---|---|---|---|
| System calls | OS Ch 2 | OS Ch 73 | C §21 | 39 |
| Virtual memory, stack vs heap | OS Ch 10 | Go §27 | C §10 | 6, 57 |
| Threads and races | OS Ch 17 | Go §17 | C §20 | 28–29 |
| Signals | OS Ch 20 | OS Ch 74 | C §55 | 40 |
| Crash-safe files | OS Ch 14 | OS Ch 77 | C §12 | 41 |
| Many connections | OS Ch 19 | OS Ch 78 | C §23.2 | 30–32 |
| Containers | OS Ch 44 | OS Ch 80 | — | 44 |
| DNS | Net Ch 18 | Net §0.8 | — | 45 |
| TCP | Net Ch 21 | Go §34 | C §21 | 32 |
| HTTP | Net Ch 28, HTTPS Ch 5 | Go §24 | C §21.2 | 46–47 |
| TLS / mTLS | Sec Ch 28, Sec Ch 53 | Go §50 | — | 49 |
| Password storage | Sec Ch 10 | Go §48 | — | 52, 56 |
| Request smuggling | Sec 3b Ch 30 | HTTPS Ch 20 | — | 50 |
| SSRF | Sec 3b Ch 33 | HTTPS Ch 22 | — | 48 |
| Retries, idempotency | HTTPS Ch 21 | same | — | 48 |
| Undefined behavior | — | — | C §28 | 33, 51 |
| Supply chain | Sec Ch 47, 3b Ch 13 | Go §64 | — | 55 |
| Memory ordering | — | Go §27 | C §38 | 61 |