windows访问ext4文件系统_Linux的文件系统的基本原理及常见类型

在计算机出现之前其实就有文件系统的概念了,此时的文件系统是指用于管理(存储和检索等)纸质文件的系统。计算机及发明后,文件系统逐渐专指用于管理存储介质的系统。它通过简单的接口给用户,方便用户使用存储设备。

5bf29d3cd3eb4b6f158fb87183269e91.png

Linux操作系统下的文件系统基本上也是如此。当我们进入Linux操作系统时,首先看到的是各种类型的目录(参考一篇文章学会Linux系统目录管理)和各种文件。Linux有个理念就是“一切皆文件”,在Linux操作系统中几乎所有资源都是以文件的形式呈现的。比如磁盘是文件,套接字是文件,系统配置项也是文件。所有这些内容在Linux都是通过文件系统来管理的。

在操作系统中,文件系统的概念得到了延伸。Linux的文件系统分为两类,一类是真实的文件系统,用于存储数据;另一类是伪文件系统,这些文件系统并不会持久化数据。今天我们将对Linux下的文件系统进行整体的介绍,让大家对文件系统有个概括的了解。

文件系统的使用

在Linux操作系统中文件系统的使用是非常简单的。如果使用的是Ubuntu等有图形界面的操作系统,那么我们可以通过GUI浏览文件系统。这个跟使用Windows和Mac OS操作系统很像。从用户角度来看,文件系统的文件被组织成树形结构。用户可以自由的创建目录和文件。

d7b2722447bd4aea1b9c8572dd3783db.png

但是如果是命令行的系统,那么就没有图形界面方便了。但是,从组织形式上来说,也是树形结构。只不过没有那么直观。如图我们通过tree命令可以看到文件系统的内容及结构。

ea9b78fd24a1bf7346d8d9271f43ddc5.png

当然,上面说的都是文件系统已经挂载的场景。有些情况下我们有一个新的磁盘,但并没有挂载,这个时候怎么才能使用这块磁盘呢?方法也是非常简单的,只需要做如下几步:

  1. 格式化磁盘,由于Linux支持很多种文件系统,我们在使用磁盘之前需要使用某种文件系统进行格式化。比如格式化为Ext4文件系统,mkfs.ext4 /dev/sdc。

  2. 挂载文件系统,格式化后并不能马上使用,需要挂载到目录树上才可以使用。具体命令是mount /dev/sdc /mnt/ext4_test。

完成上述步骤后,/mnt/ext4_test目录就是新磁盘的根目录了,我们可以在其中创建子目录或者新文件了。从普通用户的角度来看,它只是一个子目录,并不会感知到其是一个新的磁盘,或者文件系统的具体类型。这一点与Windows有比较大的差异。

文件系统的基本原理

在操作系统层面,文件系统是其最关键的子系统之一,其核心功能是对存储资源的管理。也就是说文件系统是对磁盘(还包括光盘或者磁带等其它类型的存储介质)的空间进行管理的。文件系统对磁盘空间的管理其实还是比较简单的,就是将大的磁盘空间切割为很小的区域(例如4KB),然后通过对这些小区域的分配和释放来使用磁盘空间。

虽然文件系统是一个树形结构,但是磁盘本身的空间却是一个扁平的线性存储空间。以Ext4为例,文件系统将磁盘划分为若干个块组,每个块组又划分为若干磁盘块(可以在格式化时指定,默认是1KB)。

8b3284aed92c41e6c38cd77ae2357c2b.png

为了管理这些磁盘块,总是需要一些区域来记录哪些磁盘块已经被使用了,哪些还没有被使用。记录这些数据的数据通常在磁盘的特殊区域,我们称这些数据为文件系统的元数据。通过这些元数据文件系统实现了对磁盘空间的管理,最终为用户提供了简单易用的接口(使用接口,非API)。

文件系统的分类

前文我们介绍了基于存储介质的本地文件系统,对其基本原理也做了介绍。其实文件系统发展到现在,其种类也丰富多样。比如基于磁盘的普通本地文件系统除了Ext4外,还包括XFS、ZFS和Btrfs等等。其中Btrfs和ZFS不仅仅可以管理一块磁盘,还可以实现多块磁盘的管理,同时实现数据的冗余管理,这样可以避免磁盘故障导致的数据丢失。

另一个方面,除了对磁盘数据管理的文件系统外,还有一些网络文件系统。也就是说,这些文件系统看似在本地,但其实数据是在远程的专门的设备上。客户端是通过一些网络协议实现数据的传输的。比如NFS和GlusterFS等等文件系统。

几十年的发展,文件系统的种类也非常多,我们没有办法一一进行介绍。今天我们就按照大类对主要的文件系统进行介绍,不足之处还请指教。

本地文件系统


本地文件系统是对磁盘空间进行管理的文件系统。从呈现形态上来看,文件系统就是一个树形的目录结构。前面我们已经介绍了比较多的概念,其本质上就是实现对磁盘空间的管理,实现磁盘线性空间与目录结构的转换。

9de8ff95d313bcd656fd1708719d4ef8.png

从普通用户的角度来说,主要方便了对磁盘空的使用,降低了使用难度,提高了利用效率。常见的本地文件系统有Ext4、Btrfs、XFS和ZFS等等。

伪文件系统


伪文件系统是对传统文件系统的延伸。伪文件系统并不会持久化数据,而是在内存中的文件系统。它以文件系统的形态实现用户与内核数据的交互。比如我们常见的伪文件系统包括proc、sysfs和configfs等等。

在Linux操作系统中伪文件系统主要实现内核与用户态的交互。比如获取IPv4协议的参数,我们只需要

网络(分布式)文件系统


网络文件系统是一种将数据存储在远端的文件系统。网络文件系统通常分为客户端和服务端,其中客户端类似本地文件系统,而服务端则是对数据进行管理的系统。网络文件系统的使用与本地文件系统没有任何差别,只需要执行mount命令挂载即可。网络文件系统种类也很多,比如NFS、CephFS和Gluster等。

在用户层面,完成挂载后的网络文件系统与本地文件系统完全一样,看不出任何差异,对用户是透明的。网络文件系统就好像将远程的文件系统映射到了本地。

1d75aa501afcd15d3d0e7e5ff15bea5e.png

如图是将文件系统服务中文件系统映射到客户端的示意图。从用户的角度只是某个子目录,但实际上读写请求需要通过网络转发到服务端进行处理。

集群文件系统

集群文件系统也是一种本地文件系统。与普通本地文件系统的差异在于其后端磁盘通常是基于网络的SAN设备,且在多个节点共享(非绝对)。集群文件系统可以实现多个节点对磁盘介质的共同访问。

97960101c928350258139fc3795d7492.png

同时,对于集群文件系统来说,其最大的特点是多个结点可以同时为应用层提供文件系统服务。这种常见特别适合用于应用业务多活的场景,通过集群文件系统提供高可用集群机制,避免宕机造成的服务失效情况。

今天的内容先到这里,关于文件系统的更多,更详细的内容请关注本号及本专栏,我们后续会更加详细的介绍。

     文章后期可能会进行错误更正和内容更新,关注我们更方便了解内容变化。

c9ec5aab45c19e5cf6a134a5b7637f2a.png 6cf6cb727a60b46c5905cca12bada031.png这是一个有温度的公众号 ac678a42ca9bf205926865f9d45222e0.png
可以读写Ext2,以Ext2方式挂载Ext3文件系统(不支持Ext3日志),不支持中文! It provides Windows NT4.0/2000/XP/2003/Vista/2008 with full access to Linux Ext2 volumes (read access andwrite access). This may be useful if you have installed both Windows and Linux as a dual boot environment on your computer. What features are supported? Complete reading and writing access to files and directories of volumes with theExt2 orExt3 file system. Supports features which are specific to the I/O-system of Windows: Byte Range Locks, Directory Notfication (so the Explorer updates the view of a directory on changes within that directory), Oplocks (so SMB clients are able to cache the content of files). Allows Windows to run with paging files on Ext2 volumes. UTF-8 encoded file names are supported. The driver treats files with file names that start with a dot "." character ashidden. Supports GPT disks if the Windows version used also does. Supports use of the Windows mountvol utility to create or delete drive letters for Ext2 volumes (except on Windows NT 4.0). See also section"Can drive letters also be configured from scripts?". What features are *not* supported? Inodes that are larger than 128 bytes are not supported. Access rights are not maintained. All users can access all the directories and files of an Ext2 volume. If a new file or directory is created, it inherits all the permissions, the GID and the UID from the directory where it has been created. There is one exception to this rule: a file (but not a directory) the driver has created always has cleared "x" permissions, it inherits the "r" and the "w" permissions only. See also section"What limitations arise from not maintaining access rights?". The driver does not allow accessing special files at Ext2 volumes, the access will be always denied. (Special files are sockets, soft links, block devices, character devices and pipes.) Alternate 8.3-DOS names are not supported (just because there is no place to store them in an Ext2 file system). This can prevent legacy DOS applications, executed by the NTVDM of Windows, from accessing some files or directories. Currently the driver does not implement defragging support. So defragmentation applications will neither show fragmentation information nor defragment any Ext2 volume. This software does not achieve booting a Windows operating system from an Ext2 volume. LVM volumes are not supported, so it is not possible to access them.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值