歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 把文件放在Linux內存裡

把文件放在Linux內存裡

日期:2017/2/28 16:00:28   编辑:Linux教程

在Linux中可以將一部分內存mount為分區來使用,通常稱之為RamDisk
RamDisk有三種實現方式:

· 第一種就是傳統意義上的,可以格式化,然後加載。
這在Linux內核2.0/2.2就已經支持,其不足之處是大小固定,之後不能改變。
為了能夠使用Ramdisk,我們在編譯內核時須將block device中的Ramdisk支持選上,它下面還有兩個選項,一個是設定Ramdisk的大小,默認是4096k;另一個是initrd的支持。
如果對Ramdisk的支持已經編譯進內核,我們就可以使用它了:
首先查看一下可用的RamDisk,使用ls /dev/ram*
首先創建一個目錄,比如test,運行mkdir /mnt/test
然後對/dev/ram0 創建文件系統,運行mke2fs /dev/ram0
最後掛載 /dev/ram0,運行mount /dev/ram /mnt/test,就可以象對普通硬盤一樣對它進行操作了。

· 另兩種則是內核2.4才支持的,通過Ramfs或者Tmpfs來實現:
它們不需經過格式化,用起來靈活,其大小隨所需要的空間而增加或減少。

Ramfs顧名思義是內存文件系統,它它處於虛擬文件系統(VFS)層,而不像ramdisk那樣基於虛擬在內存中的其他文件系統(ex2fs)。
因而,它無需格式化,可以創建多個,只要內存足夠,在創建時可以指定其最大能使用的內存大小。
如果你的Linux已經將Ramfs編譯進內核,你就可以很容易地使用Ramfs了。創建一個目錄,加載Ramfs到該目錄即可:
# mkdir /testRam
# mount -t ramfs none /testRAM

缺省情況下,Ramfs被限制最多可使用內存大小的一半。可以通過maxsize(以kbyte為單位)選項來改變。
# mount -t ramfs none /testRAM -o maxsize=2000 (創建了一個限定最大使用內存為2M的ramdisk)

Tmpfs是一個虛擬內存文件系統,它不同於傳統的用塊設備形式來實現的Ramdisk,也不同於針對物理內存的Ramfs。
Tmpfs可以使用物理內存,也可以使用交換分區。在Linux內核中,虛擬內存資源由物理內存(RAM)和交換分區組成,這些資源是由內核中的虛擬內存子系統來負責分配和管理。
Tmpfs向虛擬內存子系統請求頁來存儲文件,它同Linux的其它請求頁的部分一樣,不知道分配給自己的頁是在內存中還是在交換分區中。同Ramfs一樣,其大小也不是固定的,而是隨著所需要的空間而動態的增減。
使用tmpfs,首先你編譯內核時得選擇"虛擬內存文件系統支持(Virtual memory filesystem support)"
然後就可以加載tmpfs文件系統了:
# mkdir -p /mnt/tmpfs
# mount tmpfs /mnt/tmpfs -t tmpfs

同樣可以在加載時指定tmpfs文件系統大小的最大限制:
# mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m

Copyright © Linux教程網 All Rights Reserved