嵌入式Linux系统flash分区设计及文件系统格式选择的示例分析

技术嵌入式Linux系统flash分区设计及文件系统格式选择的示例分析本篇文章给大家分享的是有关嵌入式Linux系统flash分区设计及文件系统格式选择的示例分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇

本文是关于嵌入式Linux系统的闪存分区设计和文件系统格式选择的实例分析。边肖觉得很实用,所以想分享给大家学习。希望大家看完这篇文章能有所收获。话不多说,让我们和边肖一起看看。

嵌入式系统应用频繁升级,合理划分闪存很有必要。通常,闪存的基本分区包括以下几个部分:

1.uboot分区。

2 .内核分区。

3.rootfs分区

这三部分是最基本的,也是普遍存在的。

如果只是这样分区,然后把应用和文件系统放在一起,在升级应用的时候会造成麻烦,因为应用和文件系统放在一起,每次都要把文件系统擦除再写,既浪费时间,风险又很大。如果正在擦除flash或写入镜像文件,会突然断电,导致设备无法启动(文件系统损坏)!这样,文件系统必须从uboot重新下载,给升级带来了很多麻烦。

在嵌入式系统的设计中,文件系统通常与频繁更新的应用程序分开,放在不同的闪存分区中。这样在升级时只需要擦除应用分区并重新更新即可,这样即使升级时断电也不会损坏文件系统,系统仍然可以启动。您可以将升级程序与文件系统放在一起,以便在设备重新启动后对其进行升级。

另一种方式是在Uboot中升级,无法避免断电带来的问题。事实上,最重要的是应用程序不能与文件系统放在一起。

有人在flash中做了“安全模式”分区。如果系统损坏,设备无法正常启动,可以从安全模式启动。安全模式只提供最基本的功能,比如升级和网络。这些基本功能可以帮助您重建系统。

这也类似于windows的win PE。

总之,升级整个文件系统来更新应用程序是最不可取的方法。

以下是一些常见的嵌入式系统文件系统格式:

其实大家都知道嵌入式根文件系统的格式,常用的有jffs2、cramfs、ramdisk、yaffs等。

他们各自的特点就不详细介绍了,但是百度和谷歌已经谈得很详细了。

下面是我在学习的时候遇到的一些问题和疑惑。

1 .闪存分区格式。

一开始我一直以为flash的分区应该对应一种格式,但是我很困惑很不解。有人问我你的根文件系统是什么格式。

我不知道怎么回答。后来发现这个闪存分区没有具体的格式。你下载的什么格式的文件系统就是什么格式。它在windows下没有类似c盘和D盘那样的FAT32格式和NTFS格式。windows下的这些格式也是格式化格式。这个格式化过程相当于在这个磁盘上安装一个基本文件系统。

2.文件系统格式。

这里的文件系统格式指的是jffs2、cramfs等。如上所述。这些文件系统格式需要内核支持,这通常是通过配置内核并在内核中选择相关选项来实现的。

简要介绍生产和使用的搭配。

当文件系统稳定并准备发布产品时,当系统和应用程序正式下载时,通常会将文件系统做成ramdisk形式,以防止嵌入式设备在运行过程中因不利的外部条件导致文件系统损坏而无法启动。Ramdisk从闪存中读取文件系统映像,并在系统启动后将其解压缩到内存中,因此在设备运行期间对文件系统所做的更改将在设备重新启动后恢复。Cramfs是一个只读文件系统。为什么这里没有选择cramfs作为设备的根文件系统格式?与ramdisk相比,cramfs文件系统确实有其优势,即它不会将所有文件解压缩到内存中,而是根据需要对大部分文件进行解压缩,这为嵌入式设备节省了内存,但也会导致设备运行速度比ramdisk更快;缺点是cramfs下无法创建文件,在程序正常运行过程中难免会重建一些临时文件(比如在Unix domain socket的指定目录下会创建一个文件),所以我觉得还是用ramdisk比较好。

Cramfs格式不是全盘否定。将应用程序做成cramfs格式是一个不错的选择。一般来说,我们不希望在应用程序运行过程中被改变。如果应用程序被做成cramfs,它将是只读的,所以它不会被损坏。

另外,我们的系统中会有一个参数分区,就是这个分区用来存储一些基本参数(配置文件)。该分区要求可读和可写。这时我们可以考虑jffs2文件系统,这是一个专为嵌入式系统设计的可读可写的文件系统。

一个完善的嵌入式系统至少应该分区文件系统、应用程序和参数,格式如上。这对于未来的升级和维护非常方便。

以上是嵌入式Linux系统中闪存分区设计和文件系统格式选择的实例分析。边肖认为,一些知识点可能会在我们的日常工作中看到或使用。我希望你能通过这篇文章学到更多的知识。更多详情请关注行业资讯频道。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/40179.html

(0)

相关推荐

  • excel标准差函数,excel标准差函数符号

    技术excel标准差函数,excel标准差函数符号AVEDEV 请参阅 返回一组数据与其均值的绝对偏差的平均值excel标准差函数,ADEDEV 用于评测这组数据的离散度。 语法 AVEDEV(number1,n

    生活 2021年10月21日
  • 三国演义有什么故事,《三国演义》里都有哪些故事

    技术三国演义有什么故事,《三国演义》里都有哪些故事前段时间因为肺炎疫情的原因,许久不能出门,刚好重温了一遍电视剧,大致的故事还都有印象。 故事都是与人物有关,听故事要知道《三国演义》有哪些著名的历史人物,这样才能对应耳熟

    生活 2021年10月23日
  • 2021CCPC广州站C. Necklace

    技术2021CCPC广州站C. Necklace 2021CCPC广州站C. Necklace题目:C. Necklace
    题意:
    https://codeforces.com/gym/103415/p

    礼包 2021年11月20日
  • css如何引入外部样式表

    技术css如何引入外部样式表这篇文章将为大家详细讲解有关css如何引入外部样式表,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 引入方法:1、使用link标

    攻略 2021年11月11日
  • 如何用免费代理IP爬数据

    技术如何用免费代理IP爬数据如何用免费代理IP爬数据,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一.前言玩爬虫的都避免不了各大网站的反爬措施限制,比较常见

    攻略 2021年10月28日
  • 怎么理解Java悲观锁与乐观锁

    技术怎么理解Java悲观锁与乐观锁本篇内容介绍了“怎么理解Java悲观锁与乐观锁”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有

    攻略 2021年11月18日