嵌入式Linux常用文件系统
Linux支持很多文件系统,在选择时应根据应用的功能选择文件系统
内核只认识VFS(虚拟文件系统),不同的文件系统实现的都是和VFS的相互调用,进而通过VFS访问内核
MTD(Memeory Technology Device,存储技术设备):针对Flash做的底层驱动程序
Rootfs(根文件系统):
嵌入式系统中一般从Flash启动,最简单的方法是将rootfs load到RAM的RAMDisk,稍为复杂的就是直接从Flash读取的Cramfs,更复杂的是在Flash上分区,并构建JFFS2等文件系统。
基于Flash(NOR和NAND)的文件系统
NOR Flash和NAND Flash的比较:http://blog.ednchina.com/ic_net66/43188/message.aspx
jffs2:RedHat基于jffs开发的
特点:可读写、支持数据压缩、支持哈希表的日志型文件系统,提供了崩溃/掉电安全保护,提供“写
平衡”支持等。
缺点:不适合在体积和容量比较大的NAND Flash中使用,当文件系统已满或者快满时,因为垃圾收集的
关系使它的运行速度大大放慢。
yaffs:专为嵌入式系统使用NAND型闪存而设计的一种日志型文件系统。
特点:1.减少了一些jffs2的功能,但是速度更快,占用内存更少,能够实现错误检测和坏块处理,能
够提高文件系统的加载速度。采用多策略混合的垃圾回收算法。
2.跨平台文件系统,除了Linux还支持WinCE、pSOS、ThreadX。
3.自带NAND芯片驱动,并为嵌入式系统提供直接访问文件系统的API,用户可不使用Linux中的
MTD与VFS,直接对文件系统操作。也可与MTD驱动程序配合使用。
Cramfs:Linux开发的只读的压缩文件系统,基于MTD驱动程序
特点:速度快,效率高,保护文件系统免受破坏,提高了可靠性。
缺点:内容无法扩充。
Romfs:简单的、紧凑的、只读的文件系统,不支持动态擦写保存,安顺序存放数据。ucLinux通常采用本
文件系统。
基于RAM的文件系统
Ramdisk:将一部分固定大小的内存当作分区来使用。它并非一个实际的文件系统,而是一种将实际的文
件系统装入内存的机制,并且可以作为根文件系统。将一些经常被访问而又不会更改的文件通过
Ramdisk放在内存中,可以明显的提高系统的性能。
在Linux的启动阶段,initrd提供了一套机制,可以将内核映像和根文件系统一起载入内存。
ramfs/tmpfs:
1.Ramfs是Linus Torvalds开发的一种基于内存的文件系统,工作于虚拟文件系统(VFS)层,不能格式
化,可以创建多个,在创建时可以指定其最大能使用的内存大小。(实际上VFS本质上可看成一种内存
文件系统,它统一了文件在内核中的表示方式,并对磁盘文件系统进行缓冲。)
2.Ramfs/tmpfs文件系统把所有的文件都放在RAM中,所以读/写操作发生在RAM中,可以用ramfs/tmpfs
来存储一些临时性或经常要修改的数据,例如/tmp和/var目录,这样既避免了对Flash存储器的读写
损耗,也提高了数据读写速度。
3.Ramfs/tmpfs相对于传统的Ramdisk的不同之处主要在于:不能格式化,文件系统大小可随所含文件内
容大小变化。
4.Tmpfs的一个缺点是当系统重新引导时会丢失所有数据。
网络文件系统NFS (Network File System)
NFS:是由Sun开发并发展起来的一项在不同机器、不同操作系统之间通过网络共享文件的技术。在嵌入式Linux系统的开发调试阶段,可以利用该技术在主机上建立基于NFS的根文件系统,挂载到嵌入式设备,可以很方便地修改根文件系统的内容。
以上讨论的都是基于存储设备的文件系统(memory-based file system),它们都可用作Linux的根文件系统。实际上,Linux还支持逻辑的或伪文件系统(logical or pseudo file system),例如procfs(proc文件系统),用于获取系统信息,以及devfs(设备文件系统)和sysfs,用于维护设备文件。
嵌入式Linux常用文件系统相关推荐
- 采用busybox的嵌入式Linux根文件系统的的制作方法
在嵌入式Linux操作系统越中文件系统作为操作系统的重要组成部分,用于控制对数据文件及设备的存取,提供对文件和目录的分层组织形式,数据缓冲以及对文件存取权限的控制.根文件系统一直是Linux系统不可或 ...
- 嵌入式Linux根文件系统制作
嵌入式Linux根文件系统制作 一.根文件系统简介 根文件系统首先是一种文件系统,该文件系统不仅具有普通文件系统的存储数据文件的功能,但是相对于普通的文件系统而言它还是内核启动时所挂载(mount)的 ...
- TQ210 —— 嵌入式Linux根文件系统的设计与实现
嵌入式Linux根文件系统的设计与实现 1.Linux文件系统基本概念 文件系统类型:FAT32.NTFS.EXT2. EXT3. JFFS2. YAFFS2. NFS Linux根文件系统目录结构: ...
- 嵌入式linux文件系统格式,嵌入式Linux的文件系统分区及数据读写方法与流程
本发明涉及Linux系统的数据存储管理领域,特别是涉及一种基于NANDFlash存储器和UBIFS文件系统的嵌入式Linux的文件系统分区及数据读写方法. 背景技术: ::目前Linux操作系统由于源 ...
- 构建基本的嵌入式Linux根文件系统
构建基本的嵌入式Linux根文件系统 其实在去年8月份我做系统移植时就构建好了一个可以用的根文件系统,但是那时是跟着别人的<Linux全线移植文档>做的.有些东西我也不清楚,只是跟着做,做 ...
- 制作嵌入式Linux根文件系统
文章目录 1. 根文件系统布局 2. 使用BusyBox生成二进制工具 2-1. 获取BusyBox源码 2-2. 配置BusyBox 2-2-1. 选择编译静态库 2-2-2. 选择交叉编译工具链 ...
- 嵌入式linux启动根文件系统,嵌入式Linux根文件系统制作和挂载
嵌入式Linux系统由三部分组成: uboot.kernel.根文件系统, 还是这张老图 这里的根文件系统可以说是包含两个部分: 一个是根,一个是文件系统 那么什么是根呢?哈哈 其实根表示的就是第一个 ...
- 嵌入式linux rootfs,【转】制作 嵌入式 linux 根文件系统 rootfs
一.什么是文件系统 (Filesystem) 文件系统是包括在一个磁盘(包括光盘.软盘.闪盘及其它存储设备)或分区的目录结构:一个可应用的磁盘设备可以包含一个或多个文件系统:如果您想进入一个文件系统, ...
- 嵌入式Linux 根文件系统rootfs的构建
前言 最近翻出来十年前的ARM9开发板:AT91SAM9261EK,芯片是原Ateml的AT91系列,之前开发的资料,因为更换电脑,基本上找不到了,还好部分经验记录在了[博客]上,所以,这次为了继续学 ...
最新文章
- 递归 尾递归_代码简报:递归,递归,递归
- 完美解决小程序一维数组循环渲染列表不够用问题
- 以色列农业奇迹-丰收节贸易会:谋定符合国情制度和方式
- Thinking in C++ Notes 常量
- 【hadoop】Hadoop Output directory file output already exists
- spring与web关系
- Android之PreferenceActivity (转载)
- java新闻发布系统源代码_Java新闻发布系统源代码
- stm32_004_stm32f103内部结构图
- Samba————Linux与windows共享文件
- 大咖联袂发布!《慧技术·惠金融——2022金融科技趋势研究报告》开放下载
- 静态分析之数据流分析与 SSA 入门 (二)
- 算法快学笔记(九):红黑二叉树
- 安装和开启 魔改bbr
- HTML旅游网站设计与实现——东江湖旅游网站6个网页HTML+CSS+JavaScript
- 2022-04-01每日刷题打卡
- Xshell6|Xftp6 要继续使用此程序,您必须应用最新的更新或使用新版本
- 目标检测之ATSS算法anchor-free和anchor-based的差异
- 第一款让我付费使用的流程图软件EDraw Max亿图图示
- 2021.8.27夏令营阶段测试总结