首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

深入理解Linux VFS和Page Cache

编者注:在分析完 Linux inode 基础概念 之后,让我们看下inode在内存中对应的文件系统抽象VFS,然后分析下关于 磁盘操作 中Page Cache的回写策略。...其目的是屏蔽下层具体文件系统操作的差异,为上层的操作提供一个统一接口,正是由于VFS的存在,Linux中允许多个不同的文件系统共存。...VFS中包含着向物理文件系统转换的一系列数据结构,如VFS超级块、VFS的Inode、各种操作函数的转换入口等。...LinuxVFS依靠四个主要的数据结构来描述其结构信息,分别为超级块、索引结点、目录项和文件对象,这些数据结构大都会与磁盘上的对应上。 超级块(Super Block):超级块对象表示一个文件系统。...当内核发起一个读请求时(例如进程发起read()请求),首先会检查请求的数据是否缓存到了page cache中,如果有,那么直接从内存中读取,不需要访问磁盘,这被称为cache命中(cache hit)

3K21

linuxread命令

read命令后面,如果没有指定变量名,读取的数据将被自动赋值给特定的变量REPLY 命令语法 read [选项][参数] 命令选项 -a 后跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分割符...> read rumenz1 rumenz2 从标准输入读取一行并赋值给特定变量REPLY。 > read 123 > echo $REPLY 123 把单词清单读入arrayname的数组里。...> read -p "text:" text:123 > echo $REPLY 123 允许输入包含反斜杠。 > read -r rumenz 指定读取等待时间为3秒。...> read -t 2 rumenz 从输入中读取两个字符并存入变量var,不需要按回车读取。 > read -n 2 rumenz 用定界符“:”结束输入行。...> read -p "输入密码:" -s pd 密码: > echo $pd 123456 原文链接:https://rumenz.com/rumenbiji/linux-read.html 微信公众号

2.1K00
您找到你想要的搜索结果了吗?
是的
没有找到

linuxread命令

read命令后面,如果没有指定变量名,读取的数据将被自动赋值给特定的变量REPLY 命令语法 read [选项][参数] 命令选项 -a 后跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分割符...> read rumenz1 rumenz2 从标准输入读取一行并赋值给特定变量REPLY。 > read 123 > echo $REPLY 123 把单词清单读入arrayname的数组里。...> read -p "text:" text:123 > echo $REPLY 123 允许输入包含反斜杠。 > read -r rumenz 指定读取等待时间为3秒。...> read -t 2 rumenz 从输入中读取两个字符并存入变量var,不需要按回车读取。 > read -n 2 rumenz 用定界符“:”结束输入行。...> read -d ":" rumenz 读入数组 > read -a rumenz 123 456 789 > echo ${rumenz[*]} 123 456 789 终端输入密码时候,不让密码显示出来

1.9K40

linuxread命令

read命令后面,如果没有指定变量名,读取的数据将被自动赋值给特定的变量REPLY 命令语法 read [选项][参数] 命令选项 -a 后跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分割符...> read rumenz1 rumenz2 从标准输入读取一行并赋值给特定变量REPLY。 > read 123 > echo $REPLY 123 把单词清单读入arrayname的数组里。...> read -p "text:" text:123 > echo $REPLY 123 允许输入包含反斜杠。 > read -r rumenz 指定读取等待时间为3秒。...> read -t 2 rumenz 从输入中读取两个字符并存入变量var,不需要按回车读取。 > read -n 2 rumenz 用定界符“:”结束输入行。...> read -p "输入密码:" -s pd 密码: > echo $pd 123456 原文链接:https://rumenz.com/rumenbiji/linux-read.html

1.8K00

【高级编程】Linux read系统调用

由于文件系统涉及面较广,例如虚拟文件系统(VFS),页缓存,块缓存,数据同步等内容,不可能全部分析到位,这里只记录和read有关的两种使用方式。cached IO和direct IO。 1....引入 cache 层的目的是为了提高 linux 操作系统对磁盘访问的性能。 Cache 层在内存中缓存了磁盘上的部分数据。...(file); ret = vfs_read(file, buf, count, &pos); file_pos_write(file, pos); fput_light(file, fput_needed...调用 vfs_read() 执行文件读取操作,而这个函数最终调用 file->f_op.read() 指向的函数,代码如下: if (file->f_op->read) ret = file->f_op...为了满足普遍性要求,linux使用定义在linux/fs.h中的结构体address_space结构体描述页高速缓存中的页面。

6K110

Linux系统中,read文件过程分析

read一个文件 首先是通过系统调用open一个文件 大家好,我是ChinaUnix的T-bagwell 然后通过系统调用去read一个文件,为什么man 2 read的时候或者man 2 write的时候的参数与写的驱动的...(file); 400 ret = vfs_read(file, buf, count, &pos); 401 file_pos_write(file, pos); 402...都有可能会改变偏移量,继续进入vfs_read去读文件: 295 ssize_t vfs_read(struct file *file, char __user *buf, size_t count,...接口,一个是file的read,大家好,我是ChinaUnix的T-bagwell,转载请注明出处,一个是do_sync_read,下面直接说file->f_op里面的read,这个read是在写设备驱动的时候...do_sync_read是一样的操作,最终会进入到generic_file_aio_read,里面 generic_file_aio_read里面就是从快设备里面读取内容了,到这里,如文件结束

2.4K20

linux 内核中READ_ONCE宏定义

Linux内核编程中,READ_ONCE 宏用于确保从内存中读取一个变量的值时,编译器不会对这个读取操作进行优化,从而保证了读取操作的原子性。...以下是 READ_ONCE 宏的定义及其解释: #define READ_ONCE(x) (*(volatile typeof(x) *)&(x)) 解释: typeof(x):这是一个GNU扩展,用于获取变量...data的值 int value = READ_ONCE(data); 这样就能保证每次读取 data 时都能得到最新的值,避免了由于编译器优化导致的问题。...注意事项: READ_ONCE 宏仅保证读取操作的原子性和最新性,对于更复杂的并发控制,仍需要使用锁或者其他同步机制。...对于写操作,Linux内核中有对应的 WRITE_ONCE 宏,其定义方式和用途类似。 通过这种方式,可以在内核编程中更安全地访问共享变量,避免数据竞争和内存一致性问题。

11410

Linux 操作系统下的bash read命令

Linux read命令用于从标准输入读取数值。 read 内部命令被用来从标准输入读取单行数据。这个命令可以用来读取键盘输入,当使用重定向的时候,可以读取文件中的一行数据。...如果提供给read的参数数量大于从输入中读取的单词数,则其余单词将分配最后字符串: echo "Linux is awesome." | (read var1 var2; echo -e "Var1:...echo "Linux:is:awesome." | (IFS=":" read -r var1 var2 var3; echo -e "$var1 \n$var2 \n$var3") Linux...以下是使用_和-作为分隔符的示例: echo 'Linux_is-awesome.' | (IFS="-_" read -r var1 var2 var3; echo -e "$var1 \n$var2...: " 将单词分配给数组 要将单词分配给数组而不是变量名,请使用-a选项调用read命令: read -r -a MY_ARR <<< "Linux is awesome."

2.3K40

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券