嵌入式系统存储器浅谈

合集下载

嵌入式系统中的数据存储技术研究

嵌入式系统中的数据存储技术研究

嵌入式系统中的数据存储技术研究第一章:介绍嵌入式系统是由硬件、操作系统和应用程序组成的特定目的的计算机系统。

这些系统往往功能复杂,体积小,功耗低,并且需要特定的数据存储技术。

本文将探讨嵌入式系统中数据存储技术的研究进展。

第二章:嵌入式系统中的固态存储固态存储器是嵌入式系统中常见的数据存储技术。

它们比机械硬盘更为耐用、更加安全,并且更省电。

现在,主要的固态存储器有以下两种:1. NAND Flash 存储器NAND Flash 存储器是嵌入式系统中普遍使用的一种存储器。

NAND存储器可以被分为一页一页的写入,这意味着每次写入操作只需要消耗极少的能量,使得它特别适合节能的嵌入式系统。

然而,它也有一些缺点,例如写入次数有限,读取速度较慢。

2. NOR Flash 存储器与 NAND 存储器相比, NOR 存储器的写入速度更慢,但读取速度更快。

NOR 存储器被广泛应用于固件开发,例如启动装置(boot loader)。

第三章:数据库嵌入式系统中的数据库主要分为两类:1. 嵌入式数据库针对较小的系统,嵌入式数据库具有小巧的体积和低功耗,采用缓存技术来提高响应速度。

MySQL、SQLite和Berkeley DB是常见的嵌入式数据库。

2. 分布式数据库随着物联网的兴起,嵌入式系统的分布式数据库也越来越重要。

使用分布式数据库可以将数据分布在多个设备中,避免单点故障并提高可扩展性。

例如,Cassandra和MongoDB都是嵌入式系统中常用的分布式数据库。

第四章:内存管理和文件系统1. 内存管理嵌入式系统中的内存管理需要考虑以下因素:- 内存大小:很少有嵌入式系统有超过几百 MB 的内存,因此需要小型内存管理器(MMC)。

- 缓存:将常用的数据放在缓存中可以提高响应速度。

- 虚拟内存:将内存虚拟化可以使得操作系统和应用程序能够使用比物理内存更多的内存,这种技术被称为交换(paging)。

2. 文件系统嵌入式系统中的文件系统也需要考虑存储速度、可靠性和安全问题。

嵌入式系统的数据存储与管理方法

嵌入式系统的数据存储与管理方法

嵌入式系统的数据存储与管理方法随着技术的发展,嵌入式系统在各个领域中应用越来越广泛。

在嵌入式系统中,数据存储和管理是至关重要的一环。

嵌入式系统通常具有资源有限、功耗低、体积小等特点,因此,为实现高效的数据存储和管理,需要采用合适的方法和技术。

数据存储是嵌入式系统中必不可少的一部分。

在嵌入式系统中,数据可以分为两类:临时数据和持久数据。

临时数据通常存储在内存中,用于临时计算、传输和处理。

而持久数据通常存储在非易失性存储器(如闪存)中,以便断电后能够保持数据的一致性和完整性。

因此,在设计嵌入式系统时,需要结合存储器的种类和特性,选择合适的数据存储方案。

对于临时数据的存储和管理,嵌入式系统通常采用堆栈、队列、缓冲区等数据结构来存储和组织数据。

堆栈是一种后进先出(LIFO)的数据结构,适用于需要保持数据顺序的情况,如函数调用和中断处理。

队列是一种先进先出(FIFO)的数据结构,适用于需要按顺序处理数据的情况,如任务调度和消息传递。

缓冲区则是一种在内存中分配一定大小的空间,用于临时存储输入和输出数据。

通过合理地使用这些数据结构,可以高效地存储和管理临时数据。

对于持久数据的存储和管理,嵌入式系统通常使用闪存作为主要的存储介质。

闪存具有非易失性和高速度的特点,适用于嵌入式系统中需要长期存储和频繁访问的数据。

在进行数据存储和管理时,有几个关键的方面需要考虑。

首先,需要考虑数据的持久性和可靠性。

对于重要的数据,需要采用一定的容错机制来保证数据的完整性和可靠性。

常见的方法包括数据镜像、备份和恢复机制等。

其次,需要考虑数据的访问效率。

因为嵌入式系统的资源有限,对数据的读写需要尽可能地高效。

可以采用缓存技术、预取技术和索引技术等手段来提高数据的存取速度和效率。

此外,还需要考虑数据的安全性。

嵌入式系统中可能包含一些敏感数据,如密码、用户信息等,因此需要采取一定的安全措施,如数据加密、权限控制等,来保护数据的安全。

最后,对于嵌入式系统中大规模数据存储和管理的需求,可以考虑使用文件系统。

嵌入式系统的存储器

嵌入式系统的存储器

Crosstool是一组脚本工具集,可构建和测试不同版本的gcc和glibc,用于 那些支持glibc的体系结构。它也是一个开源项目,下载地址是 /crosstool。用Crosstool构建交叉工具链要比上述的分步编译容 易得多,并且也方便许多,对于仅仅为了工作需要构建交叉编译工具链的读 者建议使用此方法。用Crosstool工具构建所需资源如表所示。
linux-libc-headers2.6.12.0.tar.bz2
6.1.1 存储器系统的层次结构
在通用计算机领域,典型的三级存储结构如图6.1所示,从上到下依次为高速缓冲存 储器、主存和辅存。每一层于下一层相比都拥有较高的速度、较小的容量以及较低的 延迟性,且成本也是随着层级的下降而降低。在实际应用中,为了满足大存储容量、 快存储速度、低成本这三个要求,需要组合不同层级的存储器,又发展出了6级金字塔 型存储结构,如图6-2所示。与典型三级存储结构相比,它向下扩展了外部存储器和远 程二级存储器,用于扩展计算机系统的数据存储空间。如今大部分通用计算机的中央 处理器速度都非常快,但由于高速缓存和其他存储器位于不同的层次中,传输效率不 同,实际上会限制处理器的速度。
1、系统需求
1.2系统软件
操作系统:WindowsXP简体中文版 (SP3)
通用网页浏览器 超级终端软件 PDF阅读软件
2、构建ARM Linux交叉编译工具链
strings 打印某个文件的可打印字符串,这些字符串最少4个字符长,也可 以使用选项-n设置字符串的最小长度。默认情况下,它只打印目标文件初始 化和可加载段中的可打印字符;对于其他类型的文件它打印整个文件的可打 印字符。这个程序对于了解非文本文件的内容很有帮助。
由于第一次安装的gcc没有交叉glibc的支持,现在已经安装了glibc, 所以需要重新编译来支持交叉glibc。并且上面的gcc也只支持C语言,现 在可以让它同时支持C语言还要和C++语言。

嵌入式系统的数据存储与管理方法

嵌入式系统的数据存储与管理方法

嵌入式系统的数据存储与管理方法随着科技的迅猛发展,嵌入式系统已经成为现代社会中不可或缺的一部分。

嵌入式系统被广泛应用于诸如智能家居、智能手机、汽车以及医疗设备等领域。

这些系统通常具有有限的资源,包括处理能力、存储容量和能源消耗等。

因此,有效的数据存储和管理方法对于嵌入式系统的稳定性和性能至关重要。

在嵌入式系统中,数据存储通常受到存储介质的限制。

这些介质可以是闪存、磁盘或者DRAM等。

以下将介绍几种常见的数据存储和管理方法,以帮助嵌入式系统设计人员做出明智的选择。

首先,使用压缩算法可以有效地减少嵌入式系统中数据的存储空间。

通过去除冗余数据和应用压缩算法,可以大大减少存储介质的占用空间。

在选择压缩算法时,需要考虑到算法的压缩比率和压缩/解压缩的时间开销。

对于一些实时性要求较高的系统,可能需要进行权衡以选择合适的算法。

其次,使用数据分区和索引方法可以提高数据的存取效率。

嵌入式系统中的数据通常存储在固定大小的数据块中。

通过将数据分割为不同的区域,并为每个区域建立索引,可以快速定位和检索所需的数据。

在设计数据分区和索引时,需要考虑到数据的访问模式和频率,以避免不必要的开销。

此外,使用缓存技术可以提高数据的访问速度。

嵌入式系统中的存储介质往往较慢,如闪存。

通过在系统内部引入缓存,可以将频繁访问的数据暂时存储在高速缓存中,从而大大提高数据的存取效率。

缓存大小和替换策略是设计缓存系统时需要考虑的重要因素。

另外,使用断点续传和差量更新技术可以减少数据传输的开销。

嵌入式系统通常需要定期更新数据,这可能会造成大量的数据传输。

通过使用断点续传和差量更新技术,可以只传输发生变化的部分数据,减少数据传输的开销,并提高整体系统的效率。

最后,备份和恢复机制是确保嵌入式系统数据安全性的重要手段。

由于嵌入式系统大多运行在不受人为干扰的环境中,很难判断操作系统和应用程序的稳定性。

因此,定期备份数据并建立恢复机制非常重要。

备份可以通过硬件或软件的方式进行,具体取决于系统的需求。

嵌入式系统的存储器管理技巧

嵌入式系统的存储器管理技巧

嵌入式系统的存储器管理技巧嵌入式系统是一种专门设计用于特定应用领域的计算系统。

存储器管理在嵌入式系统设计中起着重要的作用,它对系统的性能和资源利用率有着直接影响。

本文将介绍几种常用的嵌入式系统存储器管理技巧,以帮助开发人员更好地设计和优化嵌入式系统。

一、存储器类型概述在嵌入式系统中,存储器通常分为内部存储器和外部存储器两类。

内部存储器通常指的是处理器内部的一级缓存和寄存器,速度较快但容量有限。

外部存储器则是指芯片外部连接的存储介质,如闪存、SDRAM等,容量较大但速度相对较慢。

二、存储器管理技巧1. 内存优化在嵌入式系统设计中,内存的使用非常关键。

为了最大限度地节省内存空间,可以采取以下几种优化技巧。

首先,合理使用数据结构和算法。

选择适合嵌入式系统的轻量级数据结构,如队列、链表等,可以减少内存的占用。

同时,合理选择算法,尽量减少临时变量的使用,减少内存的开销。

其次,进行代码优化。

嵌入式系统的代码大小对存储器的消耗是很大的,因此,合理使用编译器优化选项和去除不必要的代码可以有效减少存储器的使用量。

最后,灵活使用动态内存分配。

动态内存的分配和释放可以根据需要进行,避免不必要的内存占用。

但是需要注意内存泄漏和内存碎片的问题,以避免系统性能下降。

2. 外部存储器管理外部存储器在嵌入式系统中一般包括闪存、SDRAM等。

为了更好地管理外部存储器,可以采取以下技巧。

首先,合理规划存储器空间。

根据系统需求和资源限制,合理规划存储器的分布和使用,避免存储器空间的浪费。

可以采取分区、虚拟内存等技术进行管理。

其次,优化存储器读写操作。

外部存储器的读写速度相对较慢,在设计系统时要尽量减少存储器的读写次数,可采用缓存技术、预取技术等来优化存储器读写性能。

最后,采用压缩和加密技术。

为了提高存储器的利用率,可以采用数据压缩技术对存储的数据进行压缩,减少存储器的使用量。

另外,对敏感数据进行加密,确保数据的安全性。

3. 文件系统选择在嵌入式系统中,文件系统的选择也对存储器的管理起着重要作用。

嵌入式存储器架构、电路及应用

嵌入式存储器架构、电路及应用

嵌入式存储器架构、电路及应用嵌入式存储器是指应用于嵌入式系统中的一种存储器,它通常被集成在芯片中,用于存储程序代码、数据和配置信息等。

嵌入式存储器架构、电路和应用技术的发展,对嵌入式系统的性能和功能提升起到了重要作用。

一、嵌入式存储器架构嵌入式存储器的架构有多种类型,常见的包括非易失性存储器(NVM)、闪存存储器、动态随机存储器(DRAM)和静态随机存储器(SRAM)等。

每种存储器架构都有其特点和适用场景。

1. 非易失性存储器(NVM)是一种能够长期保存数据的存储器。

它具有快速读取、耐用性强、低功耗等特点,适用于存储程序代码和配置信息等。

常见的NVM类型有闪存存储器和EEPROM。

2. 闪存存储器是一种非易失性存储器,广泛应用于嵌入式系统中。

它具有高密度、低功耗、可擦写性好等特点,适用于存储大量的数据和文件。

常见的闪存存储器包括NOR闪存和NAND闪存。

3. 动态随机存储器(DRAM)是一种易失性存储器,用于临时存储数据。

它具有高速读写、容量大等特点,适用于存储临时数据和运行时数据。

DRAM主要用于嵌入式系统的主存储器。

4. 静态随机存储器(SRAM)是一种易失性存储器,用于高速缓存和寄存器等。

它具有高速读写、低功耗、抗干扰性强等特点,适用于存储高速访问的数据。

SRAM常用于嵌入式系统的缓存和寄存器。

二、嵌入式存储器电路嵌入式存储器的电路设计对于存储器的性能和功耗有着重要影响。

常见的嵌入式存储器电路有预取缓存、写缓冲、地址解码器和数据通路等。

1. 预取缓存是一种用于提高存储器访问速度的技术。

它通过预先将数据从存储器中读取到缓存中,减少了存储器访问的延迟。

预取缓存可以根据程序的访问模式进行优化,提高嵌入式系统的性能。

2. 写缓冲是一种用于提高存储器写入速度的技术。

它将写入的数据暂时存储在缓存中,然后再定期将数据写入存储器。

写缓冲可以减少存储器写入的次数,提高存储器的写入性能。

3. 地址解码器是一种用于将存储器的地址信号转换为存储器的片选信号的电路。

嵌入式系统中常见的存储器介绍与选择指南

嵌入式系统中常见的存储器介绍与选择指南

嵌入式系统中常见的存储器介绍与选择指南嵌入式系统是指集成了专用计算和控制功能,并被嵌入到其他设备或系统中的微型计算机系统。

这些系统通常需要存储数据和程序代码。

在嵌入式系统中,存储器的选择是关键的,因为它不仅会影响系统的性能和可靠性,还会直接影响到成本和功耗。

本文将介绍一些常见的存储器类型,并提供选择存储器的指南。

首先,让我们来了解一些嵌入式系统中常见的存储器类型。

1. 随机访问存储器(RAM):RAM是一种易失性存储器,它用于存储临时数据和程序指令。

它的读写速度很快,适合对频繁访问的数据进行操作。

在嵌入式系统中,静态随机存储器(SRAM)通常用于高性能和低功耗需求的应用,而动态随机存储器(DRAM)则用于一般性能和成本要求不高的应用。

2. 只读存储器(ROM):ROM是一种非易失性存储器,它用于存储固定的程序代码和数据。

它的内容不能被修改,因此适用于存储启动代码和固件等不经常变动的数据。

EPROM(可擦写可编程只读存储器)和闪存(Flash)是常见的ROM类型,它们可以通过特殊的擦写操作来修改存储的内容。

3. 闪存(Flash)存储器:闪存是一种非易失性存储器,它结合了ROM和RAM的特性。

它可以被擦写和重写,而且读写速度相对较慢。

闪存广泛应用于存储操作系统、应用程序和数据等常常需要修改的信息。

4. 噪声闪存(EEPROM):EEPROM是一种擦写可编程的非易失性存储器,它允许通过电子擦写来修改存储的内容。

EEPROM的擦写过程相对较慢,但可以单字节地进行操作,而无需像某些闪存那样进行块擦除。

5. 磁盘存储器:磁盘存储器通常用于大容量数据存储。

硬盘驱动器(HDD)是一种机械设备,由旋转的盘片和移动的读写臂组成,在嵌入式系统中不常见。

相反,固态盘驱动器(SSD)由闪存芯片组成,速度更快、高速和无噪音。

现在,让我们来看一些关于如何选择嵌入式系统中存储器的指南。

1. 性能要求:根据系统需要,明确性能要求是选择适当存储器的关键。

电脑芯片制造中的嵌入式存储器分析

电脑芯片制造中的嵌入式存储器分析

电脑芯片制造中的嵌入式存储器分析电子产品的不断进步和发展,使得人们对嵌入式系统的需求越来越高。

嵌入式存储器作为电子产品的核心部件,起到了存储和处理数据的关键作用。

本文将对电脑芯片制造中的嵌入式存储器进行深入分析。

一、嵌入式存储器的概述嵌入式存储器是一种集成在芯片内部的存储单元,其具有高速读写、体积小、功耗低等特点。

它广泛应用于各类电子设备中,如智能手机、平板电脑、数码相机等。

目前,主流的嵌入式存储器有SRAM(静态随机存取存储器)、DRAM(动态随机存取存储器)和闪存(Flash Memory)。

二、SRAM的特点与应用SRAM是一种以电容作为存储单元的存储器,具有读写速度快、写入稳定等特点。

由于其体积较大,通常应用于需要频繁读写的场合,如高速缓存存储器和寄存器文件等。

三、DRAM的特点与应用DRAM是一种以电容和晶体管组成的存储单元,具有体积小、成本低等特点。

然而,由于电容的电荷衰减问题,DRAM需要不断刷新以保持数据的一致性。

因此,它主要应用于主存储器等容量较大、读写操作相对较少的场合。

四、闪存存储器的特点与应用闪存是一种非易失性存储器,可以在断电后仍保存数据,具有体积小、功耗低等优点。

它广泛应用于移动设备和嵌入式系统中,如固态硬盘、MP3播放器等。

五、嵌入式存储器的制造工艺嵌入式存储器的制造工艺是一个复杂的过程,它主要包含以下几个环节:掩膜制备、曝光、蚀刻、沉积和电镀等。

其中,掩膜制备是制造过程的核心环节,它通过特殊的光刻技术将芯片表面进行图案处理,形成存储单元。

六、嵌入式存储器的未来发展随着科技的不断进步,嵌入式存储器在容量、速度、功耗等方面还有很大的提升空间。

未来,随着人工智能、物联网等领域的发展,对嵌入式存储器的需求将不断增加。

因此,研发更具性能优势的嵌入式存储器将成为制造商的重要任务。

总结:在电脑芯片制造中,嵌入式存储器作为核心部件,起到了存储和处理数据的关键作用。

本文从嵌入式存储器的概述、SRAM、DRAM、闪存的特点与应用、制造工艺以及未来发展等方面进行了分析。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

嵌入式系统存储器浅谈嵌入式系统存储器浅谈(zz)嵌入式系统与通用PC 机不同,一般没有硬盘这样的存储设备而是使用Flash闪存芯片、小型闪存卡等专为嵌入式系统设计的存储装置,本文分析了嵌入式系统中常用的存储设备及其管理机制,介绍了常用的基于FLASH的文件系统类型。

1.嵌入式系统存储设备及其管理机制分析构建适用于嵌入式系统的Linux文件系统,必然会涉及到两个关键点,一是文件系统类型的选择,它关系到文件系统的读写性能、尺寸大小;另一个就是根文件系统内容的选择,它关系到根文件系统所能提供的功能及尺寸大小。

嵌入式设备中使用的存储器是像Flash闪存芯片、小型闪存卡等专为嵌入式系统设计的存储装置。

Flash是目前嵌入式系统中广泛采用的主流存储器,它的主要特点是按整体/扇区擦除和按字节编程,具有低功耗、高密度、小体积等优点。

目前,Flash分为NOR, NAND两种类型。

NOR型闪存可以直接读取芯片内储存的数据,因而速度比较快,但是价格较高。

NOR型芯片,地址线与数据线分开,所以NOR型芯片可以像SRAM一样连在数据线上,对NOR芯片可以“字”为基本单位操作,因此传输效率很高,应用程序可以直接在Flash内运行,不必再把代码读到系统RAM中运行。

它与SRAM的最大不同在于写操作需要经过擦除和写入两个过程。

NAND型闪存芯片共用地址线与数据线,内部数据以块为单位进行存储,直接将NAND芯片做启动芯片比较难。

NAND 闪存是连续存储介质,适合放大文件。

擦除NOR器件时是以64-128KB的块进行的,执行一个写入/擦除操作的时间为5s;擦除NAND器件是以8-32KB的块进行的,执行相同的操作最多只需要4ms。

NANDRash的单元尺寸几乎是NOR器件的一半,由于生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。

NORflash占据了容量为1―16MB闪存市场的大部分,而NAND flash只是用在8―128MB的产品当中,这也说明NOR主要应用在代码存储介质中,NAND适合于数据存储。

寿命(耐用性),在NAND闪存中每个块的最大擦写次数是一百万次,而NOR的擦写次数是十万次。

NAND存储器除了具有10比1的块擦除周期优势,典型的NAND块尺寸要比NOR器件小8倍,每个NAND存储器块在给定的时间内的删除次数要少一些。

所有嵌入式系统的启动都至少需要使用某种形式的永久性存储设备,它们需要合适的驱动程序,当前在嵌入式Linux中有三种常用的块驱动程序可以选择。

● Blkmem驱动层Blkmem驱动是为uclinux专门设计的,也是最早的一种块驱动程序之一,现在仍然有很多嵌入式Linux操作系统选用它作为块驱动程,尤其是在uClinux中。

它相对来说是最简单的,而且只支持建立在NOR 型Flash和RAM中的根文件系统。

使用Blkmem驱动,建立Flash分区配置比较困难,这种驱动程序为Flash提供了一些基本擦除/写操作。

● RAMdisk驱动层RAMdisk驱动层通常应用在标准Linux中无盘工作站的启动,对Flash存储器并不提供任何的直接支持,RAMdisk就是在开机时,把一部分的内存虚拟成块设备,并且把之前所准备好的档案系统映像解压缩到该RAMdisk环境中。

当在Flash中放置一个压缩的文件系统,可以将文件系统解压到RAM,使用RAM disk驱动层支持一个保持在RAM中的文件系统。

● MTD驱动层为了尽可能避免针对不同的技术使用不同的工具,以及为不同的的技术提供共同的能力,Linux内核纳入了MTD子系统(memoryTechnology Device)。

它提供了一致且统一的接口,让底层的MTD芯片驱动程序无缝地与较高层接口组合在一起。

JFFS2,Cramfs,YAFFS等文件系统都可以被安装成MTD块设备。

MTD驱动也可以为那些支持CFI接口的NOR型Flash提供支持。

虽然MTD可以建立在RAM上,但它是专为基于Flash的设备而设计的。

MTD包含特定Flash芯片的驱动程序,开发者要选择适合自己系统的Flash 芯片驱动。

Flash芯片驱动向上层提供读、写、擦除等基本的操作,MTD对这些操作进行封装后向用户层提供MTD char和MTD block类型的设备。

MTDchar类型的设备包括/dev/mtd0, /dev/mtdl等,它们提供对Flash原始字符的访问。

MTDblock类型的设备包括/dev/mtdblock0,/dev/mtdblock1等,MTDblock设备是将Flash模拟成块设备,这样可以在这些模拟的块设备上创建像Cramfs, JFFS2等格式的文件系统。

MTD驱动层也支持在一块Flash上建立多个Flash分区,每一个分区作为了一个MTDblock设备,可以把系统软件和数据等分配到不同的分区上,同时可以在不同的分区采用不用的文件系统格式。

这一点非常重要,正是由于这一点才为嵌入式系统多文件系统的建立提供了灵活性。

2.基于Flash的文件系统鉴于Flash存储介质的读写特点,传统的Linux文件系统己经不适合应用在嵌入式系统中,像Ext2fs文件系统是为像IDE那样的块设备设计的,这些设备的逻辑块是512字节、1024字节等大小,没有提供很好的扇区擦写支持,不支持损耗平衡,没有掉电保护,也没有特别完美的扇区管理,这不太适合于扇区大小因设备类型而划分的闪存设备。

基于这样的原因,产生了很多专为Flash设备而设计的文件系统,常见的专用于闪存设备的文件系统如下:● Romfs传统型的Romfs文件系统是最常使用的一种文件系统,它是一种简单的、紧凑的、只读的文件系统,不支持动态擦写保存;它按顺序存放所有的文件数据,所以这种文件系统格式支持应用程序以XIP方式运行,在系统运行时,可以获得可观的RAM节省空间。

uClinux系统通常采用Romfs文件系统。

● CramfsCramfs是Linux的创始人LinusTorvalds开发的一种可压缩只读文件系统在Cramfs文件系统中,每一页被单独压缩,可以随机页访问,其压缩比高达2:1,为嵌入式系统节省大量的Flash存储空间。

Cramfs文件系统以压缩方式存储,在运行时解压缩,所以不支持应用程序以XIP方式运行,所有的应用程序要求被拷到RAM里去运行,但这并不代表比Ramfs需求的RAM空间要大一点,因为Cramfs是采用分页压缩的方式存放档案,在读取档案时,不会一下子就耗用过多的内存空间,只针对目前实际读取的部分分配内存,尚没有读取的部分不分配内存空间,当我们读取的档案不在内存时,Cramfs文件系统自动计算压缩后的资料所存的位置,再即时解压缩到RAM中。

另外,它的速度快,效率高,其只读的特点有利于保护文件系统免受破坏,提高了系统的可靠性;但是它的只读属性同时又是它的一大缺陷,使得用户无法对其内容对进扩充。

Cramfs映像通常是放在Flash中,但是也能放在别的文件系统里,使用loopback设备可以把它安装别的文件系统里。

使用mkcramfs工具可以创建Cramfs映像。

● Ramfs/TmpfsRamfs也是LinusTorvalds开发的,Ramfs文件系统把所有的文件都放在RAM 里运行,通常是Flash系统用来存储一些临时性或经常要修改的数据,相对于ramdisk来说,Ramfs的大小可以随着所含文件内容大小变化,不像ramdisk的大小是固定的。

Tmpfs是基于内存的文件系统,因为tmpfs驻留在RAM 中,所以写/读操作发生在RAM中。

tmpfs文件系统大小可随所含文件内容大小变化,使得能够最理想地使用内存;tmpfs驻留在RAM,所以读和写几乎都是瞬时的。

tmpfs的一个缺点是当系统重新引导时会丢失所有数据。

● JFFS2 JFFS2是RedHat公司基于JFFS开发的闪存文件系统,最初是针对RedHat公司的嵌入式产品eCos开发的嵌入式文件系统,所以JFFS2也可以用在Linux,uCLinux中。

JFFS文件系统最早是由瑞典AxisCommunications公司基于Linux2.0的内核为嵌入式系统开发的文件系统。

JFFS2是一个可读写的、压缩的、日志型文件系统,并提供了崩溃/掉电安全保护,克服了JFFS的一些缺点:使用了基于哈希表的日志节点结构,大大加快了对节点的操作速度;支持数据压缩;提供了“写平衡”支持;支持多种节点类型;提高了对闪存的利用率,降低了内存的消耗。

这些特点使JFFS2文件系统成为目前Flash设备上最流行的文件系统格式,它的缺点就是当文件系统已满或接近满时,JFFS2运行会变慢,这主要是因为碎片收集的问题。

● YAFFSYAFFS/YAFFS2是一种和JFFSx类似的闪存文件系统,它是专为嵌入式系统使用NAND型闪存而设计的一种日志型文件系统。

和JFFS2相比它减少了一些功能,所以速度更快,而且对内存的占用比较小。

此外,YAFFS自带NAND芯片的驱动,并且为嵌入式系统提供了直接访问文件系统的API,用户可以不使用Linux中的MTD与VFS,直接对文件系统操作。

YAFFS2支持大页面的NAND设备,并且对大页面的NAND设备做了优化。

JFFS2在NAND闪存上表现并不稳定,更适合于NOR闪存,所以相对大容量的NAND闪存,YAFFS是更好的选择。

相关文档
最新文档