繁体   English   中英

操作系统如何支持多个文件系统?

[英]How can an operating system can support multiple file systems?

我似乎找不到这个问题的答案。 我只想了解一个操作系统如何实现和运行(支持)多个文件系统?

假设有一个全局名称空间,其中所有文件和目录名称都有某种前缀来确定文件或目录来自哪个文件系统。 对于一些操作系统(DOS)的前缀可能是设备的字母(例如C:\\在开始C:\\foo\\bar.txt )。 对于其他操作系统,它可能看起来像文件路径的正常部分(例如/home /home/foo/bar.txt/开头的/home可能告诉操作系统该文件位于/home安装的文件系统中) 。

一旦操作系统弄清楚哪个文件系统包含该文件,它就可以使用文件的“全局名称”的剩余部分向文件系统询问该文件(例如,对于文件/home/foo/bar.txt它会询问安装在/home文件系统,用于文件/foo.bar.txt )。

为了实现这一点,操作系统中将内置一个层来注册文件系统,并确定要询问哪个文件系统有关哪个文件或目录(可能除了提供其他功能外 - 例如缓存目录信息和文件数据)。 通常(但并非总是),这被称为“虚拟文件系统”(或VFS)。

在引导期间,当插入新的存储设备时,将会有“某些东西”来确定要使用哪种类型的文件系统以及如何将其添加到全局名称空间。 这可以包括自动检测(例如,来自存储设备上的分区表条目),用于可移动介质的一组规则,和/或配置文件( /etc/fstab )。

文件系统的基本功能是提供映射以将虚拟块转换为逻辑块(或者在几天内,物理块)。 对于文件系统,操作系统必须实现转换系统,该转换系统将文件的虚拟块N转换为磁盘上的逻辑块Q.

没有什么能阻止操作系统具有多个子系统,以便以与多个文件系统相对应的不同方式执行该转换。

大多数操作系统都有某种MOUNT命令,它告诉操作系统连接到磁盘并确定它具有哪种文件系统。 在安装过程中,操作系统选择要使用的适当的虚拟到逻辑转换软件。

操作系统从一开始就支持多个文件系统。 在这些日子里,除了磁盘之外,还有9轨磁带和自己的文件系统。 操作系统也必须支持这些。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM