目录

1.linux文件系统

2.linux常见的文件系统

3.文件结构

4.一切皆文件

5.索引节点

6.文件系统的安装

8.内核如何组织文件系统

9.从读文件理解VFS

10.参考书目与思考题


1.linux文件系统

文件系统:
文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构.
也就是说在存储设备上组织文件的一种方法.
操作系统中负责管理或者存储文件信息的软件机构称为文件管理系统,简称文件系统.

2.linux常见的文件系统

man 5 fs               查看文件系统的介绍
cat /proc/filesystems  查看当前系统已经安装的文件系统类型不同的文件系统采用不同的方法来管理磁盘空间,各有优缺点.
文件系统是具体到分区的,所以格式化针对的是分区.分区格式化是指采用指定的文件系统类型对分区空间进行登记,
索引并建立相应的表格的一个过程.比如:
ext2具有极快的速度及极小的CPU占用率,可用于硬盘或移动存储设备;
ext3增加了日志功能,可以回溯追踪;
ext4支持EB,也就是1024*1024TB的大小,最大单文件达到16TB,支持连续写入,可减少文件的碎片;
xfs 可以管理50T硬盘;
btrfs针对固态盘做优化等.

3.文件结构

linux采用标准的目录结构,也就是树形结构,无论操作系统管理几个分区,
这样的目录树只有一个,这样的目录组织有助于对文件系统或不同用户
文件进行统一的管理,如上图.

4.一切皆文件

它们虽然类型不同,但是对它们提供的却是同一套操作界面.

5.索引节点

系统给每个索引节点分配了一个号码(我们将其称为索引节点号,即inode),
文件系统就是靠索引节点号来识别一个文件的.

6.文件系统的安装

将一个文件系统的顶层目录挂到另一个文件系统的子目录上,使他们称为一个
整体,称作安装.把该子目录称为安装点,比如图中的/home和/usr就分别是
文件系统A和文件系统B的安装点.ext2,ext3,ext4是linux的标准文件系统,系统把它的磁盘分区作为系统的根文件
系统,ext2,ext3,ext4以外的文件系统是安装在根目录系统下的某个目录中,称为
系统树形结构中的一个分支.

7.VFS框架

VFS中的S指的是Switch--开关的意思,并非System的意思.
虚拟文件系统所提供的的抽象界面主要由一组标准的,抽象的操作构成,如open(),read(),write()
等.这些函数以系统调用的形式供用户程序进行调用,这样用户程序调用系统调用的时候根本不需要关系
所操作的文件属于哪个系统以及这个文件系统是如何设计的,只管调用就好.

8.内核如何组织文件系统

内核使用VFS框架来组织文件系统.
每个文件系统用一个超级块(super_block)数据结构来描述,
如果一个文件系统想要加入VFS大家庭,就必须在VFS中进行注册,就像我们上学需要注册一样,如何进行注册呢?
就需要填写一个数据结构file_system_type(相当于提交申请注册表),这个结构描述的是文件
系统的名称以及一个指向对应VFS超级块读取例程的地址.内核利用file_system_type类型的
链表组织每个注册的文件系统,上图是文件系统类型的组织(这个之前我写过,哈哈,review一下).问题:
如果文件系统A有3个超级块,文件系统B有4个超级块,那么超级块中的这个7个超级块会连成一个
链表吗?
图中说linux系统中所有的超级块的组织,这样的意思就是这7个超级块就是会连成一个链表的
意思吗?

9.从读文件理解VFS

当用户要查看/home目录下的一个文件和/proc目录下的一个文件的时候,
都会调用vfs层的read()系统调用,但因为这两个文件所在的文件系统不同,
前者是ext3文件系统,存放在磁盘上;
后者是proc文件系统,存于内核内存中.
因此到了VFS层,它们兵分两路,调用各自文件系统的read函数,由此可以看出
VFS相当于一个总开关,各个文件系统相当于分支,进程通过VFS层的系统调用
到达各个分支对具体的文件系统进行操作.

10.参考书目与思考题

【linux内核分析与应用-陈莉君】文件系统相关推荐

  1. 【linux内核分析与应用-陈莉君】动手实践-编写一个文件系统

    目录  0.一些链接 1.一些数据结构 2.编写一个文件系统的过程 3.用到的一些数据结构及函数的原型 3.1 struct file_system_type-文件系统类型 3.2 register_ ...

  2. 【Linux内核分析与应用-陈莉君老师】动手实践-把虚拟内存转换成物理地址

    目录 1.地址转换 2.Linux4级页表 3.64位线性地址 4.实际观察寻页的过程  1.地址转换 进程中不直接对物理地址直接操作,CPU在运行时指定的地址需要经过内存管理单元MMU 转换后才能访 ...

  3. 【linux内核分析与应用-陈莉君】Linux内存管理机制

    目录                   1.内存层次 2.虚拟内存实现机制 3.进程的虚拟地址空间和地址空间布局 4.如何用数据结构描述进程的用户空间 5.mm_struct 6.vm_area_s ...

  4. 【linux内核分析与应用-陈莉君】进程的一生

    目录 1.进程与线程 2.TASK_STRUCT结构的统一性与多样性 3.进程API的实现 4.do_fork()的代码流程 5.进程的生命周期 1.进程与线程 2.TASK_STRUCT结构的统一性 ...

  5. 《Linux内核完全剖析-基于0.12内核》书评之陈莉君

    <Linux内核完全剖析-基于0.12内核>书评之陈莉君 <Linux内核完全剖析-基于0.12内核>一书出版之后,机械工业出版社编辑希望我就此书抽空写一个书评.在我拿到这本书 ...

  6. 《Linux内核分析》课程总结

    朱宇轲 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 不知不觉,在网易 ...

  7. linux 内核 核心代码,8分钟掌握Linux内核分析的核心科技

    原标题:8分钟掌握Linux内核分析的核心科技 作者: OUYANG_LINUX007 来源: http://blog.csdn.net/ouyang_linux007/article/details ...

  8. Linux内核分析课程期中总结

    Linux内核分析课程期中总结 姓名:王朝宪 学号:20135114 注: 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com ...

  9. 庖丁解牛linux内核 百度云,庖丁解牛Linux内核分析笔记-1

    2019-5-3 主要内容摘自 孟宁<庖丁解牛Linux内核分析> 天下大事必作于细,天下难事必作于易 1.计算机三大法宝 存储程序计算机 函数调用堆栈 中断 2.虚拟一个x86的CPU硬 ...

  10. 庖丁解牛山linux内核的析,# 庖丁解牛Linux内核分析笔记-1

    2019-5-3 主要内容摘自 孟宁<庖丁解牛Linux内核分析> 天下大事必作于细,天下难事必作于易 1.计算机三大法宝 存储程序计算机 函数调用堆栈 中断 2.虚拟一个x86的CPU硬 ...

最新文章

  1. RocketMQ 一行代码造成大量消息丢失
  2. AcWing P164 可达性统计 题解
  3. MHP GEM基础
  4. 移动web开发调试工具AlloyLever介绍
  5. Java:GraalVM数据库流性能
  6. abp mysql .net core_ABP Asp.Net Core 集成 MySql 数据库
  7. TensorFlow中的设备管理——Device的创建与注册机制
  8. Prettier 是 javascript 代码灵活美化工具
  9. 专业的raw图像处理编辑工具Capture One Pro 22 for Mac
  10. 惠普1020打印机查看已打印页数
  11. 卡尔曼滤波算法详细推导
  12. 第一次跳槽总结(产品经理,简历面试)
  13. p2p-如何拯救k8s镜像分发的阿喀琉斯之踵 1
  14. alios thing - rhino内核 - 内存管理
  15. 一名爱折腾人士的Apps for iPhone分享
  16. 数字电路(4)门电路(三)
  17. WIN7 64 安装串口驱动和mini2440USB驱动
  18. Unity3D中的对齐
  19. puppet on windows
  20. 改变word自带公式显示的字体的方法

热门文章

  1. 成功解决windows系统开机时,系统提示此windows副本不是正版
  2. 花前病酒的学拳笔记,杨氏叶派,叶家拳,暂时1-19
  3. THUSC2018滚粗记
  4. Vue报错:contains both .browserslistrc and package.json with browsers
  5. 搭建服务器提供IOS IPA包下载
  6. 【MFC】多国语言工具栏
  7. 交互媒体专题设计大作业
  8. 7-1 电话聊天狂人 (25 分)
  9. 域内计算机桌面背景怎么改,如何将域内用户设置的各种桌面背景都去掉? | 学步园...
  10. matlab里面求出两条曲线的交点问题