📜  操作系统在磁盘上的数据结构(1)

📅  最后修改于: 2023-12-03 14:54:46.930000             🧑  作者: Mango

操作系统在磁盘上的数据结构

计算机系统中的磁盘是一个重要的组成部分,它存储着操作系统和应用程序的数据。而在磁盘上管理这些数据的就是操作系统中的数据结构。在以下文本中,我们将探讨操作系统在磁盘上的数据结构。

文件系统

文件系统是操作系统用于管理磁盘存储的文件和目录的一种结构。在文件系统中,文件可以被存储在不同的位置和卷中,并可以被多个程序进行访问和共享。其中,每个文件的数据和元数据会被记录在磁盘的特定区域。

主引导记录

主引导记录(MBR)是一块位于磁盘开头的特定位置的数据结构。它存储了磁盘分区表以及启动加载器的信息。当计算机启动时,BIOS会将MBR加载到RAM中,并执行启动加载器,使得操作系统可以加载到内存中。

以下是MBR的基本结构:

| 偏移位置 | 长度(字节) | 描述 | |----------|--------------|-----------------------------| | 0 | 446 | 引导加载器代码 | | 446 | 64 | 分区表项1 | | 510 | 2 | 0x55和0xAA标志,表示MBR结束 |

文件控制块

文件控制块(FCB)是操作系统管理文件的一种结构。它记录了文件的元数据,如文件名、拥有者、创建时间、修改时间等信息。在磁盘上,每个文件都对应着一块FCB,这些FCB被组成了一个FCB表,操作系统利用FCB表来寻找所有文件的信息。

以下是FCB的基本结构:

| 属性 | 类型 | 描述 | |--------------|----------|-----------------------------------------------| | 文件名 | 字符串 | 文件的名称,如"example.txt" | | 文件类型 | 枚举 | 文件的类型,如文本文件、二进制文件等 | | 文件大小 | 整型 | 文件的大小,以字节为单位 | | 创建时间 | 时间戳 | 文件创建时间,以格林威治标准时间为参考 | | 修改时间 | 时间戳 | 文件修改时间,以格林威治标准时间为参考 | | 文件权限 | 枚举 | 文件的可执行、可读、可写等权限 | | 文件属性 | 枚举 | 文件的只读、隐藏、系统等属性 | | 数据块指针 | 指针 | 文件数据所在的磁盘位置,以块或扇区为单位 | | 目录块指针 | 指针 | 文件所在目录的磁盘位置 | | 文件打开标志 | 布尔型 | 文件是否已经被打开 |

磁盘文件分配表

磁盘文件分配表(FAT)是一种数据结构,它用于记录文件数据在磁盘上的分配情况。在FAT中,磁盘被划分为若干个固定大小的块,每个块标识为已经分配、空闲或者已经损坏等状态。磁盘上的每个文件都有一个对应的FAT记录,记录文件数据在磁盘上的存储位置。

以下是FAT的基本结构:

| 属性 | 类型 | 描述 | |--------------|----------|---------------------------------------| | 文件指针 | 整型 | 文件数据的起始块号 | | FAT项状态 | 枚举 | 块状态,如可用、已使用、损坏等 | | FAT编号 | 整型 | 当前FAT表的编号 | | FAT表标志 | 布尔型 | 当前FAT表是否被占用 | | 磁盘块读写器 | 函数指针 | 读写磁盘块的函数指针 |

小结

在计算机操作系统中,磁盘是一个重要的数据存储设备。在磁盘上存储和管理这些数据需要一些特殊的数据结构,如文件系统、主引导记录、文件控制块和磁盘文件分配表等。了解这些数据结构对于编写操作系统或应用程序非常重要。