首页 > 其他分享 >第一天

第一天

时间:2023-06-03 21:44:09浏览次数:25  
标签:第一天 DB 分区 0x00 文件系统 FAT 扇区

FAT

FAT(File Allocation Table)是一种文件系统,最初由Microsoft开发并广泛用于MS-DOS和windows操作系统中。FAT文件系统旨在为存储设备提供一种简单、可靠和易于实现的文件系统,以便在不同的计算机之间共享文件。
FAT文件系统将存储设备分成多个扇区(通常是512字节),每个扇区可以存储一个或多个文件的数据。为了跟踪每个文件的存储位置和状态,FAT文件系统使用一个称为“文件分配表”(File Allocation Table)的结构来记录文件的分配情况。文件分配表是一个表格,每个条目表示存储设备的一个扇区,用于记录该扇区是否已被使用,以及该扇区中存储的文件数据的位置和状态等信息。
FAT文件系统具有以下特点:

  1. 简单:FAT文件系统的结构简单,易于实现和维护。
  2. 可移植性:FAT文件系统可以在不同的计算机系统之间共享文件,使得存储设备可以在不同的平台上使用。
  3. 兼容性: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分区
    1. 最多支持四个主分区
    2. 系统只能安装在主分区
    3. 扩展分区要展一个主分区
    4. mbr最大只支持2TB,但拥有最好的兼容性
  • gtp分区
    1. 支持无限多个主分区(但操作系统可能限制,比如windows下最多128个分区)
    2. 最大支持18EB的大容量(EB=1024PB,PB=1024TB)
    3. windows7 64位以后支持gtp

Windows下的磁盘分区

主分区、扩展分区(数个逻辑分区组成)
比如c盘作为系统盘放在主分区,d盘、e盘放在扩展分区中的两个逻辑分区,存放电影、游戏等数据

Linux下的磁盘分区

  1. Linux无论有几个分区,分给哪一个目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分
  2. Linux采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。

硬盘说明

  1. Linux硬盘分IDE硬盘(并口)和SCSI(串口)硬盘,目前基本上是SCSI硬盘
  2. 对于IDE硬盘,驱动器标识符为“hdx~”,其中,“hd”表明分区所在设备的类型,这里是指IDE硬盘了。“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“~”代表分区。例:hda3表示第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。
  3. 对于SCSI硬盘则标识为“sdx~”。SCSI硬盘用“sd”来表示分区所在设备的类型,其余则和IDE硬盘表示法一样。
lsblk -f #查看分区挂载指令

标签:第一天,DB,分区,0x00,文件系统,FAT,扇区
From: https://www.cnblogs.com/starkly/p/17454194.html

相关文章

  • c# winfrom中 dateTimePicker 控件设置自动获取上个月,当月,下个月,前好几个月,后好几个月
    我这里用的是vs2022开发,将获取的时间赋值给dateTimePicker控件进行筛选1、从工具箱中托取一个dateTimePicker控件,我这里将该控件命名为RQ,代码为RQ.value=时间代码2、时间的获取:今天:RQ.Value=DateTime.Now;本月第一天:RQ.Value=DateTime.Now.AddDays(1-DateTime.Now.Day......
  • 学习第一天
    Markdown学习标题语法:#空格+名字(最多六级)字体粗体语法:文本前后加双星号aimaomaoya斜体语法:文本前后加单星号aimaomaoya斜体+粗体语法:文本前后加三星号aimaomaoya删除线语法:文本前后+~~aimaomaoya引用语法:(文本前+>)爱毛毛呀 分割线3-/3*图片本地语法:......
  • python datetime 获取本月第一天 上月最后一天
    完整代码importdatetime(datetime.date.today().replace(day=1)-datetime.timedelta(days=1)).strftime("%Y-%m")获取本月第一天byyc=datetime.date.today().replace(day=1)获取上月最后一天syym=byyc-datetime.timedelta(days=1)获取上月月份sy=syym.strftime("%Y......
  • 第一天
    P5(进制)    P6(数据宽度_逻辑运算)数据宽度1、数学上的数字,是没有大小限制的,可以无限的大;计算机中,由于收到硬件的制约,数据都是有长度限制的(超过最多宽度的数据会被丢弃)。 2、4位宽度表示:假设计算机只能存储4位2进制数,那么可以存储00000001001000110100010101100......
  • SSM学习第一天
    SSM学习第一天今日目标掌握Spring相关概念完成IOC/DI的入门案例编写掌握IOC的相关配置与使用掌握DI的相关配置与使用1,课程介绍对于一门新技术,我们需要从为什么要学、学什么以及怎么学这三个方向入手来学习。那对于Spring来说:1.1为什么要学?从使用和占有率看Sp......
  • LLaVA 从零复现 第一天
    1.准备数据1.1预训练数据目前看来数据部分是两类数据,一类是预训练数据需要下载对应的图像这部分数据是过滤版的CC-3M,上面图片量是59w,是300w图像的过滤版本结构{"id":"GCC_train_002582585","image":"GCC_train_002582585.jpg","caption":"oli......
  • 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素
    二分查找给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。示例1:输入:nums=[-1,0,3,5,9,12],target=9输出:4解释:9出现在nums中并且下标为4示例2:输入:nums=[-1,0,3,......
  • 文件包含第一天
    目录787980普通文件包含常见的php伪协议大致四种1.php://filter主要用于读取源码2.php://input经常使用file_get_contents获取php://input内容3.data://执行命令4.file://访问本地文件系统78观察一下,没有过滤,可以直接使用功能php://filter伪协议payload:?file=p......
  • php特性第一天
    目录899091929394959697989989preg_match()返回pattern的匹配次数。它的值将是0次(不匹配)或1次,因为preg_match()在第一次匹配后将会停止搜索。preg_match_all()不同于此,它会一直搜索subject直到到达结尾。如果发生错误preg_match()返回FALSE。get方式传入num参数,然后通......
  • 第一天
    按照知识星球上推荐的Java学习路线,先从韩顺平0基础Java教程开始看第一天学习历程当前时间:2023-05-2323:36从最基础的输出helloworld开始。学习Java类的概念,编译、运行的过程转义字符的基础了解Java注释类型,包括单行注释、多行注释、文本注释Java数据类型大致分类......