2023Linux文件系统挂装与高层体系结构_第1页
2023Linux文件系统挂装与高层体系结构_第2页
2023Linux文件系统挂装与高层体系结构_第3页
2023Linux文件系统挂装与高层体系结构_第4页
2023Linux文件系统挂装与高层体系结构_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第页2023Linux文件系统挂装与高层体系结构Linux文件系统挂装与高层体系结构

WindowsXP昂扬的价格和升级收费政策使更多企业和个人用户转向自由开放的Linux操作系统,目标雇主群会快速增长。下面是我整理的关于Linux文件系统挂装与高层体系结构,希望大家仔细阅读!

文件系统体系结构

既然已经看到了文件系统的构造方法,现在就看看Linux文件系统层的体系结构。本文从两个角度考察Linux文件系统。首先采纳高层体系结构的角度。然后进行深层次探讨,介绍实现文件系统层的主要结构。

高层体系结构

尽管大多数文件系统代码在内核中(后面探讨的用户空间文件系统除外),但是图1所示的体系结构显示了用户空间和内核中与文件系统相关的主要组件之间的关系。

图1.Linux文件系统组件的体系结构

用户空间包含一些应用程序(例如,文件系统的运用者)和GNUC库(glibc),它们为文件系统调用(翻开、读取、写和关闭)供给用户接级块(superblock)、inode、dentry和文件。超级块在每个文件系统的根上,超级块描述和维护文件系统的状态。文件系统中管理的每个对象(文件或书目)在Linux中表示为一个inode。inode包含管理文件系统中的对象所需的全部元数据(包括可以在对象上执行的操作)。另一组结构称为dentry,它们用来实现名称和inode之间的映射,有一个书目缓存用来保存最近运用的dentry。dentry还维护书目和文件之间的关系,从而支持在文件系统中移动。最终,VFS文件表示一个翻开的文件(保存翻开的文件的状态,比方写偏移量等等)。

根本的文件系统体系结构

Linux文件系统体系结构是一个对困难系统进行抽象化的好玩例子。通过运用一组通用的API函数,Linux可以在很多种存储设备上支持很多种文件系统。例如,read函数调用可以从指定的文件描述符读取肯定数量的字节。read函数不了解文件系统的类型,比方ext3或NFS。它也不了解文件系统所在的存储媒体,比方ATAttachmentPacketInterface(ATAPI)磁盘、Serial-AttachedSCSI(SAS)磁盘或SerialAdvancedTechnologyAttachment(SATA)磁盘。但是,当通过调用read函数读取一个文件时,数据会正常返回。本文讲解这个机制的实现方法并介绍Linux文件系统层的主要结构。

什么是文件系统?

首先答复最常见的问题,;什么是文件系统;。文件系统是对一个存储设备上的数据和元数据进行组织的机制。由于定义如此宽泛,支持它的代码会很有意思。正如前面提到的,有很多种文件系统和媒体。由于存在这么多类型,可以预料到Linux文件系统接口实现为分层的.体系结构,从而将用户接口层、文件系统实现和操作存储设备的驱动程序分隔开。

挂装

在Linux中将一个文件系统与一个存储设备关联起来的过程称为挂装(mount)。运用mount吩咐将一个文件系统附着到当前文件系统层次结构中(根)。在执行挂装时,要供给文件系统类型、文件系统和一个挂装饰。

为了说明Linux文件系统层的功能(以及挂装的方法),我们在当前文件系统的一个文件中创立一个文件系统。实现的方法是,首先用dd吩咐创立一个指定大小的文件(运用/dev/zero作为源进行文件复制)--换句话说,一个用零进行初始化的文件,见清单1。

清单1.创立一个经过初始化的文件

1.$ddif=/dev/zeroof=file.imgbs=1kcount=10000

2.10000+0recordsin

3.10000+0recordsout

4.$

现在有了一个10MB的file.img文件。运用losetup吩咐将一个循环设备与这个文件关联起来,让它看起来像一个块设备,而不是文件系统中的常规文件:

1.$losetup/dev/loop0file.img

2.$

这个文件现在作为一个块设备出现(由/dev/loop0表示)。然后用mke2fs在这个设备上创立一个文件系统。这个吩咐创立一个指定大小的新的ext2文件系统,见清单2。

清单2.用循环设备创立ext2文件系统

1.$mke2fs-c/dev/loop010000

2.mke2fs1.35(28-Feb-2004)

3.max_blocks1024000,rsv_groups=1250,rsv_gdb=39

4.Filesystemlabel=

5.OStype:Linux

6.Blocksize=1024(log=0)

7.Fragmentsize=1024(log=0)

8.2512inodes,10000blocks

9.500blocks(5.00%)reservedforthesuperuser

10

11.$

运用mount吩咐将循环设备(/dev/loop0)所表示的file

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论