tmpfs是一种基于内存的文件系统,linux
tmpfs有时候使用rm(物理内存),有时候使用swap(磁盘一块区域)。根据实际状况进行分配。windows
rm:物理内存。real memery的简称? 真实内存就是电脑主板上那块内存条,叫作真实内存不为过。oop
swap:交换分区。是硬盘上一块区域性能
tmpfs最大可以使用的大小为何是rm+swap。spa
SWAP就是LINUX下的虚拟内存分区,它的做用是在物理内存使用完以后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用. 它和Windows系统的交换文件做用相似,可是它是一段连续的磁盘空间,而且对用户不可见。操作系统
疑惑:window操做系统常常叫的虚拟内存和linux操做系统中的交换分区(swap)有什么区别?设计
一据说,虚拟内存,我经常就知道含义了。由于在学校使用window,咱们能够本身设置虚拟内存的大小。能够随时调。实际上虚拟内存就是window系统下的一个这样的文件,以下:code
每次看到交换分区,就一时不知道什么东西了。进程
如今整理一下内存
实际上,在window系统上叫作虚拟内存。而在linux操做系统的概念中叫作交换分区。实际上本质都是同样,都是虚拟内存。
后来看资料说,两个操做系统对于何时使用虚拟内存,是不一样的。明显,linux的性能更好。
window平时也会使用虚拟内存。而linux只有在内存不足的时候才会用到虚拟内存?
原理基本都是同样的 区别就是windows即便物理内存没有用完也会去用到虚拟内存而Linux不同。
Linux只有当物理内存用完的时候才会去动用虚拟内存(即swap分区)这就是二者的区别。。。
windows的虚拟内存是电脑自动设置的
Linux的swap分区是咱们装系统的时候分好的区,大小是固定了的(难怪叫作交换区,把它当成一个分区的概念了)
看设计思想的不一样:
Linux 只不过是把交换文件设计为能够用分区而已,Linux 也能够用文件的。他们的区别就是实现方式不一样而已。
Windows 的虚拟内存文件好处是能够动态变更大小,这个归系统本身管理的。
Windows 的虚拟内存设置默认好像是 50%-100% 内存在 C 盘上动态分配。Linux 没有这个自动的设计,但分区时安装程序会根据习惯自动分区出一个适合大小的 SWAP 分区。
Windows 的虚拟内存交换文件坏处是混在系统分区里面使用,文件碎片问题和容量变更问题都会影响交换文件的效率,Linux 由于是独立的分区,因此没有文件碎片和容量变更的问题。
Windows 其实也能够借用 Linux 的 SWAP 理念,单独分一个分区,只用来放 Windows 的虚拟内存交换文件。
总结:虚拟内存和交换分区,本质都是同一个东西,都是解决内存不够用时候,把硬盘当内存来使用。怎么个使用机制,window和linux稍微有不一样。
tmpfs 的另外一个主要的好处是它闪电般的速度。由于典型的 tmpfs 文件系统会彻底驻留在 RAM 中,读写几乎能够是瞬间的。即便用了一些交换分区,性能仍然是卓越的,当更多空闲的 VM 资源能够使用时,这部分 tmpfs 文件系统会被移动到 RAM 中去。让 VM 子系统自动地移动部分 tmpfs 文件系统到交换分区实际上对性能上是好的,由于这样作可让 VM 子系统为须要 RAM 的进程释放空间。这一点连同它动态调整大小的能力,比选择使用传统的 RAM 磁盘可让操做系统有好得多的总体性能和灵活性。
我能够这么理解:tmpfs是一种文件系统,这种文件系统的特殊性在于,其有时候使用ram,有时候使用vm(虚拟内存,磁盘上的交换分区)
mount -t 文件类型 -o option 哪一个设备 挂节点
mount -t tmpfs -o size=20m tmpfs /mnt/tmp
mount tmpfs /dev/shm -t tmpfs -o size=32m
设备:就是将哪一个设备挂接到linux某个目录去。这里是将tmpfs设备挂接到 /mnt/tmp中去。
这样操做/mnt/tmp目录实际上就是操做tmpfs设备了。
tmpfs为何变成一个设备了呢?
vm子系统作管理工做。虚拟内存。
参考光盘文件的挂接加深理解:
光盘镜像文件的挂接(mount)
#mkdir /mnt/vcdrom
注:创建一个目录用来做挂接点(mount point)
#mount -o loop -t iso9660 /home/sunky/mydisk.iso /mnt/vcdrom
注:使用/mnt/vcdrom就能够访问盘镜像文件mydisk.iso里的全部文件了。
能够这里理解挂节点:linux上的一个目录,就是挂节点,要把一个设备挂接到挂节点上。