linux中RamDisk的三種實現方式【轉】


轉自:https://blog.csdn.net/alextanghao/article/details/2660656

在Linux中可以將一部分內存mount為分區來使用,通常稱之為RamDisk,分為:Ramdisk, ramfs, tmpfs.

1.Ramdisk

在編譯內核時須將Device Drivers -->> Block devices -->> Ramdisk support 支持選上,它下面還有兩個選項:第一個設定Ramdisk個數,默認16個;第二個是設定Ramdisk的大小,默認是4096k。

首先查看一下可用的RamDisk,使用ls /dev/ram*

然后對/dev/ram0 創建文件系統,運行mke2fs /dev/ram0

最后掛載 /dev/ram0,運行mount /dev/ram /mnt/test

2.ramfs

Ramfs顧名思義是內存文件系統,它處於虛擬文件系統(VFS)層,而不像ramdisk那樣基於虛擬在內存中的其他文件系統(ex2fs)。

因而,它無需格式化,可以創建多個,只要內存足夠,在創建時可以指定其最大能使用的內存大小。

在編譯內核時須將File systems -->> pseudo filesystems -->>  Virtual memory file system support支持選上。

# mount -t ramfs none /testRAM

缺省情況下,Ramfs被限制最多可使用內存大小的一半。可以通過maxsize(以kbyte為單位)選項來改變。

# mount -t ramfs none /testRAM -o maxsize=2000 (創建了一個限定最大使用內存為2M的ramdisk)

3.Tmpfs

是一個虛擬內存文件系統,它不同於傳統的用塊設備形式來實現的Ramdisk,也不同於針對物理內存的Ramfs。

Tmpfs可以使用物理內存,也可以使用交換分區。在Linux內核中,虛擬內存資源由物理內存(RAM)和交換分區組成,這些資源是由內核中的虛擬內存子系統來負責分配和管理。

Tmpfs向虛擬內存子系統請求頁來存儲文件,它同Linux的其它請求頁的部分一樣,不知道分配給自己的頁是在內存中還是在交換分區中。同Ramfs一樣,其大小也不是固定的,而是隨着所需要的空間而動態的增減。

在編譯內核時須將File systems -->> pseudo filesystems -->>  Virtual memory file system support支持選上。

# mkdir -p /mnt/tmpfs

# mount tmpfs /mnt/tmpfs -t tmpfs

同樣可以在加載時指定tmpfs文件系統大小的最大限制:

# mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM