文件系统基本概念

  • 1.文件系统概述
  • 2.文件系统的类型
    • (1)ext系列
    • (2)Reiserfs
  • 3. Ubuntu文件系统的结构
    • (1)概述
    • (2)路径
    • (3)主要文件夹及其作用
      • /bin/
      • /sbin/
      • /root/
      • /home/
      • /boot/
      • /mnt/
      • /dev/
      • /etc/
      • /lib/
      • /lost+found/
      • /var/
      • /usr/
      • /media/
      • /proc/
      • /tmp/
      • /initrd/
      • /opt/
      • /srv/
      • /sys/

Linux支持许多种文件系统,从日志型文件系统到集群文件系统和加密文件系统。

在LINUX系统中有一个重要的概念:一切都是文件。 其实这是UNIX哲学的一个体现,而Linux是重写UNIX而来,所以这个概念也就传承了下来。在UNIX系统中,把一切资源都看作是文件,包括硬件设备。UNIX系统把每个硬件都看成是一个文件,通常称为设备文件,这样用户就可以用读写文件的方式实现对硬件的访问。

1.文件系统概述

  文件系统是对一个存储设备上的数据和元数据进行组织的机制,其目的是易于实现数据的查询和存取。不同的操作系统具有不同的文件系统,一个操作系统可能无法兼容所有的文件系统。Linux文件系统接口实现为分层的体系结构,从而将用户接口层、文件系统实现和操作存储设备的驱动程序分开。

  要透彻理解文件系统,需要明确以下几个名词:

  1. 存储介质
    用以存储数据的物理设备,如软盘、硬盘、光盘、磁带、网络存储设备等。
  2. 磁盘的分割
    对于容量较大的存储介质来说,通常是硬盘。在使用时,需要合理地规划分区。常用的Linux磁盘分割工具有fdisk、cfdisk、parted等。此外,还有PQ等第三方工具。
  3. 创建文件系统
    创建新的文件系统是一个过程,通常成为初始化或格式化,整个过程是针对存储介质进行的。一般情况下,操作系统都有自己相应的工具。创建文件系统是在分割磁盘空间的基础上进行的。
  4. 挂载
    在Linux或Unix系统中,没有磁盘分区的逻辑概念(如C盘、D盘等),仍和一个种类的文件系统被创建后,都需要挂载到某个特定的目录才能使用,这个过程相当于激活一个文件系统,使它能够使用。

    Windows的文件系统挂载使用其内部机制完成,用户基本无法探知其过程。而Linux使用mount工具对文件系统进行挂载。挂载文件系统时,需要明确挂载点。在创建文件系统后,操作系统会提示将此文件系统挂载至哪个位置,这个位置就是挂载点,通常选择“/”即根目录。挂载点的实质是一个空的目录。

2.文件系统的类型

文件系统有多种类型,不同操作系统采用不同的文件系统,对其他的文件系统的支持程度也不相同。

Linux的文件系统主要有ext\ext2、ext3、ext4、reiserfs 等

(1)ext系列

文件系统 介绍 特点 优势
ext 第一代扩展文件系统,一种文件系统,于1992年4月发表,是为linux核心所做的第一个文件系统。采用Unix文件系统(UFS)的元数据结构,以克服MINIX文件系统性能不佳的问题。 它是在linux上,第一个利用虚拟文件系统实现出的文件系统 克服MINIX文件系统性能不佳的问题
ext2 第二代扩展文件系统是LINUX内核所用的文件系统。它开始由Rémy Card设计,用以代替ext,于1993年1月加入linux核心支持之中。ext2 的经典实现为LINUX内核中的ext2fs文件系统驱动,最大可支持2TB的文件系统,至linux核心2.6版时,扩展到可支持32TB。 在ext2文件系统中,文件由inode(包含有文件的所有信息)进行唯一标识。一个文件可能对应多个文件名,只有在所有文件名都被删除后,该文件才会被删除。此外,同一文件在磁盘中存放和被打开时所对应的inode是不同的,并由内核负责同步。 文件系统高效稳定
ext3 EXT3是第三代扩展文件系统(英语:Third extended filesystem,缩写为ext3),是一个日志文件系统,常用于Linux操作系统。 Ext3文件系统是直接从Ext2文件系统发展而来,目前ext3文件系统已经非常稳定可靠。它完全兼容ext2文件系统。用户可以平滑地过渡到一个日志功能健全的文件系统中来。 1、高可用性:系统使用了ext3文件系统后,即使在非正常关机后,系统也不需要检查文件系统。 2、数据的完整性:避免了意外宕机对文件系统的破坏。 3、文件系统的速度:因为ext3的日志功能对磁盘的驱动器读写头进行了优化。所以,文件系统的读写性能较之Ext2文件系统并来说,性能并没有降低。 4、数据转换 :“由ext2文件系统转换成ext3文件系统非常容易。 5、多种日志模式
ext4 EXT4是第四代扩展文件系统(英语:Fourth extended filesystem,缩写为 ext4)是Linux系统下的日志文件系统,是ext3文件系统的后继版本。Ext4是由Ext3的维护者Theodore Tso领导的开发团队实现的,并引入到Linux2.6.19内核中。 Ext4是Ext3的改进版,修改了Ext3中部分重要的数据结构,而不仅仅像Ext3对Ext2那样,只是增加了一个日志功能而已。Ext4可以提供更佳的性能和可靠性,还有更为丰富的功能 1.与Ext3兼容:执行若干条命令,就能从Ext3在线迁移到Ext4,而无须重新格式化磁盘或重新安装系统。 2.更大的文件系统和更大的文件:较之Ext3目前所支持的最大16TB文件系统和最大2TB文件,Ext4分别支持1EB(1,048,576TB,1EB=1024PB,1PB=1024TB)的文件系统,以及16TB 的文件。 3.无限数量的子目录:Ext3目前只支持32,000个子目录,而Ext4支持无限数量的子目录。 4.Extents:Ext4引入了现代文件系统中流行的extents概念,每个 extent 为一组连续的数据块,相比Ext3采用间接块映射,提高了不少效率。 5.多块分配:Ext4 的多块分配器“multiblock allocator”(mballoc) 支持一次调用分配多个数据块。 *6.延迟分配 7.快速 fsck 8.日志校验 9.“无日志”(No Journaling)模式 10.在线碎片整理 11.inode 相关特性:较之Ext3默认的inode大小128字节,ext4默认inode大小为256字节

(这里参考了:参考)

(2)Reiserfs

reiserfs文件系统是最早用于Linux的日志文件系统之一。支持大文件,支持反删除。

3. Ubuntu文件系统的结构

(1)概述

Ubuntu 16.04使用的文件系统是ext3,而Ubuntu18.04已经采用ext4文件系统,可以更加轻松地挂载windows系统的文件,实现资源共享。

与其他linux发行版本类似,Ubuntu支持长文件名和目录名。文件名的最大长度是255个字符(characters),文件路径的最大长度是4096字符(characters), 即可以包含16级的最大文件长度的路径。

 1 #ifndef _LINUX_LIMITS_H2 #define _LINUX_LIMITS_H3 4 #define NR_OPEN            10245 6 #define NGROUPS_MAX    65536    /* supplemental group IDs are available */7 #define ARG_MAX       131072    /* # bytes of args + environ for exec() */8 #define LINK_MAX         127    /* # links a file may have */9 #define MAX_CANON        255    /* size of the canonical input queue */
10 #define MAX_INPUT        255    /* size of the type-ahead buffer */
11 #define NAME_MAX         255    /* # 文件名最大字符数 */
12 #define PATH_MAX        4096    /* # 相对路径名最大字符数 */
13 #define PIPE_BUF        4096    /* # bytes in atomic write to a pipe */
14 #define XATTR_NAME_MAX   255    /* # chars in an extended attribute name */
15 #define XATTR_SIZE_MAX 65536    /* size of an extended attribute value (64k) */
16 #define XATTR_LIST_MAX 65536    /* size of extended attribute namelist (64k) */
17
18 #define RTSIG_MAX      32
19
20 #endif

字符指的是ASCII字符,如果是汉字或者其他语言,则需要视编码而定

(2)路径

“/”表示系统的顶级目录,即根目录。系统中的所有数据文件以及硬件资源都是以文件或目录的形式出现,并并且挂载于根目录之下。

从根目录开始的路径成为绝对路径,如“/usr/bin/vim”,不以“/”开头的路径则为相对路径,表示文件与当前目录的相对关系。

(3)主要文件夹及其作用

以我虚拟机里面的Ubuntu16.04系统为例,这里显示了系统根目录下所有的文件及文件夹信息。

各个文件夹的基本功能不同,它们存储了不同类型的文件,具体如下

/bin/

存储二进制可执行文件。

/sbin/

许多系统命令的存储位置。

/root/

根用户的主目录。

/home/

普通用户的主目录,在此目录下,每个用户拥有一个以用户名命名的文件夹。

/boot/

存放Ubuntu内核和系统启动文件。

/mnt/

通常包括系统引导后被挂载的文件系统的挂载点。

/dev/

存储设备文件,包括计算机的所有外部设备,硬盘、鼠标、键盘等。

/etc/

存放系统管理所需的配置文件和目录。

/lib/

存放各种程序所需要的的共享库文件,这些库文件主要为/bin/和/sbin/目录下的命令文件服务。而/usr/bin/存放更多用于普通用户的库文件。

/lost+found/

一般为空,一般是隐藏文件夹。系统非法关机后,会存放一些相关文件。

/var/

存放许多不断变化的文件,例如日志文件。

/usr/

包括u系统用户相关的文件和目录,如应用程序以及支持它们的库文件。

/media/

存放Ubuntu系统自动挂载的设备文件,比如我插一个U盘:

/proc/

一个虚拟目录,不实际存储在磁盘上。它是内存的映射,包括系统信息和进程信息。

/tmp/

存储用户和系统的临时文件,为任何用户都提供读写权限。

/initrd/

用来在计算机启动时挂载initrd.img映像文件的目录,以及载入所需设备模块的目录。

/opt/

作为可选文件和程序的存放目录,主要被第三方开发者用来建议安装和卸载它们的软件。比如我安装的ROS就在此目录之下。

/srv/

存储系统提供的服务数据。

/sys/

系统设备和文件层次结构,并向用户程序提供详细的内核数据信息。

在Linux环境下,只要是可执行文件并且具有可执行权限就可以执行,而不敢文件名的后缀是什么。

Linux文件系统(一)文件系统基本概念相关推荐

  1. Linux学习之CentOS(三)--初识linux的文件系统以及用户组等概念

    进入到了Linux学习之CentOS第三篇了,这篇文章主要记录下对linux文件系统的初步认识,以及用户组.用户权限.文件所有者.文件所在组等概念 一.Linux文件结构及基本文件夹 文件系统是Lin ...

  2. [架构之路-30]:目标系统 - 系统软件 - Linux OS根文件系统rootfs的概念、组成、制作以及用busybox制作根文件系统

    目录 前言: 第1章 什么是根文件系统 1.1 什么是文件 1.2 什么是文件系统 1.3 文件系统组织文件的方式:树形结构 1.4 统一的虚拟文件系统 1.5 物理存储介质与物理文件系统类型 1.5 ...

  3. Linux 操作系统原理 — 文件系统 — 虚拟文件系统

    目录 文章目录 目录 为什么需要文件系统? Linux 的虚拟文件系统 创建 Linux 文件系统 为什么需要文件系统? 程序 = 数据结构 + 算法,所有的应用程序都需要存储和检索信息,进程运行时它 ...

  4. linux 用户空间文件系统 filesystem in userspace fuse 简介

    用户空间文件系统(Filesystem in Userspace,简称FUSE)是操作系统中的概念,指完全在用户态实现的文件系统.目前Linux通过内核模块对此进行支持.一些文件系统如ZFS,glus ...

  5. linux VFS 虚拟文件系统 简介 super_block inode dentry file

    1.简介 1.Linux 中允许众多不同的文件系统共存,如 ext2, ext3, vfat 等.通过使用同一套文件 I/O 系统 调用即可对 Linux 中的任意文件进行操作而无需考虑其所在的具体文 ...

  6. Linux系统篇-文件系统虚拟文件系统

    看了之前的关于Linux内存管理和进程调度的文章,相比读者们应该对Linux有了大致的了解,本文的主题是Linux虚拟文件系统.闲话少说,开始! 1.软链接和硬链接的区别 我们知道文件都有文件名与数据 ...

  7. Linux和Windows文件系统

    为了更深入地学习操作系统,我们比较Linux和Windows的文件系统还是有必要的,为什么有必要?当然就是为了更好地使用它. 1.Windows和Linux的文件权限 在Windows系统中,用户分为 ...

  8. 【Linux基础 01】Linux 下的文件系统

    Linux 下的文件系统 在 Linux 下,我们是看不到这些驱动器盘符,我们看到的是文件夹(目录): Ubuntu 没有盘符这个概念,只有一个根目录 /,所有文件都在它下面: Linux 主要目录速 ...

  9. Linux 的虚拟文件系统(强烈推荐)

    1 引言 Linux 中允许众多不同的文件系统共存,如 ext2, ext3, vfat 等.通过使用同一套文件 I/O 系统 调用即可对 Linux 中的任意文件进行操作而无需考虑其所在的具体文件系 ...

  10. linux实验之文件与文件,linux实验报告文件系统与文件管理.doc

    linux实验报告文件系统与文件管理 学生课程实验报告书 课程: <linux网络操作系统> 级 系 专业 班 学号: 姓名: 指导教师: 一.实验项目: 用户与组群管理 二.实验日期: ...

最新文章

  1. 3分钟内快速部署MySQL5.6.35数据库实践
  2. Targan 算法[有向图强连通分量]
  3. 人工智能会终结就业吗?
  4. DexClassLoader的使用
  5. 自我审视记录本_春天重新审视战略模式
  6. .gitignore文件_【第1739期】为Git仓库里的.idea文件夹正名
  7. xml特殊符号的书写
  8. CTF之文件包含的猥琐思路
  9. git 报错 Repository Not Found
  10. 电感式传感器工作原理与电感式传感器应用案例-博扬智能
  11. JDK动态代理原理解析
  12. 科来网络分析工具基本操作与案例分析
  13. WinRAR 激活码(KEY)
  14. 内存颗粒与内存体质的关系
  15. 【债券量化策略研究系列】债券风险测度指标:久期(Duration)与凸度(Convexity)
  16. HTML嵌入JavaScript代码的三种方式
  17. android 获取手机型号和系统版本,Android 获取imei号码,获取手机型号和系统版本号等信息...
  18. Python | 基于basemap绘图的路径示意图
  19. Olly's Shadow
  20. 一种基于局域网的点对点语音通信

热门文章

  1. 天兔oracle,Lepus_天兔的安装
  2. feign.RetryableException: Read timed out executing GET
  3. [转]深入Mysql字符集设置
  4. 【2.Delphi语法基础】2.Object Pascal数据类型
  5. (踩坑向+靠谱安装贴记录)ubuntu20.04安装freesurfer、FSL、ANTs、MRtrix,虚拟机
  6. LCR表和万用表有什么区别?
  7. 2016五大白马和黑马fund经理
  8. 算法的威力(Google的算法优势)
  9. 好产品不断更新迭代,如何评估App升级效果
  10. wflow模型sbm