13

从 Java 开发人员的角度来看,这些概念如何相互关联?

我的问题:有人可以为简单准确/普遍接受的定义提供解释或一些链接吗?谢了。

作为参考,我找到但我不清楚的文件:

http://arxiv.org/ftp/cs/papers/0508/0508063.pdf http://arxiv.org/ftp/cs/papers/0508/0508063.pdf

在谷歌上不是很幸运。

我最初的假设:

  • 一开始是物理设备及其驱动程序。
  • 分区是驱动程序提供的一部分设备的视图,与文件系统概念无关
  • 卷是以某种方式组织的一组分区的名称(例如 RAID)
  • 文件系统在卷的顶部以文件单元存储数据。
  • 文件系统通常提供卷的树视图
  • 文件系统树可以使用文件系统连接/链接功能静默包含其他文件系统树
4

3 回答 3

19

让我们从一些基础知识开始:

  • 数据:数据只是按顺序排列的一组位。内容的解释取决于您用于读取数据的应用程序。示例 1:您使用文本编辑器进行尝试,然后此应用程序可能会捆绑 8 位并将它们解释为 ASCII 字符。示例 2:您尝试使用音频播放器打开文件,然后它将尝试将 12 位放在一起以在播放的音频中获得一个幅度。

  • 存储设备:设备是可以存储数据的物理存储。这些通常可以以“随机访问”方式访问,例如获取位号 1337 -> 1(简化)。这些设备的示例包括:硬盘驱动器、固态磁盘、U 盘、CD、DVD,还有您的计算机内存。

这两件事就是你所需要的: 1. 存储/读取数据的设备 2. 如何处理数据的规则

示例:假设您将二进制文件复制到硬盘的开头并告诉您的计算机从该硬盘启动。计算机将读取第一个命令并执行它,然后读取下一个命令,依此类推。这就是引导加载程序所做的。在这个早期阶段,不涉及文件系统、分区等。

在软件开发开始时,您没有“打开文件”,而是“读取 100 到 180 字节”并使用此数据(可能 80 字节是字符串或音频数据)。处理数字很烦人(我的字符串从哪里开始?是 40 吗?又多久了?这是哪个字符串?),所以发明了文件系统:

  • 文件系统:文件系统只是一个层,以便对字节有一些意义。文件系统中的文件只是数据开始的位置、长度以及处理它的更简单方法的信息(“diary.txt”比“从 Byte 500 开始的 4000 Bytes”更容易处理)。路径和树视图只是为了更方便地查找和组织文件。

    所以基本上文件系统使用数据并将其解释为文件系统。此外,它允许用户(或其他应用程序)以简单的方式访问这些数据的块。文件系统不关心数据存储在哪里,它可能来自任何设备。您还可以创建一个

    示例:文件系统获取数据([---Data---]),处理它,并允许访问[D]数据块( )。

    [---Data---] -> Filesystem -> [D][D][D][D]

    由于文件只是从文件系统接收的数据,因此您可以在文件中安装文件系统。没问题:

    `HDD ---> 文件系统 ---> 文件 ---> 文件系统 ---> 文件

这些是我认为的主要概念。你谈到了一些其他的东西,比如分区、(逻辑)卷、卷组、(加密)容器等。不要被这些东西弄糊涂了,这些只是为了组织数据的其他层。仔细观察,您会发现这些基本上是文件系统。让我们来看看分区:一个分区包含它在底层数据中从哪里开始、它有多长以及解决它的方法(例如分区号 2)的信息。听起来很熟悉?

那么,Java 开发人员对此有何看法?大多数情况下,您将通过File. 尽管直接写入/读取硬盘可能是完全合理的。我认为最好的方法是:使用最适合您的应用程序的数据源:

例子:

  • 有组织的数据?-> 数据库
  • 文本?-> 文件
  • 分区组织工具 -> 直接从设备读取,例如 /dev/sd0

希望这有助于澄清一些事情。

于 2014-06-26T13:34:12.127 回答
10

整体图(Windows 之类的)

在此处输入图像描述
图标来源:vector.me


磁盘、驱动器、分区、卷

磁盘或驱动器:用于存储数据的物理设备。驱动器似乎比磁盘更通用,这与存储技术有关,例如有硬盘驱动器,软盘驱动器和USB闪存驱动器。

磁盘分为扇区,每个扇区包含相同数量的字节。扇区有一个扇区号,可用于单独引用它们。

分区和卷:经常互换使用,但不一样,一个分区内可以有多个卷

  • 分区是具有特定大小的磁盘块(例如硬盘的特定扇区范围。磁盘分区是将磁盘划分为多个块的行为,就好像有多个磁盘一样。某些分区可能会依次划分为多个单独的逻辑块,它必须由使用的分区方案支持。

  • 有效的块(无论是物理的还是逻辑的)称为。原始卷可以稍后被格式化以包含一个文件系统,该文件系统本身可以存储实际数据。

操作系统需要跟踪系统中的卷。它是存储文件和目录的。

可以使用两种主要的分区方案进行分区:

MBR

MBR 与旧版BIOS固件一起使用。MBR 最多可以在驱动器上创建 4 个分区,主分区或扩展分区。驱动器上的可见空间限制为 2 TB,分区不能使用超出的空间。

每个驱动器只能有一个扩展分区,这个分区最多可以划分为 128 个逻辑卷。

可以选择一个主分区作为活动分区并用于引导计算机。

GPT

GPT 支持大于 2 TB 的驱动器和每个驱动器最多 128 个分区。GPT 与 BIOS 不兼容,计算机必须配置EFI固件。

GPT 在其空间的开头包含一个虚假的 MBR。此 MBR 将驱动器显示为单个 MBR 分区,以应对无法识别 GPT 的工具。

图片

映像是卷(文件和其他数据)到单个文件的快照,类似于 zip 文件来自卷的映像可以在另一个卷上展开,也可以“挂载”或“附加”以像任何其他卷一样显示,或显示为现有卷的目录。

可以从映像文件创建(“挂载”)附加卷,而无需链接到实际的物理单元(存储映像文件的单元除外)。


文件系统

文件系统用于控制数据在卷上的存储和检索方式。这是将数据组织成文件和目录而不是无序和不相关的字节存储的实用方法。

文件系统负责文件内容和结构(树)。目录和文件被赋予属性(如只读)和访问权限。

传统的FAT文件系统与 DOS 操作系统一起使用。出于兼容性和交换目的,现代设备仍然支持它。FAT 版本:FAT12、FAT16、FAT32,对应于文件条目中使用的位数,决定了可以引用的扇区数。FAT32 可以引用 2 32 = 4,294,967,296 个扇区。对于 512 字节的扇区,FAT32 可以管理 2TB。

现代 Windows 版本使用NTFS。NTFS 增加了对元数据、访问控制列表(权限)和日志的支持。

  • MacOS 使用APFS

  • Linux 通常默认为ext4

  • Android 使用 ext4。

  • 光盘(CD、DVD、蓝光)经常使用UDF

Windows (MBR) 上的磁盘、分区、卷和文件系统:

在此处输入图像描述
资源

碎片化

当文件系统无法为文件分配连续扇区时,文件内容存储在较远的扇区中,这种碎片会减慢机械设备中的数据访问速度。

HFS+ 和 ext4 具有碎片控制机制,但为了限制碎片,大多数文件系统通过完整的块/簇为文件分配空间,该块包含给定数量的连续扇区。例如,可以将 NTFS 配置为分配 4KB 的集群。一些文件系统能够减少有效的未使用空间大小,但文件通常拥有比实际存储数据所需的更多空间。


引导支持

当 BIOS/EFI 固件启动计算机时,作为操作系统一部分的文件系统不可用。BIOS/EFI 会在分区和/或操作系统安装期间查找写入引导驱动器的引导扇区( PC 上的主引导记录)。该代码是一个引导程序,它能够从活动分区加载和执行适当的代码以启动主要的操作系统组件,其中文件系统提供加载文件的功能。然后操作系统控制计算机。


其他来源:

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc787202(v=ws.10)https://en.wikiversity.org/wiki /IT_Fundamentals/2014/File_Systemshttps://www.howtogeek.com/school/using-windows-admin-tools-like-a-pro/lesson4/?PageSpeed=noscripthttps://www.lifewire.com/ volume-vs-partition-2260237https://en.wikipedia.org/wiki/File_system_fragmentation

于 2020-07-07T14:43:39.160 回答
1
  • 设备,物理存储设备
  • 分区,分区表中定义的一片存储空间
  • 文件系统,将文件映射到存储地址的表
  • 卷,任何具有位于最开始的文件系统(文件表)的存储

因此,普通用户在操作系统中使用的是卷:

  • C:, D:, E: 是 Windows 卷(又名驱动器)
  • 任何被mounted 的东西都是 Linux 中的卷

在大型存储选项出现之前,没有分区。例如,软盘没有分区。文件系统直接位于存储空间的开头。

当新设备的存储能力大大扩展时,需要在逻辑上将设备划分为更小的部分以服务于不同的目的。因此,创建了一个分区表来将设备拆分为多个分区。

每当文件系统在分区(或旧设备)的开头创建并可供用户使用时,它就变成了一个卷。在分区上创建文件系统称为格式化。


增加混淆的一件事是 Amazon EBS 使用“卷”来指代(虚拟)设备。您必须挂载 EBS 卷,然后创建分区、文件系统才能使用它。

于 2021-08-02T06:50:46.123 回答