CN106293756A - 一种用于快速更换的自定义Linux内核系统 - Google Patents

一种用于快速更换的自定义Linux内核系统 Download PDF

Info

Publication number
CN106293756A
CN106293756A CN201610682215.5A CN201610682215A CN106293756A CN 106293756 A CN106293756 A CN 106293756A CN 201610682215 A CN201610682215 A CN 201610682215A CN 106293756 A CN106293756 A CN 106293756A
Authority
CN
China
Prior art keywords
kernel
target
file
internal memory
file system
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
CN201610682215.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.)
Opzoon Technology Co Ltd
Original Assignee
Opzoon Technology 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 Opzoon Technology Co Ltd filed Critical Opzoon Technology Co Ltd
Priority to CN201610682215.5A priority Critical patent/CN106293756A/zh
Publication of CN106293756A publication Critical patent/CN106293756A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种用于快速更换的自定义Linux内核系统,设有自编译的内核补丁模块、内存根文件系统模块、内核配置文件模块及内核编译模块;内存根文件系统模块在执行编译脚本前自定义编译及存储内存根文件系统;内核配置文件模块用于在执行编译脚本前自定义存储内核配置文件;内核补丁模块用于在执行编译脚本且需要目标内核补丁前,预先存储开发过程中的对Linux内核的修改;内核编译模块用于在执行编译脚本前预先自定义编写该编译脚本。本发明有效减少了网络设备所使用内核与原版内核的耦合度,准确且可靠地实现了不同Linux内核版本的快速移植和更换,提高了网络设备升级内核版本的效率,实现了对新硬件驱动或新特性功能的快速支持使用。

Description

一种用于快速更换的自定义Linux内核系统
技术领域
本发明涉及一种Linux内核更新技术,具体涉及一种用于快速更换的自定义Linux内核系统。
背景技术
Linux是一套免费使用和自由传播的类Unix操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码,这使得Linux系统在一些网络设备中得到了广泛应用,如交换机、服务器、防火墙等,网络设备都有其各自的功能特性,用户态的功能特性开发有时需要Linux内核的支持与同步修改,这就涉及到自编译Linux内核系统,Linux内核的修改与编译工作量会随着网络设备功能的复杂程度而增加,而当今网络时代硬件的更新换代非常快,Linux的版本发布又非常频繁,有时我们为了支持新的硬件驱动或新的功能特性不得不更换或升级Linux内核版本,而由于网络设备功能开发对内核源码的一些修改导致与原版内核耦合紧密,而不同版本内核在代码上差异很大。
目前的自编译Linux内核系统中对Linux内核的修改与编译工作量会随着网络设备功能的复杂程度而增加,而由于网络设备功能开发对内核源码的一些修改导致与原版内核耦合紧密,而不同版本内核在代码上差异非常大,这给Linux内核的移植和更换带来了极大的难度和工作量。
发明内容
针对现有技术中的缺陷,本发明提供一种用于快速更换的自定义Linux内核系统,有效减少了网络设备所使用内核与原版内核的耦合度,降低了更换Linux内核的难度及工作量,准确且可靠地实现了不同Linux内核版本的快速移植和更换。
本发明提供了一种用于快速更换的自定义Linux内核系统,包括内存根文件系统模块、内核配置文件模块、内核补丁模块及内核编译模块;
所述内存根文件系统模块用于预先自定义编译及存储适用于目标平台的Linux内核的内存根文件系统,并在执行编译脚本时,提供适用于目标Linux内核的目标内存根文件系统;
所述内核配置文件模块用于预先自定义存储适用于所述目标平台的内核配置文件,并在执行编译脚本时,提供适用于所述目标Linux内核的目标内核配置文件;
所述内核补丁模块用于预先存储开发过程中的对适用于目标平台的Linux内核的修改,并在执行编译脚本且需要目标内核补丁时,提供适用于所述目标Linux内核的目标内核补丁;
所述内核编译模块用于根据所述内存根文件系统及内核配置文件,预先自定义编写适用于所述目标平台的Linux内核的编译脚本,并在执行该编译脚本前,调出该编译脚本。
进一步的,所述内存根文件系统模块包括:内存根文件系统编辑单元及内存根文件系统存储单元;
所述内存根文件系统编辑单元用于根据网络设备、交叉编译环境及所述目标平台的类型,预先自定义编译、存放及修改适用于所述目标平台的Linux内核的内存根文件系统;其中,自定义编译的所述内存根文件系统的数量根据所述目标平台的数量及类型设置,且所述内存根文件系统根据开发需要自行增加或修改自身内容;
所述内存根文件系统存储单元用于将所述内存根文件系统存储在Unix系统资源目录下,并根据变量的判断结果,在Unix系统资源目录下锁定适用于目标Linux内核的目标内存根文件系统,将所述目标内存根文件系统直接复制到调试界面;其中,所述变量在执行编译脚本时输入参数后得到。
进一步的,所述内存根文件系统模块还包括内存根文件压缩单元及内存根文件命名单元;
所述内存根文件压缩单元用于压缩所述内存根文件系统编辑单元中的所述内存根文件系统;
所述内存根文件命名单元用于根据压缩后的所述内存根文件系统的平台类型,对所述内存根文件系统进行命名,并将命名后的所述内存根文件系统发送至所述内存根文件系统存储单元;
所述内存根文件系统存储单元在确定所述目标内存根文件系统后,将所述目标内存根文件系统复制并解压至所述调试界面。
进一步的,所述内核配置文件模块包括内核配置文件选择单元及内核配置文件存储单元;
所述内核配置文件选择单元用于根据网络设备及所述目标平台的类型,对已有的配置文件进行开启、关闭、添加或修改的操作,得到适用于所述目标平台的内核配置文件;其中,所述内核配置文件根据开发需要自行增加或修改自身内容;
所述内核配置文件存储单元用于将所述内核配置文件存储在Unix系统资源目录下,并根据变量的判断结果,在Unix系统资源目录下锁定适用于目标Linux内核的目标内核配置文件,将所述目标内核配置文件直接复制到调试界面;其中,所述变量在执行编译脚本时输入参数后得到。
进一步的,所述内核配置文件模块还包括:内核配置文件命名单元;
所述内核配置文件命名单元用于根据所述内核配置文件选择单元中的所述内核配置文件的平台类型,对所述内核配置文件命名,并将命名后的所述内核配置文件发送至所述内核配置文件存储单元。
进一步的,所述内核补丁模块包括内核补丁存储单元;
所述内核补丁存储单元用于预先将开发过程中的对适用于目标平台的Linux内核的全部修改均存储在Unix系统资源目录下,并在执行编译脚本且需要目标内核补丁时,根据变量的判断结果,在Unix系统资源目录中将适用于目标Linux内核的目标内核补丁直接复制到调试界面;其中,所述变量在执行编译脚本时输入参数后得到。
进一步的,所述内核编译模块包括:脚本编译单元及脚本存储单元;
所述脚本编译单元用于根据各所述内存根文件系统及内核配置文件所属的目标平台的类型,预先自定义编写适用于所述目标平台的Linux内核的编译脚本;其中,所述编译脚本根据开发需要自行增加或修改自身内容;
所述脚本存储单元用于将所述编译脚本存储在Linux内核源码解压后的根目录下;并在执行该编译脚本前,直接复制该编译脚本到调试界面。
由上述技术方案可知,本发明提供的一种用于快速更换的自定义Linux内核系统,通过自编译的内核补丁模块、内存根文件系统模块、内核配置文件模块及内核编译模块的设置;有效减少了网络设备所使用内核与原版内核的耦合度,准确且可靠地实现了不同Linux内核版本的快速移植和更换,进而提高了网络设备升级内核版本的效率,实现了对新硬件驱动或新特性功能的快速支持使用,大大节省内核移植的时间和人力成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单的介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中的一种用于快速更换的自定义Linux内核系统示意图;
图2为本发明的系统中内存根文件系统模块10的示意图;
图3为本发明的内核配置文件模块11的示意图;
图4为本发明的内核补丁模块12的示意图;
图5为本发明的内核编译模块13的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明提供一种用于快速更换的自定义Linux内核系统,其特征在于,系统中具体设有:内存根文件系统模块10、内核配置文件模块11、内核补丁模块12及内核编译模块13;
其一,内存根文件系统模块10用于预先自定义编译及存储适用于目标平台的Linux内核的内存根文件系统,并在执行编译脚本时,提供适用于目标Linux内核的目标内存根文件系统;
从编辑人员更换或升级Linux内核的操作过程的角度来说,内存根文件系统模块10的主要功能分为两部分,第一部分是在编辑人员根据平台内核的搭建需求,在网站中下载源代码,而后对源代码进行解压,得到标准解码后,在内存根文件系统模块10中自编译适用于该一个或多个平台的内存根文件系统,将该内存根文件系统通过压缩命令进行压缩以减少其大小,并根据架构类型进行命名,然后将其存放在Linux源码解压后的/usr目录下;第二部分是在执行编译脚本时,根据变量的判断结果,在/usr目录下锁定对应当前编译内核需求的目标内存根文件系统,直接拷贝及解压目标内存根文件系统到调试界面。
内存根文件系统模块10中的内存根文件系统为自定义编译制作,与Linux内核为低耦合,并且只需要最初制作一次,以后内核版本更换或升级时只需要直接拷贝使用即可。
其二,内核配置文件模块11用于预先自定义存储适用于目标平台的内核配置文件,并在执行编译脚本时,提供适用于目标Linux内核的目标内核配置文件;
从编辑人员更换或升级Linux内核的操作过程的角度来说,内核配置文件模块11的主要功能也分为两部分,第一部分是在得到标准解码后,在内核配置文件模块11中根据平台类型,开启或关闭部分需要或不需要的内核配置选项,提前配置生成内核配置文件,配置生成的内核配置文件可根据架构或平台类型进行命名;然后存放在Linux源码解压后的/usr目录下;第二部分是在执行编译脚本时,根据变量的判断结果,在/usr目录中锁定对应当前编译内核需求的目标内核配置文件,直接拷贝目标内核配置文件到调试界面,进行编辑。
内核配置文件模块11中的内核配置文件由自定义配置生成,与Linux内核为低耦合,并且只需要最初生成一次,以后内核版本更换或升级时只需要直接拷贝使用即可。
其三,内核补丁模块12用于预先存储开发过程中的对适用于目标平台的Linux内核的修改,并在执行编译脚本且需要目标内核补丁时,提供适用于目标Linux内核的目标内核补丁;
从编辑人员更换或升级Linux内核的操作过程的角度来说,内核补丁模块12的主要功能分为两部分,第一部分是在编辑人员根据平台内核的搭建需求,在开发过程中的对适用于目标平台的Linux内核做了修改,内核补丁模块12将这些修改全部集中存放在/usr目录下的一个.c和.h文件中;第二部分在执行编译脚本时,若需要补丁文件,则在内核补丁模块12中的/usr目录下,锁定并直接拷贝目标补丁至调试界面。
内核补丁模块12中的内核补丁有效减少了与Linux内核源码的耦合,在以后内核版本更换或升级时只需要直接拷贝使用及少量修改内核源码即可。
其四,内核编译模块13用于预先自定义编写适用于目标平台的Linux内核的编译脚本,并在执行该编译脚本前,调出该编译脚本;
同样的,从编辑人员更换或升级Linux内核的操作过程的角度来说,内核编译模块13的主要功能分为两部分,第一部分是在编辑人员使用不同架构或平台的内核配置文件、内存根文件系统压缩文件,自定义编译出不同架构或平台的内核镜像文件;并将该编译脚本放在Linux内核源编写压后的根目录下;第二部分是编辑人员开始准备执行编译脚本,先在内核编译模块13的Linux内核源码解压后的根目录下直接拷贝编译脚本到调试界面;然后执行编译脚本并输入用于区分不同架构及平台的编译参数,得到变量。
内核编译模块13中的编译脚本放在Linux内核源码解压后的根目录下,后续使用可根据自身需要随时修改,并且只需要创建一次,在以后内核版本更换或升级时只需要直接拷贝使用即可。
如图2所示,内存根文件系统模块10中具体设有:内存根文件系统编辑单元20、内存根文件压缩单元21、内存根文件命名单元22及内存根文件系统存储单元23;
内存根文件系统编辑单元20用于根据网络设备、交叉编译环境及目标平台的类型,预先自定义编译、存放及修改适用于目标平台的Linux内核的内存根文件系统;其中,自定义编译的内存根文件系统的数量根据目标平台的数量及类型设置,且内存根文件系统根据开发需要自行增加或修改自身内容。
内存根文件压缩单元21用于压缩内存根文件系统编辑单元20中的内存根文件系统。
内存根文件命名单元22用于根据内存根文件压缩单元21压缩后的内存根文件系统的平台类型,对内存根文件系统进行命名,并将命名后的内存根文件系统发送至内存根文件系统存储单元23。
内存根文件系统存储单元23用于将内存根文件命名单元22命名后的内存根文件系统存储在Unix系统资源目录下,并根据变量的判断结果,在Unix系统资源目录下锁定适用于目标Linux内核的目标内存根文件系统,将目标内存根文件系统直接复制并解压到调试界面;其中,变量在执行编译脚本时输入参数后得到。
如图3所示,内核配置文件模块11中具体设有内核配置文件选择单元30、内核配置文件命名单元31及内核配置文件存储单元32;
内核配置文件选择单元30用于根据网络设备及目标平台的类型,对已有的配置文件进行开启、关闭、添加或修改的操作,得到适用于目标平台的内核配置文件;其中,内核配置文件根据开发需要自行增加或修改自身内容。
内核配置文件命名单元31用于根据内核配置文件选择单元11中的内核配置文件的平台类型,对内核配置文件命名,并将命名后的内核配置文件发送至内核配置文件存储单元32。
内核配置文件存储单元32用于将内核配置文件命名单元31命名后的内核配置文件存储在Unix系统资源目录下,并根据变量的判断结果,在Unix系统资源目录下锁定适用于目标Linux内核的目标内核配置文件,将目标内核配置文件直接复制到调试界面;其中,变量在执行编译脚本时输入参数后得到。
如图4所示,内核补丁模块12中具体设有内核补丁存储单元40;
内核补丁存储单元40用于预先将开发过程中的对适用于目标平台的Linux内核的全部修改均存储在Unix系统资源目录下,并在执行编译脚本且需要目标内核补丁时,根据变量的判断结果,在Unix系统资源目录中将适用于目标Linux内核的目标内核补丁直接复制到调试界面;其中,变量在执行编译脚本时输入参数后得到。
如图5所示,内核编译模块13中具体设有:脚本编译单元50及脚本存储单元51;
脚本编译单元50用于根据目标平台的类型、内存根文件系统存储单元23中的内存根文件系统及内核配置文件存储单元32中的内核配置文件预先自定义编写适用于目标平台的Linux内核的编译脚本;其中,编译脚本根据开发需要自行增加或修改自身内容。
脚本存储单元51用于将编译脚本存储在Linux内核源码解压后的根目录下;并在执行该编译脚本前,直接复制该编译脚本到调试界面。
应用本发明的自定义Linux内核系统的快速更换Linux内核的具体过程如下:
S1.编辑人员根据平台内核的搭建需求,在网站中下载源代码;平台根据需要可能为一种或多种,如x86、arm、mips等。
S2.对源代码进行解压,得到标准解码。
S3.在内存根文件系统模块10中自编译适用于该一个或多个平台的内存根文件系统,并将该内存根文件系统通过压缩命令进行压缩以减少其大小,并根据架构类型进行命名,然后将其存放在Linux源码解压后的/usr目录下。
S4.在内核配置文件模块11中,根据平台类型,开启或关闭部分需要或不需要的内核配置选项,提前配置生成内核配置文件(.config),并且在以后的使用中可根据自身需要随时进行修改,配置生成的内核配置文件可根据架构或平台类型进行命名;然后存放在Linux源码解压后的/usr目录下。
S5.在内核补丁模块12中,将用户态功能开发过程中对内核的修改都预先集中到.c和.h文件中并放在/usr目录下。
S6.在内核编译模块13中,根据用户输入编译参数不同区分不同架构及平台,使用不同架构或平台的内核配置文件、内存根文件系统压缩文件,自定义编写出不同架构或平台的内核镜像文件;并将该编译脚本放在Linux内核源码解压后的根目录下。
上述S1至S6均为执行编译脚本动作前的步骤,其中,步骤S3至S6的逻辑关系不仅限于上述顺序,部分步骤还可以同时进行,此处不再赘述。
S7.编辑人员开始准备执行编译脚本,先在内核编译模块13的Linux内核源码解压后的根目录下直接拷贝编译脚本到调试界面;然后执行编译脚本并输入用于区分不同架构及平台的编译参数,得到变量;
S8.根据变量的判断结果,分别在内存根文件系统模块10中的/usr目录下及内核配置文件模块11中锁定对应当前编译内核需求的目标内存根文件系统及目标内核配置文件,直接拷贝及解压目标内存根文件系统到调试界面,并直接拷贝目标内核配置文件到调试界面,进行编辑;此期间,若需要补丁文件,则在内核补丁模块12中的/usr目录下,锁定并直接拷贝目标补丁至调试界面;
S9.在网络设备中运行调试,快速实现新硬件设备驱动及新功能特性适配。
本发明提供一种用于快速更换的自定义Linux内核系统的具体应用例,如下:
现有技术方法的缺点是用户态的功能特性开发有时需要Linux内核的支持与同步修改,这就涉及到自编译Linux内核系统,Linux内核的修改与编译工作量会随着网络设备功能的复杂程度而增加,而当今网络时代硬件的更新换代非常快,Linux的的版本发布又非常频繁,有时我们为了支持新的硬件驱动或新的功能特性不得不更换或升级Linux内核版本,而由于网络设备功能开发对内核源码的一些修改导致与原版内核耦合紧密,而不同版本内核在代码上差异非常大,这给Linux内核的移植和更换带来了很大难度和工作量。
1.内存根文件系统模块10:通过编译busybox制作最初的内存根文件系统,可根据自身网络设备架构类型及交叉编译环境自定义编译制作一个或多个架构的内存根文件系统,以支持一个或多个架构平台的使用(如x86、arm、mips等),该内存根文件系统中可根据自身需要增加或修改自编译可执行程序、lib库文件、自定义脚本等,并且在后续开发过程中可根据自身需要随时添加或修改其内容;该内存根文件系统制作完成后通过压缩命令进行压缩以减少其大小,并根据架构类型进行命名如:
rootfs_x86_64.tar.gz\rootfs_arm.tar.gz等,放在Linux源码解压后的/usr目录下;该内存根文件系统为自定义编译制作,与Linux内核为低耦合,并且只需要最初制作一次,以后内核版本更换或升级时只需要直接拷贝使用即可。
2、内核配置文件模块11:自编译Linux内核离不开内核配置文件,而不同功能网络设备、不同架构或平台对内核的配置也是不同的,所以我们可根据自身需要针对不同架构或平台开启或关闭一些我们需要或不需要的内核配置选项,提前配置生成内核配置文件(.config),并且在以后的使用中可根据自身需要随时进行修改,其中通用的修改是指定交叉编译工具及加载我们自定义的内存根文件系统,修改方法为:在Linux内核源码解压后的根目录下执行make Menuconfig修改General setup下的Cross-compiler tool prefix选项为你当前的编译工具(如/opt/intel/cross-tools/bin/x86_64-Linux-gnu-),使能修改Initial RAM filesystem and RAM disk(initramfs/initrd)support,输入Initramfssource file(s)为自编译的内存根文件系统路径(usr/rootfs,rootfs_x86_64.tar.gz解压后的文件路径);配置生成的内核配置文件可根据架构或平台类型进行命名如:
x86_64_virtual_Linux.config\arm_hardware_Linux.config等,放在Linux源码解压后的/usr目录下;该内核配置文件由自定义配置生成,与Linux内核为低耦合,并且只需要最初生成一次,以后内核版本更换或升级时只需要直接拷贝使用即可。
3、内核补丁模块12:将用户态功能开发过程中对内核的修改都刻意集中到一个.c和.h文件中并放在/usr目录下,作为内核补丁尽量减少与Linux内核源码的耦合,在以后内核版本更换或升级时只需要直接拷贝使用及少量修改内核源码即可。
4、内核编译模块13:自定义编写编译脚本mk.sh,根据用户输入编译参数不同区分不同架构及平台,编写过程中使用不同架构或平台的内核配置文件、内存根文件系统压缩文件,而编写出不同架构或平台的内核镜像文件,如:./mk.sh-dh编译debug hardware的硬件调试版本,./mk.sh-rv编译release virtual的虚拟机发行版本等,该编译脚本放在Linux内核源码解压后的根目录下,后续使用可根据自身需要随时修改,并且只需要创建一次,在以后内核版本更换或升级时只需要直接拷贝使用即可。
5、内核版本更换或升级时只需要将需要更换版本的的Linux内核源码下载解压,然后将内存根文件系统压缩文件、内核配置文件及内核补丁文件拷贝到/usr目录下,将编译脚本拷贝到/根目录下,少量修改关联引用内核补丁文件的内核原文件即可完成内核移植和更换,保证编译通过生成内核镜像文件后即可在网络设备中运行调试了,快速实现新硬件设备驱动及新功能特性适配,大大节省内核移植的时间和人力成本。
本发明的说明书中,说明了大量具体细节。然而能够理解的是,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释呈反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

Claims (7)

1.一种用于快速更换的自定义Linux内核系统,其特征在于,包括内存根文件系统模块、内核配置文件模块、内核补丁模块及内核编译模块;
所述内存根文件系统模块用于预先自定义编译及存储适用于目标平台的Linux内核的内存根文件系统,并在执行编译脚本时,提供适用于目标Linux内核的目标内存根文件系统;
所述内核配置文件模块用于预先自定义存储适用于所述目标平台的内核配置文件,并在执行编译脚本时,提供适用于所述目标Linux内核的目标内核配置文件;
所述内核补丁模块用于预先存储开发过程中的对适用于目标平台的Linux内核的修改,并在执行编译脚本且需要目标内核补丁时,提供适用于所述目标Linux内核的目标内核补丁;
所述内核编译模块用于根据所述内存根文件系统及内核配置文件,预先自定义编写适用于所述目标平台的Linux内核的编译脚本,并在执行该编译脚本前,调出该编译脚本。
2.根据权利要求1所述的系统,其特征在于,所述内存根文件系统模块包括:内存根文件系统编辑单元及内存根文件系统存储单元;
所述内存根文件系统编辑单元用于根据网络设备、交叉编译环境及所述目标平台的类型,预先自定义编译、存放及修改适用于所述目标平台的Linux内核的内存根文件系统;其中,自定义编译的所述内存根文件系统的数量根据所述目标平台的数量及类型设置,且所述内存根文件系统根据开发需要自行增加或修改自身内容;
所述内存根文件系统存储单元用于将所述内存根文件系统存储在Unix系统资源目录下,并根据变量的判断结果,在Unix系统资源目录下锁定适用于目标Linux内核的目标内存根文件系统,将所述目标内存根文件系统直接复制到调试界面;其中,所述变量在执行编译脚本时输入参数后得到。
3.根据权利要求2所述的系统,其特征在于,所述内存根文件系统模块还包括内存根文件压缩单元及内存根文件命名单元;
所述内存根文件压缩单元用于压缩所述内存根文件系统编辑单元中的所述内存根文件系统;
所述内存根文件命名单元用于根据压缩后的所述内存根文件系统的平台类型,对所述内存根文件系统进行命名,并将命名后的所述内存根文件系统发送至所述内存根文件系统存储单元;
所述内存根文件系统存储单元在确定所述目标内存根文件系统后,将所述目标内存根文件系统复制并解压至所述调试界面。
4.根据权利要求1所述的系统,其特征在于,所述内核配置文件模块包括内核配置文件选择单元及内核配置文件存储单元;
所述内核配置文件选择单元用于根据网络设备及所述目标平台的类型,对已有的配置文件进行开启、关闭、添加或修改的操作,得到适用于所述目标平台的内核配置文件;其中,所述内核配置文件根据开发需要自行增加或修改自身内容;
所述内核配置文件存储单元用于将所述内核配置文件存储在Unix系统资源目录下,并根据变量的判断结果,在Unix系统资源目录下锁定适用于目标Linux内核的目标内核配置文件,将所述目标内核配置文件直接复制到调试界面;其中,所述变量在执行编译脚本时输入参数后得到。
5.根据权利要求4所述的系统,其特征在于,所述内核配置文件模块还包括:内核配置文件命名单元;
所述内核配置文件命名单元用于根据所述内核配置文件选择单元中的所述内核配置文件的平台类型,对所述内核配置文件命名,并将命名后的所述内核配置文件发送至所述内核配置文件存储单元。
6.根据权利要求1所述的系统,其特征在于,所述内核补丁模块包括内核补丁存储单元;
所述内核补丁存储单元用于预先将开发过程中的对适用于目标平台的Linux内核的全部修改均存储在Unix系统资源目录下,并在执行编译脚本且需要目标内核补丁时,根据变量的判断结果,在Unix系统资源目录中将适用于目标Linux内核的目标内核补丁直接复制到调试界面;其中,所述变量在执行编译脚本时输入参数后得到。
7.根据权利要求1所述的系统,其特征在于,所述内核编译模块包括:脚本编译单元及脚本存储单元;
所述脚本编译单元用于根据各所述内存根文件系统及内核配置文件所属的目标平台的类型,预先自定义编写适用于所述目标平台的Linux内核的编译脚本;其中,所述编译脚本根据开发需要自行增加或修改自身内容;
所述脚本存储单元用于将所述编译脚本存储在Linux内核源码解压后的根目录下;并在执行该编译脚本前,直接复制该编译脚本到调试界面。
CN201610682215.5A 2016-08-16 2016-08-16 一种用于快速更换的自定义Linux内核系统 Pending CN106293756A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610682215.5A CN106293756A (zh) 2016-08-16 2016-08-16 一种用于快速更换的自定义Linux内核系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610682215.5A CN106293756A (zh) 2016-08-16 2016-08-16 一种用于快速更换的自定义Linux内核系统

Publications (1)

Publication Number Publication Date
CN106293756A true CN106293756A (zh) 2017-01-04

Family

ID=57678512

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610682215.5A Pending CN106293756A (zh) 2016-08-16 2016-08-16 一种用于快速更换的自定义Linux内核系统

Country Status (1)

Country Link
CN (1) CN106293756A (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106844205A (zh) * 2017-01-12 2017-06-13 上海与德信息技术有限公司 驱动程序调试方法及系统
CN109507991A (zh) * 2018-12-25 2019-03-22 中国兵器装备集团自动化研究所 一种双轴伺服控制平台调试系统及方法
CN109828786A (zh) * 2017-11-23 2019-05-31 中标软件有限公司 一种基于代码级支持sw_64架构的自动化工具
CN110737438A (zh) * 2018-07-20 2020-01-31 北京君正集成电路股份有限公司 一种数据处理方法和装置
CN111722868A (zh) * 2020-05-20 2020-09-29 上海中科网威信息技术有限公司 一种申威防火墙快速移植高版本linux内核的方法
CN112256622A (zh) * 2020-10-10 2021-01-22 天津大学 一种基于可编程逻辑阵列实现安全传输的方法
CN112269699A (zh) * 2020-11-11 2021-01-26 上海新时达机器人有限公司 老化测试方法及装置、EtherCAT主站及系统、存储介质
CN112506518A (zh) * 2020-12-01 2021-03-16 东软睿驰汽车技术(沈阳)有限公司 基于配置文件的编译方法和装置
CN112579150A (zh) * 2020-12-29 2021-03-30 中标软件有限公司 支持多cpu架构的增强系统实时性的方法
CN112631897A (zh) * 2020-12-07 2021-04-09 麒麟软件有限公司 一种快速调试linux内核的方法
CN114020159A (zh) * 2021-09-27 2022-02-08 北京智象信息技术有限公司 一种Linux系统内核虚拟键盘的定制方法、装置、设备和介质
US11385923B2 (en) 2019-07-16 2022-07-12 International Business Machines Corporation Container-based virtualization system extending kernel functionality using kernel modules compiled by a compiling container and loaded by an application container
CN116243971A (zh) * 2023-05-10 2023-06-09 北京麟卓信息科技有限公司 一种基于静态依赖自举的内核无关的模块构建方法

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106844205A (zh) * 2017-01-12 2017-06-13 上海与德信息技术有限公司 驱动程序调试方法及系统
CN106844205B (zh) * 2017-01-12 2021-01-22 和宇健康科技股份有限公司 驱动程序调试方法及系统
CN109828786A (zh) * 2017-11-23 2019-05-31 中标软件有限公司 一种基于代码级支持sw_64架构的自动化工具
CN110737438A (zh) * 2018-07-20 2020-01-31 北京君正集成电路股份有限公司 一种数据处理方法和装置
CN109507991A (zh) * 2018-12-25 2019-03-22 中国兵器装备集团自动化研究所 一种双轴伺服控制平台调试系统及方法
US11385923B2 (en) 2019-07-16 2022-07-12 International Business Machines Corporation Container-based virtualization system extending kernel functionality using kernel modules compiled by a compiling container and loaded by an application container
CN111722868A (zh) * 2020-05-20 2020-09-29 上海中科网威信息技术有限公司 一种申威防火墙快速移植高版本linux内核的方法
CN112256622A (zh) * 2020-10-10 2021-01-22 天津大学 一种基于可编程逻辑阵列实现安全传输的方法
CN112256622B (zh) * 2020-10-10 2022-12-02 天津大学 一种基于可编程逻辑阵列实现安全传输的方法
CN112269699A (zh) * 2020-11-11 2021-01-26 上海新时达机器人有限公司 老化测试方法及装置、EtherCAT主站及系统、存储介质
CN112269699B (zh) * 2020-11-11 2023-01-31 上海新时达机器人有限公司 老化测试方法及装置、EtherCAT主站及系统、存储介质
CN112506518A (zh) * 2020-12-01 2021-03-16 东软睿驰汽车技术(沈阳)有限公司 基于配置文件的编译方法和装置
CN112506518B (zh) * 2020-12-01 2023-07-14 东软睿驰汽车技术(沈阳)有限公司 基于配置文件的编译方法和装置
CN112631897A (zh) * 2020-12-07 2021-04-09 麒麟软件有限公司 一种快速调试linux内核的方法
CN112631897B (zh) * 2020-12-07 2023-08-08 麒麟软件有限公司 一种快速调试linux内核的方法
CN112579150A (zh) * 2020-12-29 2021-03-30 中标软件有限公司 支持多cpu架构的增强系统实时性的方法
CN112579150B (zh) * 2020-12-29 2023-10-20 中标软件有限公司 支持多cpu架构的增强系统实时性的方法
CN114020159A (zh) * 2021-09-27 2022-02-08 北京智象信息技术有限公司 一种Linux系统内核虚拟键盘的定制方法、装置、设备和介质
CN116243971A (zh) * 2023-05-10 2023-06-09 北京麟卓信息科技有限公司 一种基于静态依赖自举的内核无关的模块构建方法

Similar Documents

Publication Publication Date Title
CN106293756A (zh) 一种用于快速更换的自定义Linux内核系统
KR102430739B1 (ko) 데이터 처리방법 및 관련제품
CN105573780B (zh) 一种基于容器的移动终端操作系统升级方法和装置
CN103309683B (zh) 硬件设备的软件补丁嵌入方法及装置
CN102053831B (zh) 一种Linux操作系统的定制方法及系统
CN102156643A (zh) 软件集成方法及系统
CN106569820A (zh) 更换高版本busybox并同步制作根文件系统的方法及装置
KR20200115020A (ko) 하이퍼레저 패브릭 네트워크 구축 방법과 컨트롤러 및 저장 매체
CN111061638B (zh) 一种iOS系统调试的方法、装置及服务器
CN108897547B (zh) 一种软件自动化部署方法及装置
CN109324799A (zh) 一种代码编译方法、计算机装置及计算机可读存储介质
CN102880498A (zh) 在安卓系统的装置上虚拟sd卡的方法
CN106095504B (zh) 预置应用加载方法和移动终端
JP2014071899A (ja) ソフトウェア開発方法及びそのためのシステム
CN108549537A (zh) 基于Android终端的用户数据采集的方法及系统
CN109344619A (zh) 应用程序的热修复方法和装置
CN110457044A (zh) Haxe应用程序的编译方法、装置及电子设备
CN111722868A (zh) 一种申威防火墙快速移植高版本linux内核的方法
KR102397494B1 (ko) 로우(Low) 코드 웹 개발 및 운영 시스템 및 이를 이용한 서비스 방법
WO2017192340A1 (en) Updating of operating system images
CN105260184B (zh) 一种恢复镜像文件的调试方法及装置
CN110688140B (zh) 一种代码管理方法和终端
CN115857999A (zh) 基于vue的系统架构改造获得微前端系统架构的方法及系统
US9646118B1 (en) Linking of simulators into a circuit design tool
JP2018195046A (ja) プログラム更新装置、プログラム更新方法、プログラム更新プログラム及びプログラム更新システム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination