当前位置: 首页 > news >正文

Linux文件系统

Linux文件系统

文章目录

  • Linux文件系统
    • 一、什么是文件系统
    • 二、文件系统的种类
      • FAT:
      • NTFS:
      • exFAT:
      • RAW:
      • Ext:
      • HFS:
      • Windows文件系统:
      • Linux文件系统:
    • 三、什么是分区
    • 四、什么是文件系统目录结构
    • 五、什么是虚拟文件系统Virtual File System ?

一、什么是文件系统

文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)**或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。**操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。
用一句话来说是:文件系统是操作系统用于明确存储设备组织文件的方法,这个方法就是文件管理系统,简称文件系统

二、文件系统的种类

FAT:

在Win 9X下,FAT16支持的分区最大为2GB。我们知道计算机将信息保存在硬盘上称为“簇”的区域内。使用的簇越小,保存信息的效率就越高。在FAT16的情况下,分区越大簇就相应的要大,存储效率就越低,势必造成存储空间的浪费。并且随着计算机硬件和应用的不断提高,FAT16文件系统已不能很好地适应系统的要求。在这种情况下,推出了增强的文件系统FAT32。

NTFS:

NTFS文件系统是一个基于安全性的文件系统,是Windows NT所采用的独特的文件系统结构,它是建立在保护文件和目录数据基础上,同时照顾节省存储资源、减少磁盘占用量的一种先进的文件系统。使用非常广泛的Windows NT 4.0采用的就是NTFS 4.0文件系统,相信它所带来的强大的系统安全性一定给广大用户留下了深刻的印象。Win 2000采用了更新版本的NTFS文件系统NTFS 5.0,它的推出使得用户不但可以像Win 9X那样方便快捷地操作和管理计算机,同时也可享受到NTFS所带来的系统安全性。

exFAT:

全称Extended File Allocation Table File System,扩展FAT,即扩展文件分配表,是Microsoft在Windows Embeded 5.0以上(包括Windows CE 5.0、6.0、Windows Mobile5、6、6.1)中引入的一种适合于闪存的文件系统,为了解决FAT32等不支持4G及其更大的文件而推出。

RAW:

RAW文件系统是一种磁盘未经处理或者未经格式化产生的文件系统,一般来说有这几种可能造成正常文件系统变成RAW文件系统:没有格式化、格式化中途取消操作、硬盘出现坏道、硬盘出现不可预知的错误、毒所致。

解决RAW文件系统的最快的方法是立即格式化,并且使用杀毒软件全盘杀毒。当然,如果文件很重要的话可以用迷你兔数据恢复软件先救出数据,然后再格式化和杀毒。

Ext:

Ext2:Ext是GNU/Linux 系统中标准的文件系统,其特点为存取文件的性能极好,对于中小型的文件更显示出优势,这主要得利于其簇快取层的优良设计。

Ext3:是一种日志式文件系统,是对ext2系统的扩展,它兼容ext2。日志式文件系统的优越性在于:由于文件系统都有快取层参与运作,如不使用时必须将文件系统卸下,以便将快取层的资料写回磁盘中。因此每当系统要关机时,必须将其所有的文件系统全部shutdown后才能进行关机。
Ext4。Ext4 是 Ext3 的改进版,修改了 Ext3 中部分重要的数据结构,而不仅仅像 Ext3 对 Ext2 那样,只是增加了一个日志功能而已。Ext4 可以提供更佳的性能和可靠性,还有更为丰富的功能。

HFS:

分层文件系统(Hierarchical File System,HFS)是一种由苹果电脑开发,并使用在Mac OS上的文件系统。最初被设计用于软盘和硬盘,同时也可以在在只读媒体如CD-ROM上见到。

Windows文件系统:

在这里插入图片描述

对于Windows可以右击磁盘属性,查看文件系统为:NTFS

Linux文件系统:

使用下面指令查看Linux文件系统:

df -T

在这里插入图片描述

三、什么是分区

对于Windows来说,所谓的C/D/E盘,就是分区,用户可以随意的在分区里创建文件;

对于Linux来说分区则有了严格的功能限制,要求按照功能严格的存放文件

嵌入式系统的分区:

  • bootloader分区:存放系统的启动代码
  • para分区:存放启动代码向内核传递参数的位置
  • kernel分区:存放内核的代码
  • 根分区:由“文件系统(目录)结构”存放各种代码
  1. 对于windows来说:是先将物理地址分开,再在分区上建立目录,所以windows的分区下,同一个目录下的两个文件必然属于同一个分区,分区是连续的。所有路径都是从盘符开始的,比如C盘下的一个文件,它的路径必然是C://开头。
  2. 对于Linux来说:是先有目录,再将物理地址映射到目录中所以Linux的分区下,同一个目录下的两个文件可能属于不同的分区,分区是不连续的。在Linux操作系统中,所有路径都是从根目录开始。

四、什么是文件系统目录结构

相比于文件系统代表“操作系统用于明确存储设备组织文件的方法”,文件系统目录结构代表从根目录开始的文件架构

在Linux系统中:

  • 以“.”开头的为隐藏文件

  • 路径用“/”来进行分隔(windows中使用“\”来分割)

  • 目录被组织成一个树形结构,并从根目录开始用“/”来表示,并遵循以下的结构:

在这里插入图片描述

可以通过下面指令查看目录:

tree -L 1/

在这里插入图片描述

  • bin:是binary的缩写,主要存放一些常用的命令,如ls,cp,mv。

  • boot:主要存放一些Linux启动时需要用到的核心文件

  • dev:是device的缩写,主要存放一些Linux的设备文件

  • etc:主要存放系统用户所需要的配置文件和子目录

  • home:主要存放用户目录

  • **lib:**是library的缩写,主要存放一些动态库,供应用程序调用

  • lost+found:一般是空的,当系统非法关机后,相关文件会存放在此目录

  • media:自动挂载一些Linux系统自动识别的设备,如U盘,光驱等

  • mnt:提供给用户的用于挂载临时别的文件系统(手动挂载),如另外的硬盘

  • opt:提供给主机额外安装软件所需要的目录

  • proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息

  • root:超级用户的主目录

  • sbin:s是super user简称,此目录主要存放一些系统管理员所用到的系统管理程序

  • srv:主要存放一些系统服务启动之后所要用到的数据

  • run:主要存放一些系统运行时需要用到的一些文件

  • usr:主要存放一些用户的应用程序及文件,类似于Windows下的program files

  • tmp:存放一些临时文件

  • var:主要存放一些经常被修改的文件,比如日志文件,电子邮件

五、什么是虚拟文件系统Virtual File System ?

  • 在Linux系统中,不同的文件所属的文件系统可能是不同的,文件A可能是ext4,文件B可能是tmpfs…但是在代码的编写时,使用统一的如open,read,write,cp等函数就可以对不同文件系统下的不同文件进行操作,这就是靠VFS这个中间层实现的:上层的函数接口通过VFS就可以轻松的访问不同的文件系统下的不同文件。VFS就是对各种文件系统的一个抽象,它为各种文件系统提供了一个通用的接口。

  • VFS的作用就是:简化开发的流程,不管属于什么文件系统,不管文件是磁盘还是设备,都可以使用上层的函数接口来进行统一的操作。


http://www.mrgr.cn/news/30651.html

相关文章:

  • 【AI声音克隆整合包及教程】第二代GPT-SoVITS V2:创新与应用
  • 【MinIO】Python 运用 MinIO 实现简易文件系统
  • 论文1—《基于卷积神经网络的手术机器人控制系统设计》文献阅读分析报告
  • Go:文件输入输出以及json解析
  • Spring Cloud Eureka 服务注册与发现
  • 云计算在教育领域的应用
  • 8.1差分边缘检测
  • 介绍几个AI生成视频的工具
  • 新发布的OpenAI o1生成式AI模型在强化学习方面迈出了重要的一步
  • iptables 基础示例
  • 电脑维修的基本原则
  • AI助力智慧农田作物病虫害监测,基于YOLOv8全系列【n/s/m/l/x】参数模型开发构建花田作物种植场景下棉花作物常见病虫害检测识别系统
  • 【ShuQiHere】 从逻辑门到组合电路:构建数字系统的核心
  • Python习题 192:编写一个猜单词游戏
  • 算法打卡 Day34(贪心算法)-分发饼干 + 摆动序列 + 最大子序和
  • 链式栈讲解
  • id 命令:输出用户的UID、GID和属组
  • C语言中的一些小知识(二)
  • 代码随想录Day50|图论Part01,leetcode题目:98. 所有可达路径
  • 科创孵化昌平,创新创业求发展
  • 专题六_模拟_算法详细总结
  • 计算机毕业设计Python+Flask微博情感分析 微博舆情预测 微博爬虫 微博大数据 舆情分析系统 大数据毕业设计 NLP文本分类 机器学习 深度学习 AI
  • 结构体易忘点
  • solidwork剪裁实体
  • Ubuntu22.04关闭631端口的方法
  • 【CSS Tricks】一种基于AV1视频格式的现代图像格式-AVIF