• 第34天-文件_system (2013.09.04)


      1.推荐书籍 《编程珠玑》

      2.磁盘碎片整理 : 本质是整理块

      3.对目录 :

            r  : 浏览子文件夹和文件  ls

            w : 创建和删除子文件夹和文件  mkdir  touch  rm rmdir mv

            x  : 进入该目录      cd

      4.磁盘是一种顺序的存储介质

      5.磁盘分区格式化成ext2文件系统后的存储布局:

    Boot Block (启动块)  Block group0(块组)   Block group n(块组)

        Block group0分布

    Super Block(超级块) Group Descriptor Table(块组描述符表)   Block Bitmap(块位图) inode Bitmap(位图) inode Table(表) Data Blocks(数据块)

          super Block : 描述整个分区的文件系统信息

          GDT : 由很多块组描述符组成,整个分区分成多少个块组就对应有多少个块组描述符(块组描述符表在每个块组的开头也都有一份拷贝)

          Block Bitmap : (数据块存储所有文件的数据), 块位图就是用来描述整个块组中哪些块已用哪些块空闲的

                  提示: df :命令统计整个磁盘的已用空间非常快,因为它只需要查看每个块组的块位图即可。du则需要搜索遍整个空间,比较慢。

                  扩展: mke2fs 格式化命令 -b 参数指定大小

                              -g 参数可以手动指定一个块组有多少个块

                              -i 参数可以手动指定每多少字节分配一个inode

          inode Bitmap : 本身占一个块,其中每个bit 表示一个inode是否空闲可用

          inode 表 : 存储文件信息, 每个文件都有一个inode, 一个块组中的所有的inode组成了inode表

          数据块 :存储文件内容

              该目录下的所有文件夹名和目录名存储在数据块中。

              对于符号链接,如果目标路径名较短则直接保存在inode中以便更快地查找,如果目标路径较长则分配一个数据块来保存。

              设备文件.FIFO和socket等特殊文件么有数据块,设备文件的主设备号和次设备号保存在inode中

      6.硬链接个数 :   文件最少1个, 目录最少2个

        互为硬链接的两个文件占用同一个inode

      7.实例 :

          1.首先创建一个1MB的文件并清零

              dd if=/dev/zero of=fs count=256 bs=4k

          2.对文件进行格式化 (把这个文件的数据块合起来看成一个1MB的磁盘分区, 在这个分区上再划分出块组)

              mke2fs fs

          3.用dumpe2fs工具可以查看这个分区的超级块和块组描述符表中的信息

              dumpe2fs fs

          4.把常规文件制作而成的文件系统也可以像磁盘分区一样mount到某个目录

              sudo mount -o loop fs /mnt

              卸载挂载

              sudo umount /mnt

          扩展 : 光盘 : iso9660    harddisk : ntfs, vfat  u盘

      8.目录中的文件型编码

    0 Unknown
    1 Regular file
    2 Directory
    3 Character device
    4 Block device
    5 Named pipe
    6 Socket
    7 Symbolic link

      9.使用man2 查看 stat   access  ,chmod,  chown,   utime, mtime, atime,   link, unlink,  rename,  readlink,  mkdir, rmdir,   opendir, readdir, closedir

        10.英语 ;  pipe(管)  bitmap(位图)  table(表)

  • 相关阅读:
    DDD~大话目录
    基于DDD的.NET开发框架-DDD经典分层
    补习知识:Entity Framework Code First属性映射约定
    一个官翻教程集合:ASP.NET Core 和 EF Core 系列教程
    补知识:EntityFramework Core映射关系详解
    关于this的问题
    promise
    js的类型转换
    不要在块内声明一个函数
    let和var
  • 原文地址:https://www.cnblogs.com/cxw825873709/p/3301815.html
Copyright © 2020-2023  润新知