`
xitong
  • 浏览: 6206835 次
文章分类
社区版块
存档分类
最新评论

使用内存文件系统

 
阅读更多
在Linux中可以将一部分内存mount为分区来使用,通常称之为RamDisk。
RamDisk有三种实现方式:

  • 第一种就是传统意义上的,可以格式化,然后加载。这在Linux内核2.0/2.2就已经支持,其不足之处是大小固定,之后不能改变。为了能够使用Ramdisk,我们在编译内核时须将block device中的Ramdisk支持选上,它下面还有两个选项,一个是设定Ramdisk的大小,默认是4096k;另一个是initrd的支持。如果对Ramdisk的支持已经编译进内核,我们就可以使用它了:
    1. 首先查看一下可用的RamDisk,使用ls /dev/ram*
    2. 接着创建一个目录,比如test,运行mkdir /mnt/test;
    3. 然后对/dev/ram0 创建文件系统,运行mke2fs /dev/ram0;
    4. 最后挂载 /dev/ram0,运行mount /dev/ram /mnt/test,就可以象对普通硬盘一样对它进行操作了。
    5. 更详细的内容可以参考:
      1. http://www.linuxfocus.org/ChineseGB/November1999/article124.html
      2. http://www.vanemery.com/Linux/Ramdisk/ramdisk.html
  • 另两种则是内核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

分享到:
评论

相关推荐

    内存文件系统

    内存文件系统:建立基于内存的文件系统。 首先在内存中建立虚拟磁盘; 在该磁盘上建立相应的文件系统; 为该文件系统设计相应的数据结构来管理目录、虚拟磁盘的空闲空间、已分配空间等。 提供文件的创建、删除、移位...

    使用内存文件系统后系统内存统计方法

    一种是以内存文件系统tmpfs的形式出现,可以根据需要扩充和缩小。这两种使用方式在kernel 2.4之后都得到了支持。  在使用tmpfs时,因为不是一次分配,且对内存分配的形式比较模糊,使得怎样计算系统整体内存使用...

    VxWorks环境下内存文件系统的应用.pdf

    VxWorks环境下内存文件系统的应用.pdf

    开源的分布式内存文件系统 Tachyon.zip

    Tachyon是一个分布式内存文件系统,可以在集群里以访问内存的速度来访问存在tachyon里的文件。把Tachyon是架构在最底层的分布式文件存储和上层的各种计算框架之间的一种中间件。主要职责是将那些不需要落地到DFS里的...

    使用内存映射修改大文件

    本文介绍利用内存映射文件修改大文件:在大文件内存前加入一段数据,若要使用内存映射文件,必须执行下列操作步骤: 1.创建或打开一个文件内核对象,该对象用于标识磁盘上你想用作内存映射文件的文件; 2.创建一个文件...

    JavaNIO内存文件系统ParallelGit.zip

    ParallelGit 是为 Git 应用准备的高性能 Java NIO 内存文件系统。ParallelGit 是基于 JGit 构建的, 可以帮助 Java 项目快速的访问 Git 文件。ParallelGit 可以帮助你操作本地 Git仓库,允许你通过 Java 7 nio 文件...

    C语言模拟实现Linux文件系统

    1、在内存中开辟一块空间来模拟文件系统的运行,不读写硬盘。 2、面向单用户、单任务,不考虑并发,不考虑文件属主、组等概念。 3、程序开始后,初始化并接收用户输入。若输入”enter”,则重新建立文件系统, 读取...

    初探在uCOS_Ⅱ上实现大容量内存文件系统

    初探在uCOS_Ⅱ上实现大容量内存文件系统初探在uCOS_Ⅱ上实现大容量内存文件系统

    显卡内存文件系统vramfs.zip

    vramfs 是一个用来在 VRAM 内存中创建一个文件系统的工具。其思路跟 ramdisk 类似。不过它使用显卡缓存来存储文件。 架构: 读写性能比较: 要求: 内核 2.6 或者更新版本的 Linux FUSE 开发文件 支持 OpenCL ...

    实现简单的文件系统

    在退出这个简单的文件系统时,将该虚拟文件系统保存到磁盘上,以便下次再将它恢复到内存的虚拟磁盘空间中。 2.提供以下操作: •new:建立一个新的简单文件系统; •sfs:打开一个简单文件系统; •exit:退出打开的...

    linux文件系统基础知识

    RAMFS : 内存文件系统,速度很快 NFS : 网络文件系统,由SUN发明,主要用于远程文件共享 MS-DOS : MS-DOS文件系统 VFAT : Windows 95/98 操作系统采用的文件系统 FAT : Windows XP 操作系统采用的文件系统...

    Python文件:python来查看Linux系统内存使用情况.py

    Python文件:python来查看Linux系统内存使用情况.py Python文件:python来查看Linux系统内存使用情况.py

    UCOS-II文件系统使用手册

    该系统实现基于uC/COS、uC/GUI、uC/FS的整合。首先要根据硬件配置三者。...uC/FS是一种文件系统,本系统借用其来管理存储器中的文件,在book、message中都用到文件的读写,可以说uC/FS是本系统实现的不可或缺的部分。

    UNIX文件系统

    建立相应的文件系统,使用UNIX文件系统,使用索引结点、混合分配方式、成组连接方法管理存储空间; 为该文件系统设计相应的数据结构来管理目录、磁盘空闲空间、已分配空间等。 提供文件的创建、删除、移位、改名等...

    操作系统 设计文件系统

    通过一个文件或者内存空间来虚拟一块“硬盘”,给这个“硬盘”编写一个虚拟文件系统,虚拟linux/unix文件系统的操作和管理。进一步熟悉操作系统中文件系统部分的原理以及linux/unix文件系统的管理方式。 实现的功能...

    LINUX内核同步、信号、内存、调度、文件系统、网络系统

    包含LINUX内核同步、信号、内存、调度、文件系统、网络系统、时钟等部分的源码注释。包含LINUX内核同步、信号、内存、调度、文件系统、网络系统、时钟等部分的源码注释。包含LINUX内核同步、信号、内存、调度、文件...

    多用户多级目录的文件系统

    1. 在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个多用户多目录的文件系统。 2. 文件物理结构可采用显式链接或其他方法。 3. 磁盘空闲空间的管理可选择位示图或其他方法。如果采用位示图来管理文件...

    操作系统内存、文件系统模拟源码

    该资源使用C++技术对操作系统的内存、文件系统进行了模拟,有助于学习者提高对操作系统内存与文件系统设计的理解。

    操作系统——简单文件系统模拟实验

    在内存中模拟一个FAT格式的文件系统,完成文件的创建和索引功能,实现以下命令接口: (1)新建文件,格式:mkfile filename filecontent filename:文件名 filecontent:文件内容(字符) 实现按FAT格式写FAT表...

    一种内存数据库到文件数据库的数据同步方法及系统

    一种内存数据库到文件数据库的数据同步方法,包括:A、内存数据库将事务日志记录写入日志缓存区;...本发明提供一种内存数据库到文件数据库的数据同步方法及系统,在不影响内存数据库的性能的前提下,实现数据同步。

Global site tag (gtag.js) - Google Analytics