som*_*one 11 memory history shared-memory
在早期版本的 Unix 中,进程如何共享内存?这与共享内存的现代实现相比如何?
Mic*_*sch 11
非常早期的 UNIX 系统没有MMU,因此有效地,系统中的所有内存在内存中的所有进程之间共享。UNIX V7 是第一个具有内存管理功能的 AFAIK。PDP-11 发布时甚至没有 MMU;请参阅这本 PDF 书,第 35 页。
随着时间的推移和 MMU 变得司空见惯,UNIX 开始需要它。然后内存可以在进程之间分离。在 1980 年代,我们看到了更多的 IPC 机制,包括由操作系统管理的共享内存(大约在 1983 年左右在 SVR1 中是新的)。SVR1 还引入了消息和信号量,并且 System V API 仍然可以在现代系统上用于所有这三件事。