一种实现操作系统内核引导的方法、系统及装置的制作方法

文档序号:6338057阅读:188来源:国知局
专利名称:一种实现操作系统内核引导的方法、系统及装置的制作方法
技术领域
本发明涉及无线通信产品中嵌入式Iinux系统内核引导方法,尤其涉及实现操作系统内核引导的方法、系统及装置。
背景技术
随着移动通信技术的发展,多种无线通信制式共享硬件及软件平台,从而更大幅度地降低成本,由此实现多种无线制式之间的平滑切换与演进,已经成为一种趋势。
在无线基站的软件开发中,Iinux操作系统得到越来越广泛地应用。由德国工程师 Woldgang Denk主导开发的开源U-boot引导加载程序(以下简称U-boot),是目前在嵌入式系统中比较通用地用来引导Iinux操作系统内核的程序。该U-boot支持多种体系结构的处理器,已经被诸多的嵌入式软件开发人员和硬件厂商所采用,以服务于他们的项目开发。
U-boot在引导Iinux操作系统内核时,内核启动参数是从环境变量bootargs中提取传给内核的,Linux内核获得并解析启动参数,根据解析出的启动参数加载所需要的模块寸。
在U-boot中,环境变量表现为一个全局的且被初始化了的字符型数组。当U-boot 在FLASH中被执行时,该环境变量不可以被改变;U-boot在启动的后半阶段,将环境变量拷贝到内存的堆空间,这时便可以对环境变量进行修改和添加。
目前在嵌入式系统开发过程中,一般是在调试(debug)运行阶段,通过在串口的用户交互接口(shell)中执行设置环境变量的命令来改变环境变量的值,使内核以不同的启动参数启动。当调试完毕,确定了一组正确的内核启动参数后,便将代表环境变量的全局字符型数组中的bootargs环境变量设置为这组启动参数,编译生成的boot版本就可以用来对嵌入式系统进行realease启动引导了。
目前,这种在boot编译阶段确定内核启动参数的方法有一个明显的不足,那就是每当需要修改内核启动参数时都要对boot进行重新编译;当多种无线制式的产品或者一种制式产品的多个版本需要不同的内核启动参数时,boot版本无法做到统一,由此增加了产品维护的成本。发明内容
本发明所要解决的技术问题是提供一种实现操作系统内核引导的方法、系统及装置,能够使用统一的boot版本引导各种无线制式产品操作系统内核。
为了解决上述技术问题,本发明提供了一种实现操作系统内核引导的方法,用于多制式无线基站系统中,该方法包括
将内核启动参数写入编写的配置文件中,将该配置文件随操作系统内核一起封装为版本包,存放于无线基站系统的版本机中;
无线基站系统上电后,引导加载程序从版本机下载的版本包中解析出配置文件, 并依据该配置文件设置环境变量,将从环境变量的值域中提取的内核启动参数写入内存区域。
进一步地,该方法还包括
引导加载程序将写入内核启动参数的所述内存区域的地址写入指定的寄存器,然后跳转到操作系统内核的程序入口开始执行,从而引导操作系统内核。
进一步地,
配置文件是写有一条或多条命令的文本文件,其中每一条命令包含有命令名、环境变量名和环境变量的值中的一个或多个域、域分割符以及命令分割符,其中
命令名,用于写入一条命令的名称;
环境变量名,用于写入环境变量的名称;
环境变量的值,用于写入要向操作系统内核传递的一个或多个内核启动参数;
域分割符,用于分割命令中各个域以及环境变量的值中的内核启动参数;
命令分割符,用于表示一条命令内容的结束。
进一步地,
版本包包括版本头、内核版本长度、内核版本内容、内存文件系统长度、内存文件系统内容、配置文件长度以及配置文件内容中的部分域或全部域。
为了解决上述技术问题,本发明提供了一种实现操作系统内核引导的装置,用于多制式无线基站系统中,该装置包括依次连接的配置文件模块、版本包封装模块、版本机模块、引导加载模块以及存储模块,其中
配置文件模块,用于通过用户接口供用户编写载入内核启动参数的配置文件,将用户编写的配置文件输出给版本包封装模块;
版本包封装模块,用于将配置文件随操作系统内核一起封装为版本包,存放于版本机模块;
版本机模块,用于保存版本包封装模块封装的版本包;
引导加载模块,用于在无线基站系统上电后从版本机模块下载的版本包中解析出配置文件,并依据该配置文件设置环境变量,将从环境变量的值域中提取的内核启动参数写入存储模块相应的参数区域;
存储模块,用于在相应的参数区域存储所述内核启动参数。
进一步地,
引导加载模块还将写入内核启动参数的参数区域的地址写入指定的寄存器,然后跳转到操作系统内核的程序入口开始执行。
进一步地,
配置文件模块通过用户接口供用户编写的配置文件是写有一条或多条命令的文本文件,其中每一条命令包含有命令名、环境变量名和环境变量的值中的一个或多个域、域分割符以及命令分割符,其中
命令名,用于写入一条命令的名称;
环境变量名,用于写入环境变量的名称;
环境变量的值,用于写入要向操作系统内核传递的一个或多个内核启动参数;
域分割符,用于分割命令中各个域以及环境变量的值中的内核启动参数;
命令分割符,用于表示一条命令内容的结束。
进一步地,
版本包封装模块封装的版本包包括版本头、内核版本长度、内核版本内容、内存文件系统长度、内存文件系统内容、配置文件长度以及配置文件内容中的部分域或全部域。
为了解决上述技术问题,本发明提供了一种使用如前所述装置的无线基站系统, 包括实现操作系统内核引导的装置、硬件平台以及业务版本;实现操作系统内核引导的装置包括
配置文件模块,用于通过用户接口供用户编写载入内核启动参数的配置文件,将用户编写的配置文件输出给版本包封装模块;
版本包封装模块,用于将配置文件随操作系统内核一起封装为版本包,存放于版本机模块;
版本机模块,用于保存版本包封装模块封装的版本包;
引导加载模块,用于在无线基站系统上电后从版本机模块下载的版本包中解析出配置文件,并依据该配置文件设置环境变量,将从环境变量的值域中提取的内核启动参数写入存储模块相应的参数区域;
由硬件平台提供的存储模块,用于在相应的参数区域存储内核启动参数。
进一步地,
引导加载程序将写入内核启动参数的内存区域的地址写入指定的寄存器,然后跳转到操作系统内核的程序入口开始执行,从而引导操作系统内核;
业务版本,用于运行在操作系统内核之上,处理各自的业务。
本发明与现有技术相比较,通过引入一配置文件来指定boot的环境变量,即在执行boot过程中由boot解析该配置文件,设置其中的环境变量,再从环境变量中提取操作系统内核的启动参数,并在引导内核时向内核传递启动参数,从而通过灵活的方式向内核传递启动参数。当要修改内核启动参数时,只需修改配置文件,将修改后的内核启动参数写入配置文件,而不必重新编译boot。另外,共享硬件平台的多种无线制式产品如TD-SCDMA、 TDD-LTE以及FDD-LTE等,均可使用统一的boot版本和内核版本,通过对配置文件的更改实现各种制式产品对内核功能差异化的需求,由此大大增强了 boot版本的可维护性,同时使得在多制式基站之间平滑切换和演进也更易实现。


图1本发明的实现操作系统内核引导的方法实施例的流程图;
图2是本发明的boot配置文件实施例的格式示意图3是本发明的封装配置文件、操作系统内核以及内存文件系统的版本包实施例格式示意图4是本发明的无线基站装置实施例的框架示意图5本发明的实现操作系统内核引导的装置实施例的结构框图。
具体实施方式
下面结合附图和优选实施例对本发明的技术方案进行详细地阐述。以下例举的实施例仅用于说明和解释本发明,而不构成对本发明技术方案的限制。
本发明提供的实现操作系统内核引导的方法实施例,用于多制式无线基站系统中,其流程如图1所示,包括如下步骤
110 编写配置文件,将内核启动参数写入该配置文件中;将编写的配置文件、操作系统内核以及内存文件系统封装为版本包,存放于设备(无线基站系统)的版本机中;
如图2所示,表示出本发明提供的配置文件实施例的格式,该配置文件100是写有一条或多条命令的文本文件,其中每一条命令行包含有命令名101、空格102、环境变量名 103、空格104、环境变量的值105以及命令结束符106,其中
命令名101,用于写入一条命令的名称,譬如命令“SETENV”;
环境变量名103,用于写入环境变量的名称,譬如环境变量“B00TARG”;
环境变量的值105,用于写入操作系统内核启动的一个或多个参数,譬如η个参数 argl,arg2, . . . , arg η ;每个参数之间用空格隔开;
空格符102、104及106分别用于分割命令名101与环境变量名103、环境变量名 103与环境变量的值105以及环境变量值中向内核传递的各个参数;
命令分割符106,用于表示一条命令内容的结束,譬如用结束符“ \0”;多条命令也可以写在一行内,通过分割符“\0”分割多条命令。
通过上述配置文件,便可将不同无线制式的设备操作系统内核启动的一个或多个参数作为环境变量的值写入。
本发明例举的上述配置文件格式并不是唯一的,它还可以有其它变形格式,譬如作为命令行中域分割符的空格符可用其它标点符号(逗号等)代替,又譬如环境变量名和环境变量的值合为一个域。任何能够实现上述配置文件功能的各种其它变形格式的配置文件均在本发明保护的范围内。
如图3所示,是本发明提供的版本包实施例格式,其中包括但不限于1 字节的版本头域201,4字节的内核版本长度域202,多个字节的内核版本内容域203,4字节的内存文件系统长度域204,多个字节的内存文件系统内容域205,4字节的配置文件长度域206, 以及配置文件内容域207。
本发明例举的上述版本包格式并不是唯一的,它还可以有其它变形格式,譬如只包含上述域中的部分域,与上述各域的不同顺序及不同的字节长度等。任何能够实现上述版本包功能的各种其它变形格式的版本包均在本发明保护的范围内。
120 设备上电后,引导加载程序(boot)从版本机下载的版本包中解析出配置文件,并依据该配置文件设置环境变量,将从环境变量的值域中提取的内核启动参数写入内存区域。
上述方法还包括
130 :boot将写入内核启动参数的内存区域的地址写入指定的寄存器,然后跳转到操作系统内核的程序入口开始执行,从而引导操作系统内核。
如图4所示,表示了本发明提供的无线基站系统实施例的结构,包括硬件平台 301、引导加载程序(boot) 302、配置文件303、操作系统内核304以及产品业务版本305,其中
boot 302会根据各个无线制式基站系统有差异的配置文件303,来引导统一操作系统内核304。这样便实现了用统一的boot和操作系统内核版本通过配置文件的差别来满足多制式装置产品对操作系统内核功能差异化的需求。最后各种装置产品的业务版本运行在操作系统之上,处理各自的业务。
本发明针对上述方法实施例,相应地还提供了实现操作系统内核引导的装置实施例,其结构如图5所示,该装置400包括依次连接的配置文件模块410、版本包封装模块 420、版本机模块430、引导加载模块440以及存储模块450,其中
配置文件模块410,用于通过用户接口供用户编写载入内核启动参数的配置文件, 将用户编写的配置文件输出给版本包封装模块420 ;
版本包封装模块420,用于将配置文件、操作系统内核以及内存文件系统封装为版本包,存放于版本机模块430 ;
版本机模块430,用于保存版本包封装模块420封装的版本包;
引导加载模块440,用于在设备上电后从版本机模块430下载的版本包中解析出配置文件,并依据该配置文件设置环境变量,将从环境变量的值域中提取的内核启动参数写入存储模块450相应的参数区域;
存储模块450,用于在相应的参数区域存储内核启动参数。
引导加载模块440将写入内核启动参数的参数区域的地址写入指定的寄存器,然后跳转到操作系统内核程序的入口开始执行。
综上实施例可以看出,本发明可以使得共享硬件平台的多种无线制式产品如 TD-SCDMA、TDD-LTE以及FDD-LTE等,均可使用统一的boot版本和内核版本,通过配置文件的更改实现各种制式产品对内核功能差异化的需求,由此大大增强了 boot版本的可维护性,同时使得在多制式基站之间平滑切换和演进也更易实现。
权利要求
1.一种实现操作系统内核引导的方法,用于多制式无线基站系统中,该方法包括将内核启动参数写入编写的配置文件中,将所述配置文件随操作系统内核一起封装为版本包,存放于无线基站系统的版本机中;所述无线基站系统上电后,引导加载程序从所述版本机下载的版本包中解析出所述配置文件,并依据该配置文件设置环境变量,将从环境变量的值域中提取的所述内核启动参数写入内存区域。
2.按照权利要求1所述的方法,其特征在于,还包括所述引导加载程序将写入所述内核启动参数的所述内存区域的地址写入指定的寄存器,然后跳转到所述操作系统内核的程序入口开始执行,从而引导所述操作系统内核。
3.按照权利要求1或2所述的方法,其特征在于,所述配置文件是写有一条或多条命令的文本文件,其中每一条命令包含有命令名、环境变量名和环境变量的值中的一个或多个域、域分割符以及命令分割符,其中 所述命令名,用于写入一条命令的名称; 所述环境变量名,用于写入环境变量的名称;所述环境变量的值,用于写入要向操作系统内核传递的一个或多个内核启动参数; 所述域分割符,用于分割所述命令中各个域以及环境变量的值中的所述内核启动参数;所述命令分割符,用于表示一条命令内容的结束。
4.按照权利要求1或2所述的方法,其特征在于,所述版本包包括版本头、内核版本长度、内核版本内容、内存文件系统长度、内存文件系统内容、配置文件长度以及配置文件内容中的部分域或全部域。
5.一种实现操作系统内核引导的装置,用于多制式无线基站系统中,该装置包括依次连接的配置文件模块、版本包封装模块、版本机模块、引导加载模块以及存储模块,其中所述配置文件模块,用于通过用户接口供用户编写载入内核启动参数的配置文件,将用户编写的配置文件输出给所述版本包封装模块;所述版本包封装模块,用于将所述配置文件随操作系统内核一起封装为版本包,存放于所述版本机模块;所述版本机模块,用于保存所述版本包封装模块封装的所述版本包; 所述引导加载模块,用于在所述无线基站系统上电后从所述版本机模块下载的所述版本包中解析出所述配置文件,并依据该配置文件设置环境变量,将从所述环境变量的值域中提取的内核启动参数写入所述存储模块相应的参数区域;所述存储模块,用于在相应的参数区域存储所述内核启动参数。
6.按照权利要求5所述的装置,其特征在于,所述引导加载模块还将写入所述内核启动参数的所述参数区域的地址写入指定的寄存器,然后跳转到操作系统内核的程序入口开始执行。
7.按照权利要求5或6所述的装置,其特征在于,所述配置文件模块通过用户接口供用户编写的所述配置文件是写有一条或多条命令的文本文件,其中每一条命令包含有命令名、环境变量名和环境变量的值中的一个或多个域、域分割符以及命令分割符,其中所述命令名,用于写入一条命令的名称; 所述环境变量名,用于写入环境变量的名称;所述环境变量的值,用于写入要向操作系统内核传递的一个或多个内核启动参数; 所述域分割符,用于分割所述命令中各个域以及环境变量的值中的所述内核启动参数;所述命令分割符,用于表示一条命令内容的结束。
8.按照权利要求5或6所述的装置,其特征在于,所述版本包封装模块封装的所述版本包包括版本头、内核版本长度、内核版本内容、内存文件系统长度、内存文件系统内容、配置文件长度以及配置文件内容中的部分域或全部域。
9.一种使用如权利要求5所述装置的无线基站系统,包括所述实现操作系统内核引导的装置、硬件平台以及业务版本;所述实现操作系统内核引导的装置包括所述配置文件模块,用于通过用户接口供用户编写载入内核启动参数的配置文件,将用户编写的配置文件输出给所述版本包封装模块;所述版本包封装模块,用于将所述配置文件随操作系统内核一起封装为版本包,存放于所述版本机模块;所述版本机模块,用于保存所述版本包封装模块封装的所述版本包; 所述引导加载模块,用于在所述无线基站系统上电后从所述版本机模块下载的所述版本包中解析出所述配置文件,并依据该配置文件设置环境变量,将从所述环境变量的值域中提取的内核启动参数写入所述存储模块相应的参数区域;由所述硬件平台提供的所述存储模块,用于在相应的参数区域存储所述内核启动参数。
10.按照权利要求9所述的系统,其特征在于,所述引导加载程序将写入所述内核启动参数的所述内存区域的地址写入指定的寄存器,然后跳转到所述操作系统内核的程序入口开始执行,从而引导所述操作系统内核; 所述业务版本,用于运行在所述操作系统内核之上,处理各自的业务。
全文摘要
本发明披露了一种实现操作系统内核引导的方法、系统及装置,该方法包括将内核启动参数写入编写的配置文件中,将该配置文件随操作系统内核一起封装为版本包,存放于无线基站系统的版本机中;无线基站系统上电后,引导加载程序从版本机下载的版本包中解析出配置文件,并依据该配置文件设置环境变量,将从环境变量的值域中提取的内核启动参数写入内存区域。本发明通过更改配置文件实现各种制式产品对内核功能差异化的需求,由此大大增强了boot版本的可维护性,同时也更易实现多制式基站系统之间的平滑切换和演进。
文档编号G06F9/445GK102541572SQ20101057977
公开日2012年7月4日 申请日期2010年12月8日 优先权日2010年12月8日
发明者冯威, 曹厚华, 王忠波, 胡小龙 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1