Linux文件系统

简介: Linux文件系统

1.什么是文件系统

文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的 方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件 进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存 取,当用户不再使用时撤销文件等。


文件系统是操作系统用于明确存储组织文件的方法。文件管理系统(程序)


2.文件系统(文件管理系统)的种类有哪些?

  • 1.FAT
  • 2.NTFS
  • 3.EXT 1/2/3/4:根目录分区
  • 4.HFS
  • 5.Vfat:boot(bootloader、kernel)
  • 6.fmpfs:内存文件系统。
  • 等等...

树莓派查看文件系统命令:df -T


3.什么是分区?

windows:随意(面相普通用户)

  • C盘(操作系统)、D盘(用户随意)

Linux: 按照功能分区,每个分区严格存放文件(开发者)

  • bootloade:启动代码
  • para:启动代码向内核传递参数的位置
  • kernel:内核分区
  • 根分区:文件系统结构

4.什么是文件系统目录结构?

在Linux系统中,目录被组织成一个:单根倒置树结构,文件系统从根目录开始,用/来表示。文件名称区分大小写( 大小写敏感还需要看具体的文件系统格式 ),以.开头的为隐藏文件,路径用/来进行分割(windows中使用\来分割),文件有两个种类:元数据与数据本身.在操作linux系统时,通常会遵循以下的分层结构规则:

76423092276e1f224b6786a0d8575a43_6a441053d6e2413ead909fdba8c4f2a0.png

LSB (Linux Standard Base) / FHS(Filesystem Hierarchy Standard)


  • / 所有linux操作系统的顶点目录,不像windows,每个分区都有一个顶点目录
  • /boot 存放系统启动时相关的文件,比如kernel内核,grub引导菜单.(不要删除.)
  • /bin 存放的都是命令,但仅普通用户能执行
  • /sbin 超级管理员能执行的命令.
  • /home 存放普通用户的家目录
  • /root 超级管理员的家目录,普通用户是无法进入
  • /etc 存放配置文件的目录,
  • /etc/hostname 主机名
  • /etc/hosts 本地解析域名一种方式
  • /etc/sysconfig/network-script/ifcfg-* 网卡的配置文件
  • /dev 设备目录,硬盘\硬盘的分区\光盘.....
  • /dev/null 黑洞,接收所有的东西,只进不出
  • /dev/zero 摇钱树,可以生产源源不断的数据
  • /dev/random 产生随机数的一个设备
  • /dev/pts/0 虚拟的Bash Shell终端,提供给远程用户使用 0,代表一个终端 1代表2个终端 以此类推
  • /usr 类似于windows的C盘下面的windows目录
  • /usr/lib 共享库文件,后缀都是so结尾, share object
  • /usr/lib64 共享库文件64位,后缀都是so结尾, share object
  • /usr/local 早起大家都把软件放在这个目录下,和windows C:\ProgramFile
  • /usr/bin
  • /usr/sbin
  • /var 存放一些可变化的内容,比如/var/log日志,可以人为让其发生变化,也或者是随着时间推移产生变化
  • /tmp 存放临时文件,无论哪个用户都可以放
  • /proc 反馈当前运行的进程的状态信息.
  • /run 存放程序运行后所产生的pid文件
  • /media
  • /mnt 提供挂载的一个目录
  • /opt 早期第三方厂商的软件存放的目录.
  • /srv 物理设备产生的一些文件


在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

/etc: 这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。

值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。

/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。


5.什么是虚拟文件系统

VFS(Virtual File System)


文件系统种类很多,除了linux的标准文件系统Exit2/Exit3/Exit4 以外,还有很多种文件系统,linux通过VFS 中间层对这些文件系统提供了完美的支持。大部分情况下,用户通过libc和kernel的VFS交互,不需要关心底 层文件系统的具体实现,vfs就是对各种文件系统的一个抽象,它为各种文件系统提供了一个通用的接口。


简化应用程序员的开发,不管文件类型是磁盘还是设备,都只用open、read、write统一操作。


vfs的作用


vfs所隐藏的思想是表示很多不同种类文件系统的共同信息放入内核,其中有一个字段或函数来支持linux所支持的 所有实际文件系统所提供的任何操作。对所调用的每个读写或其他函数,内核都能把它们替换成支持本地linux文件 系统,NTFS文件系统,或者文件所在的任何文件系统的实际函数。


有了vfs,就能很容易实现不同文件系统之间的数据读写,因为它们对外接口都是一样的,都是vfs导出的通用接口


例如:


假设一个用户输入以下shell命令: $ cp /floppy/TEST /tmp/test 其中/floppy是MS‐DOS磁盘的一个安装点,而/tmp是一个标准的第二扩展文件系统(second Extended Filesystom, Ext2)的目录。正如图(a)所示,VFS是用户的应用程序与文件系统实现之间的抽象层。因此,cp程序并不需要知 道/floppy/TEST 和 /tmp/test是什么文件系统类型。相反,cp程序直接与VFS交互,这是通过Unix程序设计人员都熟 悉的普通系统调用来进行的。cp的执行代码如下图


6.内核结构框图

相关文章
|
15天前
|
存储 运维 监控
深入Linux基础:文件系统与进程管理详解
深入Linux基础:文件系统与进程管理详解
56 8
|
20天前
|
存储 Linux 文件存储
Linux文件系统
Linux文件系统 一切皆文件 在Linux中,“一切皆文件”的概念意味着系统中的所有资源,包括硬件设备、目录及进程等,均被视为文件。这种设计简化了操作和管理,具体包括: 普通文件:存储数据的常规文件。 目录文件:包含其他文件和子目录的文件。 进程文件:在/proc目录下代表系统中运行的进程。 设备文件:位于/dev目录,代表硬件设备。 网络字节流套接字文件:用于网络通信的数据流。 链接文件:指向另一个文件的符号链接或硬链接。 管道文件:用于进程间通信的文件。
46 7
|
3月前
|
存储 Linux 索引
Linux 下最主流的文件系统格式——ext
【9月更文挑战第8天】硬盘被划分为若干相同大小的块(Block),默认大小为4K,便于灵活管理文件数据。文件数据分散存放于这些块中,提高了数据添加、删除和插入的便利性。
|
4月前
|
编解码 Linux 程序员
深度探索Linux操作系统 —— 构建根文件系统2
深度探索Linux操作系统 —— 构建根文件系统
46 12
|
4月前
|
Linux Shell 网络安全
深度探索Linux操作系统 —— 构建根文件系统1
深度探索Linux操作系统 —— 构建根文件系统
56 6
|
4月前
|
存储 人工智能 数据管理
深入理解Linux操作系统之文件系统管理探索人工智能:从理论到实践的旅程
【8月更文挑战第30天】在探索Linux的无限可能时,我们不可避免地会遇到文件系统管理这一核心话题。本文将深入浅出地介绍Linux文件系统的基础知识、操作命令及高级技巧,帮助你更有效地管理和维护你的系统。从基础概念到实践应用,我们将一步步揭开Linux文件系统的神秘面纱。
|
4月前
|
存储 Linux 数据安全/隐私保护
在Linux中,如何创建文件系统的备份?
在Linux中,如何创建文件系统的备份?
|
4月前
|
存储 监控 Linux
|
4月前
|
存储 监控 Linux
|
4月前
|
存储 缓存 Linux
在Linux中,文件系统概念是什么?
在Linux中,文件系统概念是什么?