计算机系统中的文件系统梳理

news2024/12/26 23:36:25

看之前,大家动动小手点个关注,谢谢。

原文地址:计算机系统中的文件系统梳理 - Pleasure的博客

下面是正文内容:

前言

这是一篇笔记

我之所以要选择这个话题,是因为前几天在对TF卡进行格式化的时候遇到了问题。有些专业名词的用途和含义并不了解,,故撰此文。以便对储存设备的储存原理与方法有一个大致的印象。

这应该是属于操作系统和存储管理领域的知识了。

正文

文件系统与储存设备的关系

文件系统负责在存储设备上组织数据。它定义了文件和目录的结构,使得用户和应用程序能够以逻辑方式访问和管理数据。

文件系统负责管理存储设备上的空间分配和释放。它决定如何将文件存储在存储设备上,以及如何最有效地利用可用的存储空间。

文件系统定义了文件和目录的命名规则,并提供了路径来定位这些文件和目录。这使得文件系统能够唯一标识和定位存储设备上的数据。

硬盘分区与格式化

磁盘空间,是储存数据的总物理容量。

磁盘扇区是硬盘的最小存储单位,通常是512字节或4K字节大小。硬盘在出厂时并不是已经划分好扇区,而是未经格式化的。

硬盘初始化的过程包括分区与格式化。分区是将硬盘划分为一个或多个逻辑区域,而格式化则是在每个分区上创建文件系统,以便操作系统能够管理和存储文件。

文件系统通过文件和目录的逻辑结构将磁盘扇区组织在一起。

SD卡是正常能使用的

硬盘分区表标准

主要的硬盘分区表有两种标准:MBR(Master Boot Record)和GPT(GUID Partition Table)。

MBR是一种传统的硬盘分区表标准,它位于硬盘的第一个扇区,占用512字节。MBR记录了硬盘的分区信息,包括主引导记录(Master Boot Record)和分区表条目。它最多支持4个主分区,或者3个主分区和一个扩展分区。

GPT是一种现代的硬盘分区表标准,采用了全球唯一标识符(GUID)来标识分区。GPT具有更大的容量和更多的分区支持,支持最大2^64个分区。它还提供更强的数据完整性和灵活性。

UUID(Universally Unique Identifier,通用唯一标识符),UUID的目的是在分布式系统中唯一标识实体,如计算机、文件、数据库条目等。由于UUID的生成算法采用了包含时间戳和随机数的混合策略,所以理论上可以保证在同一时空范围内的唯一性。

文件系统挂载

将文件系统与特定的目录(挂载点)关联,将存储设备或存储设备上的文件系统连接到文件系统层次结构中的特定位置,使得文件系统中的内容在该位置可见并可访问。

文件系统挂载在广义上涵盖了将各种存储设备或文件系统连接到操作系统文件系统层次结构的过程。

比如硬盘分区的挂载,其他储存设备的挂载,虚拟磁盘的挂载等等。

文件系统列举

exFAT

Extended File Allocation Table,主要用于Windows操作系统

NTFS

New Technollogy File System,主要用于Windows操作系统

EXT4

Fourth Extended File System,主要用于Linux操作系统

上面几种是较为常见的几种文件系统,其他不常见的文件系统还包括:EXT3,EXT2,FatFs,Swap等等

FatFs(FAT File System)是一个小型的、嵌入式的文件系统,特别适用于资源有限的嵌入式系统和嵌入式设备。为各种嵌入式系统提供了一种轻量级的文件系统解决方案。FatFs支持FAT12、FAT16、FAT32等FAT文件系统的变体。

Swap 文件系统 通常是用于存储虚拟内存页面的一块磁盘空间。当系统的物理内存(RAM)不足以容纳当前正在运行的程序和操作系统所需的数据时,操作系统会将一些不常用的内存页面移动到 Swap 文件系统中,从而释放物理内存供其他程序使用。

大家自行前往了解。

由于OpenWRT又属于嵌入式操作系统,其常使用的文件系统有SquashFS、JFFS2和overlayfs等。(这不重要,不想看的可以不看)

具体情况例举

这也是我写这篇笔记的原因(之前没有理解原理莫名奇妙就成功了,现在回头来看实现功能的具体过程)

有一个路由系统(OpenWRT,Linux内核),在该物理设备中插入一张SD卡(储存设备)。现想要将该设备挂载到系统硬盘的某文件夹下,使得通过Samba协议能够在局域网中无物理连接直接访问该储存设备中的文件。

/dev/mmcblk1——Linux 系统中用于表示第二个 MMC(Multimedia Card)或 eMMC(embedded MMC)设备的命名约定。MMC是一种闪存存储设备,通常用于嵌入式系统和移动设备。

如果是mmcblk1p1——则表示该储存设备中的第一个分区

/mnt——该目录通常被用来挂载临时或手动挂载的文件系统。

/mnt/mmcblk1p1——表示系统中第二个 MMC 块设备上的第一个分区被挂载到 /mnt目录下,这个路径是该文件系统在 Linux 系统中的挂载点。在这个挂载点下,你可以访问和操作 MMC 块设备上第一个分区的文件和目录。

首先,对该储存设备(同样可以是U盘,硬盘等)进行格式化。由于笔记本(Windows操作系统)不支持对EXT4格式化后的储存设备的读取,所以选择NTFS格式化,在OPENWRT上安装ntfs-3g插件包,支持对该格式化方式的储存设备的读取。

现在,根据大致思路,建立挂载点,挂载文件系统,将挂载点文件夹进行共享。(具体步骤略)

另外,甚至可以搭配内网穿透从而通过外网进行访问。

尾声

又是日常码字中的一个小细节,希望对你有所帮助。

同时祝自己生日快乐。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1490829.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

每日一练 | 华为认证真题练习Day192

1、下面是路由器RTB的部分输出信息,关于输出信息描迷错误的是: A. 接口上动态加入的组播组个数是1。 B. 加入的组播组地址是225.1.1.2 C. DISPLAY IGMP GROUP命令用来查看IGMP组播组信息,包括通过成员报告动态加入的组播组和通过命令行静态加入的组播组…

抖音视频下载软件|视频批量采集工具

便捷操作,高效采集 在快节奏的数字化时代,我们的视频下载软件提供了简单便捷的操作流程,让用户能够高效地采集所需视频内容。用户只需输入关键词并点击开始抓取,系统会自动搜索指定关键词下的抖音视频数据,并将待解析视…

2024年软考考试安排和报名时间出来了!有重大变化!

软考办2024年软考考试安排终于发布了!变化很大!信息系统项目管理师上半年考、系统集成项目管理工程师下半年考。很多科目一年只考一次了! 温馨提示: 1、目前这个文件,软考办官网还未发布,但是陕西软考办官方已经发布了2024年考试安排&…

kafka查看消息两种方式(命令行和软件)+另附发送消息方式

1、命令行方式 ①找到kafka安装文件夹 ②执行命令 #指定offset为指定时间作为消息起始位置 kafka-consumer-groups.sh \ --bootstrap-server 20.2.246.116:9092 \ --group group_1 \ --topic lanxin_qiao \ --reset-offsets \ --to-datetime 2023-07-19T01:00:00.000 \ -exe…

有没有想过找个编程的贴身帮手?一步一步引入编程路上的副驾驶--copilot

辅助编程,或者说智能编程,这个概念不是这两年才提出,但比较成型的产品就在这几年,这里有一款智能编程的软件叫做copilot,从软件的名字我们知道,他貌似定位还蛮准确的,意思是你编程路上的副驾驶&…

第十三届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组 统计子矩阵

#include<iostream> #include<algorithm> #include<cstring> #include<string> #include<vector> #include<queue>using namespace std;int cnt,temp; int n,m,K; int a[505][505]; int pre[505][505];//二维前缀和void sol() {cin>>…

《RabbitMQ实战指南》读书笔记

第一章 RabbitMQ简介 1.1 什么是消息中间件 消息&#xff08;message&#xff09;是指在应用间传递的数据。 消息队列中间件&#xff08;Message Queue Middleware&#xff0c;简称MQ&#xff09;&#xff0c;是指提供平台无关的、高效可靠的消息传递机制的中间件。 MQ通常又…

生成哈夫曼树 - 华为OD统一考试(C卷)

OD统一考试&#xff08;C卷&#xff09; 分值&#xff1a; 100分 题解&#xff1a; Java / Python / C 题目描述 给定长度为 n 的无序的数字数组&#xff0c;每个数字代表二叉树的叶子节点的权值&#xff0c;数字数组的值均大于等于 1 。 请完成一个函数&#xff0c;根据输入…

解决JitPack中编译成功但是无aar文件的情况

情况(编译后无aar文件) 上传仓库后&#xff0c;在JitPack中编译成功后的截图 解决方法 通过上图可发现代码已经编译通过&#xff0c;但是在Files中却没有aar文件的生成 解决方法是添加配置&#xff0c;上代码 // publishing 用于定义项目的发布相关配置 publishing {// 配置…

2024全网最全Excel函数与公式应用

&#x1f482; 个人网站:【 海拥】【神级代码资源网站】【办公神器】&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交流的小伙伴&#xff0c;请点击【全栈技术交流群】 引言 Excel是一款广泛应用于商业、教育和个人…

【教程】APP开发后如何上架?

摘要 本文介绍了移动应用程序&#xff08;APP&#xff09;开发后如何上架的步骤和注意事项。内容包括选择合适的应用商店、遵循应用商店的规则和政策、准备上架所需材料、创建开发者账号、提交APP并等待审核等环节&#xff0c;以及上架成功后的推广和维护工作。 引言 移动应…

MySQL:索引的优化方法

索引是帮助存储引擎快速获取数据的一种数据结构&#xff0c;形象的说就是索引是数据的目录。 索引创建的时机&#xff1a; 索引并不是越多越好的&#xff0c;虽然他再查询时会提高效率&#xff0c;但是保存索引和维护索引也需要一定的空间和时间成本的。 不创建索引&#xff1a…

一本书讲透ChatGPT——理论与实践的完美结合,大模型技术工程师的必备指南

写在前面 OpenAI 在 2022 年 11 月推出了人工智能聊天应用—ChatGPT。它具有广泛的应用场景&#xff0c;在多项专业和学术基准测试中表现出的智力水平&#xff0c;不仅接近甚至有时超越了人类的平均水平。这使得 ChatGPT 在推出之初就受到广大用户的欢迎&#xff0c;被科技界誉…

transformer--transformer模型构建和测试

前面几节进行了各种组件的学习和编码&#xff0c;本节将组件组成transformer&#xff0c;并对其进行测试 EncoderDecoder 编码器解码器构建 使用EnconderDecoder实现编码器-解码器结构 # 使用EncoderDeconder类实现编码器和解码器class EncoderDecoder(nn.Module):def __ini…

Jenkins 的安装(详细教程)

文章目录 一、简介二、安装前准备三、windows 安装与启动1. 方式一2. 方式二3. 方式三 四、创建管理员用户五、常用设置1. 配置镜像地址2. 更改工作目录3. 开启可注册用户4. 全局变量配置 一、简介 官网&#xff1a;https://www.jenkins.io 中文文档&#xff1a;https://www.j…

什么是RabbitMQ的死信队列

RabbitMQ的死信队列&#xff0c;是一种用于处理消息&#xff0c;处理失败或无法路由的消息的机制。它允许将无法被正常消费的消息重新路由到另一个队列&#xff0c;以便稍后进行进一步的处理&#xff0c;分析或排查问题。 当消息队列里面的消息出现以下几种情况时&#xff0c;就…

UE4c++ 材质功能大全(想起来就补充一个)

前言&#xff1a;才想起写一个这个文档&#xff0c;前期内容较少&#xff0c;其他内容&#xff0c;我也只会想起来加一加&#xff01; 材质功能大全 竖直百分比进度HSV To RGBRGB转灰度值AlphaComosote(Premultiplied Alpha&#xff09;预乘 转 Translucent &#xff08;sRGB与…

世微AP9235B 恒流输出 升压型DC/DC转换器 背光驱动芯片

概述 AP9235B 系列是一款固定振荡频率、恒流输出的升压型DC/DC转换器&#xff0c;非常适合于移动电话、PDA、数码相机等电子产品的背光驱动。输出电压可达23V &#xff0c;3.2V输入电压可以驱动六个串联LED&#xff0c; 2.5V输入电压可以驱动两路并联LED&#xff08;每路串联三…

仓储管理系统(WMS) 的研发历程-行业分析

行业历史 首先我们先了解一下仓储的行业历史&#xff0c;行业现状以及发展趋势&#xff0c;正所谓知己知彼才能百战不殆。 其实传统意义的仓库早就有了&#xff0c;他的职能就是存储和保护物品的一种方式&#xff0c;原始人类的山洞用于存储食物和其他重要的物品。 随着农业的发…

Vue3学习记录(三)--- 组合式API之生命周期和模板引用

一、生命周期 1、简介 ​ 生命周期&#xff0c;指的是一个 Vue 实例从创建到销毁的完整阶段&#xff0c;强调的是一个时间段。 ​ 生命周期钩子函数&#xff0c;指的是 Vue 实例提供的内置函数&#xff0c;函数的参数为一个回调函数。这些钩子函数会在实例生命周期的某些固定…