CN101639782A - 基于嵌入式操作系统的系统引导载入方法 - Google Patents
基于嵌入式操作系统的系统引导载入方法 Download PDFInfo
- Publication number
- CN101639782A CN101639782A CN200910108682A CN200910108682A CN101639782A CN 101639782 A CN101639782 A CN 101639782A CN 200910108682 A CN200910108682 A CN 200910108682A CN 200910108682 A CN200910108682 A CN 200910108682A CN 101639782 A CN101639782 A CN 101639782A
- Authority
- CN
- China
- Prior art keywords
- file
- kernel
- image file
- bootloading
- memory
- 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
Links
Abstract
基于嵌入式操作系统的系统引导载入方法,解决提高嵌入式系统中引导载入程序的处理速度以及将文件系统压缩的更小以便存放入闪存单元的技术问题,采用的技术方案是,本方法借助Lzma算法编写配套的软件程序、移植存储在Bootloader引导加载程序单元中,实现对文件系统和系统内核的压缩及解压过程,首先将文件系统与内核压缩为压缩文件,再将以上格式文件合并生成一个镜像文件存储在闪存中,最后将闪存中的镜像文件解压到系统内存中。本发明的优点是可以最大限度压缩文件系统中的图像文件,并将所有目标镜像完全合为一体,方便固化、升级,用户使用起来非常简单。
Description
技术领域
本发明涉及嵌入式软件image的存储、解压缩,具体适用于存储空间非常紧张的嵌入式设备上image的存储,尤其涉及到基于嵌入式系统的系统引导载入方法。
背景技术
Linux系统启动过程是通过Bootloader引导启动的。一上电就要执行Bootloader来初始化系统。系统加电或者复位后,所有CPU都会从某个地址开始执行,这是由处理器设计决定的。Bootloader程序存储在相应的flash闪存位置,好使系统加电后首先执行它。
嵌入式系统中,存储设备的空间有限,例如有时还需要提供image镜像的双备份,使得存储空间显得越加紧张,有时甚至是不可能满足系统要求。所以如果要在有限的存储空间存放大容量的镜像,只能采取image压缩。
Lzma算法(Lempel-Ziv-Markov chain-Algorithm),是一个Deflate和LZ77算法改良和优化后的压缩算法,应用于7-Zip压缩工具中,是2001年以来得到发展的一个数据压缩算法。它使用类似于LZ77的字典编码机制,在一般的情况下压缩率比bzip2为高,用于压缩的可变字典最大小可达4GB。
目前在Bootloader中只支持gzip和bzip2的image压缩模式,所谓的Bootloader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。但是上述二者的压缩效率不是太高,很难满足一些特殊的使用要求。而公认的比较好的传统压缩算法zip和rar没有公开压缩算法源码,难以应用在实际产品中,给本领域内带来麻烦。
发明内容
为解决提高嵌入式系统中引导载入程序的处理速度以及将文件系统压缩的更小以便存放入闪存单元的技术问题,本发明设计了基于嵌入式系统的系统引导载入方法,实现了将内核和文件系统做成一个镜像,极大的方便了系统的升级、存储设备的利用。
本发明实现发明目的采用的技术方案是,基于嵌入式操作系统的系统引导载入方法,借助计算机以及配套的引导加载程序将文件系统和内核存入系统内存中,计算机调用内存中的镜像文件进行启动,以上方法借助Lzma算法编写配套的软件程序、移植存储在Bootloader引导加载程序单元中,实现对文件系统和系统内核的压缩及解压过程,本方法的具体过程是:
A)、引导加载程序启动后,首先将文件系统与内核按照相应的地址向量借助Lzma算法程序分别压缩为压缩文件;
B)、将以上压缩文件借助编写好的配套程序进行文件合成;
C)、将合成后的文件生成镜像文件编码固化存储在系统闪存单元中;
D)、将闪存单元中的镜像文件编码按照相应的地址向量借助Lzma算法程序解压到系统内存中;
E)、启动系统内存中的文件系统和内核。
本发明的有益效果是可以最大限度压缩文件系统中的镜像文件,并将所有目标镜像完全合为一体,方便固化、升级,用户使用起来非常简单。
下面结合附图对本发明进行详细描述。
附图说明
图1是本发明的方法流程图。
具体实施方式
参看图1,基于嵌入式操作系统的系统引导载入方法,借助计算机以及配套的引导加载程序将文件系统和内核存入系统内存中,计算机调用内存中的镜像文件进行启动,以上方法借助Lzma算法编写配套的软件程序、移植存储在Bootloader引导加载程序单元中,实现对文件系统和系统内核的压缩及解压过程,本方法的具体过程是:
A)、引导加载程序启动后,首先将文件系统与内核按照相应的地址向量借助Lzma算法程序分别压缩为压缩文件;
B)、将以上压缩文件借助编写好的配套程序进行文件合成;
C)、将合成后的文件生成镜像文件编码固化存储在系统闪存单元中;
D)、将闪存单元中的镜像文件编码按照相应的地址向量借助Lzma算法程序解压到系统内存中;
E)、启动系统内存中的文件系统和内核。
上述的压缩文件为7-zip格式文件。
现举出具体实施例对本发明进行具体说明,以展现本发明的优点。
表1是采用发明压缩算法和传统算法压缩文件系统和内核的对比。未压缩之前的文件系统和内核的总的大小是13MB。
类型 | Lzma | Cpio | Jffs2方式 | Cramfs方式 |
最终大小 | 2.8MB | 4.2MB | 5.4MB | 4.9MB |
表1各种压缩算法的对比
由表1可以看出,用Lzma算法压缩文件系统和内核后的文件大小为2.8MB,比其它方式压缩出的文件要小很多,说明用本发明的方法能够最大限度的压缩文件所占用的空间,以便存储在闪存单元内。
本发明还根据lzma压缩算法,将其移植存储在Bootloader中,并提供相应接口,方便固化以及升级。
Claims (2)
1、基于嵌入式操作系统的系统引导载入方法,借助计算机以及配套的引导加载程序将文件系统和内核存入系统内存中,计算机调用内存中的镜像文件进行启动,其特征在于:以上方法借助Lzma算法编写配套的软件程序、移植存储在Bootloader引导加载程序单元中,实现对文件系统和系统内核的压缩及解压过程,本方法的具体过程是:
A)、引导加载程序启动后,首先将文件系统与内核按照相应的地址向量借助Lzma算法程序分别压缩为压缩文件;
B)、将以上压缩文件借助编写好的配套程序进行文件合成;
C)、将合成后的文件生成镜像文件编码固化存储在系统闪存单元中;
D)、将闪存单元中的镜像文件编码按照相应的地址向量借助Lzma算法程序解压到系统内存中;
E)、启动系统内存中的文件系统和内核。
2、根据权利要求1所述的基于嵌入式操作系统的系统引导载入方法,其特征在于:所述的压缩文件为7-zip格式文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910108682A CN101639782A (zh) | 2009-07-14 | 2009-07-14 | 基于嵌入式操作系统的系统引导载入方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910108682A CN101639782A (zh) | 2009-07-14 | 2009-07-14 | 基于嵌入式操作系统的系统引导载入方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101639782A true CN101639782A (zh) | 2010-02-03 |
Family
ID=41614777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910108682A Pending CN101639782A (zh) | 2009-07-14 | 2009-07-14 | 基于嵌入式操作系统的系统引导载入方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101639782A (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101923515A (zh) * | 2010-09-07 | 2010-12-22 | 上海市共进通信技术有限公司 | 在嵌入式系统应用设备的闪存中运行Web页面的方法 |
CN102129476A (zh) * | 2011-04-22 | 2011-07-20 | 上海网达软件有限公司 | 利用zip压缩格式的虚拟文件系统应用 |
CN102141923A (zh) * | 2010-09-28 | 2011-08-03 | 华为终端有限公司 | 内存文件系统加载方法及装置 |
CN102231117A (zh) * | 2011-07-08 | 2011-11-02 | 盛乐信息技术(上海)有限公司 | 一种在嵌入式平台安装软件的方法和系统 |
CN102289395A (zh) * | 2011-07-14 | 2011-12-21 | 深圳市共进电子有限公司 | 嵌入式设备上使用双代码镜像运行的方法 |
CN102375760A (zh) * | 2010-08-24 | 2012-03-14 | 中兴通讯股份有限公司 | 嵌入式系统及其中的文件系统的倒换方法 |
CN102799452A (zh) * | 2012-06-29 | 2012-11-28 | 深圳市安普尔科技有限公司 | 系统软件升级方法和装置 |
CN103544042A (zh) * | 2013-10-15 | 2014-01-29 | 广东威创视讯科技股份有限公司 | 一种生成镜像文件的方法及编译器 |
CN103605540A (zh) * | 2013-11-18 | 2014-02-26 | 四川长虹电器股份有限公司 | 基于安卓系统的快速写入flash镜像的方法 |
CN104113345A (zh) * | 2013-04-16 | 2014-10-22 | 晨星半导体股份有限公司 | 解压缩电路与相关的解压缩方法 |
CN104572140A (zh) * | 2013-10-10 | 2015-04-29 | 深圳中电长城信息安全系统有限公司 | 一种操作系统移植的方法、装置及系统 |
CN104750492A (zh) * | 2015-03-31 | 2015-07-01 | 广东欧珀移动通信有限公司 | 基于嵌入式操作系统的移动设备的开机控制方法及装置 |
CN107203524A (zh) * | 2016-03-16 | 2017-09-26 | 阿里巴巴集团控股有限公司 | 一种打包APK文件的方法、加载Bundle文件的方法及系统 |
CN109298891A (zh) * | 2018-09-06 | 2019-02-01 | 深圳市智美达科技股份有限公司 | 系统启动方法和装置、系统编译方法和装置 |
CN109558149A (zh) * | 2018-11-30 | 2019-04-02 | 厦门亿联网络技术股份有限公司 | 一种基于ubl的uboot解压缩方法及系统 |
CN109683983A (zh) * | 2018-12-11 | 2019-04-26 | 青岛海信电器股份有限公司 | 一种镜像文件的生成及加载方法、设备 |
CN109857468A (zh) * | 2019-01-04 | 2019-06-07 | 烽火通信科技股份有限公司 | 一种在单Linux系统镜像中支持多DTB的方法及系统 |
-
2009
- 2009-07-14 CN CN200910108682A patent/CN101639782A/zh active Pending
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102375760A (zh) * | 2010-08-24 | 2012-03-14 | 中兴通讯股份有限公司 | 嵌入式系统及其中的文件系统的倒换方法 |
CN101923515A (zh) * | 2010-09-07 | 2010-12-22 | 上海市共进通信技术有限公司 | 在嵌入式系统应用设备的闪存中运行Web页面的方法 |
CN101923515B (zh) * | 2010-09-07 | 2012-07-04 | 上海市共进通信技术有限公司 | 在嵌入式系统应用设备的闪存中运行Web页面的方法 |
CN102141923A (zh) * | 2010-09-28 | 2011-08-03 | 华为终端有限公司 | 内存文件系统加载方法及装置 |
CN102141923B (zh) * | 2010-09-28 | 2013-12-04 | 华为终端有限公司 | 内存文件系统加载方法及装置 |
CN102129476B (zh) * | 2011-04-22 | 2013-01-16 | 上海网达软件股份有限公司 | 利用zip压缩格式的虚拟文件系统应用 |
CN102129476A (zh) * | 2011-04-22 | 2011-07-20 | 上海网达软件有限公司 | 利用zip压缩格式的虚拟文件系统应用 |
CN102231117B (zh) * | 2011-07-08 | 2013-08-14 | 盛乐信息技术(上海)有限公司 | 一种在嵌入式平台安装软件的方法和系统 |
CN102231117A (zh) * | 2011-07-08 | 2011-11-02 | 盛乐信息技术(上海)有限公司 | 一种在嵌入式平台安装软件的方法和系统 |
CN102289395A (zh) * | 2011-07-14 | 2011-12-21 | 深圳市共进电子有限公司 | 嵌入式设备上使用双代码镜像运行的方法 |
CN102799452A (zh) * | 2012-06-29 | 2012-11-28 | 深圳市安普尔科技有限公司 | 系统软件升级方法和装置 |
CN102799452B (zh) * | 2012-06-29 | 2015-10-07 | 深圳市安普尔科技有限公司 | 系统软件升级方法和装置 |
CN104113345B (zh) * | 2013-04-16 | 2017-03-01 | 晨星半导体股份有限公司 | 解压缩电路与相关的解压缩方法 |
CN104113345A (zh) * | 2013-04-16 | 2014-10-22 | 晨星半导体股份有限公司 | 解压缩电路与相关的解压缩方法 |
CN104572140A (zh) * | 2013-10-10 | 2015-04-29 | 深圳中电长城信息安全系统有限公司 | 一种操作系统移植的方法、装置及系统 |
CN104572140B (zh) * | 2013-10-10 | 2018-11-27 | 深圳中电长城信息安全系统有限公司 | 一种操作系统移植的方法、装置及系统 |
CN103544042A (zh) * | 2013-10-15 | 2014-01-29 | 广东威创视讯科技股份有限公司 | 一种生成镜像文件的方法及编译器 |
CN103605540A (zh) * | 2013-11-18 | 2014-02-26 | 四川长虹电器股份有限公司 | 基于安卓系统的快速写入flash镜像的方法 |
CN103605540B (zh) * | 2013-11-18 | 2017-05-03 | 四川长虹电器股份有限公司 | 基于安卓系统的快速写入flash镜像的方法 |
CN104750492B (zh) * | 2015-03-31 | 2018-01-19 | 广东欧珀移动通信有限公司 | 基于嵌入式操作系统的移动设备的开机控制方法及装置 |
CN104750492A (zh) * | 2015-03-31 | 2015-07-01 | 广东欧珀移动通信有限公司 | 基于嵌入式操作系统的移动设备的开机控制方法及装置 |
CN107203524A (zh) * | 2016-03-16 | 2017-09-26 | 阿里巴巴集团控股有限公司 | 一种打包APK文件的方法、加载Bundle文件的方法及系统 |
CN109298891A (zh) * | 2018-09-06 | 2019-02-01 | 深圳市智美达科技股份有限公司 | 系统启动方法和装置、系统编译方法和装置 |
CN109298891B (zh) * | 2018-09-06 | 2021-09-21 | 深圳市智美达科技股份有限公司 | 系统启动方法和装置、系统编译方法和装置 |
CN109558149A (zh) * | 2018-11-30 | 2019-04-02 | 厦门亿联网络技术股份有限公司 | 一种基于ubl的uboot解压缩方法及系统 |
CN109683983A (zh) * | 2018-12-11 | 2019-04-26 | 青岛海信电器股份有限公司 | 一种镜像文件的生成及加载方法、设备 |
CN109857468A (zh) * | 2019-01-04 | 2019-06-07 | 烽火通信科技股份有限公司 | 一种在单Linux系统镜像中支持多DTB的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101639782A (zh) | 基于嵌入式操作系统的系统引导载入方法 | |
US9047177B2 (en) | Memory system, data management method, and computer | |
US8732446B2 (en) | Selectively compressing blocks of a bootable snapshot image during booting | |
KR101602939B1 (ko) | 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법 | |
CN102231117B (zh) | 一种在嵌入式平台安装软件的方法和系统 | |
Yang et al. | Online memory compression for embedded systems | |
US20150121032A1 (en) | Data Deduplication in a Virtualization Environment | |
JPWO2020190808A5 (zh) | ||
US10007605B2 (en) | Hardware-based array compression | |
JP6276470B2 (ja) | ポータブルコンピューティングデバイスの揮発性メモリのスタンバイ電力を低減するためのシステムおよび方法 | |
CN106030453B (zh) | 支持图形处理单元频率的动态调整的方法和装置 | |
US20130179670A1 (en) | Booting method of multimedia device and multimedia device | |
CN101135978B (zh) | 压缩版应用程序生成、执行方法与装置及应用方法与系统 | |
TWI634421B (zh) | 用以存取資料之電子裝置及其資料存取方法 | |
US9652416B2 (en) | Storage device for performing in-storage computing operations, method of operation the same, and system including the same | |
KR20160128903A (ko) | 메모리 채널 트래픽 감소를 위한 메모리 장치 컨트롤러와 이를 포함하는 스토리지 장치 | |
CN112783558B (zh) | 一种加快Linux内核启动的自解压阶段的方法 | |
US11438010B2 (en) | System and method for increasing logical space for native backup appliance | |
KR20230142355A (ko) | 데이터베이스 스캔 가속을 위한 시스템 및 방법 | |
CN1828538A (zh) | 嵌入式系统中直接从文件系统运行程序的实现方法 | |
CN107577474B (zh) | 升级文件的处理方法及装置、电子设备 | |
CN102792296A (zh) | 移动终端中请求页面调度方法、控制器以及移动终端 | |
CN104598278A (zh) | 一种数据处理方法及电子设备 | |
US20210141723A1 (en) | Memory usage in managed runtime applications | |
JP6080492B2 (ja) | 情報処理装置、起動方法およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20100203 |