Linux文件系统初识

Linux文件系统初识

       文件系统是一种用于向用户提供数据访问的机制,我们的硬盘,U盘等存储设备会被文件系统分割为特定大小的块,系统中的文件就被存储在数据块中,而我们平常接触到的分区,目录,文件等正是文件系统通过组织整合之后才呈现在我们面前的,我们无需去关心我们的数据到底存储在硬盘的那个扇区,只需关注目录,文件名等即可。通过这种机制,大大提高了我们的效率。

       在我们熟悉的windows系统中,经历了FAT>>FAT32>>NTFS的进化过程,以我们平常接触最多的winXPwin7win8win10为例,都采用了NTFS文件系统,支持日志和跟踪权限,对windows友好。还有我们遇到的苹果设备,采用的是HFS+文件系统,虽然它已经算元老级的的文件系统,但是与优化较好的MAC系统搭配起来使用,拥有不俗的实力,不用像windows下那样经常去清理磁盘碎片。在2017苹果全球开发者大会上发布了新的文件系统APFS,专门针对闪存、SSD进行了优化,可以全面提升设备的存储性能和数据安全。

       接下来,就该我们的主角登场了,在我们学习linux的过程中,我们会经常听到一句话:一切皆文件,这是linux的核心思想,在linux下,目录,文件地位同等,程序、服务、文本、图片等等,都是文件。对于系统来说,输入和输出设备,基本上所有的设备,都被当做是文件。

                                      Linux文件系统初识

         如上图所示,目录树正如其名,在根/目录下悬挂着我们熟悉的二级目录,接下来,介绍几个熟悉的目录给大家。

1.      /bin binary的缩写,二进制可执行命令。

2.      /dev device的缩写,保存设备文件。

3.      /etc etcetra等等的缩写,系统管理和配置文件,相当重要的一个目录。

4.      /home 用户的家(主)目录,比如用户mg的家目录就是/home/mg,root的家目录为/root。

5.      /lib library缩写,标准程序设计库,又叫动态链接共享库,作用类似Windows里的.dll文件。

6.      /sbin super bin缩写,系统管理命令,这里存放的是系统管理员使用的管理程序。

7.      /tmp temporary缩写,公用的临时文件存储点。

8.      /root 系统管理员的主目录。

9.      /mnt mount缩写,系统提供这个目录是让用户临时挂载其他的文件系统。

10.    /lost+found 这个目录平时是空的,系统非正常关机而留下一些信息损坏的文件会放在这里。

11.    /proc process缩写,虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息。

12.    /var vary缩写,存放经常变动的文件,比方说各种服务的日志文件。

13.    /usr user缩写,要用到的应用程序和文件几乎都在这个目录。

对于我们而言,文件和目录是一个有序的类树结构是可以接受的。但是对于只认0和1的的计算机而言,树结构,文件名,元数据,数据等都会回归的inode(索引节点),这是一种包含着构建文件的实际数据信息的序列号:这些数据表示文件是属于谁的,还有它在硬盘中的位置。每个inode都表示着一种在硬盘上的数据结构,保存着文件的属性,包括文件数据的物理地址。每个存储设备(例如硬盘)或存储设备的分区被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是BlockBlock是用来存储数据用的。而inode呢,就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,能通过inode值最快的找到相对应的文件。

                      Linux文件系统初识

 最后,让我们来解一下linux文件系统的发展历史,Minix>>EXT>>EXT3>>EXT4>>XFS.虽然 EXT 文件系统是为 Linux 编写的,但其真正起源于 Minix 操作系统和 Minix 文件系统,而 Minix 最早发布于 1987,早于 Linux 5 年。当 Linux Torvalds 在写最初的 Linux 内核的时候,他需要一个文件系统但是他又不想自己写一个。于是他简单地把 Minix 文件系统 加了进去。

                        Linux文件系统初识

原生的 EXT 文件系统 (意即拓展的)是由 Rémy Card 编写并于 1992 年与 Linux 一同发行。主要是为了克服 Minix 文件系统中的一些文件大小限制的问题。EXT2 文件系统有着和 EXT 文件系统基本相同的元数据结构。然而 EXT2 更高瞻远瞩,因为其元数据结构之间留有很多供将来使用的磁盘空间。EXT3 文件系统是应一个目标而生的,就是克服 fsck 程序需要完全恢复在文件更新操作期间发生的不正确关机而损坏的磁盘结构所需的大量时间。它对 EXT 文件系统的唯一新增功能就是 日志,它将提前记录将对文件系统执行的更改。 EXT3 的磁盘结构的其余部分与 EXT2 中的相同。EXT4 文件系统主要提高了性能、可靠性和容量。为了提高可靠性,它新增了元数据和日志校验和。同时为了满足各种关键任务要求,文件系统新增了纳秒级别的时间戳。XFS,一种高性能的日志文件系统,最早于1993年,由Silicon Graphics为他们的IRIX操作系统而开发,是IRIX 5.3版的默认文件系统。20005月,Silicon GraphicsGNU通用公共许可证发布这套系统的源代码,之后被移植到Linux内核上。XFS特别擅长处理大文件,同时提供平滑的数据传输。目前CentOS 7也将XFS+LVM作为默认的文件系统。采用XFS文件系统,当意想不到的宕机发生后,首先,由于文件系统开启了日志功能,所以磁盘上的文件不再会意外宕机而遭到破坏了。不论目前文件系统上存储的文件与数据有多少,文件系统都可以根据所记录的日志在很短的时间内迅速恢复磁盘文件内容。这也算是运维工程师的神器啊!

文件系统没有好坏之分,各有优缺点,不同的操作系统可能采用不同的文件系统,适合自己的就是最好的!随着不同文件系统的更新迭代,不同文件系统的短板被补上,用户体验越来越好!

菜鸟初识linux,望大佬们多多指点!

原创文章,作者:LinuxWalker,如若转载,请注明出处:http://www.178linux.com/80732

(0)
LinuxWalkerLinuxWalker
上一篇 2017-07-15
下一篇 2017-07-15

相关推荐

  • 马哥教育网络班22期+第二周课程练习

    Linux上文件可管理类命令,其常用的使用方法和相关示例 目录管理类命令 目录管理类命令包含:mkdir,rmdir mkdir 使用说明及格式 移除空目录 rmdir [OPTION]… DIRECTORY…   常见选项及说明 -p –parents 创建时如果父目录不存在,一并创建 -v –ve…

    Linux干货 2016-08-24
  • Linux运维之基础拾遗

    博客具体内容请移步博客园: http://www.cnblogs.com/ITOps/p/6151766.html

    Linux干货 2016-12-09
  • 马哥教育网络班21期+第一周课程练习

    一、计算机的组成及其功能 自上个世纪40年代开始截止到目前,我们所有的计算机包括手持的智能终端设备,它们整个组织体系设备都是遵循冯诺依曼体系结构。 现代计算机设备的组成部分: 运算器、控制器、存储器、输入设备、输出设备 控制器:控制器是整个计算机的枢纽,一般是控制计算机整个部件之间协调的,比如运算器要想运算的话,首先得从存储器中取出数值。或者输入设备输入数。…

    Linux干货 2016-07-07
  • 到处都是Unix的胎记

    一说起Unix编程,不必多说,最著名的系统调用就是fork,pipe,exec,kill或是socket了(fork(2),execve(2), pipe(2), socketpair(2), select(2), kill(2), sigaction(2))这些系统调用都像是Unix编程的胎记或签名一样,表…

    Linux干货 2015-04-03
  • RAID简介

    一,什么是raid? RAID(Redundant Arrays of Independent Disks)中文叫磁盘阵列。 简单来讲就是把很多的硬盘组织在一起来使用。        RAID技术分为几种不同的等级,分别可以提供不同的速度,安全性和性价比。根据实际情况选择适当的RAID级别可以满足用户对存储系统可用性、…

    Linux干货 2016-06-22
  • linux发展简史

    前言 为什么要写这么一篇文章呢?我发现我虽然知道linux的一些知识,却不知道linux方面的历史,所以今天写一篇关于linux方面历史的文章,用来总结这段时间自己所学习到的关于linux的历史与linux的知识。关于说起linux的历史,就不得不介绍计算机的历史,与其他相关操作系统的一些历史,所以本文中的会简单介绍Linux与其他操作系统的关系。主要讲li…

    Linux干货 2017-02-16