Lobsters | 📄 原文链接 | 2026-11-04 收录

失落的 malloc:从 Unix V4 源码看内存分配的起点

来源:napcakes.nekoweb.org — 2026-11

📋 概述

一次 Unix 考古。V4 磁带去年才在储藏室被找回来,1973 年 11 月发布的它已经能把内核大部分写成(中古)C。作者先看 C 编译器工具链里 /usr/c/c20.c 的 alloc():对齐、检查边界、不够就 sbrk(2000),失败直接 exit(1),所以调用方从不检查 NULL,也从不 free——反正一切活到程序结束。真正有意思的是 Dennis 目录下的 malloc.c:malloc(mp, size) 与 mfree(mp, size, addr) 多了一个显式的 map 参数,coremap 与 swapmap 就是两块扁平内存区域;mfree 还需要传对象大小。

🔑 核心要点

💡 金句

这些接口比传统的 malloc / free 好上无数倍。
← 返回 Lobsters 首页