虚拟内核文件系统(VirtualKernel File Systems),是指那些是由内核产生但不存在于硬盘上(存在于内存中)的文件系统。例如

1、proc

proc文件系统为操作系统本身和应用程序之间的通信提供了一个安全的接口。通过它里面的一些文件,可以获取系统状态信息并修改某些系统的配置信息。当我们在内核中添加了新功能或设备驱动时,经常需要得到一些系统状态的信息,一般这样的功能需要经过一些像ioctl()这样的系统调用来完成。

2、devfs

我们知道,/dev目录下的每一个文件都对应的是一个设备,devfs也是挂载于/dev目录下。在2.6内核以前使用devfs来提供一种类似于文件的方法来管理位于/dev目录下的所有设备。但是devfs文件系统有一些缺点,有时一个设备映射的设备文件可能不同。例如,我的U盘可能对应sda,也可能对应sdb,没有足够的主/辅设备号,当设备过多的时候,显然这会成为一个问题。

3、sysfs

为了克服devfs的上述问题,2.6内核引入了一个新的文件系统sysfs,它挂载于/sys目录下。sysfs文件系统把连接在系统上的设备和总线组织成为一个分级的文件,用户空间的程序同样可以利用这些信息,以实现和内核的交互。sysfs文件系统是当前系统上实际设备树的一个直观反映,它是通过kobject子系统来建立这个信息的,当一个kobject被创建的时候,对应的文件和目录也就被创建了。

4、tmpfs

tmpfs(temporary filesystem)是Linux特有的文件系统,标准挂载点是/dev/shm,默认大小是实际内存的一半,如下图所示。当然,用户也可以将tmpfs挂载在其他地方。tmpfs可以使用物理内存,也可以使用swap交换空间。

tmpfs有些像虚拟磁盘(ramdisk),但ramdisk是一个块设备,而且需要一个mkfs之类的命令格式化后才能使用。而tmpfs是一个独立的文件系统,不是块设备,只要挂载,就可以立即使用。下面是tmpfs最主要的几个特点:

Ø  临时性:由于tmpfs是构建在内存中的,所以存放在tmpfs中的所有数据在卸载或断电后都会丢失;

Ø  快速读写能力:内存的访问速度要远快于磁盘I/O操作,即使使用了swap,性能仍然非常卓越;

Ø  动态收缩:tmpfs一开始使用很小的空间,但随着文件的复制和创建,tmpfs文件系统会分配更多的内存,并按照需求动态地增加文件系统的空间。而且,当tmpfs中的文件被删除时,tmpfs文件系统会动态地减小文件并释放内存资源。

tmpfs对于文件缓存和临时数据来说,是一种较理想的做法。现在假设你想为大流量网站在/var/www/www.example.com/cache目录下创建文件缓存。

首先,创建缓存目录:

mkdir -p /var/www/www.example.cache
如有必要可以更改目录的属主,例如:
chownproxy:proxy /var/www/www.example.com/cache

现在我们把这个目录加载到内存设备中(使用100MB大小,并且权限为755):
mount -ttmpfs -o size=100M,mode=0755 tmpfs /var/www/www.example.com/cache

如果想调整该缓存目录使用的内存空间为200MB,可以使用下面的命令:

mount -o remount,size=200M /var/www/www.example.com/cache

如果还想在系统启动时自动缓存这个目录,编辑/etc/fstab并添加下面内容

tmpfs /var/www/www.example.com/cache tmpfssize=100M,mode=0755 0 0

tmpfs——Linux的一种虚拟内存文件系统相关推荐

  1. 【Linux】磁盘管理与文件系统

    文章目录 一.磁盘基础 1.磁盘的解释 2.磁盘结构 物理结构 数据结构 3.磁盘接口类型 4.MBR与磁盘分区 5.文件系统类型 XFS文件系统 SWAP交换文件系统 Linux支持其他文件系统类型 ...

  2. 嵌入式linux系统中常用的文件系统

    原文:https://blog.csdn.net/li_wen01/article/details/80090624 嵌入式linux系统中常用的文件系统: 闪存主要有NOR和NAND两种技术:因为F ...

  3. Linux 主要使用的文件系统,3.Linux磁盘、文件系统管理---文件系统的使用(挂载)...

    概述: 本篇为上篇博客---创建文件系统,(格式化)的后续内容,将陆续为大家介绍用于系统检测的工具.blkid命令,及如何创建swap文件系统,最重要的是文件系统创建后如何使用,挂载的内容! ==== ...

  4. linux系统可支持多种文件系统类型,Linux文件系统类型简介及支持的文件系统汇总--Linux入门到精通系列...

    不同的操作系统需要使用不同类型的文件系统,为了与其他操作系统兼容,以相互交换数据,通常操作系统都能支持多种类型的文件系统,比如Windows 2000 Server,系统默认或推荐采用的文件系统是NT ...

  5. linux中怎么看挂载文件系统,Linux中如何查看已挂载的文件系统类型详解

    前言 如你所知,Linux 支持非常多的文件系统,例如 ext4.ext3.ext2.sysfs.securityfs.FAT16.FAT32.NTFS 等等,当前被使用最多的文件系统是 ext4.你 ...

  6. 【linux kernel】挂载根文件系统之rootfs

    挂载根文件系统之rootfs 文章目录 挂载根文件系统之rootfs 一.开篇 二.rootfs根文件系统 (2-1)初始化rootfs (2-2)挂载rootfs文件系统 (2-3)创建简单的roo ...

  7. linux 内核移植和根文件系统的制作【转载】

    原文地址:http://www.cnblogs.com/hnrainll/archive/2011/06/09/2076214.html 1.1 Linux内核基础知识 在动手进行Linux内核移植之 ...

  8. linux ext3 大文件,Linux下Ext2与Ext3文件系统

    Linux下的Ext2文件系统,是 GNU/Linux 系统中标准的文件系统,其特点为存取文件的性能极好,对于中小型的文件更显示出优势,这主要得利于其簇快取层的优良设计. Ext3文件系统,它属于一种 ...

  9. Linux内核移植和根文件系统制作(详细步骤精讲)

    第一章移植内核 1.1 Linux内核基础知识 1.1.1 Linux版本 1.1.2 什么是标准内核 1.1.3 Linux操作系统的分类 1.1.4 linux内核的选择 1.2 Linux内核启 ...

最新文章

  1. pandas使用tabulate函数将pandas dataframe以类似于plsql表格的方式打印出来(printing dataframe in tabular format)
  2. 距离QCon纽约还有3个礼拜:新的演讲、播客节目和研讨会
  3. Nginx系列二:(Nginx Rewrite 规则、Nginx 防盗链、Nginx 动静分离、Nginx+keepalived 实现高可用)...
  4. 学习笔记(41):Python实战编程-按钮
  5. CSS 文字超出长度的显示省略号的方法总结
  6. shellcode xor编码/解码[1]
  7. [原]tornado源码分析系列(二)[网络层 IOLoop类]
  8. ReocketMq常用命令
  9. 六石管理学:问别人问题之前,先要明白自己的目的
  10. Ultra Librarian 生成Orcad封装教程
  11. 计算机网络第三弹——数据链路层
  12. Debian9开机:firmware: failed to load rtl_nic/rtl8168g-3.fw (-2)
  13. 三炮的三舅走了,才发觉日子真的不经念叨呀!
  14. 智慧电网运维-覆冰在线监测装置
  15. QQ能上网,浏览器打不开网页,怎么办?
  16. 【马克思主义基本原理概论】
  17. 今日头条笔试之字母交换
  18. DCM和PLL和MMCM的差别
  19. 使用jdbc创建一张员工表 员工表字段:编号,姓名,性别,年龄,职位,邮箱,电话
  20. 孙宇晨为恶俗炒作道歉;华为回应美国子公司裁员 600

热门文章

  1. char,short ,int ,long,long long,unsigned long long数据范围
  2. 第二阶段冲刺10天 第六天
  3. piblog 0.1
  4. .net开发笔记(十三) Winform常用开发模式第一篇
  5. live555学习笔记3-消息循环
  6. 最新!外国人最常说的100个“中国词”出炉 第一个你绝对想不到…
  7. STM32之FSMC-SRAM/NOR原理
  8. 避坑 | 早跟你说了不要写 hardcode!
  9. 一年前3-1对应阿里P7,贬值得有点快,但说对标好像差点意思...
  10. JeecgBoot 连接达梦数据库