首页 > 其他分享 >操作系统 - 文件系统

操作系统 - 文件系统

时间:2023-01-29 16:11:45浏览次数:46  
标签:文件 操作系统 文件系统 磁盘 txt incode 目录

Linux所有文件都建立在虚拟文件系统(Virtual File System VFS)之上。Linux支持每个目录用不同的文件系统,而文件也可能是指磁盘,内存,网卡,输入输出设备等 。

Linux : 一切皆文件

将一个文件系统映射到某个目录的过程叫做挂载(Mount),可以使用mount -l查看已经挂载的文件系统。

sysfs``proc``devtmpfs``tmpfs``ext4都是不同的文件系统

  • sysfs让用户通过文件访问和设置设备驱动信息。
  • proc是一个虚拟文件系统,让用户可以通过文件访问内核中的进程信息。
  • devtmpfs在内存中创造设备文件节点。
  • tmpfs用内存模拟磁盘文件。
  • ext4是一个通常意义上我们认为的文件系统,也是管理磁盘上文件用的系统。

目录结构

img1

/bin : 包含很多用户可以访问的可执行文件,如ls,cp,cd等

/dev : 通常挂载在devtmpfs文件系统上,存放设备文件节点

/etc : 配置文件

/proc : 进程和内核文件

/sbin: 系统二进制文件,系统启动必须的指令

/tmp :临时文件,通常使用tmpfs文件系统,系统重启时会清除/tmp

/var : 可变数据文件, 比如日志通常会放在/var/log下,/var下的文件会长期保存

/boot : 存放Linux内核文件和启动镜像。

/opt : 可选软件,通常第三方软件安装在这个目录

/root : 用户家目录

/home: 用户个人数据

/media :自动挂载的设备,比如插入U盘

/svr :服务数据

/usr:(Unix System Resource), vim编辑器的可执行文件通常放在/usr/bin下,/usr/lib目录存放系统的库文件,比如一些重要对象的动态链接库文件,/usr/share目录下存放文档,比如man的文档

硬盘分块

为了提高性能,会把磁盘分为一个个小块(Block e.g. 4 kb)

文件描述

FAT File Allocate Table

img2

一个类似链表的结构,文件1从块5开始,5->2->9->14->15->-1,-1代表结束,这就是文件1在磁盘块的位置。FAT通过一个链表就解决了文件和物理磁盘块的映射,简单实用。FAT的缺点是非常占有内存,1 T的硬盘,如果块大小是1 K, 需要1 G个FAT条目,占用2-3 G内存空间。

索引节点 incode

为每个文件增加一个索引节点,索引节点保存文件的全部信息,包括文件属性和映射到磁盘块的位置。FAT需要把所有块信息都导入内存,但是incode只需要把用到的文件形成数据结构,可以使用虚拟内存分配空间。

文件系统的基本组成

目录的实现

目录是一种特殊的文件,该文件的incode需要含有其下其他文件的incode指针。文件名不要放到incode中而是放到文件夹中,这样可以实现同一个文件同时存在于多个目录下。

img3

如图,b.txt, c.txt是同一个文件,但拥有不同名称,这种形式称为“硬链接”,就是多个文件共享incode。如果为文件a创建硬链接b,即时删除文件a,b也可以正常工作。

与此对应的是“软链接”

img4

图中c.txtb.txt的一个软链接,软链接拥有自己的inode,但是文件内容就是一个快捷方式。因此,如果我们删除了b.txt,那么b.txt对应的 inode 也就被删除了。但是c.txt依然存在,只不过指向了一个空地址(访问不到)。如果删除了c.txt,那么不会对b.txt造成任何影响。

标签:文件,操作系统,文件系统,磁盘,txt,incode,目录
From: https://www.cnblogs.com/rachel-aoao/p/os_file_system.html

相关文章

  • 分布式操作系统具体是指什么操作系统?全篇干货
    分布式操作系统是一类操作系统,其中多台计算机组成一个逻辑上的单一系统。这些计算机可以在物理上分布在不同地点,也可以在同一地点。分布式操作系统的历史可以追溯到196......
  • 操作系统 - 计算机组成原理
    冯诺依曼模型CPU每次可以计算4个byte-32位CPU;每次可以计算8个byte-64位CPU;32和64称为CPU的位宽。寄存器离CPU近的存储来存储需要被计算的数字PC寄存......
  • 操作系统 - 指令概述
    文件/为根目录,绝对路径即为从根目录开始到文件所在地址的路径。.代表当前目录,..代表上一级目录,相对路径即为从当前工作路径开始到文件所在地的目录,pwd查看工作目录。cd指......
  • Linux操作系统导学专栏(一)——专栏要讲些什么?
    该专栏是为Linux内核开发编程做铺垫,如果你对操作系统很熟悉,想了解一些Linux内核发开的知识,请直接跳转至《Linux内核编程专栏》,如果你对Linux内核编程也很熟悉,想了解Linux内......
  • Linux操作系统导学专栏(一)——专栏要讲些什么?
    ​该专栏是为Linux内核开发编程做铺垫,如果你对操作系统很熟悉,想了解一些Linux内核发开的知识,请直接跳转至《Linux内核编程专栏》,如果你对Linux内核编程也很熟悉,想了解Lin......
  • 操作系统的发展和分类
    操作系统的发展和分类   手工 用户独占全机、人机速度矛盾导致资源利用极低批处理操作系统单道批处理系统 引入脱机输入/输出技术(磁带完成)   监督程序负责......
  • 操作系统的特征
    操作系统的特征 区分并发和并行    并发  两个或多个事件在同一时间间隔内发生并行  同一时刻同时发生 共享  即资源共享,是指系统中的资源可供内存......
  • 操作系统的特征
    操作系统的特征并发:操作系统的并发性指计算机系统中同时存在着多个运行着的程序。共享:共享性是指系统中的资源可供内存中多个并发执行的进程共同使用。共享即资源......
  • 操作系统的概念、功能和目标
    操作系统的概念、功能和目标操作系统的概念(定义)操作系统(OperatingSystem,OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配......
  • CSAPP随笔: 操作系统管理硬件
         操作系统看作是应用程序和硬件之间的一层软件,两个基本功能:1.防止失控的应用程序滥用硬件。2.向应用程序提供简单一致的机制来控制不同级别的硬件设备。......