Linux的虚拟文件系统与文件IO

本文详细介绍了Linux的虚拟文件系统(VFS),阐述了VFS如何将硬件与软件解耦。同时,文章讲解了文件间的交流,重点讨论了Page Cache的优缺点以及其在内存与硬盘交流中的作用。此外,还探讨了进程间通过文件描述符的交流,解释了标准输入、输出和错误输出的文件描述符,以及重定向和管道的工作原理。
摘要由CSDN通过智能技术生成

前言

本篇文章来介绍Linux中的文件系统。

相信大家都听过这么一句话,在Linux系统中,“一切皆文件”。

也就是说,你能想到的计算机中的任何东西,在linux中都可以映射成文件,比如线程、硬件等等。

既然一切皆文件, 那么操作系统中的信息交流就是通过文件的交流完成的。

本文首先会介绍Linux中的文件组织结构——VFS(虚拟文件系统)。

然后会介绍文件之间的交流方式,包括内存与硬盘之间交流的page cache和程序与程序之间交流的file descriptor。

VFS

VFS,全称Virtual File System,也叫虚拟文件系统。是一个倒置的树状结构。其中根目录是整个树的根。

虚拟文件系统是操作系统内核(kernel)的一个功能。

它的作用就是将所有计算机中的实体抽象成一个文件,每一个目录就映射着计算机的某个区域。

抽象成文件有什么好处呢?

比如要给计算机换一个新硬盘,由于旧硬盘在Linux中已经被抽象成一个目录,那么只要不改动这个目录,底层换硬盘对整个操作系统的运行没有影响。

换句话说,VFS可以将硬件与软件解耦

文件间的交流

内存与硬盘的交流——Page Cache

当操作系统运行一个程序的时候,会将程序需要的文件从硬盘中加载进内存。

而加载内存的过程中并不是一个字节一个字节地从内存中读出来,这样太慢了。

为了减少IO的次数,Li

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值