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.内核结构框图

相关文章
|
21天前
|
存储 缓存 Linux
【Linux】文件系统
在打开文件之前,我们需要找到文件 -> 就要从磁盘中找到对应文件 -> 通过文件路径与文件名
25 4
|
1天前
|
存储 缓存 Linux
【Linux】文件系统
【Linux】文件系统
|
1天前
|
Linux
45. 【Linux教程】文件系统检查
45. 【Linux教程】文件系统检查
6 0
|
1天前
|
Linux
44. 【Linux教程】创建文件系统
44. 【Linux教程】创建文件系统
6 0
|
1天前
|
存储 Oracle 关系型数据库
42. 【Linux教程】写时复制文件系统
42. 【Linux教程】写时复制文件系统
4 0
|
1天前
|
存储 算法 Unix
41. 【Linux教程】日志文件系统
41. 【Linux教程】日志文件系统
6 0
|
1天前
|
存储 Unix Linux
40. 【Linux教程】文件系统介绍
40. 【Linux教程】文件系统介绍
7 0
|
5天前
|
存储 数据管理 Unix
探索 Linux 文件系统的层次结构
【5月更文挑战第30天】 本文深入剖析了Linux操作系统中文件系统的结构及其运作机制。通过对文件系统层次标准的解读和实际案例的分析,揭示了Linux如何有效地组织和管理文件。文章不仅讨论了根文件系统的重要性、目录结构的设计理念,还探讨了如何通过文件系统层次来提升数据管理和系统性能。
|
6天前
|
运维 安全 Linux
深入理解 Linux 文件系统的权限管理
【5月更文挑战第30天】 在 Linux 操作系统中,文件系统权限管理是维护系统安全与数据完整性的基石。本文旨在深入探讨 Linux 权限模型的核心概念、实现机制及其对系统安全性的影响。通过对用户身份、文件权限和访问控制列表(ACL)等关键元素的剖析,揭示权限管理在实际操作中的应用细节。文章还将讨论如何有效配置权限来优化系统性能和提升安全性,以及解决常见的权限问题的策略。
|
6天前
|
Linux PHP 数据安全/隐私保护
深入理解PHP7的返回值类型声明深入理解 Linux 文件系统的权限管理
【5月更文挑战第30天】在PHP7中,引入了返回值类型声明的特性。这一特性使得开发者可以在函数定义时指定函数应返回的值的类型。本文将详细解析返回值类型声明的用法,以及它在实际开发中的应用,帮助读者更好地理解和使用这一特性。