ABI 与调用约定
ABI 是编译器与操作系统之间的契约。本文讲解 System V AMD64 的寄存器与栈传递规则、参数分类算法与结构体拆分、返回值与变参约定,对比 Windows x64 与 ARM64 的差异,并给出跨语言 FFI、栈对齐、名字修饰与常见踩坑的排查手段。
tag
ABI 是编译器与操作系统之间的契约。本文讲解 System V AMD64 的寄存器与栈传递规则、参数分类算法与结构体拆分、返回值与变参约定,对比 Windows x64 与 ARM64 的差异,并给出跨语言 FFI、栈对齐、名字修饰与常见踩坑的排查手段。
时间处理是系统编程最容易出错的部分:墙钟与单调时钟混用、时区与夏令时、闰年与闰秒、2038 问题。本文讲解 std.time 的完整 API 家族、Instant 与 Timer 的单调计时、std.time.epoch 的日期换算、ISO 8601 与 RFC 3339 的格式化与解析、UTC 偏移与时区处理策略,以及定时器与调度循环的工程写法。
Zig 是一门专注于系统级编程的现代语言,目标是成为 C 的更好替代品。本教程深入讲解 Zig 的变量声明、数据类型、控制流、函数以及编译时反射机制。
Zig 是由 Andrew Kelley 于 2016 年创建的现代化系统级编程语言,以「清晰优于花哨、显式优于隐式」为核心设计理念,通过显式内存管理(Allocator 泛型分配器)、编译期计算(comptime)、无隐藏控制流的错误处理(Error Union/try/catch/errdefer),以及无缝的 C ABI 互操作能力,成为 C 语言的出色替代者。本专题系统覆盖语言基础与语法特色、手动内存管理与分配器设计哲学(defer/Arena/GPA)、错误处理与结果类型、构建系统(build.zig)与包管理、C 互操作与渐进迁移、系统编程实战(文件/进程/mmap/信号)、WebAssembly 编译与异步网络编程(epoll/io_uring),以及 SIMD 与编译时优化的性能工程,并进一步深入编译期编程(comptime 反射与类型生成)、标准库容器(ArrayList/HashMap/ArrayHashMap)、并发原子操作与消息传递、高级 FFI(dlopen/C++ ABI/translate-c)、裸机内核开发(freestanding/中断/Multiboot2)与嵌入式交叉编译(ARM/RISC-V MCU),为系统编程学习者和 C 迁移者提供完整的 Zig 技术栈指引。并进一步覆盖包管理与生态系统(build.zig.zon/zig fetch)、调试与性能分析(GDB/LLDB/perf/Valgrind)、密码学与安全编程、数据库访问与轻量 ORM、WebSocket 实时通信、可观测性(结构化日志/OpenTelemetry/Prometheus)、GUI 与图形编程(SDL2/OpenGL)、游戏开发(raylib/ECS)、解析器与编译器前端、算法与数据结构实战、TLS 与 HTTP/2 协议栈,以及文本处理(Unicode/正则/分词)。并补齐 io_uring 异步 IO、HTTP/3 与 QUIC、WASI 组件模型、Vulkan Compute、打包与分发、终端 TUI 开发等进阶议题。
操作系统是计算机系统中最核心的系统软件,它管理硬件资源、提供抽象接口、保障程序安全隔离。深入理解操作系统的基础原理,是每一位系统工程师的必修课。本文将围绕内核态与用户态的隔离机制、系统调用的实现原理展开系统性的介绍。
WebAssembly(WASM)是一种可移植的二进制指令格式,让 C/C++/Rust 等语言代码以接近原生速度在浏览器、服务端和边缘设备运行。本专题系统覆盖 WASM 核心架构与编解码原理、二进制格式与内存模型、从 Rust 编译到 JS 互操作的完整工具链、WASI 标准与 wasi-http、多线程(SharedArrayBuffer)与 SIMD 高性能计算、组件模型与 WIT 接口、边缘计算与 CDN 落地(Cloudflare Workers/Fastly)、安全模型与沙箱(内存隔离/WASI 能力/运行时加固)、AI 推理(ONNX Runtime Web/WASI-NN/边缘推理)、嵌入式与物联网(WAMR/OTA/RTOS)、游戏与 WebGPU(Emscripten/wgpu/零拷贝)、区块链智能合约(CosmWasm/ink!/确定性执行)、调试与性能剖析(DWARF/火焰图/wasm-tools),并深入 WasmGC 提案与托管语言(Java/C#/Kotlin 原生编译、引用类型与 GC 指令)、Wasmtime 运行时内部(Cranelift/JIT-AOT/epoch 抢占/fuel 计量)、Rust 编译进阶优化(wasm-bindgen/体积控制/异步桥接)、WASI 文件系统沙箱(preopened 目录/能力模型/路径逃逸防护)、异常与栈切换提案(try_table/suspend-resume/JSPI)以及宿主嵌入 API(Rust/C/Go/Python 嵌入 WASM 与 host 函数),并进一步扩展构建打包工具链(wasm-bindgen/wasm-pack)、浏览器语言运行时(Pyodide/QuickJS)、WASM 容器运行时与 Kubernetes(runwasi)、WASM 密码学、媒体编解码、SQLite/OPFS 持久化、Rust 前端框架(Leptos/Yew/Dioxus)、浏览器内数据分析(DuckDB-WASM/Apache Arrow)、Node.js 嵌入 WASM、流式编译与实例化优化、浏览器扩展(MV3/CSP)集成以及模块测试与模糊测试,为前端工程师到系统架构师提供从入门到生产的完整知识路径。
Linux 进程管理完整指南:fork 的 Copy-on-Write 机制、exec 家族系统调用、wait/waitpid 僵尸进程处理,以及 POSIX 管道、消息队列、共享内存、Unix Domain Socket 四种 IPC 机制的深度对比与实战代码。
操作系统是计算机科学的基石,理解其原理是进行系统编程、性能优化与问题排查的前提。本专题系统覆盖进程与线程模型(PCB、调度算法 CFS/多级反馈队列)、内存管理机制(虚拟内存、页表、MMU、TLB、换页策略)、文件系统与 I/O 栈(VFS、inode、DMA、mmap、epoll/io_uring、NVMe 多队列与 io_uring 结合)、死锁与同步原语(信号量、互斥锁、条件变量、读写锁、RCU)、中断机制与系统调用、Linux 内核源码导读(启动流程、模块编程、内核数据结构)、容器与虚拟化的操作系统支撑(cgroups/namespace/KVM)、eBPF 可观测与内核追踪、实时调度(PREEMPT_RT)与可信安全加固(LSM/TPM),为后端工程师与系统开发者建立扎实的操作系统理论底座。
C++ 是唯一一门同时提供零成本抽象与直接操作硬件能力的工业级语言。本专题系统覆盖现代 C++ 核心特性演进(C++11/14/17/20/23):移动语义与 RAII、Lambda 与智能指针、Concept 约束与协程机制(co_await/co_yield、自定义 Awaitable、生成器与异步流);深入 STL 源码剖析(vector/deque 内存布局、红黑树与哈希表实现、迭代器分类);并发编程(std::thread、原子操作与内存序、无锁数据结构、线程池与异步模式);网络编程(从 POSIX Socket 原语到 Boost.Asio 事件驱动与半同步半异步架构);模板元编程与 SFINAE、编译期反射与高性能序列化;内存管理(自定义内存池、std::pmr 分配器与 jemalloc/tcmalloc 对比);CMake 工程化实践(target-based 模式、CMake Presets、Conan/vcpkg 依赖管理、CI 构建矩阵、ABI 兼容与符号导出);性能优化(Cache 友好、分支预测、SIMD 向量化);以及在游戏引擎、嵌入式系统、高频交易、自动驾驶中的应用场景与跨语言绑定集成,为性能敏感领域开发者提供完整技术路径。并补齐 std::chrono 时区、std::filesystem 与内存映射、spdlog 结构化日志、clang-tidy 静态分析、Eigen 数值计算、Unicode 文本处理等进阶议题。
信号处理:让你的应用优雅地退出 你有没有遇到过这样的情况: - 你的应用收到 信号(比如 Kubernetes 要重启你的 Pod),但应用直接退出了,没有做任何清理工作 这些问题都可以通过 优雅退出 (Graceful Shutdown)来解决。