zoukankan      html  css  js  c++  java
  • (转)文件系统 节点 inode

    原文:http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=47541&highlight=&page=2

    文件系统大小限制

    我觉得首先弄明白:为什么要引入”inode“,它的作用是什么?
    引用下面一片短文《索引节点inode》

       Linux为每个文件分配一个称为索引节点的号码inode,可以将inode简单理解成一个指针,它永远指向本文件的具体存储位置。系统是通过索引节点(而不是文件名)来定位每一个文件。例如:假设我们在硬盘当前目录下建立了一个名为mytext文本文件,其内容只有一行:This is my file.当然这行文字一定是存储在磁盘数据区某个具体位置里(物理上要通过磁头号、柱面号和扇区号来描述,在本例中假设分别是1、20、30)。假设其inode是262457,那么系统通过一段标准程序,就能将这个inode转换成存放此文件的具体物理地址(1磁头、20柱面、30扇区),最终读出文件的内容:“This is my file.”
    所以inode是指向一个文件数据区的指针号码,一个inode对应着系统中唯一的一片物理数据区,而位于两个不同物理数据区的文件必定分别对应着两个不同的inode号码。
       文件拷贝命令: # cp /home/zyd/mytext newfile 在当前工作目录建立了一个新文件newfile,其实际操作主要包括如下三步:
       1、在当前目录中增加一个目录项,其文件名域填入newfile,并分配了一个新的inode,假设是262456。
       2、将原文件(在1磁头、20柱面、30扇区)的内容复制了一份到新的空闲物理块(假设是1磁头、20柱面、31扇区)。
       3、填写一些其他关键信息,使系统通过这些信息及inode号码可以完成物理地址的转换。
       所以文件复制要分配新的inode和新的数据区,虽然两个文件的内容是一样的。

        一个文件系统允许的inode节点数是有限的,如果文件数量太多,即使每个文件都是0字节的空文件,系统最终也会因为节点空间耗尽而不能再创建文件。所以当发现不能建立文件时首先要考虑硬盘数据区是否还有空间(可通过du命令),其次还得检查节点空间。
        Linux之所以能支持多种文件系统,其实是由于Linux提供了一个虚拟文件系统VFS,VFS作为实际文件系统的上层软件,掩盖了实际文件系统底层的具体结构差异,为系统访问位于不同文件系统的文件提供了一个统一的接口。实际上许多文件系统并不具备inode结构,其目录结构也和以上的讨论不同,但通过VFS,系统均为其提供了虚拟一致的inode和目录项结构。所以,'ls -il'命令实际显示的inode应该是VFS inode,也就是说,inode是存在于内存中的数据结构,而不一定是实际的硬盘结构。但为Linux量身定做的ext2文件系统具备实际的inode和连接型目录项结构

    但也由几个问题拿捏不准,希望得到确切答复:
    1、jfs逻辑上是不是也可以理解为这种结构?
       引导块+超级块+索引节点表+数据块
    2、nbpi是不是文件分配中最小的逻辑单元?
    3、假设某个文件对应的节点号为n,大小为2.5个nbpi,那么下个可供顺序分配的节点号是不是n+3,是不是第n+2个节点对应的nbpi中约有一半的空间闲置?

    续:

    原文:http://hi.baidu.com/meizhe/item/237499720d2de9295d178956

    文件系统限制
    NTFS(Windows):支持最大分区2TB,最大文件2TB
    FAT16(Windows):支持最大分区2GB,最大文件2GB
    FAT32(Windows):支持最大分区128GB,最大文件4GB

    Ext2
    最大文件大小: 1TB
    最大文件极限: 仅受文件系统大小限制
    最大分区/文件系统大小: 4TB
    最大文件名长度: 255 字符
    缺省最小/最大块大小: 1024/4096 字节
    缺省inode分配: 每4096字节为1
    在强制FS检查前的最大装载: 20(可配置)

    Ext3
    最大文件大小: 1TB
    最大文件极限: 仅受文件系统大小限制
    最大分区/文件系统大小: 4TB
    最大文件名长度: 255 字符
    缺省最小/最大块大小: 1024/4096 字节
    缺省inode分配: 每4096字节为1
    在强制FS检查前的最大装载: 20(可配置)

    ReiserFS
    最大文件大小: 1TB
    最大文件极限: 32k目录,42亿文件
    最大分区/文件系统大小: 4TB
    最大文件名长度: 255 字符

    JFS
    最小文件系统大小 16 MB
    最大文件大小: 受体系结构限制
    最大文件极限: 受文件系统大小限制
    缺省最小/最大块大小: 1024/4096 字节
    缺省inode分配: 动态

  • 相关阅读:
    c# asp.net 鼠标改变控件坐标位置,更改控件坐标,注册表保存读取,打印,查找局域网内打印机等等收集
    jquery,extjs中的extend用法小结
    JavaScript创建Map对象(转)
    ExtJS与jQuery的一点细节上的对比
    jQuery 的原型关系图,整体把握jQuery
    github网站介绍、并使用git命令管理github(详细描述)
    1.移植3.4内核-分析内核启动过程,重新分区,烧写jffs2文件系统
    6.移植uboot-支持yaffs烧写,打补丁
    5.移植uboot-设置默认环境变量,裁剪,并分区
    4.移植uboot-使uboot支持DM9000网卡
  • 原文地址:https://www.cnblogs.com/yinsua/p/3477885.html
Copyright © 2011-2022 走看看