首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

实战 FAT12 文件系统

经典文件系统 — FAT12 FAT12 是一种“古老的”文件系统,到现在,软盘所使用的文件系统也通常是 FAT12,但其他地方已经基本上没有使用之处了。...不过现在的 FAT32 与 FAT12 从结构上来说是非常类似的,所以我们本文以 FAT12 来做讲解,未来会有专门的文章来介绍各个文件系统之间的区别,敬请期待。...FAT12 文件读取过程 经过上述 FAT12 分区的介绍,我们就已经可以清楚的知道如何在一个 FAT12 类型的磁盘上寻找一个文件了: 获取文件系统基本信息 — 读取位于第 0 个扇区的起始扇区 计算数据区首个扇区...实践 — 如何创建软盘 既然我们已经非常清楚了软盘的文件系统结构,你是否想要实践一下看看呢?是否一个软盘的文件系统真的如我们上面所描述的就是这样存储的呢? 5.1....建立文件系统 通过下面的命令,可以将刚刚创建的软盘格式化为对应的文件系统格式: mkfs.vfat floppy.img /建格式化为vfat文件系统/ 5.3. 向软盘镜像中添加文件 5.3.1.

1.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    fat文件系统查找、删除、创建目录

    Fat文件系统查找过程 查找一个文件是通过文件名查找的,对于fat文件系统,可以直接从vfat_lookup函数看 主体流程如下: vfat_lookup vfat_find fat_search_long...,也就是de变量,msdos_dir_entry这个结构体,这个就是fdt表,也是fat文件系统的目录项。...0, de->adate, 0); } else inode->i_ctime = inode->i_atime = inode->i_mtime; return 0; } 关于fat文件系统查找就介绍这几个函数...fat文件系统删除 对于文件系统删除,有2个系统调用,入口函数一个是do_unlinkat,一个是do_rmdir,它们大体流程一致,这里主要有2件事,一个是释放目录项,给fdt表文件名首字节设置成0xe5...// 这里进入到fat文件系统层,往下就是释放簇 fat文件系统创建目录 fat_alloc_new_dir就是创建目录的函数

    1.8K40

    fat文件系统中,文件的物理结构_磁盘的文件系统结构

    在这个系类的开篇还是先说一下文件系统是什么吧。 首先来介绍一下对u盘的格式化这个操作,格式化不是仅仅删除了所有文件,还为接下的来文件存储约定了一种存放格式,这种约定的文件存放格式就叫做文件系统。...所以我们可以约定一种区分开每个文件的规则,这种规则就是文件系统的雏形了。而且还要解决文件删除后释放空间的利用、如何适应文件的大小变化、快速查找文件树等问题。...解决这些问题的方案有多种,这就是不同种类文件系统的区别了。...常见的文件系统有:Flash上常用的YAFFS、JFFS2;u盘,sd卡常用的FAT,exFAT;linux中默认的文件系统Ext2,Ext3,Ext4;windows中默认的NTFS等。...本文先从最基本的SD卡上的文件系统说起,在有了本文的基础后本系列会逐渐深入linux的VFS的各个细节。

    84820

    Fat JAR

    Fat JAR(也称为uber-JAR)是一个包含了其所有依赖项的可执行Java归档文件(JAR),这意味着它不仅仅包含了你自己编写的类和资源文件,还包括了所有你的应用程序运行时所需的第三方库。...要创建一个Fat JAR,你可以使用构建工具如Maven或Gradle,它们都提供了打包所有依赖项到一个JAR中的插件。...以下是一个使用Maven的简单Fat JAR入门案例: 创建一个新的Maven项目你可以手动创建一个新的Maven项目,或者使用IDE来生成,项目结构通常如下所示: my-fatjar-app ├──...运行你的Fat JAR你可以使用以下命令运行生成的Fat JAR: java -jar target/my-fatjar-app-1.0-SNAPSHOT-jar-with-dependencies.jar...以上就是一个简单的Fat JAR入门案例。如果你使用的是Gradle,步骤将有所不同,但基本概念是相同的:你需要配置你的构建脚本以包含所有依赖,并创建一个可执行的JAR文件。

    41710

    linux文件系统

    Linux是一个基于Unix的操作系统,具有强大的文件系统功能。Linux文件系统是在硬盘上组织和存储数据的一种结构,通过文件系统可以管理文件、目录、权限等信息。...在Linux中,文件系统被组织成一个树形结构,称为文件系统层次结构(Filesystem Hierarchy Standard,FHS),该标准规定了Linux操作系统中各级目录的名称和用途,使得Linux...根目录 根目录(/)是Linux文件系统中的最顶层目录,所有其他的目录和文件都是从根目录开始构建的。在根目录下可以存放各种文件和目录,如用户目录、系统文件、配置文件等。.../proc /proc目录是Linux系统中一个特殊的目录,用于提供进程和系统信息的虚拟文件系统。.../mnt /mnt目录是Linux系统中用于挂载文件系统的目录,通过挂载可以将其他文件系统的内容挂载到/mnt目录下,使得这些文件系统可以被访问。

    8.8K00

    【Linux】文件系统

    (如何管理磁盘文件) 5.1 了解文件系统 有了上面的线性大地址,我们就可以开始构建出文件系统了。...在每个分区内部分组,然后写入文件系统的管理数据,称之为格式化!!! Linux 文件系统特定: 文件属性 与 文件内容 分开存储。...接下来我们来研究文件系统: 每个组里有这些部分: Block Group(占据空间最大的一部分):每个Block Group都有着相同的结构组成。...inode 表 : 存放文件属性 如 文件大小,所有者,最近修改时间等 Linux中文件的属性是大小固定的集合体(一般固定128字节) 不包含文件名,但是都有inode_number,通过inode号来标识一个文件...而Linux系统会进行路径的缓存,来方便我们的寻找工作。 我们一般使用的云服务器会有一个虚拟磁盘vda,系统中会有许多分区。

    11610

    【Linux】文件系统

    上一篇博客:【Linux】磁盘结构和文件系统 Group中的组成部分 下面是每个group的组成部分,但是super block不是每个组都有的,这个点后面详谈。...inode table inode table 是 Linux 文件系统(如 Ext2、Ext3、Ext4)中用于存储 inode 的一张表格。...在 Linux 文件系统(例如 Ext2、Ext3、Ext4)中,inode bitmap 是块组元数据的一部分,用来跟踪某个块组内 inode 的使用情况。...为什么访问文件的是inode,但是我们操作的是文件名 在Linux系统中一切皆文件,所以目录也是文件。...Linux的目录中存放的是文件名和inode的映射关系,因为同一级目录下不可能存在同名文件,所以索引都是1:1,唯一的。 为什么Linux会这么做呢?

    13310

    【Linux】文件系统

    上面的逻辑图与之对应 文件 = 内容 + 属性 文件在磁盘存储,本质是文件的内容+文件的属性数据,Linux文件系统特定:文件内容和文件属性分开存储 文件系统的结构 数据块(Data Blocks...) 存放文件属性,如文件大小,所有者,最近修改时间等 Linux中的文件属性是一个大小固定的集合体,inode是用于描述文件属性的结构体 inode内部不包含文件名!...inode与文件名的映射 在 Linux 文件系统中,文件名 和 inode 之间的映射关系是通过 目录项(directory entry) 来建立的。...因为文件的新建最后一定要向当前所处的目录内容中写入文件名和inode的映射关系 目录项缓存(Dentry Cache) 目录项缓存(dentry cache) 用于缓存目录项结构(dentry) 缓存机制:当访问文件路径时,Linux...Linux 文件系统缓存路径的工作流程 当用户或程序访问文件时,操作系统通常会按照以下路径结构来处理缓存: 文件访问流程 路径解析:首先,操作系统会查找 目录项缓存(dentry cache) 来解析文件路径

    10010

    Linux文件系统

    文件系统 磁盘 磁盘的物理结构 磁盘的储存结构 磁盘的逻辑结构 文件系统 分治 inode与数据块 软硬链接 什么是软硬连接 文件与引用计数 文件的三大时间 动静态库 什么是库 库的使用 静态库...文件系统 分治 虽然对应的磁盘访问基本单位是512字节,但是依旧很小。 所以操作系统定制的进行多个扇区的读取->1KB,2KB,4KB(现在基本都是4KB)为基本单位。...Super Block:超级块对象,保存的是整个文件系统的信息。 如果想清空哪个盘里面的所有数据内容,其实就相当于重写文件系统。一个磁盘,第一步是分区,第二部就是格式化,也就是写入文件系统。...文件系统的信息有分区的使用状态,分区的每个组的状态和信息。 既然这么重要,为何放在这里呢?其实在大部分文件系统中,块组前几个开头就是Super Block,这就相当于备份。...inode与数据块 文件 = 内容 + 属性 Linux中,文件的属性和内容是分批存储的。 保存文件属性的叫inode块:具体大小跟文件系统的版本有关,我的是ext3,128字节。

    12.6K00

    在软盘上实现一个FAT12文件系统

    在操作系统启动的过程中,第一步启动的是Booter,由于我们需要找到Loader.bin这个引导文件,我们需要在软盘上实现一个FAT12文件系统,从而方便我们的文件管理。...之前我已经了解过FAT文件系统的基本原理,在这里不多赘述。本质上,FAT将一个文件的数据簇以链表的形式进行了管理。...FAT文件系统的存储布局 引导记录 FAT1 FAT2 根文件夹 数据区(其他文件夹和文件) FAT的存储布局如上面的表展示的这样。两份FAT(文件分配表)的内容完全一致。...FAT表之后就是根文件夹,接着就是数据区。数据区保存其他文件夹和文件数据。在FAT文件系统中,以簇(连续的几个扇区)为单位来作为逻辑存储单元。数据区的簇号和FAT表项是一一对应的关系。...这里需要注意的是,我们文件系统里的扇区号是LBA格式的,也就是逻辑块地址,而BIOS上的中断服务程序只接受CHS格式的磁盘扇区号。CHS就是(Cylinder/Head/Sector)。

    74220

    Linux文件系统

    Linux文件系统 在Linux系统中所有的设备都统称为文件,所以同样必须要去学习下linux文件系统到底是何物??? 进入系统后我们使用命令ls -ll 就可以查看根目录下所有文件的信息 ?...二进制文件:linux中可执行文件(命令) ? 数据格式文件(一种特殊的文件 data) ? 2、d目录文件 ls -ld 可以显示所有目录文件 3、b块设备文件 ?...二:文件的扩展名 同样linux系统中的文件也有扩展名,不过意义不大,只是为了区分不同的文件 linux中常见的扩展名类型有以下几种: 1、.tar .tar.gz .tgz .zip 这类表示压缩文件...Inode:索引节点,linux中存储设备或分区被格式化为文件系统后,一般都会分成二个部分,第一部分就是inode,第二部分为block,inode存储的是文件的属性信息,我们可以使用ls -i查看Inode

    9.8K40

    linux文件系统

    Linux 文件系统是 Linux 操作系统中的重要组成部分,它是文件和目录的组织方式,为用户提供了一个良好的管理和访问文件的方式。...Linux 文件系统具有以下特点:一切皆文件:在 Linux 文件系统中,一切都被视为文件,包括硬件设备、目录、文件、管道等等。这种一切皆文件的思想使得 Linux 文件系统非常灵活。...Linux 文件系统层次结构Linux 文件系统层次结构定义了一组标准目录和文件,使得用户和程序员可以更容易地找到和管理文件。这些目录和文件通常被存储在根目录下。...Linux 文件系统格式Linux 文件系统可以使用多种格式来存储数据,包括 ext2、ext3、ext4、ReiserFS、XFS等。...以下是一些常见的 Linux 文件系统格式:ext2:是 Linux 文件系统的最早版本,它是一个简单的文件系统,不支持日志和数据恢复功能。

    8.7K40

    基于STM32完成FATFS文件系统移植与运用--这是完全免费开源的FAT文件系统

    二、FATFS文件系统介绍 2.1 FATFS简介 FatFs 是一种完全免费开源的 FAT 文件系统模块,专门为小型的嵌入式系统而设计。...它支持 FATl2、 FATl6 和 FAT32,支持多个存储媒介;有独立的缓冲区,可以对多个文件进行读/写,并特别对 8 位单片机和 16 位单片机做了优化。...2.2 特点 Windows兼容的FAT文件系统 不依赖于平台,易于移植 代码和工作区占用空间非常小 多种配置选项 多卷(物理驱动器和分区) 多ANSI/OEM代码页,包括DBCS 在ANSI/OEM...三、 移植FATFS文件系统 移植之前,首先得准备一个能正常编译的工程,并且工程里有SD卡的驱动代码,提供了读写扇区这些函数才能进行FATFS文件系统的正常移植。...这篇文章重点是FATFS文件系统的移植过程。

    3.9K31

    Linux 文件系统详解

    早在 1996 年,在真正理解文件系统的结构之前,我就学会了如何在我崭新的 Linux 上安装软件。这是一个问题,但对程序来说不是大问题,因为即使我不知道实际的可执行文件在哪里,它们也会神奇地工作。...如果你已经使用你的系统有一段时间了,这可能需要一段时间,因为即使你自己还没有生成很多文件,Linux 系统及其应用程序总是在记录、缓存和存储各种临时文件。文件系统中的条目数量会快速增长。...大多数 Linux 发行版都会向你显示与你在上图中看到的相同或非常类似的结构。 这意味着,即使你现在感到困惑,掌握这一点,你将掌握大部分(如果不是全部的话)全世界的 Linux 文件系统。...总结 尽管 Linux 发行版之间存在细微差别,但它们的文件系统的布局非常相似。 你可以这么说:一旦你了解一个,你就会都了解了。 了解文件系统的最好方法就是探索它。...很快你就会发现 Linux 文件系统及其布局的确很有意义,并且你会直观地知道在哪里可以找到应用程序,文档和其他资源。

    7.4K31

    Linux—文件系统结构

    1、文件目录结构 /:是Linux系统的根目录 /bin:存放用户经常使用的命令 /boot:启动加载程序的静态文件 /dev:设备文件目录,不能单独分区 /etc:系统配置文件目录 /home:普通用户的家目录...被抛弃的临时文件目录 /var:动态数据文件目录;日志文件log,数据库,缓存目录等 /lib:存放程序的库文件 /lib64:存放64位程序库文件 /media:移动媒体的挂载点 /mnt:临时挂载的文件系统的挂载点.../opt:存放第三方软件服务 /proc:伪文件系统,内核映射文件,不能单独分区 /srv: 用来存储本机提供的服务或数据 /sys:伪文件系统,跟硬件设备相关的属性映射文件,不能单独分区 注意: /...etc,/bin,/sbin,lib目录存放的是系统启动就需要用到的程序,这些目录不能挂载额外的分区,必须在跟文件系统的分区上 /usr/bin、/usr/sbin、/usr/lib提供操作系统核心功能

    7.4K40
    领券