| 層級 | 核心知識點 | 代表性專案練習 |
|---|---|---|
| 0. Linux 基礎環境 | 指令、檔案系統、權限、程序管理、網路配置、Shell 腳本、vim/gdb/valgrind/strace | 自動化部署腳本、日誌分析工具 |
| 1. C 語言核心 | 指標/記憶體佈局、結構體/聯合/位欄、函式指標、標準庫 (string, stdlib, stdio, time, errno)、預處理器、編譯鏈接過程 | 實現動態陣列、哈希表、簡易 Shell |
| 2. 系統程式設計 (APUE/UNP) | 檔案 I/O (open/read/write/lseek/stat/mmap)、程序控制 (fork/exec/wait/pipe)、訊號、POSIX 執行緒 (pthread)、同步 (mutex/cond/rwlock/spinlock)、I/O 多路複用 (select/poll/epoll)、Socket 網路程式設計 (TCP/UDP/Unix Domain Socket) | 高併發 Echo Server、簡易 HTTP Server、進程池/執行緒池 |
| 3. C++ 系統開發 | RAII、智能指標、STL 容器/演算法、模板元程式設計、多執行緒 (std::thread, async, future, atomic, memory_order)、網路庫 (Boost.Asio, libevent, muduo, cpp-httplib)、序列化 (Protobuf, FlatBuffers, msgpack)、日誌 (spdlog, glog)、單元測試 (GoogleTest) | 高效能 RPC 框架、分散式配置中心、即時訊息網關 |
| 4. 專用領域 (按興趣選) | 嵌入式/驅動:設備樹、平台驅動、IIO、DMA、中斷、內核模組、Buildroot/Yocto 資料庫內核:B+ 樹、LSM 樹、WAL、MVCC、查詢優化器 中間件:Kafka/RocketMQ 客戶端、Redis Cluster 客戶端、服務註冊發現 雲原生:Containerd/CRI-O、eBPF、Cilium、Sidecar Proxy | 虛擬字元裝置驅動、嵌入式 KV 存儲引擎、Service Mesh 數據平面 |
| 5. 工程化能力 | CMake/Meson 建構系統、Git 流程、Code Review、CI/CD (GitLab/Jenkins)、靜態分析 (Cppcheck, Clang-Tidy)、動態分析 (Sanitizers: ASan, TSAN, UBSan)、效能剖析 (perf, gprof, VTune)、容器化部署 (Docker, Kubernetes) | 開源專案貢獻、企業級專案交付 |
Linux C/C++ 開發是**深不見底的技術體系**。「鳥哥 → C → APUE/UNP → C++/Boost.Asio → 專用領域 → 工程化」是經典成長階梯。關鍵在於**巨大的動手實作量**與**持續的原理探究**。三年磨一劍,五年成專家,十年或許能在內核/資料庫/中間件核心模組留下名字。