没关系,讨论嘛 ^_^。非常感谢 在 2012年6月13日 上午9:19,林汉杰 <linhanjie123@xxxxxxxxx>写道: > 好像真记错了, > #ifndef CONFIG_MMU > error = ramfs_nommu_expand_for_mapping(inode, size); > if (error) > goto put_dentry; > #endif > 算了,名字全出来了。尴尬。。。闪人。。。。 > > 在 12-6-13,林汉杰<linhanjie123@xxxxxxxxx> 写道: > > 一般情况mmap的地址通过pagefault来映射的。 > > > > 共享匿名内存 实现的父子进程共享内存所用的mmap是直接分配内存并建立映射的。我记得是这样的。 > > mmap(NULL,size,PROT_READ|PROT_WRITE,MAP_SHARED|MAP_ANONYMOUS,-1,0); > > > > 好像是通过tmpfs实现的吧,具体记不清,可以看代码。 > > > > > > 在 12-6-8,Li Haifeng<omycle@xxxxxxxxx> 写道: > >> mmap映射的文件内容也是通过page fault才建立真正的映射的吧。 > >> > >> 在 2012年6月8日 下午7:02,Li Haifeng <omycle@xxxxxxxxx>写道: > >> > >>> 恩,多谢。除了mmap,还有什么? > >>> 在 2012年6月8日 下午6:30,林汉杰 <linhanjie123@xxxxxxxxx>写道: > >>> > >>> mmap 匿名共享内存。 > >>>> mmap 设备文件,比如framebuffer驱动实现。 > >>>> 。。。 > >>>> > >>>> 这些情况都是直接映射到物理内存的(或者io内存) > >>>> > >>>> 在 12-6-8,Li Haifeng<omycle@xxxxxxxxx> 写道: > >>>> > user space 地址空间映射内存的方式除了 Page fault,还有哪些? > >>>> > > >>>> > >>> > >>> > >> > > >