内存文件系统

内存文件系统,第1张

Linux内核2.0/2.2就已经支持,为了能够使用Ramdisk,我们在编译内核时须将block device中的Ramdisk支持选上,它下面还有两个选项,一个是设定Ramdisk的大小,默认是4096k

如果umount再加载,只要不重启linux,那文件依然会保存在/dev/ramX中

Ramfs顾名思义是内存文件系统,它处缓备于虚拟文件系统(VFS)层,而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。因而,它无需格式化,可以创建多个,只要内存足够,在创建时可以指定其最大能使用的内存大小。

umount后再加载数据消失

Tmpfs是一个虚拟内存文件系统,它不同于传统的用块设备形式来实现的Ramdisk,也不同于针对物理内存的Ramfs。Tmpfs可以使用物理内存,也可以使用交换分区

在编译内核时须将

size=32m,内存的消耗值不是32m,要看真实使用

umount后再加载数据消失。

(1) ** System V shared memory(shmget/shmat/shmdt) **

(2) ** POSIX shared memory(shm_open/shm_unlink) **

2.用于POSIX共享内存,由用户负责mount,而且一般mount到/dev/shm;依赖于CONFIG_TMPFS

System V与POSIX共享内存都是通过tmpfs实现,但是受的限制却不枣扒相同。也就是说/proc/sys/kernel/shmmax只会影响SYS V共享内存,/dev/shm只会扰岩毁影响Posix共享内存

Posix共享内存区对象的大小可在任何时刻通过ftruncate修改,而System V 共享内存区对象的大小是在调用shmget创建时固定下来的。

Posix共享内存区是先调用shm_open然后再调用mmap,System V 共享内存区是先调用shmget再调用shmat。

mmap, 它把文件内容映射到一段内存上(准确说是虚拟内存上), 通过对这段内存的读取和修改, 实现对文件的读取和修改,mmap()系统调用使得进程之间可以通过映射一个普通的文件实现共享内存

mmap函数成功返回指向内存区域的指针

addr,某个特定的地址作为起始地址,当被设置为NULL,系统会在地址空间选择一块合适的内存区域。

其中data的创建采用内存映射函数mmap,用dev/ properties 的原因是因为dev为tmpfs

通常内存卡默认使用的FAT32读写系统,更改手机内存卡的文睁明件系统的方法如下:

1.将内存卡插入读卡器或手机与电脑连接。

2.右键单击悉消告内存卡分区选择格式化。

3.在文件系统中选择NTFS或exFAT格式。

4.单桥陪击开始,完成即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12224300.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存