FAT
FAT(File Allocation Table)是一种文件系统,最初由Microsoft开发并广泛用于MS-DOS和windows操作系统中。FAT文件系统旨在为存储设备提供一种简单、可靠和易于实现的文件系统,以便在不同的计算机之间共享文件。
FAT文件系统将存储设备分成多个扇区(通常是512字节),每个扇区可以存储一个或多个文件的数据。为了跟踪每个文件的存储位置和状态,FAT文件系统使用一个称为“文件分配表”(File Allocation Table)的结构来记录文件的分配情况。文件分配表是一个表格,每个条目表示存储设备的一个扇区,用于记录该扇区是否已被使用,以及该扇区中存储的文件数据的位置和状态等信息。
FAT文件系统具有以下特点:
- 简单:FAT文件系统的结构简单,易于实现和维护。
- 可移植性:FAT文件系统可以在不同的计算机系统之间共享文件,使得存储设备可以在不同的平台上使用。
- 兼容性:FAT文件系统得到了广泛的应用和支持,可以在多种设备和操作系统上使用。
FAT文件系统存在一些局限性,如文件名长度、文件大小限制等。随着计算机技术的不断发展,现代操作系统和存储设备通常采用更先进的文件系统,如NTFS、exFAT等。但FAT文件系统仍然在某些场景下得到广泛应用,如移动设备、嵌入式系统等。
; hello-os
; TAB=4
; 以下这段是标准FAT12格式软盘专用代码
DB 0Xeb, 0x4e, 0x90
DB "HELLOIPL" ; 启动区的名称可以是任意的字符串(8字节)
DW 512 ; 每个扇区(sector)的大小(必须为512字节)
DB 1 ; 簇(cluster)的大小(必须为1个扇区)
DW 1 ; FAT的起始位置
DB 2 ; FAT的个数(必须为2)
DW 224 ; 根目录的大小(一般设成224项)
DW 2880 ; 该磁盘的大小(必须是2880扇区)
DB 0xf0 ; 磁盘的种类(必须是0xf0)
DW 9 ; FAT的长度(必须是9扇区)
DW 18 ; 一个磁道(track)有几个扇区(必须是18)
DW 2 ; 磁头数(必须是2)
DD 0 ; 不使用分区(必须是0)
DD 2880 ; 重写一次磁盘大小
DB 0,0,0x29 ; 意义不明,固定
DD 0xffffffff ; (可能是)卷标号码
DB "HELLO-OS " ; 磁盘的名称(11字节)
DB "FAT12 " ; 磁盘格式名称(8字节)
RESB 18 ; 先空出18字节
; 程序主体
DB 0xb8, 0x00, 0x00, 0x8e, 0xd0, 0xbc, 0x00, 0x7c
DB 0x8e, 0xd8, 0x8e, 0xc0, 0xbe, 0x74, 0x7c, 0x8a
DB 0xb8, 0x00, 0x00, 0x8e, 0xd0, 0xbc, 0x00, 0x7c
DB 0x8e, 0xd8, 0x8e, 0xc0, 0xbe, 0x74, 0x7c, 0x8a
DB 0xee, 0xf4, 0xeb, 0xfd
; 显示部分
DB 0x0a 0x0a ; 两个换行
DB "hello world"
DB "0x0a" ; 换行
DB 0
RESB 0x1fe-$ ; 填写0x00, 直到0x001fe
DB 0x55, 0xaa
; 以下是启动区以外部分的输出
DB 0xf0 0xff 0xff 0x00 0x00 0x00 0x00 0x00
RESB 4600
DB 0xf0 0xff 0xff 0x00 0x00 0x00 0x00 0x00
RESB 1469432
注:在计算机中,byte是8个比特,word是16个比特
DB:DataByte,往文件里写入一个字节的指令
RESB:ReserveByte,保留字节
DW:DataWord,写入两个字节
DD:DataDoubleWord,写入四个字节
$:是一个变量,可以告诉我们这一行现在的字节数
Linux磁盘分区、挂载
分区基础知识
有两种模式
- mbr分区
- 最多支持四个主分区
- 系统只能安装在主分区
- 扩展分区要展一个主分区
- mbr最大只支持2TB,但拥有最好的兼容性
- gtp分区
- 支持无限多个主分区(但操作系统可能限制,比如windows下最多128个分区)
- 最大支持18EB的大容量(EB=1024PB,PB=1024TB)
- windows7 64位以后支持gtp
Windows下的磁盘分区
主分区、扩展分区(数个逻辑分区组成)
比如c盘作为系统盘放在主分区,d盘、e盘放在扩展分区中的两个逻辑分区,存放电影、游戏等数据
Linux下的磁盘分区
- Linux无论有几个分区,分给哪一个目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分
- Linux采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
硬盘说明
- Linux硬盘分IDE硬盘(并口)和SCSI(串口)硬盘,目前基本上是SCSI硬盘
- 对于IDE硬盘,驱动器标识符为“hdx~”,其中,“hd”表明分区所在设备的类型,这里是指IDE硬盘了。“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“~”代表分区。例:hda3表示第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。
- 对于SCSI硬盘则标识为“sdx~”。SCSI硬盘用“sd”来表示分区所在设备的类型,其余则和IDE硬盘表示法一样。
lsblk -f #查看分区挂载指令
标签:第一天,DB,分区,0x00,文件系统,FAT,扇区
From: https://www.cnblogs.com/starkly/p/17454194.html