2026-06-16 | database · kernel | #postgresql #pg-kernel #postmaster #shared-memory #backend-process #pgproc #lwlock #background-worker #fork #ipc
拆解 PostgreSQL 多进程架构的核心:Postmaster 的启动与信号处理、Backend 进程的 fork()→InitPostgres→主循环生命周期、CreateSharedMemoryAndSemaphores() 的共享内存初始化流程、PGPROC/ProcArray/PGXACT 等关键共享内存结构的内存布局,以及 Background Worker 的注册与调度。理解了这个地基,才能理解 PG 为什么用进程而不是线程,以及 max_connections 为什么不能随便调大。
2026-04-17 | os | #fork #exec #clone #posix-spawn #vfork #copy-on-write #process-model
fork 在 1971 年的 PDP-7 上是一句几十行的汇编;五十年后在一台 256GB 内存的服务器上同一句 fork() 要复制几百万个页表条目。本文讲 fork 的语义、COW 的账本、vfork/clone3/posix_spawn 的替代谱系,以及 fork 与多线程、大内存、JIT、容器相性差在哪里。
2025-11-27 | libevent | #C #Process #fork #Pitfalls
详解在多进程环境中使用 Libevent 的致命陷阱:fork 后的 event_base 重置与资源继承问题。