FreeBSD实现了统一的“虚拟内存对象”(VM对象)的设计思想。 VM对象可以与各种类型的内存使用方式相结合—直接使用(unbacked)、 交换(swap)、物理设备、文件。 由于文件系统使用相同的VM对象管理核内数据—文件的缓存, 所以这些缓存的结构也是统一的。
VM对象可以被影复制(shadowed)。 它们可以被堆放到其它类别VM对象堆栈的顶端。例如,可以有一个交换VM对象, 放置在文件VM对象堆栈的顶端,以实现MAP_PRIVATE的mmap()操作。 这样的入栈操作也可以用来实现各种各样的共享特性, 包括写入时复制(copy-on-write,用于日志文件系统),以派生出地址空间。
应当注意,一个vm_page_t
结构体在任一个时刻只能与一个VM对象相关联。
VM对象影复本可以实现跨实例的共享相同的页。
本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
如果对于FreeBSD有问题,请先阅读
文档,如不能解决再联系
<questions@FreeBSD.org>.
关于本文档的问题请发信联系
<doc@FreeBSD.org>.