从Java开发人员的角度来看,这些概念如何相互关联?
我的问题:有人可以为简单,准确/普遍接受的定义提供解释或链接吗? Tks。
供参考,我发现的文件但我不清楚:
http://arxiv.org/ftp/cs/papers/0508/0508063.pdf http://arxiv.org/ftp/cs/papers/0508/0508063.pdf
不太幸运on Google。
我最初的假设:
答案 0 :(得分:2)
让我们从一些基础开始:
数据:数据只是按顺序排列的一组位。内容的解释取决于您用于读取数据的应用程序。示例1:您使用文本编辑器进行尝试,然后此应用程序可以捆绑8位并将其解释为ASCII字符。示例2:您尝试使用音频播放器打开文件,然后它会尝试将12位放在一起以在播放的音频中获得一个幅度。
存储设备:设备是可以存储数据的物理存储。这些通常以“随机访问”方式访问,例如,得到位号1337 - > 1(简化)。这些设备的示例包括:硬盘驱动器,固态磁盘,usb棒,CD,DVD,以及计算机的内存。
这两件事你只需要:1。存储/读取数据的设备2.如何处理数据的规则
示例:假设您要将二进制文件复制到hdd的开头,并告诉计算机从该硬盘驱动器启动。计算机将读取第一个命令并执行它,然后读取下一个命令,依此类推。这就是引导加载程序的功能。在这个早期阶段,没有涉及文件系统,分区等。
在软件开发开始时你没有'打开文件',你'读取字节100到180'并使用这些数据(可能80字节是字符串或音频数据)。处理数字很烦人(我的字符串从哪里开始?是40?它又多久了?这是哪个字符串?),所以文件系统发明了:
文件系统:文件系统只是一个层,以便对字节有所了解。文件系统中的文件只是数据开始的信息,它的长度以及解决它的简单方法('diary.txt'比从字节500开始的'4000字节'更容易处理)。路径和树视图只是使查找和组织文件更方便的事情。
所以基本上文件系统使用数据并将其解释为文件系统。此外,它允许用户(或其他应用程序)以简单的方式访问该数据的块。文件系统不关心数据的存储位置,它可能来自任何设备。您也可以创建
实施例:
文件系统获取数据([---Data---]
),处理数据,并允许访问数据的块([D]
)。
[---Data---] -> Filesystem -> [D][D][D][D]
由于文件只是从文件系统接收的数据,因此您可以在文件中安装文件系统。没问题:
`HDD --->文件系统--->档案--->文件系统--->文件
这些是我认为的主要概念。你谈到了一些其他的东西,如分区,(逻辑)卷,卷组,(加密)容器等。不要被这些东西搞糊涂,这些只是为了组织数据的其他层。仔细看看,你会发现这些基本上都是文件系统。我们采用分区:分区包含信息在底层数据中的起始位置,长度以及解决方法(例如分区号2)。听起来很熟悉?
那么,Java Developer视图是什么?大多数情况下,您将通过File
访问数据。虽然直接写入/读取hdd可能是完全合理的。我认为最好的方法是:使用最适合您应用的数据源:
示例:
希望有助于澄清一些事情。
答案 1 :(得分:1)
图标来源:vector.me
磁盘或驱动器:用于存储数据的物理设备。 Drive seems more generic than disk,与存储技术(例如有硬盘驱动器,软盘驱动器和USB闪存驱动器。
磁盘分为sectors,每个扇区包含相同数量的字节。扇区具有扇区号,可用于单独引用它们。
分区和卷:通常可以互换使用,但是不一样,可以有multiple volumes within a single partition。
partition是具有特定大小(例如,硬盘的特定扇区范围)的磁盘块。磁盘分区是将磁盘分成多个块的行为,就好像有多个块一样。某些分区可能会依次分成多个单独的logical chunks,所使用的分区方案必须支持该分区。
有效块(无论是物理还是逻辑的)都称为volume。原始卷可以在以后进行格式化,以包含一个文件系统,该文件系统本身可以存储实际数据。
操作系统需要跟踪系统中的卷。是文件和目录的存储。
可以使用两种主要的分区方案来完成分区:
MBR
MBR与旧版BIOS固件一起使用。 MBR最多可以在一个驱动器上创建4个分区(主分区或扩展分区)。驱动器上的可见空间限制为2 TB,分区无法使用过多的空间。
每个驱动器只能有一个扩展分区,该分区最多可以划分为128个逻辑卷。
可以选择一个主分区作为活动分区,并用于引导计算机。
GPT
GPT支持大于2 GB的驱动器,每个驱动器最多支持128个分区。 GPT与BIOS不兼容,必须为计算机配置EFI固件。
GPT在其空间的开头包含一个伪造的MBR。此MBR将驱动器显示为一个MBR分区,以应对无法识别GPT的工具。
图片
image是卷(文件和其他数据)到单个文件的快照,类似于zip文件。一个卷中的图像可以扩展到另一个卷上,并且还可以“安装”或“附加”图像,使其看起来像任何其他卷一样,或者显示为现有卷的目录。
可以从image files创建(“挂载”)其他卷,而无需链接到实际的物理单元(存储图像文件的物理卷除外)。
file system用于控制如何在卷上存储和检索数据。这是一种将数据整理成文件和目录而不是无序和无关字节的实用方法。
文件系统负责文件的内容和结构(树)。目录和文件具有属性(如只读)和访问权限。
旧版FAT文件系统与DOS操作系统一起使用。出于兼容性和交换目的,现代设备仍支持它。 FAT版本:FAT12,FAT16,FAT32,对应于文件条目中使用的位数,从而确定了可以引用的扇区数。 FAT32可以引用2 32 = 4,294,967,296个扇区。 FAT32具有512字节的扇区,因此可以管理2TB。
现代Windows版本使用NTFS。 NTFS添加了对元数据access control list(权限)和journaling的支持。
Windows(MBR)上的磁盘,分区,卷和文件系统:
碎片化
当文件系统无法为文件分配连续的扇区时,文件内容存储在遥远的扇区中,这fragmentation会减慢机械设备中的数据访问速度。
HFS +和ext4具有碎片控制机制,但是为了限制碎片,大多数文件系统通过完整的块/簇(一个包含给定数量的连续扇区的块)为文件分配空间。例如,可以将NTFS配置为分配4KB群集。某些文件系统可以减少有效的未使用空间大小,但是文件通常拥有比存储数据实际所需更多的空间。
BIOS / EFI固件启动计算机时,作为操作系统一部分的文件系统不可用。 BIOS / EFI会在分区和/或OS安装期间寻找写在引导驱动器上的boot sector(在PC上为master boot record)。该代码是一个引导程序,它能够从活动分区中加载并执行适当的代码以启动主要的OS组件,其中的文件系统提供了用于加载文件的功能。然后,操作系统将控制计算机。
其他来源:
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_Systems✦https://www.howtogeek.com/school/using-windows-admin-tools-like-a-pro/lesson4/?PageSpeed=noscript✦https://www.lifewire.com/volume-vs-partition-2260237✦https://en.wikipedia.org/wiki/File_system_fragmentation
答案 2 :(得分:0)
因此,操作系统中常见的用户使用的是卷:
mount
ed 在 Linux 中都是一个卷在出现大型存储选项之前,没有分区。例如,软盘没有分区。文件系统直接位于存储空间的开头。
当新设备的存储能力大幅扩展时,需要在逻辑上将设备划分为更小的部分以服务于不同的目的。这样就创建了一个分区表来将设备分割成多个分区。
每当文件系统在分区(或旧设备)的开头创建并可供用户使用时,它就会成为一个卷。在分区上创建文件系统称为格式化。
增加混淆的一件事是 Amazon EBS 使用“卷”来指代(虚拟)设备。您必须挂载 EBS 卷,然后创建分区和文件系统才能使用它。