共享内存总结: http://www.embedu.org/Column/Column250.htm
用tmpfs的例子: http://www.chinaunix.net/old_jh/4/243074.html
randisk写得很全: http://linux.chinaunix.net/techdoc/beginner/2008/01/29/977725.shtml
性能测试:http://leeon.me/a/linux-ramdisk-tmpfs-ramfs
共享内存的实现原理?都是使用文件,然后文件放在tmpfs中。POSIX的实现是在用户态建立tmpfs的,所以API跟文件映射很像,SV是内核态,对用户不可见。
tmpfs是类似ramdisk一样的技术,估计是ramdisk的升级版。
1.先看ramdisk怎么用
(1)格式化文件系统。ramdisk设备文件在/devram*中,默认有16个,从0到15.用mke2fs格式化。
administrator@ubuntu:/etc$ ll /dev/ram*
brw-rw---- 1 root disk 1, 0 2013-05-21 13:37 /dev/ram0
brw-rw---- 1 root disk 1, 1 2013-05-21 09:09 /dev/ram1
brw-rw---- 1 root disk 1, 10 2013-05-21 09:09 /dev/ram10
brw-rw---- 1 root disk 1, 11 2013-05-21 09:09 /dev/ram11
brw-rw---- 1 root disk 1, 12 2013-05-21 09:09 /dev/ram12
brw-rw---- 1 root disk 1, 13 2013-05-21 09:09 /dev/ram13
brw-rw---- 1 root disk 1, 14 2013-05-21 09:09 /dev/ram14
brw-rw---- 1 root disk 1, 15 2013-05-21 09:09 /dev/ram15
brw-rw---- 1 root disk 1, 2 2013-05-21 09:09 /dev/ram2
brw-rw---- 1 root disk 1, 3 2013-05-21 09:09 /dev/ram3
brw-rw---- 1 root disk 1, 4 2013-05-21 09:09 /dev/ram4
brw-rw---- 1 root disk 1, 5 2013-05-21 09:09 /dev/ram5
brw-rw---- 1 root disk 1, 6 2013-05-21 09:09 /dev/ram6
brw-rw---- 1 root disk 1, 7 2013-05-21 09:09 /dev/ram7
brw-rw---- 1 root disk 1, 8 2013-05-21 09:09 /dev/ram8
brw-rw---- 1 root disk 1, 9 2013-05-21 09:09 /dev/ram9
administrator@ubuntu:/etc$ sudo mke2fs /dev/ram1
mke2fs 1.41.14 (22-Dec-2010)
文件系统标签=
操作系统:Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
16384 inodes, 65536 blocks
3276 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=67108864
8 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345
正在写入inode表: 完成
Writing superblocks and filesystem accounting information: 完成
This filesystem will be automatically checked every 36 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
administrator@ubuntu:/etc$
(2)建立目录,挂载。
administrator@ubuntu:/etc$ sudo mkdir /mnt/tmp
administrator@ubuntu:/etc$ sudo mount /dev/ram1 /mnt/tmp
administrator@ubuntu:/etc$
(3)使用。。。
(4)卸载。
umount /mnt/tmp
tmpfs的优点是什么呢?首先是大小可变被。
mpfs是一种基于内存的文件系统,它和虚拟磁盘ramdisk比较类似像,但不完全相同,和ramdisk一样,tmpfs可以使用RAM,但它也可以使用swap分区来存储。而且传统的ramdisk是个块设备,要用mkfs来格式化它,才能真正地使用它;而tmpfs是一个文件系统,并不是块设备,只是安装它,就可以使用了。tmpfs是最好的基于RAM的文件系统。
测试速度:mount后
administrator@ubuntu:/mnt/tmp$ sudo dd if=/dev/zero of=/mnt/tmp/test bs=1M count=50
记录了50+0 的读入
记录了50+0 的写出
52428800字节(52 MB)已复制,0.056575 秒,927 MB/秒
administrator@ubuntu:/mnt/tmp$ sudo dd if=/dev/zero of=/mnt/tmp/test bs=1M count=50
记录了50+0 的读入
记录了50+0 的写出
52428800字节(52 MB)已复制,0.0554443 秒,946 MB/秒
administrator@ubuntu:/mnt/tmp$ sudo dd if=/dev/zero of=/mnt/tmp/test bs=1M count=50
记录了50+0 的读入
记录了50+0 的写出
52428800字节(52 MB)已复制,0.0591893 秒,886 MB/秒
umount后:
administrator@ubuntu:/mnt/tmp$ sudo dd if=/dev/zero of=/mnt/tmp/test bs=1M count=50
记录了50+0 的读入
记录了50+0 的写出
52428800字节(52 MB)已复制,0.130509 秒,402 MB/秒
administrator@ubuntu:/mnt/tmp$ sudo dd if=/dev/zero of=/mnt/tmp/test bs=1M count=50
记录了50+0 的读入
记录了50+0 的写出
52428800字节(52 MB)已复制,0.217134 秒,241 MB/秒
administrator@ubuntu:/mnt/tmp$ sudo dd if=/dev/zero of=/mnt/tmp/test bs=1M count=50
记录了50+0 的读入
记录了50+0 的写出
52428800字节(52 MB)已复制,0.215663 秒,243 MB/秒
administrator@ubuntu:/mnt/tmp$ sudo dd if=/dev/zero of=/mnt/tmp/test bs=1M count=50
记录了50+0 的读入
记录了50+0 的写出
52428800字节(52 MB)已复制,0.129891 秒,404 MB/秒