『学了就忘』Linux文件系统管理 — 57、Linux文件系统介绍
在了解Linux的文件系统管理之前,先简单了解一下硬盘的结构。
1、了解硬盘结构(了解即可)
(1)硬盘的逻辑结构
如下图所示:
说明:
- 上图中一圈一圈的同心圆(蓝色部分),我们称之为磁道。数据就存放在磁道当中。
- 从磁盘的中心向外发散切割线,这切割先和磁道的重叠区域就是一个扇区。
- 每个扇区的大小事固定的,为
512Byte
。扇区也是磁盘的最小存贮单位。
接下来我们从侧面看,如下图所示:
说明:
- 硬盘的大小是使用“磁头数×柱面数×扇区数×每个扇区的大小”这样的公式来计算的。
- 磁头数(
Heads
)表示硬盘总共有几个磁头,也可以理解成为硬盘有几个盘面,然后乘以二(磁头在磁盘两面都有); - 柱面数(
Cylinders
)表示硬盘每一面盘面有几条磁道(就是把磁盘横过来,磁盘是有厚度的,具有相同编号的磁道形成一个圆柱,称之为磁盘的柱面。也可以说成磁道就是一个柱面,有多个磁道,就有多少个柱面数,磁盘的柱面数与一个盘面上的磁道数是相等的。) - 扇区数(
Sectors
)表示每条磁道上有几个扇区;每个扇区的大小一般是512Byte
。
硬盘示例图如下:
以上就是机械师硬盘,他的优点是,容量大,价格便宜。缺点,由于是物理结构的磁盘,需要转动磁盘来存储或者读取数据的,转速越快,存取效率越高。普通硬盘转速一般7200转每分钟,转速越高,硬盘发热量越大。(注意磁头是不搭在磁盘上的,是悬空的。)
(2)硬盘接口
硬盘接口的种类如下:
- IDE硬盘接口(
Integrated Drive Electronics
,并口,即电子集成驱动器)也称作"ATA硬盘"
或"PATA硬盘”,是早期机械硬盘的主要接口,ATA133硬盘的理论速度可以达到133MB/s
(此速度为理论平均值),IDE硬盘接口。(基本淘汰) - SATA接口(
Serial ATA
,串口)是速度更高的硬盘标准,具备了更高的传输速度,并具备了更强的纠错能力。目前已经是SATA三代,理论传输速度达到600MB/s(此速度为理论平均值)。 - SCSI接口(
Small Computer System Interface
,小型计算机系统接口)广泛应用在服务器上,具有应用范围广、多任务、带宽大、CPU占用率低及支持热插拔等优点,理论传输速度达到320MB/s。(已淘汰)
2、Linux文件系统介绍
文件系统管理也就是分区管理。
(1)Linux文件系统的特性
super block
(超级块):记录整个文件系统的信息,包括block
与inode
的总量,已经使用的inode
和block
的数量,未使用的inode
和block
的数量,block
与inode
的大小,文件系统的挂载时间,最近一次的写入时间,最近一次的磁盘检验时间等。date block
(数据块,也称作block
):用来实际保存数据的(相当于柜子的隔断),block
的大小(1KB,2KB或4KB->默认)和数量在格式化后就已经决定,不能改变,除非重新格式化(制作柜子的时候,隔断大小就已经决定,不能更改,除非重新制作柜子)。
每个blcok
只能保存一个文件的数据,要是文件数据小于一个block
块,那么这个block
的剩余空间不能被其他文件使用;要是文件数据大于一个block
块,则占用多个block
块。
Windows中磁盘碎片整理工具的原理就是把一个文件占用的多个block
块尽量整理到一起,这样可以加快读写速度。inode
(i
节点,柜子门上的标签,128字节):用来记录文件的权限(r
,w
、x
),文件的所有者和属组,文件的大小,文件的状态改变时间(ctime
),文件的最近一次读取时间(atime
),文件的最近一次修改时间(mtime
),文件的数据真正保存的block
编号。每个文件需要占用一个inode
。
(2)Linux常见文件系统
ext
:Linux中最早的文件系统,由于在性能和兼容性上具有很多缺陷,现在已经很少使用。ext2
:是ext
文件系统的升级版本,Red Hat Linux 7.2
版本以前的系统默认都是ext2
文件系统。于1993年发布,支持最大16TB的分区和最大2TB的文件(1TB=1024GB-1024× 1024KB)。ext3
:ext2
文件系统的升级版本,最大的区别就是带日志功能,以便在系统突然停止时,提高文件系统的可靠性。支持最大16TB的分区和最大2TB的文件。ext4
:是ext3
文件系统的升级版。ext4
在性能、伸缩性和可靠性方面进行了大量改进。ext4
的变化可以说是翻天覆地的,比如向下兼容ext3
、最大1EB文件系统和16TB文件、无限数量子目录、Extents
连续数据块概念、多块分配、延迟分配、持久预分配、快速FSCK
、日志校验、无日志模式、在线碎片整理、inode
增强、默认启用barrier
等。它是CentOS6.x
的默认文件系统。(说这么多,意思就是ext4
文件系统比前三个强很多)xfs
:XFS最早针对IRIX操作系统开发,是一个高性能的日志型文件系统,能够在断电以及操作系统崩溃的情况下,保证文件系统数据的一致性。它是一个64位的文件系统,后来进行开源并且移植到了Linux操作系统中,目前CentOS 7.x
将XFS+LVM
作为默认的文件系统。据官方所称,XFS对于大文件的读写性能较好。
(以上都是Linux系统中的文件系统,知道越新越好就可以了。 )swap
:swap
是Linux中用于交换分区的文件系统(类似于Windows中的虚拟内存),当内存不够用时,使用交换分区暂时替代内存。一般大小为内存的2倍,但是不要超过2GB,它是Linux的必需分区。NFS
:NFS
是网络文件系统(Network File System
)的缩写,是用来实现不同主机之间文件共享的一种网络服务,本地主机可以通过挂载的方式使用远程共享的资源。iso9660
:光盘的标准文件系统。Linux要想使用光盘,必须支持iso9660
文件系统。fat
:就是Windows下的fat16
文件系统,在Linux中识别为fat
。vfat
:就是Windows下的fat32
文件系统,在Linux中识别为vfat
。支持最大32GB的分区和最大4GB的文件。NTFS
:就是Windows下的NTFS
文件系统,不过Linux默认是不能识别NTFS
文件系统的,如果需要识别,则需要重新编译内核才能支持。它比fat32
文件系统更加安全,速度更快支持最大2TB的分区和最大64GB的文件ufs
:Sun公司的操作系统Solaris
和SunOS
所采用的文件系统。(用不着,了解一下即可)proc
:Linux中基于内存的虚拟文件系统,用来管理内存存储目录/proc
。(了解一下即可)sysfs
:和proc
一样,也是基于内存的虚拟文件系统,用来管理内存存储目录/sysfs
。(了解一下即可)tmpfs
:也是一种基于内存的虚拟文件系统,不过也可以使用swap
交换分区。(了解一下即可)
3、整理一下对文件系统的认识
我们以前说一个分区,会分成两个部分,一小部分为上半部分,下面大部分为下半部分。
上半部分会分成一个一个i
节点信息,理论上每个文件都会有自己唯一的i节点信息(如果遇到硬链接,两个文件的i
节点就会一样)。
下半部分会分成一个一个block
(数据块),在Linux系统下默认是4KB,用于存储数据。
如下图:
上边的图今天要稍微变一下。
在我们的电脑上一般一个分区100GB,block
块默认是4KB,所以100GB大小的分区,要有2500万+个block
块。可以说是一个非常大的数字,这样会非常不好管理。
我们真正分区中系统文件的结构是如下:
首先一个分区,会在一个分区的开头,用一部分很小的空间,组成一个超级块。超级块的作用看上边,每个分区都会有一个超级块。
查看超级块信息,用下面命令。
[root@localhost ~]# dumpe2fs -h + 分区号(/dev/sda1)
然后该分区中的block
块太多了,就在该分区中形成一些块组。在块组中,在进行上面形式的划分。
查看块组信息
[root@localhost ~]# dumpe2fs + 分区号(/dev/sda1)
Linux文件系统结构如下:
『学了就忘』Linux文件系统管理 — 57、Linux文件系统介绍的更多相关文章
- 『学了就忘』Linux基础命令 — 25、文件基本权限的管理
目录 1.文件和目录的默认权限 2.umask默认权限 (1)查看系统的umask权限 (2)用八进制数值显示umask权限 (3)umask权限的计算方法 (4)注意:umask默认权限的计算绝不是 ...
- 『学了就忘』Linux基础命令 — 23、文件基本权限的介绍和作用
目录 1.基本权限的介绍 (1)权限位的含义 (2)权限的优先级 2.权限的基本作用 (1)权限含义的解释 (2)目录权限说明 1.基本权限的介绍 (1)权限位的含义 前面讲解ls命令时,我们已经知道 ...
- 『学了就忘』Linux软件包管理 — 44、在RPM包中提取文件
目录 1.RPM包中文件的提取 2.在RPM包中提取文件的操作 (1)cpio命令介绍 (2)提取RPM包中文件 1.RPM包中文件的提取 为什么要做这个事呢? 在操作Linux系统的时候误删除一个文 ...
- 『学了就忘』Linux用户管理 — 50、用户管理相关文件详细说明
目录 1.用户信息文件 2./etc/shadow影子文件 3./etc/group 组信息文件 4.组密码文件 5.用户的家目录 6.用户邮箱目录 7.用户模板目录 总结: 提示:严格的用户权限划分 ...
- 『学了就忘』Linux权限管理 — 55、文件特殊权限
目录 1.文件特殊权限说明 2.设置SetUID 3.检测SetUID的脚本 4.设置SetGID (1)针对文件的作用 (2)针对目录的作用 5.Sticky BIT 6.设定文件特殊权限 7.文件 ...
- 『学了就忘』Linux基础 — 6、VMware虚拟机安装Linux系统(超详细)
目录 1.打开VMware虚拟机软件 2.选择Linux系统的ISO安装镜像 3.开启虚拟机安装系统 (1)进入Linux系统安装界面 (2)硬件检测 (3)检测光盘 (4)欢迎界面 (5)选择语言 ...
- 『学了就忘』Linux基础 — 7、补充:安装Linxu系统时设置硬盘挂载说明
目录 (1)新建一个/home分区 (2)再创建一个/boot分区. (3)创建一个swap分区 (4)最后剩余的空间全部分给根目录 (5)总结 上一篇在VMwar虚拟机中安装Linux操作系统中ht ...
- 『学了就忘』Linux基础 — 15、了解Linux系统的目录结构
目录 1.一级目录说明 (1)一级目录列表 (2)/bin/和/sbin/目录说明 (3)/boot/目录说明 (4)/lib/和/lib64/目录说明 (5)/lost+found/目录说明 (6) ...
- 『学了就忘』Linux基础 — 16、Linux系统与Windows系统的不同
目录 1.Linux严格区分大小写 2.Linux一切皆文件 3.Linux不靠扩展名区分文件类型 4.Linux中所有的存储设备都必须在挂载之后才能使用 5.Windows下的程序不能直接在Linu ...
随机推荐
- 内网渗透DC-5靶场通关
个人博客地址:点我 DC系列共9个靶场,本次来试玩一下一个 DC-5,只有一个flag,下载地址. 下载下来后是 .ova 格式,建议使用vitualbox进行搭建,vmware可能存在兼容性问题.靶 ...
- 图解Redis6中的9种数据结构,墙裂建议准备去面试的人先看(干货,建议收藏)
如图所示,Redis中提供了9种不同的数据操作类型,他们分别代表了不同的数据存储结构. 图2-17 数据类型 String类型 String类型是Redis用的较多的一个基本类型,也是最简单的一种类型 ...
- Stream中的Collector收集器原理
前言 Stream的基本操作因为平时工作中用得非常多(也能看到一些同事把Stream操作写得很丑陋),所以基本用法就不写文章记录了. 之所以能把Stream的操作写得很丑陋,完全是因为Stream底层 ...
- Java继承、重写与重载
1.java继承 1.1概念 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为. 继承可以使用extends和implem ...
- Java:泛型小记
Java:泛型小记 对 Java 中的 泛型类,做一个微不足道的小小小小记 泛型实现 概述 开篇: List<String> l1 = new ArrayList<String> ...
- Scrum Meeting 1补充会议
日期:2021年04月24日 会议主要内容概述: 本次会议于11:30举行,对项目架构做出了重要调整,并根据该调整修改了第1次例会报告中后两日计划完成的工作部分. 一.架构调整 会上讨论了用户模块相关 ...
- oo第二次博客-三次电梯调度的总结与反思
本单元从电梯调度相关问题层层深入,带领我们学习并运用了了多线程相关的知识. 三次电梯调度依次为单电梯单容量.单电梯可携带.多电梯可携带. 一.我的设计 在第一次作业中,使用了最简单的FIFO调度方法. ...
- BUAA_2019_OO_第一单元总结
一.基于度量来分析自己的程序结构 1.第一次作业 1.1类图: 第一次作业由于比较简单,我采用了面向过程的编程方式.在Polynomail类的构造函数中将项直接求导输出.这样的弊端显而易见,不能进行优 ...
- 线程池系列二:一张动图,彻底懂了execute和submit
我们知道线程池通过execute方法执行提交的Runnable任务,但Runnable只是执行任务,没有返回任何信息. [线程池原理:线程池原来是个外包公司,打工人我悟了] 若是我们想在异步执行完 ...
- stm32学习笔记之GPIO功能框图分析
GPIO 是通用输入输出端口的简称,简单来说就是STM32 可控制的引脚,STM32 芯片的GPIO 引脚与外部设备连接起来,从而实现与外部通讯.控制以及数据采集的功能.STM32 芯片的GPIO被分 ...