当前课程知识点:Linux 内核分析与应用 >  第8章 文件系统 >  8.1 虚拟文件系统的引入 >  Video

返回《Linux 内核分析与应用》慕课在线视频课程列表

Video在线视频

Video

下一节:Video

返回《Linux 内核分析与应用》慕课在线视频列表

Video课程教案、知识点、字幕

大家好今天我们来开始讲第八章文件系统

首先我们讲一下虚拟文件系统的引入

首先我们说一下什么是文件系统

文件系统是操作系统用于明确存储设备

或分区上的文件的方法和数据结构

也就是说在

存储设备上组织文件的一种方法

操作系统中负责管理和存储文件信息的软件机构

称为文件管理系统简称文件系统

Linux常见的文件系统有ext2 ext3 ext4

NTFS JFS xfs等

那么什么是Linux的文件结构呢

文件结构是文件存储在

磁盘存储设备上的组织方式

主要体现在对文件和目录的组织上

Linux采用标准的目录结构也就是树形结构

无论操作系统管理几个磁盘分区

这样的目录数只有一个

这样的目录组织有助于对文件系统

或不同用户文件进行统一的管理如图所示

一切皆是文件这是Unix/Linux的基本设计哲学之一

普通的文件目录字符设备块设备

套接字等在Unix/Linux中

都是以文件被对待的

他们虽然类型不同但是对其提供的却是

同一套操作界面如图所示

Linux系统中呢

最主要的一个概念是索引节点

Linux文件系统使用索引节点来记录文件信息

系统给每个索引节点分配了一个号码

我们把它称为索引节点号

文件系统就是靠这个索引节点号来识别一个文件的

那么Linux系统中都有哪些文件系统类型

我们说Linux目前支持几十种文件系统类型

比如说ext2/ext3/ext4

xfs btrfs等等

我们可以通过man 5 fs

查看全部文件系统的介绍

不同文件系统采用不同的方法来管理磁盘空间

各有优劣文件系统是具体到分区的

所以格式化针对的是分区

分区格式化是指

采用指定的文件系统类型对分区空间进行登记

索引并建立相应的管理表格的一个过程

比如说ext2具有极快的速度或极小的cpu占用率

可用于硬盘和移动存储设备

ext3增加了日志功能可回溯追踪

ext4日志文件系统支持1EB

也就是1024×1024TB的大小

最大单文件达到16TB

支持连续写入可减少文件的碎片

xfs可以管理500T的硬盘

btrfs文件系统针对固态盘做优化等等

我们可以在proc目下查看发filesystems文件

看到你机子上已经安装了哪些文件系统

那么文件系统如何安装呢

将一个文件系统的顶层目录

挂到另一个文件系统的子目录上

使它们成为一个整体我们把它称为安装

把该子目录称为安装点

ext2/ext3/ext4是Linux的标准文件系统

系统把它的磁盘分区作为系统的根文件系统

ext2/ext3/ext4以外的文件系统呢

则安装在根目录系统下的某个目录中

称为系统树形结构中的一个分支

Linux支持多种文件系统

那么它的框架是如何的呢

它是如何进行统一高效的组织以及管理

我们先看一下Linux文件系统的统一框架VFS

也就是Vietual Filesystem Switch

那么这个S指的是开关的意思而不是系统的意思

虚拟文件系统所提供的抽象界面

主要由一组标准的抽象的操作构成

例如open read write等等

这些函数以系统调用的形式供用户程序调用

这样用户程序调用这些系统调用的时候呢

根本不需要关心所操作的文件

属于哪个文件系统

这个文件系统是怎样设计或实现的

那么内核是如何组织文件系统的呢

Linux内核采用VFS框架来组织文件系统

每个文件系统用一个超级块也就是super_block

数据结构来描述

一个文件系统如果想加入VFS的大家庭

就必须在VFS中进行注册

就像我们上学要注册一样那么如何进行注册

实际上就是填写一个数据结构叫file_system_type数据结构

此结构描述的是文件系统的名称

以及一个指向对应VFS超级块读取例程的地址

内核采用file_system_type类型的链表

织每个注册的文件系统

如图为文件系统类型的组织

每个注册的文件系统对应着相应的超级块

在内核中的数据结构就叫super_block

该对象用于存储特定文件系统的信息

那么超级块是如何和文件系统联系起来

所有的超级块又如何在内核中组织的呢

系统中所有的超级块由super_blocks链表组织如图所示

这是Linux中所有超级块的组织

最后我们给一个小结

我们从读文件的过程来理解VFS

当用户要查看home目录下的一个文件

或proc目录下的一个文件的时候呢

都会调用到VFS层的read()系统调用

但因为这两个文件所在的文件系统不同

前者是ext3文件系统存放在磁盘上

后者是proc文件系统存于内核内存中

因此到了VFS层

它们兵分两路调用各自文件系统的read函数

由此可以看出VFS相当于是一个总开关

各个文件系统相当于分支

进程通过VFS层的系统调用

到达各个分支对具体的文件系统进行操作

最后我们给出参考资料

依然是深入理解Linux内核这本书

第三版的第十二章深入Linux内核架构的第八章

最后大家带着疑问上路

虚拟文件系统VFS

与实际文件系统到底是什么样的关系

这一讲就讲到这里谢谢大家

Linux 内核分析与应用课程列表:

第1章 概述

-1.1 Linux操作系统概述

--1.1 Linux 操作系统概述

-1.2 Linux内核结构以及内核模块编程

--Video

-1.3 Linux内核源码中的双链表结构

--Video

-1.4 源码分析-内核中的哈希表

--Video

-1.5 动手实践-Linux内核模块的插入和删除

--Video

-第1章 概述--章节测验

-第1章导学--引领你进入Linux内核的大门

第2章 内存寻址

-2.1 内存管理之内存寻址

--Video

-2.2 段机制

--Video

-2.3分页机制

--Video

-2.4 动手实践-把虚拟地址转换成物理地址

--Video

-第2章 内存寻址--章节测验

-第二章导学-从零打造自己的操作系统

第3章 进程管理

-3.1 进程概述

--Video

-3.2 Linux进程创建

--Video

-3.3 Linux进程调度

--Video

-3.4 动手实践-打印进程描述符task_struct中的字段

--Video

-3.5工程实践-基于内核模块的负载监控

--Video

-第3章 进程管理--章节测验

-第三章导学-进程背后琳琅满目的宝贝到哪里挖?

第4章 内存管理

-4.1 Linux内存管理机制

--Video

-4.2 进程用户空间管理机制

--Video

-4.3 物理内存分配与回收机制(上)

--Video

-4.4 物理内存分配与回收机制(下)

--Video

-4.5 动手实践-Linux内存映射基础(上)

--Video

-4.6 动手实践-Linux内存映射实现(中)

--Video

-4.7 动手实践-Linux内存映射测试(下)

--Video

-4.8 初学者对内存管理的常见疑惑

--初学者对内存管理的常见疑惑(一)

--初学者对内存管理的常见疑惑(二)

--初学者对内存管理的常见疑惑(三)

-第4章 内存管理--章节测验

第5章 中断

-5.1 中断机制概述

--Video

-5.2 中断处理机制

--Video

-5.3 中断下半部处理机制

--Video

-5.4 时钟中断机制

--Video

-5.5 动手实践-中断上半部的代码分析及应用

--Video

-5.6 动手实践-中断下半部的代码分析及应用

--Video

-第5章 中断--章节测验

第6章 系统调用

-6.1 Linux中的各种API

--Video

-6.2 系统调用机制

--Video

-6.3 动手实践-添加系统调用(系统调用日志收集系统)

--Video

-第6章 系统调用--章节测验

第7章 内核同步

-7.1 内核同步概述

--Video

-7.2 内核同步机制

--Video

-7.3 动手实践-内核多任务并发实例(上)

--Video

-7.4 动手实践-内核多任务并发实例(下)

--Video

-第7章 内核同步--章节测验

第8章 文件系统

-8.1 虚拟文件系统的引入

--Video

-8.2 虚拟文件系统的主要数据结构

--Video

-8.3 文件系统中的各种缓存

--Video

-8.4 页高速缓存机制以及读写

--Video

-8.5 动手实践-编写一个文件系统(上)

--Video

-8.6 动手实践-编写一个文件系统(中)

--Video

-8.7 动手实践-编写一个文件系统(下)

--Video

-第8章 文件系统--章节测验

第9章 设备驱动

-9.1 设备驱动概述

--Video

-9.2 I/O空间管理

--Video

-9.3 设备驱动模型

--Video

-9.4 字符设备驱动程序简介

--Video

-9.5 块设备驱动程序简介

--Video

-9.6 动手实践-编写字符设备驱动程序

--Video

-9.7工程实践-编写块设备驱动的基础(上)

--Video

-9.8 工程实践-块设备驱动程序分析(中)

--Video

-9.9 工程实践-块设备驱动程序实现(下)

--Video

-第9章 设备驱动--章节测验

致谢与说明

-致谢与说明

--Video

直播视频:从Linux内核学习到自主操作系统研发

-从Linux内核学习到自主操作系统研发

附录:实验代码、课件以及相关素材

-各章实验代码

-《Linux内核分析与应用》课件

-《Linux操作系统原理与应用》教材课堂视频

Video笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。