技术特点:
1.一种申威防火墙快速移植高版本linux内核的方式,其特点在于,包括以下步骤:
所述步骤s1包括以下步骤:
s11:通过编译busybox制做生成最初的显存根文件系统,其中,busybox为linux上的一个应用程序;根文件系统按照须要降低或更改系统内容,系统内容包括自编译可执行程序、lib库文件、自定义脚本;
s12:在根文件系统制做完成后,通过压缩命令进行压缩根文件系统;
s13:根据cpu类型进行命名压缩后的文件,将命名压缩后的文件置于申威linux源码解压后的/usr目录下;
s2:预先制做生成内核配置文件,其中,依照各平台须要针对不同申威平台开启或关掉须要或不须要的内核配置选项,提早配置生成内核配置文件,但是在之后的使用根据须要随时进行更改,内核配置文件配置完成后根据cpu平台类型进行重命名保存,置于申威linux源码解压后的/usr目录下;
s3:预先生成内核补丁文件,其中,在用户态功能开发过程中,对内核的更改集中到文件中,并置于/usr目录下,作为内核补丁,在之后内核版本更换或升级时,直接拷贝使用极少量更改内核源码;
s4:预先生成内核编译脚本,其中,根据用户输入编译参数不同分辨不同申威平台,编译过程中使用不同申威平台的内核配置文件、内存根文件系统的压缩文件,编译出不同申威平台的内核镜像文件;
s5:更换或升级内核版本号;
所述步骤s5包括以下步骤:
s51:将须要更换版本号的linux内核源码下载解压;
s52:将显存根文件系统的压缩文件、内核配置文件、内核补丁文件和内核编译脚本全拷贝到/usr目录下,其中,少量更改关联引用内核补丁文件的内核源文件;
s53:编译通过生成内核镜像文件后,在申威防火墙中运行调试,快速进行申威新硬件设备驱动及新功能特点适配。
2.按照权力要求1所述的一种申威防火墙快速移植高版本linux内核的方式,其特点在于,所述步骤s11中,根据不同申威防火墙、申威服务器平台类型及本地、交叉编译环境自定义编译制做一个或多个平台的根文件系统。
3.按照权力要求1所述的一种申威防火墙快速移植高版本linux内核的方式,其特点在于,根文件系统支持一个或多个申威平台的使用。
4.按照权力要求1所述的一种申威防火墙快速移植高版本linux内核的方式,其特点在于,根文件系统为自定义编译制做,与linux内核为低耦合,但是只须要最初制做一次,之后内核版本更换或升级时,直接拷贝到新版本申威linux源码解压后的/usr目录下使用。
5.按照权力要求1所述的一种申威防火墙快速移植高版本linux内核的方式,其特点在于,所述步骤s3中,集中到的文件为一个.c和一个.h文件。
6.按照权力要求1所述的一种申威防火墙快速移植高版本linux内核的方式,其特点在于,所述步骤s4中,编译脚本针对不同编译选项参数进行解析,按照不同参数调用不同的内核配置文件及显存根文件系统压缩文件。
技术总结
本发明公开了一种申威防火墙快速移植高版本linux内核的方式,该方式包括以下步骤:预先制做生成显存根文件系统的压缩文件;预先制做生成内核配置文件;预先生成内核补丁文件;预先生成内核编译脚本;更换或升级内核版本号。通过该方式,提供了一种申威防火墙快速移植高版本linux内核的方式;同时降低了申威防火墙所使用内核与原版内核的耦合,实现了不同linux内核版本的快速移植和更换,有利于申威防火墙升级内核版本,支持申威新硬件设备驱动及内核新功能特点适配,大大节约了内核移植的时间和人力成本。
技术研制人员:高福亮
受保护的技术使用者:上海中科网威信息技术有限公司
技术研制日:2020.05.20
技术公布日:2020.09.29
本发明涉及linux系统技术领域,具体来说,涉及一种申威防火墙快速移植高版本linux内核的方式。
背景技术:
用户态的功能特点开发有时须要linux内核的支持与同步更改,linux内核的更改与编译工作量会随着申威防火墙、申威服务器功能的复杂程度而降低,而现今网路时代申威cpu硬件的更新换代十分快,linux的的版本发布又特别频繁,有时我们为了支持新的申威硬件驱动或新的功能特点不得不更换或升级linux内核版本,而因为申威防火墙功能开发对内核源码的一些更改引起与原版内核耦合紧密,而不同版本内核在代码上差别十分大,这给linux内核的移植和更换带来了很大难度和工作量,目前没有一种有效的方法才能解决上述问题。
技术实现要素:
针对相关技术中的上述技术问题,本发明提出一种申威防火墙快速移植高版本linux内核的方式,才能克服现有技术的上述不足。
为实现上述技术目的,本发明的技术方案是这样实现的:
一种申威防火墙快速移植高版本linux内核的方式,该方式包括以下步骤:
s1:预先制做生成显存根文件系统的压缩文件;
所述步骤s1包括以下步骤:
s11:通过编译busybox制做生成最初的显存根文件系统,其中,busybox为linux上的一个应用程序;根文件系统按照须要降低或更改系统内容,系统内容包括自编译可执行程序、lib库文件、自定义脚本;
s12:在根文件系统制做完成后,通过压缩命令进行压缩根文件系统;
s13:根据cpu类型进行命名压缩后的文件,将命名压缩后的文件置于申威linux源码解压后的/usr目录下;
s2:预先制做生成内核配置文件,其中,按照各平台须要针对不同申威平台开启或关掉须要或不须要的内核配置选项,提早配置生成内核配置文件,但是在之后的使用根据须要随时进行更改,内核配置文件配置完成后根据cpu平台类型进行重命名保存,置于申威linux源码解压后的/usr目录下;
s3:预先生成内核补丁文件,其中,在用户态功能开发过程中,对内核的更改集中到文件中,并置于/usr目录下,作为内核补丁,在之后内核版本更换或升级时,直接拷贝使用极少量更改内核源码;
s4:预先生成内核编译脚本,其中,根据用户输入编译参数不同分辨不同申威平台,编译过程中使用不同申威平台的内核配置文件、内存根文件系统的压缩文件,编译出不同申威平台的内核镜像文件;
s5:更换或升级内核版本号;
所述步骤s5包括以下步骤:
s51:将须要更换版本号的linux内核源码下载解压;
s52:将显存根文件系统的压缩文件、内核配置文件、内核补丁文件和内核编译脚本全拷贝到/usr目录下,其中,少量更改关联引用内核补丁文件的内核源文件;
s53:编译通过生成内核镜像文件后,在申威防火墙中运行调试,快速进行申威新硬件设备驱动及新功能特点适配。
进一步的,所述步骤s11中,根据不同申威防火墙、申威服务器平台类型及本地、交叉编译环境自定义编译制做一个或多个平台的根文件系统。
进一步的,根文件系统支持一个或多个申威平台的使用。
进一步的,根文件系统为自定义编译制做,与linux内核为低耦合,但是只须要最初制做一次,之后内核版本更换或升级时,直接拷贝到新版本申威linux源码解压后的/usr目录下使用。
进一步的,所述步骤s3中,集中到的文件为一个.c和一个.h文件。
进一步的,所述步骤s4中,编译脚本针对不同编译选项参数进行解析,按照不同参数调用不同的内核配置文件及显存根文件系统压缩文件。
本发明的有益疗效:通过该方式,提供了一种申威防火墙快速移植高版本linux内核的方式;同时降低了申威防火墙所使用内核与原版内核的耦合,实现了不同linux内核版本的快速移植和更换,有利于申威防火墙升级内核版本,支持申威新硬件设备驱动及内核新功能特点适配,大大节约了内核移植的时间和人力成本。
附图说明
为了更清楚地说明本发明施行例或现有技术中的技术方案,下边将对施行例中所须要使用的附图作简单地介绍,显而易见地,下边描述中的附图仅仅是本发明的一些施行例linux社区,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以依据这种附图获得其他的附图。
图1是依据本发明施行例所述的一种申威防火墙快速移植高版本linux内核的方式的流程框图。
具体施行方法
下边将结合本发明施行例中的附图,对本发明施行例中的技术方案进行清楚、完整地描述,即便,所描述的施行例仅仅是本发明一部份施行例,而不是全部的施行例。基于本发明中的施行例,本领域普通技术人员所获得的所有其他施行例,都属于本发明保护的范围。
如图1所示,按照本发明施行例所述的一种申威防火墙快速移植高版本linux内核的方式,包括以下步骤:
s1:预先制做生成显存根文件系统的压缩文件;
步骤s1包括以下步骤:
s11:通过编译busybox制做生成最初的显存根文件系统,其中,busybox为linux上的一个应用程序;根文件系统按照须要降低或更改系统内容,系统内容包括自编译可执行程序、lib库文件、自定义脚本;
s12:在根文件系统制做完成后,通过压缩命令进行压缩根文件系统;
s13:根据cpu类型进行命名压缩后的文件,将命名压缩后的文件置于申威linux源码解压后的/usr目录下;
s2:预先制做生成内核配置文件,其中,按照各平台须要针对不同申威平台开启或关掉须要或不须要的内核配置选项,提早配置生成内核配置文件,但是在之后的使用根据须要随时进行更改,内核配置文件配置完成后根据cpu平台类型进行重命名保存,置于申威linux源码解压后的/usr目录下;
s3:预先生成内核补丁文件,其中,在用户态功能开发过程中,对内核的更改集中到文件中,并置于/usr目录下,作为内核补丁,在之后内核版本更换或升级时,直接拷贝使用极少量更改内核源码;
s4:预先生成内核编译脚本,其中,根据用户输入编译参数不同分辨不同申威平台,编译过程中使用不同申威平台的内核配置文件、内存根文件系统的压缩文件,编译出不同申威平台的内核镜像文件;
s5:更换或升级内核版本号;
步骤s5包括以下步骤:
s51:将须要更换版本号的linux内核源码下载解压;
s52:将显存根文件系统的压缩文件、内核配置文件、内核补丁文件和内核编译脚本全拷贝到/usr目录下,其中,少量更改关联引用内核补丁文件的内核源文件;
s53:编译通过生成内核镜像文件后,在申威防火墙中运行调试,快速进行申威新硬件设备驱动及新功能特点适配。
在本发明的一个具体施行例中,所述步骤s11中,根据不同申威防火墙、申威服务器平台类型及本地、交叉编译环境自定义编译制做一个或多个平台的根文件系统。
在本发明的一个具体施行例中,根文件系统支持一个或多个申威平台的使用。
在本发明的一个具体施行例中,根文件系统为自定义编译制做,与linux内核为低耦合,但是只须要最初制做一次,之后内核版本更换或升级时,直接拷贝到新版本申威linux源码解压后的/usr目录下使用。
在本发明的一个具体施行例中,所述步骤s3中,集中到的文件为一个.c和一个.h文件。
在本发明的一个具体施行例中,所述步骤s4中,编译脚本针对不同编译选项参数进行解析,按照不同参数调用不同的内核配置文件及显存根文件系统压缩文件。
为了便捷理解本发明的上述技术方案,以下对本发明的上述技术方案进行详尽说明。
本发明公开了一种申威防火墙快速移植高版本linux内核的方式。通过自定义内核配置文件、内存根文件系统、自动编译脚本以及内核补丁文件,降低申威防火墙所使用内核与原版内核的耦合,实现不同linux内核版本的快速移植和更换,有利于申威防火墙升级内核版本,快速支持使用申威新硬件驱动或内核新特点功能,主要流程如下:
1、预先制做生成显存根文件系统的压缩文件:通过编译busybox制做生成最初的显存根文件系统,可依照不同申威防火墙、申威服务器平台类型及本地、交叉编译环境自定义编译制做一个或多个平台的根文件系统,以支持一个或多个申威平台的使用(如申威411、申威1621等)linux内核移植流程,该根文件系统中可依据自身须要降低或更改自编译可执行程序、lib库文件、自定义脚本等,但是在后续开发过程中可依据自身须要随时添加或更改其内容;该根文件系统制做完成后通过压缩命令进行压缩以降低其大小,并按照cpu类型进行命名如:rootfs_sw411.tar.gzrootfs_sw1621.tar.gz等,置于申威linux源码解压后的/usr目录下(作为总的移植目录);该根文件系统为自定义编译制做,与linux内核为低耦合,但是只须要最初制做一次,之后内核版本更换或升级时只须要直接拷贝到新版本申威linux源码解压后的/usr目录下使用即可。rootfs_sw411.tar.gzrootfs_sw1621.tar.gz会在内核编译脚本执行时进行解压为/usr/rootfs目录,之后通过cpio命令生成rootfs.img显存根文件系统镜像文件。
2、预先制做生成内核配置文件:自编译申威linux内核离不开内核配置文件,而不同功能申威防火墙、服务器等不同平台对内核的配置也是不同的,所以可依据各平台须要针对不同申威平台开启或关掉一些须要或不须要的内核配置选项,提早配置生成内核配置文件(.config),但是在之后的使用中可依据自身须要随时进行更改,内核配置文件配置完成后根据cpu平台类型(sw1621、sw411)进行重命名保存,sw6_64_server_linux.config、sw4_64_hardware_linux.config等,置于申威linux源码解压后的/usr目录下;该内核配置文件为依据cpu类型及自身须要自定义配置生成,与linux内核为低耦合,但是只须要最初生成一次,之后内核版本更换或升级时只须要直接拷贝使用即可。sw6_64_server_linux.configsw4_64_hardware_linux.config会在内核编译脚本执行时重新拷贝成.config内核配置文件进行内核编译使用。
3、预先生成内核补丁文件:将用户态功能开发过程中对内核的更改都刻意集中到一个.c和.h文件中并置于/usr目录下,作为内核补丁尽量降低与linux内核源码的耦合,在之后内核版本更换或升级时只须要直接拷贝使用及少量更改内核源码即可。
4、预先生成内核编译脚本:自定义编译脚本mk.sh,按照用户输入编译参数不同分辨不同申威平台,编译过程中使用不同申威平台的内核配置文件、内存根文件系统压缩文件,而编译出不同申威平台的内核镜像文件,如:./mk.sh-rhsw4sw6编译releasehardware的申威4111621硬件发行版本,./mk.sh-rssw4sw6编译releaseserver编译申威4111621硬件的服务器发行版本等;该编译脚本针对不同编译选项参数进行解析,按照hs及sw4sw6不同参数调用不同的内核配置文件及显存根文件系统压缩文件,即可编译出适宜不同申威硬件平台的内核镜像文件;该编译脚本置于linux内核源码解压后的/usr目录下,后续使用可依据自身须要随时更改,但是只须要创建一次,在之后内核版本更换或升级时只须要直接拷贝使用即可。
5、内核版本号更换或升级时只须要将须要更换版本的linux内核源码下载解压,之后将显存根文件系统压缩文件、内核配置文件及内核补丁文件、内核编译脚本都拷贝到/usr目录下,少量更改关联引用内核补丁文件的内核源文件即可完成内核移植和更换;保证编译通过生成内核镜像文件后即可在申威防火墙中运行调试了,快速实现申威新硬件设备驱动及新功能特点适配,大大节约内核移植的时间和人力成本。
在一个本发明的具体施行例中,待升级linux内核源码下载、解压、移植更改完成后执行编译脚本./mk.sh-rhsw4编译申威411硬件发行版本时,脚本中会先拷贝sw4_64_hardware_linux.config成.config内核配置文件进行内核编译使用;之后会将rootfs_sw411.tar.gz解压为/usr/rootfs目录,之后通过cpio命令生成rootfs.img显存根文件系统镜像文件;最后make执行编译生成内核镜像vmlinux文件,编译过程中若出现移植的编译报错再自动更改即可;编译完成后的内核镜像及文件系统镜像可上传到设备上进行调试验证;可正常启动后将整个移植的内核上传到svn或git保存,后续使用直接下载即可。
综上所述,利用于本发明的上述技术方案,通过该方式linux内核移植流程linux标准教程,提供了一种申威防火墙快速移植高版本linux内核的方式;同时降低了申威防火墙所使用内核与原版内核的耦合,实现了不同linux内核版本的快速移植和更换,有利于申威防火墙升级内核版本,支持申威新硬件设备驱动及内核新功能特点适配,大大节约了内核移植的时间和人力成本。
以上所述仅为本发明的较佳施行例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何更改、等同替换、改进等,均应包含在本发明的保护范围之内。