嵌入式开发中常用文件系统介绍( cramfs、 JFFS2、 NFS、 initrd、 yaffs2、 ext4以及squashfs)

2023-10-30

1、存储介质的分类

(1)是否需要初始化分为Nand flass和Nor flash。Nor flash不需要初始化就可以工作,可以在Nor flash上运行代码从而节省内存,但是写入和擦除速度慢,且单位容量成本高,适用于小型穿戴设备;Nand flash需要先初始化才能使用,但是单位容量成本低,不能片上执行程序;
(2)按照是否带控制器,分为raw存储芯片和带控制器的存储芯片。raw存储芯片就是没有带控制器,基本就是原始的存储颗粒的集合,需要内核去做坏块管理、CRC校验等工作;带控制器的存储芯片,坏块管理、CRC校验等工作都是控制器来做;
(3)安装原理分为机械硬盘和固态硬盘。机械硬盘是磁原理存储信息,体积大,读取速度慢,但是价格便宜;固态硬盘是电学原理存储信息,体积小,读取速度快,但是价格比机械硬盘贵;
(4)Nand flass按照存储颗粒分为SLC和MLC。SLC的特点是成本高、容量小、速度快,而MLC的特点是容量大成本低,但是速度慢、容易坏块;现在大容量的flash基本都是MLC的,因为价格便宜并且MLC的制造工艺和性能也在不断进步;
(5)更多存储介质的知识可以参考博客:《嵌入式开发——常见的存储器分类和特性介绍》

2、不同文件系统的特点

文件系统 特点
ext2, ext3,ext4 最适合较大的分区,良好的读写性能,适用于eMMC卡
squashfs 对于只读分区,最佳挂载时间和读取性能。非常适合需要只读的根文件系统
ubifs 适合Nand flash,其基于 MTD 驱动层,更好的磨损均衡
JFFS2 主要用于 NOR 型 Flash 存储器,其基于 MTD 驱动层
YAFFS2 适合Nand flash
initrd 基于内存的文件系统,可作为挂载真正根文件系统前的引导
FAT32 体积小,适合小型嵌入式设备 ,代码开源移植简单,在Windows和linux中都支持
NFS 基于网络的文件系统,适用于调试阶段
cramfs 只读文件系统

3、嵌入式开发中如何选择文件系统

(1)开发调试的阶段:选择NFS文件系统,直接网络挂载文件系统不必每次都要烧录;
(2)根据flash的类型来选择合适的文件系统;
(3)根据是否需要读写来选择文件系统:如果设备出厂后不需要修改的分区就采用只读分区,比如根文件系统采用squashfs文件系统;
(4)根据设备需求来选择文件系统。比如flash容量不大,就采用压缩的文件系统来节省flash空间但是解压缩要牺牲性能;

4、总结

(1)上面只是总结了常见文件系统在实际开发中需要注意的点,文件系统是很复杂的,每一种文件系统想要深入研究都需要花费大量实际,如果不是工作专门从事文件系统开发工作,没必要深入了解;
(2)在实际嵌入式开发工作中,对不同文件系统能使用相关命令来制作镜像、格式化、挂载等即可;
(3)文件系统的选择其实已经很成熟,具体采用何种文件系统,可以参考芯片厂商的demo板,或者参考其他成熟产品是如何采用文件系统的;

推荐

给大家推荐一个学校嵌入式知识的网站,博主在大学时候学习嵌入式知识、找工作的时候都在用这个网站,网站里有C语言、Linux等等的笔试题、面试常问问题等等知识,无论是学习基础知识、面试刷题、交流工作经验都是不错的选择。大家一起进步,欢迎留言交流。
链接:学习神器跳转
在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

嵌入式开发中常用文件系统介绍( cramfs、 JFFS2、 NFS、 initrd、 yaffs2、 ext4以及squashfs) 的相关文章

  • Linux文件系统--文件类型

    Linux中一切都是文件 xff0c 文件类型有多种 xff0c 使用ls l命令可以查看文件属性 xff0c 所显示结果的第一列的第一个字符用来表示文件类型 xff0c 如下 xff1a 1 普通文件 第一列第一个字符为 的文件为普通文件
  • Linux 文件系统

    Linux 文件系统以及常见命令 Linux 文件系统block 与 inode文件类型权限目录树挂载 管道啥是管道管道的分类管道的实质 Linux 文件系统 在 Linux 中一切皆文件 xff0c 不仅仅是平时所使用的 txt pdf
  • Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍

    利用系统的运行时的虚拟文件系统 proc 获取系统的相关信息 xff0c 这里只涉及分区 xff0c 和文件系统 1 查看系统中分区表 xff1a cat proc partitions 2 查看系统中已挂载的分区 xff1a cat pr
  • Linux文件系统(三)文档压缩及解压缩

    1 文档压缩概述 2 图形化归档工具 3 命令行工具
  • ZYNQ 安装ubuntu文件系统

    ZYNQ 7020 Ubuntu16 04文件系统安装 在关于zynq openamp的章节我们已经完成了zynq 的u boot 内核 xff0c 设备树的制作 xff0c 通过XSDK完成了启动文件的创建 同样道理制作zynq7020的
  • ROS学习:ROS文件系统--package.xml

    package xml 也是一个 catkin的package 必备文件 xff0c 它是这个软件包的描述文件 xff0c 在较早的ROS 版本 rosbuild 编译系统 中 xff0c 这个文件叫做 manifest xml xff0c
  • FAT12文件系统

    一 FAT12软盘格式 软盘格式如图1 xff1a 每个扇区是512字节 xff0c 512B 2880 61 1 44MB 图 1 软盘 xff08 1 44MB xff0c FAT12 xff09 1 引导扇区 占512字节 xff0c
  • ARM开发板挂接NFS网络文件系统

    1 交叉线连开发板和PC 2 LINUX IP PC IP和开发板IP属同一网段 LINUX IP 192 168 1 20 PC IP 192 168 1 30 做中转作用 开发板IP 192 168 1 10 3 ubuntu默认是没有
  • 【嵌入式】基于FATFS/Littlefs文件系统的日志框架实现

    嵌入式 基于FATFS Littlefs文件系统的日志框架实现 文章目录 嵌入式 基于FATFS Littlefs文件系统的日志框架实现 1 概述 2 设计概要 3 设计实现 3 1 初始化 init 3 2 日志写入 write 3 3
  • IOS_swift文件系统

    func files 应用根目录 let dir NSHomeDirectory NSLog dir dir 文档目录 let doc NSSearchPathForDirectoriesInDomains DocumentDirector
  • linux文件系统出错:Read-only file system

    问题 root xx opt gopath src github com hyperledger fabric mkdir p testtt mkdir cannot create directory testtt Read only fi
  • FATFS文件系统详解

    FATFS文件系统详解 文章目录 FATFS文件系统详解 1 简介 2 基础概念 3 FAT文件系统组成介绍 4 FAT文件系统分析 4 1 采用FAT格式格式化SD nand sd卡 4 2 引导扇区分析 4 3 分区偏移及大小计算 4
  • 【linux kernel】记一次linux内核裁剪总结

    记一次linux内核裁剪总结 一 背景 在linux内核构建过程中 根据实际应用场景 小生构建了一个大约5 7M大小的linux内核zImage镜像 发现其稍微有点大了 想着将其裁剪和缩小 于是乎对linux内核进行裁剪 本篇文章主要记录一
  • 物理磁盘的四种使用方式

    一 物理磁盘整个直接使用 把整个物理磁盘直接格式话成文件系统 然后mount 二 通过分区使用 把整个物理磁盘通过fdisk dev sdx这样分区 通过格式化各个分区来使用磁盘 三 通过逻辑卷使用 可以把整个物理磁盘作为一个物理卷pvcr
  • 简简单单吃个磁盘(硬盘?)

    前言 Version S Description Date By V1 C First Version 2020 10 24 AYZP C Create A Add M Modify D Delete 整理资料的时候 发现个磁盘的相关知识不
  • 嵌入式设备文件系统构建——增加用户登录功能

    1 修改inittab文件 first run the system script file sysinit etc init d rcS 进入命令行 askfirst bin sh 添加执行登录验证 sysinit bin login c
  • shell脚本对硬盘进行分区——fdisk、blkid、mke2fs、mount、lsblk

    1 前言 本文介绍的是嵌入式设备烧录系统时 如何用shell脚本对硬盘进行分区 文章主要介绍的是制作烧录U盘的分区思路和关键的shell脚本语句 代码并不能直接拷贝使用 2 总体思路 1 用U盘进行系统的烧录 就是在U盘上制作一个可以运行的
  • stm32 FATFS文件系统如何减少Flash和RAM占用,FATFS移除中文文件名,FATFS移除动态内存

    FATFS 下载地址 FATFS源码下载 FATFS 移植的过程中 主要用到三个文件 ff c diskio c ffconf h 移植FATFS不需要过多的操作 过程很是方便 步骤为 补全 diskio c 中的存储介质底层驱动文件 一般
  • 4. 文件系统 (FILE SYSTEM)

    所有的应用都需要存储和检索信息 当进程运行时 它可以存储有限数量的信息到自己的地址空间中 然而 其存储能力受限于虚拟地址空间的大小 对一些应用来说 虚拟地址空间并不能满足其存储需求 将信息保存在进程的地址空间的第二个问题是 当进程结束时信息
  • Python基础知识(九):文件与文件系统

    1 文件与文件系统 打开文件 open file mode r buffering None encoding None errors None newline None closefd True Open file and return

随机推荐