趣谈 Linux 操作系统
刘超
前网易杭州研究院云计算技术部首席架构师
85458 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 72 讲
趣谈 Linux 操作系统
15
15
1.0x
00:00/00:00
登录|注册

27 | 文件系统:项目成果要归档,我们就需要档案库

closedir
readdir
opendir
lstat
fstat
stat
close
read
lseek
write
open
ls -l
umount /根目录/用户A目录/目录1
mount /dev/vdc1 /根目录/用户A目录/目录1
fdisk /dev/vdc
mkfs.ext3 / mkfs.ext4
文件系统的主要功能
目录操作
文件状态信息
系统调用
文件描述符
文件属性
卸载
挂载
分区
格式化
文件应该用文件夹的形式组织起来,方便管理和查询
如果文件系统中有的文件是热点文件,近期经常被读取和写入,文件系统应该有缓存层
文件系统中也要有索引区,用来方便查找一个文件分成的多个块都存放在了什么位置
文件系统要有严格的组织形式,使得文件能够以块为单位进行存储
课堂练习
总结时刻
文件系统相关系统调用
文件系统相关命令行
文件系统的功能规划

该思维导图由 AI 生成,仅供参考

咱们花了这么长的时间,规划了会议室管理系统,这样多个项目执行的时候,隔离性可以得到保证。但是,会议室里面保存的资料还是暂时的,一旦项目结束,会议室会被回收,会议室里面的资料就丢失了。有一些资料我们希望项目结束也能继续保存,这就需要一个和项目运行生命周期无关的地方,可以永久保存,并且空间也要比会议室大得多。

文件系统的功能规划

要知道,这些资料才是咱们公司的财富,是执行多个项目积累下来的,是公司竞争力的保证,需要有一个地方归档。这就需要我们有一个存放资料的档案库,在操作系统中就是文件系统。那我们应该如何组织规划文件系统这个档案库呢?
对于运行的进程来说,内存就像一个纸箱子,仅仅是一个暂存数据的地方,而且空间有限。如果我们想要进程结束之后,数据依然能够保存下来,就不能只保存在内存里,而是应该保存在外部存储中。就像图书馆这种地方,不仅空间大,而且能够永久保存。
我们最常用的外部存储就是硬盘,数据是以文件的形式保存在硬盘上的。为了管理这些文件,我们在规划文件系统的时候,需要考虑到以下几点。
第一点,文件系统要有严格的组织形式,使得文件能够以块为单位进行存储。这就像图书馆里,我们会设置一排排书架,然后再把书架分成一个个小格子,有的项目存放的资料非常多,一个格子放不下,就需要多个格子来存放。我们把这个区域称为存放原始资料的仓库区。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

文件系统就好比图书馆的档案库,是一个用于永久保存和管理数据的重要组成部分。本文通过比喻图书馆的档案库,生动形象地解释了文件系统的重要性和功能规划。文章首先强调了文件系统的重要性,指出它是公司财富和竞争力的保证,需要有一个地方来归档和保存资料。接着,文章详细介绍了文件系统的功能规划,包括文件的组织形式、索引区、缓存层、文件夹形式组织、文件名和目录结构等。此外,文章还介绍了文件系统相关的命令行操作,包括格式化、分区、挂载和卸载等操作。 通过介绍文件系统相关的命令行操作,使读者能够快速了解如何在Linux系统中进行文件系统的管理和操作。同时,对于想要深入了解文件系统的读者来说,提供了清晰的概览和实用的操作指南。文章还介绍了系统调用操作文件和目录的方法,以及课堂练习的建议,为读者提供了进一步学习和实践的机会。 总的来说,本文通过生动的比喻、清晰的功能规划介绍和实用的操作指南,为读者呈现了文件系统的重要性和操作方法,是一篇值得深入阅读和学习的技术文章。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《趣谈 Linux 操作系统》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(18)

  • 最新
  • 精选
  • Feelfree
    本期内容理解度很高,是我看这栏目以来最轻松的一期,😄

    作者回复: 接下来就复杂啦,做好准备

    2019-05-30
    13
  • 有米
    多线程高并发的时候,经常报open fd too much。貌似fd是有上限的,每次网络连接都会创建一个fd?

    作者回复: 是的,这也是为什么不能太多的网络连接

    2020-04-20
    3
    8
  • 莫名
    操作目录的相关函数并不是系统调用,而是库函数。

    作者回复: 赞,opendir这些的确是库函数

    2019-07-19
    5
  • Mr.差不多
    您好,老师想问一下,通过程序获得文件夹下面所有文件,以什么作为排序的准则返回呢?还是随机的?

    作者回复: 可以看一下文件夹的结构

    2019-05-29
    1
  • 欢乐小熊
    在 Android NDK 源码中多处能够看虚拟文件系统这样的名词, 期待后面的课程

    作者回复: 是的,也是基于Linux

    2019-05-29
    1
  • Bryant.C
    老师,管道类型的文件也是一种文件类型吧

    作者回复: 是的

    2020-06-12
  • 花灰
    例如,上面这个命令就是将这个文件系统挂在到“/ 根目录 / 用户 A 目录 / 目录 1”这个目录下面。一旦挂在过去,“/ 根目录 / 用户 A 目录 / 目录 1”这个目录下面原来的文件 1 和文件 2 就都看不到了,换成了 vdc1 这个硬盘里面的文件系统的根目录。 请问老师,那么文件1文件2现在放在哪里呢?之前挂载的分区会自动解除挂载吗?谢谢老师

    作者回复: 还是在文件系统上,就是看不到了

    2019-06-30
  • 杨寅冬
    老师,文件系统这块,以及存储的话,比如文件存储、对象存储,现在文档办公的web应用比较多,我们注册账号,随时随地都可以文档编辑,协作办公,而且具有高可用和可靠性,不担心数据丢失,这里用到的存储技术,是什么类型的呢,比如底层的存储类似ceph、swift这种技术可以谈一谈吗

    作者回复: 这是一个大话题,要另一个专栏阐述了

    2019-06-20
  • jkhcw
    Linux文件索引采用的是哪种数据结构?红黑树还是B+树

    作者回复: 我这里指的是Inode

    2019-05-30
  • 权奥
    fdisk有个坑是最大只能分2T,对于超过2T的分区需求可以使用parted
    2019-05-30
    3
    34
收起评论
显示
设置
留言
18
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部