嵌入式系统设计师之文件系统(3.2.5)

目录

​​​​​​​一、文件和目录(II)

1、文件

2、目录 

二、文件存取方法、存取控制(II)

1、文件存取方法

2、文件的访问

3、文件控制 

三、常见嵌入式文件系统(I)


一、文件和目录(II)

1、文件

        从用户的角度来说,文件是一种抽象机制,它提供了一种把信息保存在磁盘等外部存储设备上,并且便于以后访问的方法。

        文件的逻辑结构指的是文件系统向外提供给用户的文件结构形式,它独立于文件在磁盘上的物理存储结构。文件的逻辑结构主要有三种:无结构、简单的记录结构和复杂结构。对于现代文件系统,通常采用的是无结构的形式。也就是说,整个文件是由一个无结构的字节流所组成,文件的大小也就是这些字节的个数。

        文件可以按照不同的准则来进行分类,例如:

        1、按照文件的性质和用途,可将文件分为系统文件、库文件和用户文件。

        2、按照文件的保护方式,可将文件分为只读文件、读写文件和可执行文件。

        3、按照文件的功能,可将文件分为普通文件和目录文件。普通文件就是通常意义上 所说的文件,它里面包含了用户的各种数据。目录文件是一种专用的系统文件, 用来管理文件系统的组织结构。

        4、在有些操作系统中,还有一种特殊的设备文件,即用文件的形式来管理输入/输出 设备。包括字符设备文件和块设备文件,前者用来描述串行的输入/输出设备,后 者用来描述磁盘等块设备。

2、目录 

        目录也称文件夹, 它是一张表格,记录了在该目录下每个文件的文件名和其他的一些管理信息。 一般来说,每个文件都会占用这张表格的某一行,即一个目录项。由于文件系统中的目录是 动态创建的,其大小是不断变化的,因此,目录通常都是以文件的形式存放在磁盘上。 另外,在目录的管理上,也有一些相关的系统调用,如创建目录、删除目录、修改目录名等。

        在多级目录结构中,主要有两种方法来指定需要访问的文件或目录:

        1、绝对路径名:对于每一个文件或目录,可以用从根目录开始依次经由的各级目录 名,再加上最终的文件名或目录名来表示,在每一级目录名之间,用分隔符隔开。 一个文件或目录的绝对路径名是唯一的,例如:\spell\mail\copyall

        2、相对路径名:用户首先指定一个目录作为当前的工作目录,然后在访问一个文件 或目录时,可以使用相对于当前工作目录的部分路径名,即相对路径名,例如,假设当前的工作目录是\spell\mailcopy,     那么使用相对路径名 all  的效果等价于使用绝对路径名\spellmail\copy\all

二、文件存取方法、存取控制(II)

1、文件存取方法

        文件的存取方法可以分为两类:

        1、顺序存取:对于文件中的每一个字节或记录,只能从起始位置开始, 一个接一个

地顺序访问,不能跳跃式访问。这是早期的操作系统所提供的存取方式。

        2、随机存取:根据所需访问的字节或记录在文件中的位置,将文件的读写指针直接 移至该位置,然后进行存取。每一次存取操作都要指定该操作的起始位置。现代操作系统都提供随机存取的方式。

2、文件的访问

        文件的访问指的是与文件内容读写有关的各种文件操作,包括:

        ●打开操作:在访问一个文件前,必须先打开它;

        ●关闭操作:在使用完一个文件后,要关闭该文件;

        ●读操作:从文件中读取数据;

        ●写操作:把数据写入文件;

        ●添加操作:把数据添加到文件的末尾;

        ●定位操作:指定文件访问的当前位置。 

3、文件控制 

        文件的控制指的是与文件属性控制有关的各种文件操作,包括文件的创建、删除、读取文件属性、设置文件属性、修改文件名等。

三、常见嵌入式文件系统(I)

        1、FAT(File    Allocation     Table):FAT 文件系统是最常用的文件系统之一,最早于1982 年应用在MS-DOS  操作系统当中。许多的嵌入式操作系统都支持FAT 文件系统,  VxWorks QNX Windows  CE等。为了与 PC 机文件系统兼容,在嵌入式系统

设计中一般使用标准的 FAT12/16/32 文件系统;

        2、NFS(Network   File   System):  网络文件系统,基于远程过程调用(Remote   Procedure Call,RPC)      和扩展数据表示 (Extended     Data     Representation,XDR)。它可以将外 部设备安装在文件系统中,就好像是一个本地的文件分区,从而可以实现对网络文件的快速、无缝的共享;

        3、FFS(Flash     File     System):   用于 Flash 存储器的文件系统;        

        4、DosFS: 用于实时条件下的块设备(磁盘)访问,并且与MS-DOS  文件系统兼容;

        5、RawFS: 提供了一个简单的“生”的文件系统,它的基本思路是把整个磁盘视为

一个巨大的文件;

        6、TapeFS: 用于磁带设备,在磁带上不使用标准的文件或目录结构。其基本思路是

把整个磁带卷视为一个巨大的文件

        7、CdromFS:ISO  9660 标准文件系统,用于CD-ROM  数据的访问。

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

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

相关文章

AI助力农作物自动采摘,基于YOLOv5全系列【n/s/m/l/x】参数模型开发构建作物生产场景下番茄采摘检测计数分析系统

去年十一那会无意间刷到一个视频展示的就是德国机械收割机非常高效自动化地24小时不间断地在超广阔的土地上采摘各种作物,专家设计出来了很多用于采摘不同农作物的大型机械,看着非常震撼,但是我们国内农业的发展还是相对比较滞后的&#xff0…

国辰智企APS自动化排产平台:实现生产计划与其他系统无缝协同

在当今竞争激烈的制造环境中,有效的生产计划和排程对于企业的成功至关重要。APS生产计划排程平台作为一种先进的工具,正越来越受到企业的关注和应用。那么,APS生产计划排程平台有哪些类型呢?本文将为您详细介绍。 1.基于规则的APS…

力扣_字符串3—通配符匹配

题目 给你一个输入字符串 s s s 和一个字符模式 p p p ,请你实现一个支持 ? ? ? 和 ∗ * ∗ 匹配规则的通配符匹配: ? ? ? 可以匹配任何单个字符。 ∗ * ∗可以匹配任意字符序列(包括空字符序列)。 判定匹配成功的充要…

vue-element-admin npm install 失败解决

git地址:https://github.com/PanJiaChen/vue-element-admin/tree/master 原因: tui-editor插件改名导致 解决方法: 第一步: package.json文件 "tui-editor": "1.3.3",修改为 "toast-ui/editor&qu…

小埋的解密游戏的题解

题目描述 小埋最近在玩一个解密游戏,这个游戏的解密方法是这样的,这个游戏会给你提供 个数,让我们求出这 个数里面,有多少个连续的数的平均数大于某个给定的数 。这个数可能会很大,所以我们要输出这个数对 的取模结果。现在小…

99例电气实物接线及52个自动化机械手动图

给大家分享一些流水线设计中常见的一些结构,这些动态图很直观,有助于大家了解其原理,非常好懂。 1.家庭总电箱接线图 2.经典双控灯接线 3.五孔一开接线 4.电动机点动控制接线(不安全) 5.电动机自锁接线图(…

git常用一些操作

1. git status // 查看当前目录更新 2. git checkout -b <NEW_BRANCH> // 新切一个分支&#xff08;只在第一次操作的时候做&#xff0c;后面就不用做了&#xff09; 3. git pull origin <BRANCH_NAME> …

Vue中跨域问题的解决

目录 1 跨域的概念 2 解决办法 2.1 修改请求实例的公共前缀 2.2 修改vite.config.js文件 1 跨域的概念 由于浏览器的同源策略限制&#xff0c;向不同源(不同协议、不同域名、不同端口)发送ajax请求会失败 2 解决办法 原理&#xff1a;使得浏览器向两个端口发送请求和接手…

怎样理解Vue单向数据流

在前端开发中&#xff0c;数据流是一个非常重要的概念。Vue.js作为一种流行的前端框架&#xff0c;采用了单向数据流的架构&#xff0c;旨在简化开发过程并提高应用的可维护性。本文将探讨Vue单向数据流的含义以及它的使用方法。 什么是单向数据流&#xff1f; 在Vue中&#…

H5 简约四色新科技风引导页源码

H5 简约四色新科技风引导页源码 源码介绍&#xff1a;一款四色切换自适应现代科技风动态背景的引导页源码&#xff0c;源码有主站按钮&#xff0c;分站按钮2个&#xff0c;QQ联系站长按钮一个。 下载地址&#xff1a; https://www.changyouzuhao.cn/11990.html

在Vue中如何动态绑定class和style属性

在Vue中&#xff0c;动态绑定class和style属性是我们经常遇到的需求。这个功能允许我们根据不同的条件来动态改变元素的样式&#xff0c;让我们的应用更加灵活和富有交互性。在本篇博客文章中&#xff0c;我将带你深入探索在Vue中如何实现这一功能。 首先&#xff0c;让我们了…

FPGA高端项目:IMX327 MIPI 视频解码 USB3.0 UVC 输出,提供FPGA开发板+2套工程源码+技术支持

目录 1、前言免责声明 2、相关方案推荐我这里已有的 MIPI 编解码方案 3、本 MIPI CSI-RX IP 介绍4、个人 FPGA高端图像处理开发板简介5、详细设计方案设计原理框图IMX327 及其配置MIPI CSI RX图像 ISP 处理图像缓存UVC 时序USB3.0输出架构 6、vivado工程详解FPGA逻辑设计 7、工…

flask+pyinstaller实现mock接口,并打包到exe运行使用postman验证

flask代码 from flask import Flask, request, jsonifyapp Flask(__name__)app.route("/login", methods[POST]) def login():username request.json.get("username").strip() # 用户名password request.json.get("password").strip() # 密…

SQL--DDL

全称 Structured Query Language&#xff0c;结构化查询语言。操作关系型数据库的编程语言&#xff0c;定义了 一套操作关系型数据库统一标准。 1 SQL通用语法 在学习具体的SQL语句之前&#xff0c;先来了解一下SQL语言的同于语法。 1). SQL语句可以单行或多行书写&#xff0…

什么是IDE,新手用哪个IDE比较好

什么是IDE IDE&#xff08;Integrated Development Environment&#xff0c;集成开发环境&#xff09;是一种为程序员提供软件开发所需的代码编辑、构建、调试等功能于一体的应用程序。IDE通常包含了代码编辑器、编译器、调试器和图形用户界面等工具&#xff0c;这些工…

解决IntellIJ Idea内存不足

突然有一天我在IDEA打开两个项目时&#xff0c;发生了报错&#xff0c;说我内存不足&#xff0c;我这电脑内存16G怎么会内存不足。下面是我的解决方案。 IntelliJ IDEA 报告内存不足的原因通常与以下几个因素有关&#xff1a; 项目规模较大&#xff1a;如果您正在开发的项目非…

SQL Parser

https://blog.csdn.net/w1047667241/article/details/123110220 alibaba druid 经过不断迭代&#xff0c;已经解决了很多 hive解析的bug&#xff0c;比如 2020年的create tablebug 支持的db type 多&#xff0c;impala ,hive &#xff0c;oracle 等等都支持 。 缺点就是捆绑销售…

git 的一个入门实例

假设你要创建一个新的Git存储库并进行一些基本操作。以下是一个简单的入门实例&#xff1a; 1. **初始化仓库&#xff1a;** bash git init 2. **添加文件&#xff1a;** 创建一个新文件&#xff0c;比如 example.txt&#xff0c;并将其添加到暂存区&#xff1a…

远程手机搭建Termux环境,并通过ssh连接Termux

背景 Termux只能通过鼠标点击&#xff0c;无法使用电脑键盘&#xff0c;输入速度很慢&#xff0c;你想通过ssh 连接Termux&#xff0c;获得友好体验搞了个云手机&#xff0c;想像普通手机那样充当服务器想把自己的手机公开到局域网中供同事调试想把自己的模拟器公开到局域网中…

套路化编程 C# winform 自适应缩放布局

本例程实现基本的自适应缩放布局。 在本例程中你将会学习到如何通过鼠标改变界面比例&#xff08;SplitContainer&#xff09;、如何使用流布局&#xff08;FlowLayoutPanel&#xff09;排列控件&#xff0c;当然首先需要了解如何设置控件随窗口缩放。 目录 创建项目 ​编辑…