计算机基础实战课
彭东
网名 LMOS,Intel 傲腾项目关键开发者
19719 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 57 讲
计算机基础实战课
15
15
1.0x
00:00/00:00
登录|注册

34|文件仓库:初识文件与文件系统

你好,我是 LMOS。
通过之前的学习,相信你或多或少都体会到“Linux 之下一切皆文件”的思想了。
数据是以文件的形式储存下来的,而文件数量一多,就需要文件系统来管理文件,而文件系统正是建立在之前我们学过的 IO 块设备之上,今天我就带你了解一下什么是文件,什么是文件系统。
还是延续之前的风格,学习过程中有动手实践的部分。这节课的配套代码,你可以从这里下载。让我们正式开始今天的探索之旅吧!

什么是文件

在日常生活中,我们提到的文件通常是指公文、信件,而计算机中的文件与日常见到的文件载体不同,是以计算机硬盘为载体、存储在计算机上的信息集合。
这些信息集合的呈现形式非常多样,可以是文本文档、图片、音乐、视频、应用程序等。文件通常由文件名进行标识和索引。
只说个概念的话,你很难对文件是什么有更深的理解,所以下面我们写代码建立一个文件感受一下。Linux 把建立文件的操作包含在了 open 调用中,open 调用既可以打开一个已经存在的文件,又可以建立一个新文件,代码如下所示:
int main()
{
int fd = -1;
// 打开并建立文件,所有用户可读写
fd = open("empty.file", O_RDWR|O_CREAT, S_IRWXU|S_IRWXO|S_IRWXG);
if(fd < 0)
{
printf("建立文件失败\n");
return -1;
}
// 关闭文件
close(fd);
return 0;
}
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

文件系统是计算机操作系统中的一个重要组成部分,负责管理和存储文件的功能模块。本文深入探讨了文件及文件系统的概念和特点。首先介绍了文件的概念和存储结构,包括文件的元信息和存储方式。随后详细讨论了文件系统的内部结构,包括数据块、超级块、目录结构和inode节点。文章还介绍了Linux系统中的虚拟文件系统(VFS)的概念和作用。通过本文,读者可以快速了解文件系统的内部结构和重要性,为进一步深入学习文件系统奠定了基础。文章内容详实,适合对文件系统感兴趣的读者深入学习。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《计算机基础实战课》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(3)

  • 最新
  • 精选
  • peter
    请教老师一个问题: 对inode的理解: 假如一个文件需要100个数据块,但inode中不会保存全部100个数据块的地址,只会保存部分(比如10个)数据块,是这样吗? 另外,什么时候会需要动态分配指向数据块的内存空间?会动态分配全部100个数据块的地址空间吗?

    作者回复: 是这样 根据文件大小动态分配的

    2022-10-20归属地:湖北
  • 苏流郁宓
    ext4和ntfs文件系统有哪些区别呀?为啥win系统不能直接识别ext4文件,是因为缺钱像vfs这样的虚拟文件管理吗?

    作者回复: 那区别很大 完全不同的

    2022-10-19归属地:湖北
    2
  • 陈建-binary
    思考,数据块,超级块,目录结构,inode节点

    作者回复: 是的

    2022-10-19归属地:湖北
收起评论
显示
设置
留言
3
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部