CN109284232A - 嵌入式Linux系统中预防闪存崩溃的方法 - Google Patents

嵌入式Linux系统中预防闪存崩溃的方法 Download PDF

Info

Publication number
CN109284232A
CN109284232A CN201811003282.5A CN201811003282A CN109284232A CN 109284232 A CN109284232 A CN 109284232A CN 201811003282 A CN201811003282 A CN 201811003282A CN 109284232 A CN109284232 A CN 109284232A
Authority
CN
China
Prior art keywords
flash memory
root file
file system
vehicle
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201811003282.5A
Other languages
English (en)
Inventor
张伐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Continental Automotive Body Electronic System Wuhu Co Ltd
Original Assignee
Continental Automotive Asia Pacific Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Continental Automotive Asia Pacific Beijing Co Ltd filed Critical Continental Automotive Asia Pacific Beijing Co Ltd
Priority to CN201811003282.5A priority Critical patent/CN109284232A/zh
Publication of CN109284232A publication Critical patent/CN109284232A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种适于车载信息娱乐系统的嵌入式Linux系统中预防闪存崩溃的方法,包括:在系统内核启动时在闪存中创建UBI卷,所述UBI卷包括只读的静态卷和可读/写的动态卷,其中,设置静态卷存放根文件系统,以及在内核启动时挂载根文件系统;操作系统初始化;在操作系统初始化完成后,监控所有对根文件系统的操作;在已启动的应用软件有任何试图针对根文件系统中所存数据的写入操作或重新挂载根文件系统为可读/写的操作时,阻止所述操作。通过监控对根文件系统的操作并阻止违反根文件系统初始设置的操作,可以避免闪存崩溃,以避免闪存崩溃导致车载信息娱乐系统无法开机或黑屏当机。

Description

嵌入式Linux系统中预防闪存崩溃的方法
技术领域
本发明涉及嵌入式Linux系统的数据存储管理技术,特别涉及嵌入式Linux系统中预防闪存崩溃的方法。
背景技术
闪存(例如NAND闪存)通常被用来存储嵌入式系统中的应用图像数据,例如存储车载信息娱乐系统的开机画面或娱乐影像等。目前的车载信息娱乐系统大多采用Linux系统,对嵌入式Linux系统来说,闪存崩溃是影响系统可靠性的一个潜在风险。例如,当用于存储开机画面的闪存意外崩溃时,车载信息娱乐系统就无法完成开机启动。再例如,当用于存储娱乐影像的闪存意外崩溃时,可能造成车载信息娱乐系统黑屏当机。对于提供车载信息娱乐系统的设备供应商而言,还会引发客户有关质量的异议。
针对嵌入式Linux系统中闪存崩溃引发的风险,业界提出了一些应对策略,其中较常见的策略是使用只读根文件系统。具体地,对闪存的存储区域划分扇区,其中一扇区设置为只读并存放根文件系统(rootfs),那些无需修改的应用图像数据也存放于根文件系统中。在嵌入式Linux系统启动后挂载根文件系统,使得该只读扇区与其他可读/写的扇区分离,以屏蔽潜在的错误写入并进而避免闪存崩溃。
但对于目前的车载信息娱乐系统而言,在应用了上述策略后仍然会在一些应用软件运行过程中产生闪存崩溃的现象。并且,也很难通过事后纠错的方式找到导致闪存崩溃的原因。因此,亟待有更适合的防崩溃处理机制来应对上述情况。
发明内容
本发明解决的问题是提供一种针对嵌入式Linux系统的防崩溃处理机制,以避免闪存崩溃引发的用户体验差的问题。
为了解决上述问题,本发明提供一种适于车载信息娱乐系统的嵌入式Linux系统中预防闪存崩溃的方法,包括:
在系统内核启动时在闪存中创建UBI卷,所述UBI卷包括只读的静态卷和可读/写的动态卷,其中,设置静态卷存放根文件系统,以及在内核启动时挂载根文件系统;
操作系统初始化;
在操作系统初始化完成后,监控已启动的应用软件对根文件系统的操作;
在已启动的应用软件有任何试图针对根文件系统中所存数据的写入操作或重新挂载根文件系统为可读/写的操作时,阻止所述操作。
与现有技术相比,上述方案具有以下优点:通过监控对根文件系统的操作并阻止违反根文件系统初始设置的操作,可以避免闪存崩溃,以避免闪存崩溃导致车载信息娱乐系统无法开机或黑屏当机。
附图说明
图1是本发明嵌入式Linux系统中预防闪存崩溃的方法的一种实施例中对NAND闪存的分区示意图;
图2是本发明嵌入式Linux系统中预防闪存崩溃的方法的一种实施例的实现示意图。
具体实施方式
在下面的描述中,阐述了许多具体细节以便使所属技术领域的技术人员更全面地了解本发明。但是,对于所属技术领域内的技术人员明显的是,本发明的实现可不具有这些具体细节中的一些。此外,应当理解的是,本发明并不限于所介绍的特定实施例。相反,可以考虑用下面的特征和要素的任意组合来实施本发明,而无论它们是否涉及不同的实施例。因此,下面的方面、特征、实施例和优点仅作说明之用而不应被看作是权利要求的要素或限定,除非在权利要求中明确提出。
如背景技术中提及的,业界目前应对闪存崩溃的策略只是从物理上将只读数据与可读/写数据分开存储。但对于车载信息娱乐系统,业界目前的应对策略并不能杜绝闪存崩溃的现象。本发明的发明人认为,就目前的车载信息娱乐系统而言,其系统中的软件来源非常丰富,既包含提供车载信息娱乐系统的设备供应商自身的软件,也包含整车厂(设备供应商的客户)提供的、需集成入车载信息娱乐系统的客户软件,还包含大量整车厂要求的、需集成入车载信息娱乐系统以丰富信息娱乐服务的第三方软件。即使应用了上述的物理分区的应对策略,对于该设备供应商来说,其能保证其自身的软件遵循根文件系统的只读设置。但是,对于客户软件或第三方软件,其也存在偶发场景下将只读的根文件系统重新挂载为可读/写并错误写入的可能。而对于客户软件或第三方软件进行事先的代码核查无疑是非常困难的。另外,是否有权限对客户软件或第三方软件进行事先的代码核查也存在不确定性。
因此,本发明的发明人提出,除了从物理上将只读数据与可读/写数据分开存储之外,还应在操作系统启动之前预先设立保护机制,在任何应用软件有可能导致闪存崩溃的操作时,保护机制会被触发而阻止这种操作。
具体地,本发明提供的嵌入式Linux系统中预防闪存崩溃的方法包括:
在系统内核启动时在闪存中创建UBI(Unsorted Block Images)卷,所述UBI卷包括只读的静态卷和可读/写的动态卷,其中,设置静态卷存放根文件系统,以及在内核启动时挂载根文件系统;
操作系统初始化;
在操作系统初始化完成后,监控所有对根文件系统的操作;
在已启动的应用软件有任何试图针对根文件系统中所存数据的写入操作或重新挂载根文件系统为可读/写的操作时,阻止所述操作。
由于上述方法可在应用软件有任何针对根文件系统的非法操作(对只读根文件系统的非法写入操作和/或重新挂载根文件系统可读/写的非法操作)时阻止所述操作,从而可以避免此类非法操作导致闪存崩溃。
以下结合实施例对本发明方法作进一步说明。以车载信息娱乐系统所搭载的Linux系统为例,参照图1和图2所示的实施例,在内核软件(Kernel Software)被读入内存后,内核开始启动。在内核初始化的过程中会加载闪存,例如NAND闪存。在加载闪存后,会先创建分区表以对闪存进行物理分区。一般来说,会将闪存划分为两个物理分区,在一个分区中创建引导区(Bootloader区域)以用作稍后引导操作系统启动,在另一个分区中创建UBI卷区域。
在创建UBI卷区域后,继续对UBI卷进行划分。具体地,在UBI卷中设置只读的静态卷和可读/写的动态卷,这两个卷在物理存储上也各自区分。并且,设置静态卷存放根文件系统及将那些无需修改的数据(例如开机画面的图片/视频)设置为存储于根文件系统中。以及,将动态卷分配给供应用软件操作数据用的数据分区。即,根文件系统是只读的,而数据分区是可读/写的。
随后,随着内核的启动过程,挂载根文件系统为只读,挂载数据分区为可读/写。在挂载根文件系统后,创建UBI卷保护表以保护根文件系统。具体地,在保护表中定义保护机制。由于目前针对根文件系统的写入操作或将根文件系统重新挂载为可读/写的操作都是调用UBI文件系统的标准API接口实现的,因而可以通过检测UBI文件系统的标准API接口来检测是否存在对根文件系统的写入操作或重新挂载操作。这部分检测方式就会作为保护机制在保护表中进行设置。与之相关的,还会在保护表中设置检测到针对根文件系统的写入操作后的应对动作。依据本发明,应对动作就是此前所说的阻止操作。此外,还可以在保护表中设置合法场景或非法场景。合法场景列明了允许对根文件系统进行写入操作的场景,而非法场景则列明了不允许对根文件系统进行写入操作的场景。可以理解,当仅设置合法场景时,合法场景之外的所有其他场景也可被理解为属于非法场景。例如,可以设置应用软件的更新操作(版本升级、打补丁等)为合法场景。即,当涉及应用软件的更新操作时,虽然其试图对根文件系统进行写入操作,但该操作并不会被阻止。另外,还可以在保护表中设置日志记录的方式。具体地,在阻止写入操作或重新挂载操作后,还可记录对应的日志。日志的内容可以包括下述的一种或多种:试图进行所述写入操作或所述重新挂载操作的应用软件、试图进行所述写入操作或所述重新挂载操作的时间。由于UBI文件系统本身就有日志功能,因而此处提及的日志可以是在原有日志功能上增加的日志记录。
在上述保护表设置完成后,就可启动操作系统并进行操作系统的初始化。在操作系统启动后,随着操作系统的设置或用户的操作,相关的应用软件或相应启动。由于已通过检测上述的标准API接口进行监控,当例如应用软件1试图将根文件系统重新挂载为可读/写时,该操作会被阻止,并且还会记录如上设置的日志。当例如应用软件2试图对根文件系统进行写入操作时,该操作也会被阻止,并且还会记录如上设置的日志。
通过上述实施例的说明可知,通过监控对根文件系统的操作并阻止上述的非法操作,可以避免上述非法操作导致的闪存崩溃,以维护车载信息娱乐系统的稳定性,避免出现无法开机、黑屏当机等现象。此外,在阻止非法操作期间所记录的日志也有利于对非法操作的原因进行分析,以进一步提高车载信息娱乐系统的稳定性。
虽然本发明已以较佳实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内所作的各种更动与修改,均应纳入本发明的保护范围内,因此本发明的保护范围应当以权利要求所限定的范围为准。

Claims (6)

1.一种适于车载信息娱乐系统的嵌入式Linux系统中预防闪存崩溃的方法,其特征在于,包括:
在系统内核启动时在闪存中创建UBI卷,所述UBI卷包括只读的静态卷和可读/写的动态卷,其中,设置静态卷存放根文件系统,以及在内核启动时挂载根文件系统;
操作系统初始化;
在操作系统初始化完成后,监控所有对根文件系统的操作;
在已启动的应用软件有任何试图针对根文件系统中所存数据的写入操作或重新挂载根文件系统为可读/写的操作时,阻止所述操作。
2.如权利要求1所述的适于车载信息娱乐系统的嵌入式Linux系统中预防闪存崩溃的方法,其特征在于,通过检测UBIFS的标准API接口来检测所述写入操作或所述重新挂载操作。
3.如权利要求1所述的适于车载信息娱乐系统的嵌入式Linux系统中预防闪存崩溃的方法,其特征在于,还包括:在阻止所述写入操作或所述重新挂载操作时,还记录对应的日志。
4.如权利要求3所述的适于车载信息娱乐系统的嵌入式Linux系统中预防闪存崩溃的方法,其特征在于,所述日志包括下述的一种或多种:试图进行所述写入操作或所述重新挂载操作的应用软件、试图进行所述写入操作或所述重新挂载操作的时间。
5.如权利要求3所述的适于车载信息娱乐系统的嵌入式Linux系统中预防闪存崩溃的方法,其特征在于,所述日志是UBIFS的日志。
6.如权利要求1所述的适于车载信息娱乐系统的嵌入式Linux系统中预防闪存崩溃的方法,其特征在于,对于试图对根文件系统进行的写入操作,若涉及应用软件更新操作,则允许所述操作。
CN201811003282.5A 2018-08-30 2018-08-30 嵌入式Linux系统中预防闪存崩溃的方法 Pending CN109284232A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811003282.5A CN109284232A (zh) 2018-08-30 2018-08-30 嵌入式Linux系统中预防闪存崩溃的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811003282.5A CN109284232A (zh) 2018-08-30 2018-08-30 嵌入式Linux系统中预防闪存崩溃的方法

Publications (1)

Publication Number Publication Date
CN109284232A true CN109284232A (zh) 2019-01-29

Family

ID=65184244

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811003282.5A Pending CN109284232A (zh) 2018-08-30 2018-08-30 嵌入式Linux系统中预防闪存崩溃的方法

Country Status (1)

Country Link
CN (1) CN109284232A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110704119A (zh) * 2019-10-15 2020-01-17 东风小康汽车有限公司重庆分公司 车载影音娱乐系统预启动方法、装置、系统及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102117330A (zh) * 2011-03-04 2011-07-06 中山中珩数字科技有限公司 一种保护嵌入式Linux操作系统关键区域完整性的方法及系统
CN103530138A (zh) * 2012-07-02 2014-01-22 京信通信技术(广州)有限公司 基于嵌入式linux的文件系统数据保护方法及装置
CN103593216A (zh) * 2013-11-12 2014-02-19 上海斐讯数据通信技术有限公司 将ubi格式的系统文件制作成工厂烧录映像文件方法
CN106033362A (zh) * 2015-03-13 2016-10-19 北京视联动力国际信息技术有限公司 一种闪存分区的处理方法和装置
CN107194249A (zh) * 2017-05-22 2017-09-22 福州汇思博信息技术有限公司 系统攻击检测方法及其系统
CN107943414A (zh) * 2017-10-16 2018-04-20 积成电子股份有限公司 嵌入式Linux的文件系统分区及数据读写方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102117330A (zh) * 2011-03-04 2011-07-06 中山中珩数字科技有限公司 一种保护嵌入式Linux操作系统关键区域完整性的方法及系统
CN103530138A (zh) * 2012-07-02 2014-01-22 京信通信技术(广州)有限公司 基于嵌入式linux的文件系统数据保护方法及装置
CN103593216A (zh) * 2013-11-12 2014-02-19 上海斐讯数据通信技术有限公司 将ubi格式的系统文件制作成工厂烧录映像文件方法
CN106033362A (zh) * 2015-03-13 2016-10-19 北京视联动力国际信息技术有限公司 一种闪存分区的处理方法和装置
CN107194249A (zh) * 2017-05-22 2017-09-22 福州汇思博信息技术有限公司 系统攻击检测方法及其系统
CN107943414A (zh) * 2017-10-16 2018-04-20 积成电子股份有限公司 嵌入式Linux的文件系统分区及数据读写方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
周立功 等: "《嵌入式Linux开发教程》", 31 October 2016, 北京航空航天大学出版社 *
张焕国 等: "《可信计算》", 31 August 2011, 武汉大学出版社 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110704119A (zh) * 2019-10-15 2020-01-17 东风小康汽车有限公司重庆分公司 车载影音娱乐系统预启动方法、装置、系统及存储介质
CN110704119B (zh) * 2019-10-15 2023-07-04 东风小康汽车有限公司重庆分公司 车载影音娱乐系统预启动方法、装置、系统及存储介质

Similar Documents

Publication Publication Date Title
KR101888712B1 (ko) 운영 체제 구성 값 보호 기법
CA2845523C (en) Secure recovery apparatus and method
US5559960A (en) Software anti-virus facility
JP6054908B2 (ja) 変数セットを修復する方法、コンピュータ・プログラムおよびコンピュータ
EP3688574B1 (en) System version upgrading method and apparatus
KR100881025B1 (ko) 보안 데이터를 관리하는 장치 및 그 방법
US8413253B2 (en) Protecting persistent secondary platform storage against attack from malicious or unauthorized programs
US20130276128A1 (en) Secure option rom firmware updates
US20180054314A1 (en) Instantiating Containers
TWI839587B (zh) 用於管理軟體更新之方法及裝置,以及非暫時性電腦可讀儲存媒體
US20120030766A1 (en) Method and system for defining a safe storage area for use in recovering a computer system
CN105637521B (zh) 一种数据处理方法及智能终端
EP3485416B1 (en) Bios security
KR20040048664A (ko) 컴퓨터 시스템의 바이오스 보안 유지방법
US11640288B2 (en) System version upgrading method and apparatus
CN109284232A (zh) 嵌入式Linux系统中预防闪存崩溃的方法
US20170337000A1 (en) Tree structure for storing monitored memory page data
US8117402B2 (en) Decreasing shared memory data corruption
US7882353B2 (en) Method for protecting data in a hard disk
CN106354680B (zh) 快速识别移动存储设备的方法和装置
US20150309885A1 (en) Method and device for processing data and electronic apparatus
CN109460282B (zh) 一种vTPM时钟安全保障的方法及系统
CN112346823B (zh) 一种云主机数据保护方法及其系统
CN116910768B (zh) 一种防御攻击方法、系统、装置及介质
US20230069169A1 (en) Information processing apparatus and control method of the same

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 200082 538 Dalian Road, Yangpu District, Shanghai

Applicant after: CONTINENTAL INVESTMENT (CHINA) Co.,Ltd.

Address before: 200082 538 Dalian Road, Yangpu District, Shanghai

Applicant before: Continental Automotive Holding Co.,Ltd.

CB02 Change of applicant information
TA01 Transfer of patent application right

Effective date of registration: 20210901

Address after: 241009 No. 18 Tianzhushan Road, Wuhu City, Anhui Province

Applicant after: Continental automotive body electronic system (Wuhu) Co.,Ltd.

Address before: 200082 538 Dalian Road, Yangpu District, Shanghai

Applicant before: CONTINENTAL INVESTMENT (CHINA) Co.,Ltd.

TA01 Transfer of patent application right
RJ01 Rejection of invention patent application after publication

Application publication date: 20190129

RJ01 Rejection of invention patent application after publication