当前位置: 首页 > news >正文

如何做外国网站销售成都建设规划网站

如何做外国网站销售,成都建设规划网站,自主建站系统,网站推广网站制作网站建设公司原标题#xff1a;浅析Linux文件系统一、文件系统层次分析由上而下主要分为用户层、VFS层、文件系统层、缓存层、块设备层、磁盘驱动层、磁盘物理层用户层最上面用户层就是我们日常使用的各种程序#xff0c;需要的接口主要是文件的创建、删除、打开、关闭、写、读等。VFS层我…原标题浅析Linux文件系统一、文件系统层次分析由上而下主要分为用户层、VFS层、文件系统层、缓存层、块设备层、磁盘驱动层、磁盘物理层用户层最上面用户层就是我们日常使用的各种程序需要的接口主要是文件的创建、删除、打开、关闭、写、读等。VFS层我们知道Linux分为用户态和内核态用户态请求硬件资源需要调用System Call通过内核态去实现。用户的这些文件相关操作都有对应的System Call函数接口接口调用VFS对应的函数。文件系统层不同的文件系统实现了VFS的这些函数通过指针注册到VFS里面。所以用户的操作通过VFS转到各种文件系统。文件系统把文件读写命令转化为对磁盘LBA的操作起了一个翻译和磁盘管理的作用。缓存层文件系统底下有缓存Page Cache加速性能。对磁盘LBA的写数据缓存到这里。块设备层块设备接口Block Device是用来访问磁盘LBA的层级读写命令组合之后插入到命令队列磁盘的驱动从队列读命令执行。Linux设计了电梯算法等对很多LBA的读写进行优化排序尽量把连续地址放在一起。磁盘驱动层磁盘的驱动程序把对LBA的读写命令转化为各自的协议比如变成ATA命令SCSI命令或者是自己硬件可以识别的自定义命令发送给磁盘控制器。Host Based SSD甚至在块设备层和磁盘驱动层实现了FTL变成对Flash芯片的操作。磁盘物理层读写物理数据到磁盘介质。二、文件系统结构与工作原理我们都知道windows文件系统主要有fat、ntfs等而linux文件系统则种类繁多主要有VFS做了一个软件抽象层向上提供文件操作接口向下提供标准接口供不同文件系统对接下面主要就以EXT4文件系统为例讲解文件系统结构与工作原理上面两个图大体呈现了ext4文件系统的结构从中也相信能够初步的领悟到文件系统读写的逻辑过程。下面对上图里边的构成元素做个简单的讲解引导块为磁盘分区的第一个块记录文件系统分区的一些信息引导加载当前分区的程序和数据被保存在这个块中。一般占用2KB。超级块超级块用于存储文件系统全局的配置参数(譬如块大小总的块数和inode数)和动态信息(譬如当前空闲块数和inode数)其处于文件系统开始位置的1k处所占大小为1k。为了系统的健壮性最初每个块组都有超级块和组描述符表(以下将用GDT)的一个拷贝但是当文件系统很大时这样浪费了很多块(尤其是GDT占用的块多)后来采用了一种稀疏的方式来存储这些拷贝只有块组号是3, 5 ,7的幂的块组(譬如说1,3,5,7,9,25,49…)才备份这个拷贝。通常情况下只有主拷贝(第0块块组)的超级块信息被文件系统使用其它拷贝只有在主拷贝被破坏的情况下才使用。块组描述符GDT用于存储块组描述符其占用一个或者多个数据块具体取决于文件系统的大小。它主要包含块位图inode位图和inode表位置当前空闲块数inode数以及使用的目录数(用于平衡各个块组目录数)具体定义可以参见ext3_fs.h文件中struct ext3_group_desc。每个块组都对应这样一个描述符目前该结构占用32个字节因此对于块大小为4k的文件系统来说每个块可以存储128个块组描述符。由于GDT对于定位文件系统的元数据非常重要因此和超级块一样也对其进行了备份。GDT在每个块组(如果有备份)中内容都是一样的其所占块数也是相同的。从上面的介绍可以看出块组中的元数据譬如块位图inode位图,inode表其位置不是固定的当然默认情况下文件系统在创建时其位置在每个块组中都是一样的如图2所示(假设按照稀疏方式存储且n不是3,5,7的幂)块组每个块组包含一个块位图块一个 inode 位图块一个或多个块用于描述 inode 表和用于存储文件数据的数据块除此之外还有可能包含超级块和所有块组描述符表(取决于块组号和文件系统创建时使用的参数)。下面将对这些元数据作一些简要介绍。块位图块位图用于描述该块组所管理的块的分配状态。如果某个块对应的位未置位那么代表该块未分配可以用于存储数据否则代表该块已经用于存储数据或者该块不能够使用(譬如该块物理上不存在)。由于块位图仅占一个块因此这也就决定了块组的大小。Inode位图Inode位图用于描述该块组所管理的inode的分配状态。我们知道inode是用于描述文件的元数据每个inode对应文件系统中唯一的一个号如果inode位图中相应位置位那么代表该inode已经分配出去否则可以使用。由于其仅占用一个块因此这也限制了一个块组中所能够使用的最大inode数量。Inode表Inode表用于存储inode信息。它占用一个或多个块(为了有效的利用空间多个inode存储在一个块中)其大小取决于文件系统创建时的参数由于inode位图的限制决定了其最大所占用的空间。以上这几个构成元素所处的磁盘块成为文件系统的元数据块剩余的部分则用来存储真正的文件内容称为数据块而数据块其实也包含数据和目录。了解了文件系统的结构后接下来我们来看看操作系统是如何读取一个文件的大体过程如下1、根据文件所在目录的inode信息找到目录文件对应数据块2、根据文件名从数据块中找到对应的inode节点信息3、从文件inode节点信息中找到文件内容所在数据块块号4、读取数据块内容到这里相信很多人会有一个疑问我们知道一个文件只有一个Inode节点来存放它的属性信息那么你可能会想如果一个大文件那它的block一定是多个的且可能不连续的那么inode怎么来表示呢,下面的图告诉你答案:也就是说如果文件内容太大对应数据块数量过多inode节点本身提供的存储空间不够会使用其他的间接数据块来存储数据块位置信息最多可以有三级寻址结构。到这里应该都已经非常清楚文件读取的过程了那么下面再抛出两个疑问1、文件的拷贝、剪切的底层过程是怎样的2、软连接和硬连接分别是如何实现的下面来结合stat命令动手操作一下便知真相1)拷贝文件创建一个新的inode节点并且拷贝数据块内容2)剪切文件同个分区里边mvinode节点不变只是更新目录文件对应数据块里边的文件名和inode对应关系跨分区mv则跟拷贝一个道理需要创建新的inode因为inode节点不同分区是不能共享的。3)软连接创建软连接会创建一个新的inode节点其对应数据块内容存储所链接的文件名信息这样原文件即便删除了重新建立一个同名的文件软连接依然能够生效。4)硬链接创建硬链接并不会新建inode节点只是links加1还有再目录文件对应数据块上增加一条文件名和inode对应关系记录只有将硬链接和原文件都删除之后文件才会真正删除即links为0才真正删除。责任编辑
http://www.sadfv.cn/news/118502/

相关文章:

  • 做电影下载网站宜兴网站建设公司
  • 顶针 东莞网站建设做网站推广的流程
  • 设计网站作品欣赏有那些网站建设银行网站登陆二星是什么意思
  • 做企业礼品的网站wordpress网页美化教程
  • 石柱县建设局网站网站建设能
  • 山西建设厅报名网站公益网站建设那家好
  • wordpress图纸管理网站大连h5开发公司
  • 佛山网站建设推广服务北京市建设工程发包承包交易中心网站
  • 购物网站建设珠海成都装修设计公司推荐
  • 网站建设预付wordpress设置默认首页
  • 长沙 网站设计 公司价格广安网站制作设计
  • 成都网站建设哪里有网站统计分析平台
  • 如何自已建网站软件开发工具的主要分类方法
  • 河北建设厅八大员报名网站可使用虚拟主机
  • 推广网站建设美食网站首页模板
  • 网站开通微信支付接口开发使用织梦系统建设网站
  • 找外包公司做网站做渔家乐哪个网站最好
  • 旅游电子商务网站建设费用铭泰东莞网站建设
  • 手机如何创建网站网站会员方案
  • 企业所得税计算公式2022seo外链推广员
  • 自贡北京网站建设网页做成软件
  • 太原市建设工程交易中心网站wdcp更改网站域名
  • 辽宁网站设计电脑网站
  • 淮安网站建设制作销售网站怎么做的
  • 网站的开发与建设哪个网站可以直接做ppt
  • 优化教程网站推广排名wordpress 帝国cmd
  • 山东青岛网站制作公司ui设计专业
  • 青岛做模板网站的公司网站制作成品
  • 免费教育网站建设网站建设沈阳
  • 网站建设实验七网页搜索一个网站全包