首页 > 系统相关 >linux随笔系列6----文件系统

linux随笔系列6----文件系统

时间:2023-08-04 17:46:30浏览次数:43  
标签:文件 filesystem 文件系统 bitmap ---- linux inode block

文件系统

q1: 文件系统类型有那么多,那么linux如何管理和认知它们的呢?

整个 Linux 认识的 filesystem 其实都是 VFS 在进行管理,我们使用 者并不需要知道每个 partition 上头的 filesystem 是什么~ VFS 会主动的帮我们做好读取的动作。如下图所示

 

EXT2

Ext2 文件系统中所支持的 block 大小有 1K, 2K 及 4K

Block 大小1KB2KB4KB
最大单一文件限制 16GB 256GB 2TB
最大文件系统总容量 2TB 8TB 16TB

block还有什么限制?

原则上,block 的大小与数量在格式化完就不能够再改变了(除非重新格式化);

每个 block 内最多只能够放置一个文件的数据;

如果文件大于 block 的大小,则一个文件会占用多个 block 数量;

若文件小于 block ,则该 block 的剩余容量就不能够再被使用了(磁盘空间会浪费)。

 

  • superblock

    记录filesystem相关信息

    • block 与 inode 的总量;

    • 未使用与已使用的 inode / block 数量;

    • block 与 inode 的大小 (block 为 1, 2, 4K,inode 为 128bytes 或 256bytes);

    • filesystem 的挂载时间、最近一次写入数据的时间、最近一次检验磁盘 (fsck) 的时间等文件系统的相关信息;

    • 一个 valid bit 数值,若此文件系统已被挂载,则 valid bit 为 0 ,若未被挂载,则 valid bit 为 1

  • Filesystem Description

    文件系统描述说明

  • block bitmap (区块对照表)

    block bitmap 记录的是使用与未使用的 block 号码

  • inode bitmap (inode 对照表)

    inode bitmap 记录使用与未使用的 inode 号码

  • Inode table

    • 该文件的存取模式(read/write/excute);

    • 该文件的拥有者与群组(owner/group);

    • 该文件的容量;

    • 该文件建立或状态改变的时间(ctime);

    • 最近一次的读取时间(atime);

    • 最近修改的时间(mtime);

    • 定义文件特性的旗标(flag),如 SetUID...;

    • 该文件真正内容的指向 (pointer);

 

q1:文件如果很大,inode 哪有这么多可记录的信息?

我们的系统很聪明的将 inode 记录 block 号码的区域定义为 12 个直接,一个间接, 一个双间接与一个三间接记录区

 

xfs

xfs 文件系统在资料的分布上,主要规划为三个部份,一个资料区 (data section)、一个文件系统活动登录区 (log section)以及一个实时运作区 (realtime section)

 

 

q1:磁盘分区和文件系统有啥关系?

分区是分区,对磁盘区域进行管理。文件系统是文件系统,是对文件进行管理

标签:文件,filesystem,文件系统,bitmap,----,linux,inode,block
From: https://www.cnblogs.com/hallnakulaos/p/17606598.html

相关文章

  • flask
    flask介绍安装:pip3installflask简单使用fromflaskimportFlaskapp=Flask(__name__)@app.route('/',methods=['GET'])defindex():return'HelloWorld'if__name__=='__main__':app.run()登陆小案例主逻辑页:......
  • 自己动手更换小米手机更换尾插小板,解决充电无声信号等问题blog
    备用机,很多年了,充电经常不好用,pdd直接购买安装首先先将手机取下卡托。接着使用工具取下后盖。其次断开小板排线,再把尾插部分螺丝卸下,取下尾插小板。......
  • Docker入门
    Docker安装自动安装使用官方脚本自动安装curl-fsSLhttps://get.docker.com|bash-sdocker--mirrorAliyun手动安装卸载旧版本$sudoyumremovedocker\         docker-client\         docker-client-latest\   ......
  • 面试题
    1、你都了解哪些编程语言,以及他们之间的区别?c/c++:大学的时候学过c语言(包含c++),很多语言的底层实现都是基于c,执行效率高,存在问题:自己得做内存管理,开辟还要销毁,对代码要求比较高,内部提供的功能少,它甚至没有字符串。很多功能都需要手动实现java:高级语言,全球应用最多,比较好......
  • phalcon总是跳到index/index问题 nginx try_files配置
    配置好测试系统后,无论怎么设置网站系统的路由(Router)系统,都不能引起分配器(dispatcher)的调用,总是调用默认的IndexController和indexAction。仔细检查了下代码,没问题。然后又拿出老办法–追踪源代码。找到对应的源代码分配器部分,看了看,也没啥可疑的错误。问题出在Nginx的配置......
  • CVE-2021-22204 GitLab RCE之exiftool代码执行漏洞深入分析(二)
    文章写于2022-01-19,首发在天融信阿尔法实验室目标导读1前言2前置知识2.1JPEG文件格式2.2Perl模式匹配3exiftool源码调试到漏洞分析3.1环境搭建3.2漏洞简介3.3exiftool是如何解析嵌入的0xc51b标签3.4exiftool是如何调用parseAnt函数3.5parseAnt函数分......
  • SSH原理与实践(三)安装和使用
    主页个人微信公众号:密码应用技术实战个人博客园首页:https://www.cnblogs.com/informatics/引言在之前SSH原理与实践系列文章中,我们主要讲解了SSH协议的原理部分。作为该系列文章的最后一篇,本文将对SSH实践部分进行介绍。好文回顾......
  • 《Modern C++ Design》之上篇
    如下内容是在看侯捷老师翻译的《ModernC++Design》书籍时,整理的code和摘要,用于不断地温故知新。第一章1.运用TemplateTemplate参数实作PolicyClassestemplate<template<classCreated>classCreationPolicy>//template<template<class>classCreationPolicy......
  • 记一次jenkins+maven+nexus3打包中遇到的问题
    过程:开发加了个新模块使用jenkins打包,报错如下: 总结就是maven-assembly-plugin模块的jar包没拉下来。去maven服务器查看了repo包情况,/data/maven/repo/org/apache/maven/plugins/maven-assembly-plugin/3.4.2发现果然没有对应jar包等,说明没拉下来。开发说明明把包上传到nexus......
  • java--并发容器 ConcurrentMap
    在JDK1.4以下只有Vector和Hashtable是线程安全的集合(也称并发容器,Collections.synchronized*系列也可以看作是线程安全的实现)。从JDK5开始增加了线程安全的Map接口ConcurrentMap和线程安全的队列BlockingQueue(尽管Queue也是同时期引入的新的集合,但是规范并没有规定一定是线程安全......