linux一切皆文件

为什么说linux中一切都为文件?首先,我们看一下linux中文件的类型有哪些。

VFS(Virtual Filesystem,虚拟文件系统)是linux内核中的重要组成部分,用来处理与Unix标准文件系统相关的所有系统调用。其健壮性表现在能为各种文件系统提供一个通用的接口。可以视为所有文件类型的通用接口层。

VFS接口下,文件可以分为三种类型:磁盘文件系统,网络文件系统,特殊文件系统。

 

磁盘文件系统

这类文件系统主要作用是管理磁盘内容,让上层可以得知对应文件位于磁盘的哪个位置,从而对其读写。

不同的磁盘文件系统有不同的特征,在读写性能,一致性保证,容错性,扩展性等方面各有千秋。

这里不完全整理了磁盘文件系统分类情况:

  • Linux使用的文件系统:(Ext2),(Ext3)及Reiser文件系统(ReiserFS)
  • Unix家族的文件系统:sysv(System V、Coherent、Xenix)、UFS(BSD、Solaris、NEXTSTEP),MINIX文件系统及VERITAS VxFS(SCO UnixWare)。
  • 微软公司的文件系统:如MS-DOS、VFAT及NTFS
  • IS09660 CD-ROM文件系统(以前的High Sierra文件系统)和通用磁盘格式(UDF)的DVD文件系统。
  • 其他有专利权的文件系统,如HPFS(IBM公司的OS/2)、HFS(苹果公司的Macintosh)、AFFS(Amiga公司的快速文件系统)以及ADFS(Acorn 公司的磁盘文件归档系统)。
  • 起源于非Linux系统的其他日志文件系统,如IBM的JFS和SGI的XFS。

上述整理的文件系统相对年代较老,且很多都发展成熟被广泛使用(ext2,ext4,NTFS)。近几年,针对SSD的文件系统(F2FS),以及针对持久化内存设备的内存文件系统(BPFS,PMFS,NOVA),甚至针对混合介质的文件系统(Strata- SOSP’17)都取得了突破性进展。


网络文件系统

这些文件系统允许轻易地访问属于其他网络计算机文件系统所包含的文件

著名的网络文件系统有:NFS、Coda、AFS(Andrew文件系统)、CIFS(用于Microsoft Windows的通用网络文件系统)以及NCP(Novell公司的NetWareCore Protocol)。

 

特殊文件系统

这些文件系统不管理本地或者远程磁盘空间。/proc、/sys、/dev等文件系统是特殊文件系统的一个典型范例。可以看到,一些在windows中不是文件的东西, 比如进程(/proc), 磁盘(/dev), 也被抽象成了文件. 你可以使用访问文件的方法访问它们获得信息。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值