工作多年,Linux文件系统还不太了解?
▲ 点击上方“架构精进之路”关注公众号
回复“01”领取「程序员进阶大礼包」
这是「架构精进之路」公众号的第67篇原创文章
1 初识目录结构
2 初识文件
2.1 文件类型
2.1.1 文件
纯文本文件(ASCII);
二进制文件(binary);
数据格式的文件(data);
各种压缩文件。
2.1.2 目录
2.1.3 链接文件
2.1.4 管道
2.1.5 块设备
ll /dev/vda1brw-rw---- 1 root disk 253, 1 11月 28 19:17 /dev/vda1
2.1.6 字符设备文件
2.1.7 套接字
file, stat, ls
2.2 文件是什么?
元数据:文件的附属信息:文件大小,文件创建时间,文件拥有者,Inode编号(文件的唯一标识)
用户数据:记录文件真实内容的地方。
2.3 文件系统
2.3.2 目录项
2.3.3 逻辑块
2.3.4 超级块
基于磁盘的文件系统:也就是数据直接存储在计算机本地挂载的磁盘中。常见的Ext4, Ext3,XFS。
基于内存的文件系统:也就是虚拟文件系统。这类文件系统,不需要任何磁盘分配存储空间,但会占用内存。比如/proc文件系统,/sys文件系统。
网络文件系统:用来访问其他计算机数据的文件系统,比如NFS,SMB。
缓冲IO:只利用标准库的缓冲来加速文件的访问。标准库内部会通过系统调用来访问文件。
非缓冲IO:直接系统调用。
无缓存IO操作数据流向路径:数据——内核缓存区——磁盘
标准IO操作数据流向路径:数据——流缓存区——内核缓存区——磁盘
阻塞IO:是指应用程序执行IO操作,如果没有获得响应,则会阻塞当前线程,不会做其他任务。
非阻塞IO:是指应用程序执行IO操作,不阻塞当前线程,可以继续执行其他任务,随后会轮询或者事件通知的形式,获取调用结果。
2.5.4 同步和非同步IO
同步IO:是指应用程序执行IO操作后,要一直等待IO完成后,才能获得IO响应。
异步IO:是指用用程序执行IO操作后,不用等待完成或完成后的响应,而是继续执行就可以。等待IO完成,响应会用事件通知的形式,告诉应用程序。
·················· END ··················
关注公众号,免费领学习资料
十年研发路,大厂架构师,CSDN博客专家
专注架构技术学习及分享,职业与认知升级
坚持分享接地气儿的干货,期待与你一起成长
推荐阅读
「架构精进之路」专注架构研究,技术分享
本文分享自微信公众号 - 架构精进之路(jiagou_jingjin)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
