一种Linux内核中加载和解压并行执行的方法与流程

文档序号:25037565发布日期:2021-05-11 17:10阅读:277来源:国知局
一种Linux内核中加载和解压并行执行的方法与流程

本发明涉及linux系统领域,特别涉及一种linux内核中加载和解压并行执行的方法。



背景技术:

随着科学技术的不断发展,人们对计算机操作系统特别是linux的应用越来越普遍。通常,linux内核启动过程是通过引导程序先把flash中存储的zimage全部加载到ram中,然后解压ram中的zimage为vmlinux,最后执行vmlinux,其中的加载和解压是串行完成,如图1所示。因此,linux内核启动过程中的加载和解压串行完成,相对于并行完成所需要的时间更长,不适应越来越快的工作节奏的要求。

目前,本领域的技术术语包括:

linux:是一套免费使用和自由传播的类unix操作系统,是一个基于posix和unix的多用户、多任务、支持多线程和多cpu的操作系统。

操作系统内核:操作系统内核是指大多数操作系统的核心部分。它由操作系统中用于管理存储器、文件、外设和系统资源的那些部分组成。

zimage:linux内核的压缩文件。

vmlinux:解压后的linux内核执行文件。vmlinux文件生成,这个文件必然是核心的linux内核,但是它是elf格式的文件,其中包含了可执行的二进制指令(内核),调试信息,符号表等内容。vmlinux的生成是编译内核的关键,但是得到的vmlinux文件是不能烧写到flash中执行的。主要的问题是,没有一个环境来加载elf格式的文件。而zimage则是可以加载执行的二进制代码。

flash:闪存是一种非易失性(non-volatile)内存,在没有电流供应的条件下也能够长久地保持数据,其存储特性相当于硬盘,这项特性正是闪存得以成为各类便携型数字设备的存储介质的基础。

ram:也叫主存,是与cpu直接交换数据的内部存储器。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储介质。



技术实现要素:

为了解决上述问题,本发明的目的在于克服现有技术的不足,提供一种加快linux内核启动的方法,缩短了linux内核加载解压过程的时间。

具体地,提供一种linux内核中加载和解压并行执行的方法,包括以下步骤:

s1,确认在flash中存储的zimage被分解成n块,其中,n为正整数;

s2,加载第1块zlmage到ram中;

s3,加载第2块zlmage到ram中,且并行解压前一步骤中加载到ram中的第1块zimage;

......以此类推,依次进行;

s(n+1),从flash中加载第n块zlmage到ram中,且并行解压前一步骤中加载到ram中的第n-1块zimage;

s(n+2),在ram中解压第n块zlmage。

其中,加载的任务主要由flash控制器完成,解压的任务由cpu完成。

完成1块zimage的加载时间要大于解压时间。

在并行执行所需的时间是加载时间t1与第n块的解压时间t2-n的总和。

在所述步骤s1中,每块zimage可独立加载到ram中。

在所述步骤s3中,并行解压前一步s2中加载到ram中的第1块zimage,以vmlinux-1表示。

所述步骤s(n+1)中,并行解压前一步sn中加载到ram中的第n-1块zimange,以vmlinux-n-1表示。

所述步骤s(n+2)中,解压第n块zimage为vmlinux-n。

由此,

本技术:
的优势在于:linux内核启动过程中把加载和解压并行执行,从而缩短linux内核加载解压过程的时间。提高了工作效率,节约了时间。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。

图1是本发明涉及的现有技术的示意框图。

图2是本发明涉及的flash和ram加载和解压过程的示意框图。

图3是现有技术和本发明所用时间比较的示意流程图。

图4是本发明的具体方法的流程示意图。

具体实施方式

为了能够更清楚地理解本发明的技术内容及优点,现结合附图对本发明进行进一步的详细说明。

如图2所示,在flash中存储的zimage被分解成n块,每块可独立加载到ram中,在加载完第1块后可并行解压之前加载到ram的zimage块。加载和解压可以并行执行原因是加载的任务主要由flash控制器完成,解压的任务由cpu完成。

如图4所示,提供一种linux内核中加载和解压并行执行的方法,包括以下步骤:

s1,确认在flash中存储的zimage被分解成n块,其中,n为正整数,且通常,n为大于2且不太大的正整数,例如,9或10;每块zimage可独立加载到ram中;

s2,加载第1块zlmage到ram中;

s3,加载第2块zlmage到ram中,且并行解压前一步骤s2中加载到ram中的第1块zimage;

......以此类推,依次进行;

s(n+1),从flash中加载第n块zlmage到ram中,且并行解压前一步骤sn中加载到ram中的第n-1块zimange;

s(n+2),在ram中解压第n块zlmage。

如图3所示,通常完成1块zimage的加载时间要大于解压时间,通过图3分析在并行执行所需的时间是加载时间t1与第n块的解压时间t2-n,而串行执行的时间是加载时间t1和解压时间t2,所以并行执行相对与串行执行可减少1到n-1块的解压时间。

所述步骤s3中,并行解压前一步s2中加载到ram中的第1块zimage,用vmlinux-1表示。

所述步骤s(n+1)中,并行解压前一步sn中加载到ram中的第n-1块zimange,用vmlinux-n-1表示。

所述步骤s(n+2)中,解压第n块zimage为vmlinux-n。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。



技术特征:

1.一种linux内核中加载和解压并行执行的方法,其特征在于,包括以下步骤:

s1,确认在flash中存储的zimage被分解成n块,其中,n为正整数;

s2,加载第1块zlmage到ram中;

s3,加载第2块zlmage到ram中,且并行解压前一步骤中加载到ram中的第1块zimage;

......以此类推;

s(n+1),从flash中加载第n块zlmage到ram中,且并行解压前一步骤中加载到ram中的第n-1块zimange;

s(n+2),在ram中解压第n块zlmage。

2.根据权利要求1所述的一种linux内核中加载和解压并行执行的方法,其特征在于,所述的加载的任务由flash控制器完成,所述的解压的任务由cpu完成。

3.根据权利要求1所述的一种linux内核中加载和解压并行执行的方法,其特征在于,完成1块zimage的加载时间大于解压时间。

4.根据权利要求1所述的一种linux内核中加载和解压并行执行的方法,其特征在于,在并行执行所需的时间是加载时间t1与第n块zimage的解压时间t2-n的总和。

5.根据权利要求1所述的一种linux内核中加载和解压并行执行的方法,其特征在于,所述步骤s1中,每块zimage可独立加载到ram中。

6.根据权利要求1所述的一种linux内核中加载和解压并行执行的方法,其特征在于,所述步骤s3中,并行解压前一步s2中加载到ram中的第1块zimage,以vmlinux-1表示。

7.根据权利要求1所述的一种linux内核中加载和解压并行执行的方法,其特征在于,所述步骤s(n+1)中,并行解压前一步sn中加载到ram中的第n-1块zimange,以vmlinux-n-1表示。

8.根据权利要求1所述的一种linux内核中加载和解压并行执行的方法,其特征在于,所述步骤s(n+2)中,解压第n块zimage为vmlinux-n。


技术总结
本发明提供一种Linux内核中加载和解压并行执行的方法,包括以下步骤:S1,确认在FLASH中存储的zImage被分解成n块,其中,n为正整数;S2,加载第1块zlmage到RAM中;S3,加载第2块zlmage到RAM中,且并行解压前一步骤中加载到RAM中的第1块zImage;......以此类推;S(n+1),从FLASH中加载第n块zlmage到RAM中,且并行解压前一步骤中加载到RAM中的第n‑1块zImange;S(n+2),在RAM中解压第n块zlmage。本申请的优势在于:Linux内核启动过程中把加载和解压并行执行,从而缩短linux内核加载解压过程的时间。

技术研发人员:王春雷
受保护的技术使用者:北京君正集成电路股份有限公司
技术研发日:2019.11.11
技术公布日:2021.05.11
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1