文件基础
1什么是文件系统
文件系统是操作系统提供的一种抽象,是介于应用程序和磁盘之间的界面。
2文件系统的目标
地址独立:文件产生时我们不必担心将要存放的位置;
地址保护:文件是有访问权限的。
3文件系统基本知识
3.1文件命名
文件名被翻译成文件在磁盘上的存储位置。
3.2 扩展名
扩展名往往只具有指示型,不具有强制性。在Windows 下具有强制性,而在Unix,Linux下并不具有强制性。
3.3 内容寻址
根据文件的内容查找文件而不是根据文件名查找文件。Windows下就具有类似的功能。
3.4 文件内容组织
文件里面存放着数据,数据和数据之间往往具有某种联系。这种联系是否有文件系统进行捕捉决定了文件内容的组织形式。关系导向性和非关系导向性。
3.4.1 关系导向性
将数据之间的关系记录在文件里。数据是以一个一个记录的方式进行存放的,其形式主要有记录流,树形组织,网状组织等。
3.4.1 非关系导向性
数据已字节流的形式进行存储。
3.5 文件类型
目录:记录文件的文件。
一般文件:主要用于保存数据。根据数据格式不一样分为二进制文件和文本文件。
块文件:关于输入输出设备的。具体来说,块文件模拟的是输入输出,对于每个输入设备我们以一个文件来表示,需要与该设备发生数据交换时,就以该文件来替代。设备可以用文件来替代?文件系统实际上就是为磁盘提供的一种抽象,磁盘就可以看成是输入输出设备。在Linux下,所有的设备都是文件。
3.6 文件访问
随机访问,顺序访问。
3.7 文件属性,文件操作
4 地址独立的实现机制:文件夹
1)文件夹存放的是关于文件及文件系统的信息,文件名->文件在磁盘上的位置;
2)文件夹本身也是一种文件;
3)文件夹的结构:层次结构;
4)根目录是文件系统的起点,在操作系统启动的时候加载到内存;
5)相对路径与绝对路径;
6)共享与链接。
4.1 文件系统调用
操作系统提供的文件系统界面就是文件系统调用。
文件的复制:打开源文件和目标文件,然后循环的将源文件的内容复制到缓冲区,再将缓冲区的内容写到目标文件。复制结束后,关闭目标文件和源文件。
缺点:
系统调用次数太多,系统调用需要陷入内核。
磁盘操作费时。
4.2 内存映射的文件访问(主要是为了文件的共享)
解决读写文件效率低下的中心思想是吧磁盘操作变成内存操作。
原理:将需要访问的文件夹映射到一个进程的虚拟地址内。这样访问虚拟地址就相当于在访问该文件。