zoukankan      html  css  js  c++  java
  • Linux 文件的详解[分类/扩展名/inode/block]

    关于Linux文件的介绍


        Linux里文件扩展名和文件类型没有关系,Linux系统中一切皆文件

    关于Linux文件分类


        纯文本文件(可以cat的)
        二进制文件(Linux的可执行文件等,如/bin/cp)
        数据格式文件:有程序运行过程中读取某些特定格式的文件,通过last读取(cat报乱码错误)
           wholog ==>who /var/log/wtmp
        套接口文件:socket进程之间通信用  进程数据库的通信文件
        管道文件:(不重要)
       
        附:文件类型【man find 搜索type可看 】
        image
       

    Linux文件的扩展名


            源码.tar.gz
            .sh: shell脚本文件  shell语言开发
            .pl: perl语言文件  用perl语言开发
            .py:使用python语言开发
            .html:网页文件
            .conf: 服务的配置文件
            .lock: 锁文件
            .rpm:  rpm安装包

    关于文件Inode的介绍


        Inode实际上是一个64字节的磁盘地址表。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block),然后将散列在磁盘的文件组成一个逻辑文件。
            这种由多个扇区组成的"块",是文件存取的最小单位。
            "块"的大小,最常见的是4KB,即连续八个扇区sector组成一个块block。
            操作系统读取的时候,根据磁盘地址表的顺序,一次读取块中的内容,
            stat:命令,查看某个文件的inode信息:
        1、唯一表示,内核根据此区别文件是否同一文件。Linux读取文件首先读取这个索引点。
        2、每个Linux存储设备(U盘,硬盘==> 整本书)或者存储设备的分区被格式化后使用
        3、inode的大小在文件系统被格式化后就无法更改,格式化前可以指定inode的大小
            查看分区信息-->inode大小:
                dumpe2fs /dev/sda1 | grep -i "inode size"
               

    关于文件在Linux系统的存储

        Linux文件由2部分组成【inode + block】

           第一部分是Inode(首页目录索引)
                存放数据属性[ls -l的显示结果]以及实体文件的指向;
                且文件的属性不包括文件名   

          第二部分是Block(书的每一页)
                存储数据    (上级目录存储下一级目录的文件名)
                读取文件流程:
                    1.cat file  -> 2.indoe权限校验 -->3.权限通过,访问实体的文件内容(可能有多个block)

    总结:
    inode小结:
        1.磁盘分区后生成一定数量的inode和block
        2.inode是索引节点,存放文件的属性信息以及真实的索引
        3.ext4文件系统 blocK存放真实数据
        4.inode是一块存储空间,C6是256字节
        5.inode是一串数字,且在文件中有唯一标示,内核根据此查询是否是同一文件


    block总结:
        1.磁盘读取数据都是按照block为单位读取的
        2.一个文件可能占用多个block,每读取一次都会消耗一次IO
        3.如果要提升磁盘IO的性能,就尽可能的一次性读取尽量多的数据
        4.一个block只能存放一个文件的内容,无论内容多小。
            如果block(非系统磁盘 4k) ,。那么存放1k的文件就会浪费3k
        5.block并非越大越好。block太大对于小的文件会浪费磁盘空间。
            例如,1000k的文件,block=4k,占用250个block,消耗IO为250次
                  block=1k,占用1000个block,消耗IO为1000次
        6.block的设置是在格式化分区的时候
            mkfs.ext4 -b 2048 -I 256 /dev/sdb
            ext4文件一般设置4K

  • 相关阅读:
    Django2.2中Xadmin错误集
    Asp.Net中MVC缓存详解
    【转】通用sqlserver分页存储过程
    用ASP.NET Web API技术开发HTTP接口(二)
    用ASP.NET Web API技术开发HTTP接口(一)
    关于Excel的读取
    前台取得后台返回的json数据!
    .net淘宝客基础api 分页查询
    Educational Codeforces Round 97 (Rated for Div. 2)
    Codeforces Round #668 (Div. 2)
  • 原文地址:https://www.cnblogs.com/ftl1012/p/9246805.html
Copyright © 2011-2022 走看看