B+树在NTFS文件系统中的应用

flyfish 2015-7-6

卷(volume)

NTFS的结构首先从卷開始。

卷相应于磁盘上的一个逻辑分区,当你将一个磁盘或者磁盘的一部分格式化成NTFS,卷将被创建起来。

一个磁盘能够有一个卷或好几个卷.NTFS独立的处理每个卷。

卷相应的就是C盘,D盘,E盘等。

簇(cluster)

在一个NTFS卷中,簇的大小,或者说簇因子(cluster factor),是在磁盘管理程序MMC载入件格式化该卷的时候建立起来的。默认的簇因子随着卷大小的不同而不同,但它是物理扇区的整数倍。并且总是2的幂。(1个扇区,2个扇区,4个扇区,8个扇区)以此类推。

簇因子被表示成一个簇中的字节数,比方512字节 1KB或者2KB。

硬盘的读写以扇区为基本单位。NTFS的读写以簇为基本单位。

NTFS在内部仅仅引用到簇一级,NTFS使用簇作为它的分配单位,从而保持它与物理扇区大小之间的独立性。

逻辑簇号(Logical Cluster Number。LCN)

LCN是从一个卷的開始直到结束的全部簇的一个编号。

NTFS依赖于逻辑号(LCN)来引用物理位置。

获取物理磁盘地址方法

LCN乘以簇因子。从而得到卷上的物理字节偏移量。

虚拟簇号(Virtual Cluster Number。VCN)

VCN对同属一个文件的全部簇进行编号,从0到m。NTFS依赖于虚拟簇号(VCN)来引用一个文件内部的数据。

VCN不必是物理上连续的。它们能够被映射到该卷上的不论什么LCN编号。

主文件表(Master File Table)

MFT是NTFS卷结构的核心所在。

涉及到B+树。

结构例如以下

引用自《深入解析Windows操作系统》

B+树在NTFS文件系统中的应用的更多相关文章

  1. 详解NTFS文件系统

    一.分析NTFS文件系统的结构 当用户将硬盘的一个分区格式化为NTFS分区时,就建立了一个NTFS文件系统.NTFS文件系统同FAT32文件系统一样,也是用“簇”为存储单位,一个文件总是占用一个或多个 ...

  2. NTFS文件系统详细分析

    NTFS文件系统详细分析 第一部分 什么是NTFS文件系统 想要了解NTFS,我们首先应该认识一下FAT.FAT(File   Allocation   Table)是“文件分配表”的意思.对我们来说 ...

  3. NTFS文件系统简介(转载)

    原文地址:http://www.cnblogs.com/watertao/archive/2011/11/28/2266595.html 1.简介 NTFS(New Technology File S ...

  4. NTFS 文件系统解析

    1. windows 下磁盘文件读写 下面是读取D:\磁盘上的第0扇区 512 Bytes CreateFile()打开磁盘,获取文件句柄: SetFilePointer()设置读写的位置: Read ...

  5. NTFS文件系统简介

    原文地址:http://www.cnblogs.com/watertao/archive/2011/11/28/2266595.html 1.简介 NTFS(New Technology File S ...

  6. linux如何编译安装新内核支持NTFS文件系统?(以redhat7.2x64为例)

    内核,是一个操作系统的核心.它负责管理系统的进程.内存.设备驱动程序.文件和网络系统,决定着系统的性能和稳定性.Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新.新的内核修订了旧内核 ...

  7. B树在数据库索引中的应用剖析

    引言 关于数据库索引,google一个oracle index,mysql index总 有大量的结果,其中很多的使用方法推荐,**索引之n条经典建议云云.笔者认为,较之借鉴,在搞清楚了自己的需求的基 ...

  8. 使用hexdump工具追踪EXT4文件系统中的一个文件

    昨天追踪EXT4文件系统的过程中出了点问题,就是找不到文件,于是试了一下追踪FAT32文件系统的,成功之后有了点信心,今天继续嗑EXT4文件系统,终于找到啦,记录一下. 操作系统:linux(cent ...

  9. Linux系统挂载NTFS文件系统

     今天尝试并成功的将一块500G的移动硬盘挂载到了RHEL5的系统上,甚感欣慰.想到也许以后自己或其他同学们会有类似经历,于是尽量细致的记录于此.     无论是一块安装了Windows/Linu ...

随机推荐

  1. dos command

    dos command md 创建目录 rd 删除目录 cd\ 返回到根目录 cd.. 返回到上一级目录 cd 进入指定目录 dir 列出当前目录下的文件夹及文件 echo 文件内容>文件名称. ...

  2. Piston Pump Manufacturers - Mobile Cartridge Piston Pump: Advantages

    The    Piston Pump Manufacturers   states that the operation of any piston pump is based on the rela ...

  3. 提高CPU使用率

    某些特殊时候,需要提升下cpu的利用率,此时……………………需要一个极其简单的脚本来完成! #!/bin/bash while (true);do { for i in $(seq 100000 10 ...

  4. rails使用bootstrap

    在Gemfile文件中添加'bootstrap-sass',再运行bundle install gem 'bootstrap-sass' 在config/application.rb添加一行代码,让b ...

  5. 单点登录-CAS

    使用插件 phpCAS ,插件链接:https://github.com/apereo/phpCAS 1. CAS 单点登录流程及插件的API的简介 图片链接来源于wiki:https://wiki. ...

  6. 【HIHOCODER 1033 】 交错和(数位DP)

    描述 输入 输入数据仅一行包含三个整数,l, r, k(0 ≤ l ≤ r ≤ 1018, |k| ≤ 100). 输出 输出一行一个整数表示结果,考虑到答案可能很大,输出结果模 109 + 7. 提 ...

  7. POJ 1463 Strategic game(树形DP入门)

    题意: 给定一棵树, 问最少要占据多少个点才能守护所有边 分析: 树形DP枚举每个点放与不放 树形DP: #include<cstdio> #include<iostream> ...

  8. asp网页无法打开

    环境:Window 2003.IIS6.Framework1.1 .VS2003 一个WebForm项目里面包含一些asp网页  运行后发现asp页面无法访问 提示:无法找到该页 解决方案: 1. [ ...

  9. Leetcode 235.二叉搜索树的公共祖先

    二叉搜索树的公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个结点 p.q,最近公共祖先表示为一个结点 x,满足 ...

  10. mysql 分段统计数据

    一个简单的分段统计的问题:student 表{id,name,score} 字段,统计各个分数段的人数.规则:60以下不及格,60-80良,80-100优. SELECT sum(CASE when ...