一种实现嵌入式应用的系统和方法

文档序号:6576348阅读:155来源:国知局
专利名称:一种实现嵌入式应用的系统和方法
技术领域
本发明涉及一种实现嵌入式应用的系统和方法,具体涉及一种基于通
用Linux #:作系统实现嵌入式应用的系统和方法。
背景技术
随着计算机和网络技术的发展,刀片服务器成为了 IT界的热门话题。 现有的刀片服务器系统中,在主控板上存储有最新的软件版本,每个刀片 服务器上安装有启动程序。在刀片服务器上进行的应用开发,常常采用商 用BIOS (Basic Input Output System基本输入输出系统)来引导存储硬 盘上的操作系统。以下通过 SUSE Linux ( Software- und System-Entwicklung Linux)为例,说明通用Linux操作系统在当前电信 级别服务器平台使用中的处理流程
第一步,系统安装。使用光驱或者镜像等安装方式,将SUSE Linux操 作系统安装到刀片的石更盘上,安装完成之后,通过GRUB (GRand Unified Boot loader启动管理器)引导程序进行操作系统的引导。
第二步,系统启动。需要将具体应用开发的启动程序(以及相关启动 脚本)先行加入到系统的初始化启动脚本中去,当通过BI0S启动硬盘上的 GRUB引导程序,该引导牙呈序加载Linux内核,内核启动成功之后会4丸行初 始化脚本,初始化脚本启动必要系统服务外,还会负责运行具体应用相关 的启动禾呈序。
第三步,系统运行。启动程序运行之后,由该启动程序负责选择软件 版本来启动。启动程序选#^软件版本,会比较刀片硬盘上存储的软件版本 与主控板上的软件版本的版本差异如果版本一致,则不进行版本下载, 而是直接启动硬盘上存储的软件版本;如果版本不一致,则从主控板上通 过FTP (File Transfer Protocol文件传输协议)等文件管理协议下载版 本并存储到硬盘上,然后再启动软件版本,至此完成系统加载,开始正常 服务。
在使用SUSE Linux进行研发的过程中,会遇到各种各样的问题,例如
(1) 刀片硬盘在GRUB加载Linux内核的过程后,进入了单用户模式, 不能运行启动程序和软件版本。这常常是Linux内核B00T (启动)分区所 在磁盘文件系统出现异常导致。
(2) 刀片硬盘在启动过程中,运行的一些系统服务,如udev(—种工 具,能够根据系统中的硬件设备的状态动态更新设备文件,包括设备文件的创建,删除等)进程,由于磁盘上文件数据出现异常,进入了 while循 环中不能退出,从而占用了 99 %的CPU,导致刀片硬盘不能提供服务,且 会异常重启。如果需要解决这个问题,就需要更改udev的代码实现,但这 种问题的分析和解决不是一般开发人员所擅长的;另外,修改之后如何更 新到现有系统中,后续如何维护也是一个问题。
综上,现有采用SUSE Linux等通用操作系统的应用方式,在系统稳定 性、版本升级等方面中都会存在很多问题。随着刀片服务器在电信级别服 务器平台中占据越来越多的市场份额,迫切需要有新的方案来解决这些问题。

发明内容
本发明解决的技术问题是提供一种实现嵌入式应用的系统和方法,能 够满足如刀片服务器等系统应用场景的嵌入式系统架构,实现在不增加系 统开发复杂度的情况下,提高系统的可靠性和稳定性。
为了解决上述技术问题,本发明釆用了以下的技术方案
本发明提出了一种实现嵌入式应用的系统,包括上层应用才莫块,用 于系统业务能力的开发,具体包括开发B00T(启动)程序和开发业务程序。 底层运行支撑模块,用于搭建系统运行平台,具体包括4是供BOOT程序运行 环境和业务程序运行环境。
进一步的,所述B00T程序运行环境包括B00T(启动)内核,用于加 载运行B00T程序;精简工具集,用于实现基本的系统管理和维护功能。
所述业务程序运行环境包括业务内核,用于加载运行业务程序;定 制工具集,用于实现定制的系统管理和维护功能;所述B00T程序还用于完 成业务内核、定制工具集和业务程序构成的业务版本的加载。
优选的,所述B00T内核、精简工具集和BOOT程序构成的启动版本与 系统BIOS整合在一起,并存放在系统的FLASHR0M (闪速存储器)中,系 统BI0S用于在启动过程中加载启动版本。
优选的,所述业务内核、定制工具集和业务程序构成的业务版本存放 在系统的主控板或单板上。
进一步的,所述BOOT程序用于加载业务版本具体操作包括B00T程 序用于从当前单板或主控板上下载最新的业务版本,并加载业务版本;在 加载业务版本中还用于提取业务内核、定制工具集和业务程序;在加载业务版本后还用于通过KEXEC (—种快速启动机制)内核二次加载方式加载 运4亍业务内才亥。
优选的,所述启动版本存力文在系统的FLASHR0M中具体4喿作包括压缩 BOOT内核,整合精简工具集和BOOT程序的文件并对该文件进行压缩,将 系统BIOS和Mini BOOT程序存放在系统的FLASHROM中,所述Mini BOOT 程序用于解压启动版本。
本发明还提出了一种实现嵌入式应用的方法,包括以下处理过程
BIOS启动过程中加载启动版本中的BOOT内核,BOOT内核引导成功后 加载运行BOOT程序;
BOOT程序进行业务版本的加载,启动业务内核,业务内核引导成功后 加载运行业务程序,业务程序接管系统的运行。
进一步的,所述加载运行BOOT程序具体包括以下处理过程
BIOS启动后运4于Mini BOOT程序;
Mini BOOT程序将压缩的BOOT内核拷贝到内存空间并解压运行,以及 解压精简工具集和BOOT程序;
运行BOOT内核,加载运4亍BOOT程序。
进一步的,所述加载运行业务程序具体包括以下处理过程
BOOT程序下载当前单板或主控板上的最新业务版本,存储到本地硬盘 上,并加载业务版本;
在加载过程中,BOOT程序从业务版本中提取业务内核、定制工具集和 业务程序;
在完成加载后,BOOT程序加载运行业务内核,业务内核引导成功后加
载运行业务程序,业务程序接管系统的运行。
优选的,所述业务内核的加载运行方式为通过KEXEC内核二次加载 方式加载运4亍业务内核。
本发明由于采用了将上层应用开发和底层运行环境支撑工作相分离, 上层应用模块仍旧专注于业务能力研发,底层运行支撑模块负责搭建系统 平台。从而保证,将SUSE Linux服务器方案移植到嵌入式方案过程中,移 植工作量降低到最少,以减少不必要的开销。此外本发明在实现时,还分别构建了启动版本和业务版本。并采用启
动版本存放在刀片服务器的FLASHROM上,主要用于启动过程中下载业务版 本运行,首次烧结后一般不用更新,从而简化操作和保证可靠性。业务版 本存放在主控板上,主要实现各种用户所需的业务功能,根据用户的需求 可能随时需要更新版本提供新的功能。这种区分启动版本和业务版本的处 理方式,可以方便的进行系统升级和维护。


图1是本发明实施例一的系统原理图2是本发明实施例一的FLASH ROM芯片内容排布图3是本发明实施例一的启动版本和业务版本加载流程图。
具体实施例方式
下面结合附图和具体实施例对本方案作进一步详细的描述 如图1所示,本发明的实现嵌入式应用的系统包括上层应用模块和 底层运行支撑模块。其中前者主要负责系统业务能力的开发,包括开发BOOT 程序和开发业务程序。后者主要负责搭建系统运行平台,包括提供B00T程 序运行环境(包括BOOT内核和精简工具集)和业务程序运行环境(包括 业务内核和定制工具集)。其中B00T内核、精简工具集和BOOT程序构成启 动版本,业务内核、定制工具集和业务程序构成业务版本。
以下以刀片服务器系统为例说明本发明的具体实现过程。每个刀片服 务器的FLASHR0M芯片中存放有启动版本。如图2所示,以2MB大小的 FLASHR0M芯片软件排布方案为例说明。由图中可以看出,AMI BIOS处于芯 片的最高端地址,占用512KB。从0X170000到0X18000(U也址I殳,占用64KB, 是负责把BOOT内核引导起来的Mini boot。 /人0X0到0X170000地址段,放 置有B00T内核、精简工具集等,B00T程序也放在这个区间。
本实施例中,BOOT内核用于加载运行BOOT程序。精简工具集用于实现 基本的系统管理和维护等功能。业务内核用于加载运行业务程序。定制工 具集用于实现定制的系统管理和维护等功能。Mini BOOT程序用于解压启动 版本。在编译过程中,先将BOOT内核进行压缩,再将精简工具集和BOOT 程序整合到一个"文件系统"文件中并进行压缩,最后将它们与BIOS和Mini B00T程序,按照图示的地址分布情况,整合到一个2MB的镜像文件中去。 生成的镜像文件烧制到2MB的FLASHROM芯片中,就可以用于启动USS平台 的MSTU单板。
启动版本和业务版本加载流程如图3所示。
系统启动时,BIOS程序跳转到预先设定的地址运行,这里定制为跳转 到Mini BOOT位置处运行。Mini BOOT的主要功能就是把压缩的BOOT内核 拷贝到内存空间并解压运行,负责解压精筒工具集和B00T程序,完成解压之后就运行BOOT内核。BOOT内核运行过程中会自动加载BOOT程序。
BOOT程序负责完成业务版本的加载。系统的最新业务版本存力文在主控 板上,用于给各刀片服务器提供更新下载服务。根据一定的版本管理规则, BOOT程序比较当前单板上存在的业务版本和主控板上版本的差异。如果版 本一致,则BOOT程序直接加载单板上的业务版本;如果版本不一致,则BOOT 程序从主控板上下载新的业务版本,存储到本地硬盘上并加载该业务版本。
在加载过程中,BOOT程序从业务版本中提取出业务内核、定制工具集 和业务程序。之后,BOOT程序采用KEXEC技术,通过二次内核加载运行业 务内核。KEXEC技术是一个快速启动机制,允许通过已经运行的内核的上下 文启动一个Linux内核,不需要经过BIOS。
业务内核启动成功之后,将自动运行CPU程序,这样就完成整个系统 的启动过程。
以下再具体i兑明以下本发明的处理方法流,呈
步骤1, BIOS启动过程中加载启动版本中的BOOT内核,BOOT内核引导 成功后加载运行BOOT程序;
11) BIOS启动后运4亍Mini BOOT程序;
12) Mini BOOT程序将压缩的BOOT内核拷贝到内存空间并解压运 行,以及解压精简工具集和BOOT程序;
13 )运行BOOT内核,加载运行BOOT程序。
步骤2, BOOT程序进行业务版本的加载,启动业务内核,业务内核引 导成功后加载运行业务程序,业务程序接管系统的运行。
21) 比较当前单板和主控板上的业务版本的版本信息,BOOT程序下载 版本信息最新的业务版本,存储到本地硬盘上,并加载该运行业务版本;
22) 在加载过程中,BOOT程序从业务版本中提取业务内核、定制工具集 和业务程序;
2 3)在完成加载后,B00T程序加载运4亍业务内核,业务内核引导成功后 加载运行业务程序,业务程序接管系统的运行。其中业务内核的加载方式 可以选择采用KEXEC内核二次加载方式加载运行。
本发明的嵌入式实现方案与原来的SUSE Linux服务器方案相比,优缺 点对比如下
(1)系统安装方面使用嵌入式方式,已经将启动版本和BIOS整合 到FLASH ROM中,只需要将镜像文件烧制到芯片中即可,几分钟就可以完 成一块单板的安装工作,快捷方便。而使用SUSE Linux方式,需要先使用 光驱或者磁盘镜像的方式,将系统安装到系统硬盘上,至少需要几十分钟, 安装速度慢。(2) 系统尺寸方面4吏用嵌入式方式,可以通过裁减自由控制启动版 本的大小,目前主流的内核版本可以控制到1MB左右,如果使用老版本的 内核,完全可以控制在512KB以内,应该启动X反本可以和BIOS —起整合到 2MB的FLASH ROM中。而J吏用SUSE Linux方式,系统安装之后,占用空间 较大,定制起来也比较麻烦,及时使用镜像方式安装也是体积庞大,不利 于启动版本的维护和升级。
(3) B00T启动方面使用嵌入式方式,将BOOT版本烧结到FLASH ROM 芯片之后,BOOT程序就可以正常启动,下载软件版本运行了,无需人为再 干预。而使用SUSE Linux方式,安装完操作系统之后,需要登陆拷贝启动 程序到硬盘上,并》务改初始化脚本,这样BOOT程序才能够正常启动。
(4) 系统维护方面使用嵌入式方式,可以根据应用需求,定制系统 中需要使用的内核版本和软件包程序,内核和软件包的升级和维护,可以 跟业务软件一起进行。而使用SUSE Linux方式,更新内核和软件包,涉及 到刀片级的同步更新,难度比较大,目前还没有成型的方案可以借鉴。
(5) 购买和技术支持使用嵌入式方式,由于可以采用自研开发的方 式实现,使用时无需购买和支付额外的服务费用,且可以提供快速反应支 持,并可以根据应用需求随时对系统进行定制,能够适应电信级系统业务 的变化需求。而使用SUSE Linux方式,需要支付购买和服务费用,且技术 支持响应速度慢,出故障时很难有保障。
(6) 系统稳定性使用嵌入式方式,采用FLASH R簡存放BOOT版本, 使用硬盘存放软件版本,从而保障BOOT版本不会受到损坏,只要BOOT版 本没有异常,系统就能够启动引导,即时硬盘出现故障,也能够及时告警 更换,可靠性高。而使用SUSE Linux方式,BOOT版本和软件版本运行在同 一个硬盘操作系统上,版本运行过程中出现异常极有可能损坏操作系统启 动环境,这时系统重新启动时常常会挂起,且不能主动上报任何异常,可 靠性没有保证。
明,^能认定本发明的、具体实施尸^局限/这些说明。对于本发明所属技术 领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若 干简单推演或替换,都应当视为属于本发明的保护范围。
权利要求
1.一种实现嵌入式应用的系统,其特征在于,所述系统包括上层应用模块,用于系统业务能力的开发,具体包括开发BOOT程序和开发业务程序;底层运行支撑模块,用于搭建系统运行平台,具体包括提供BOOT程序运行环境和业务程序运行环境。
2. 根据权利要求1所述的实现嵌入式应用的系统,其特征在于,所述B00T程序运行环境包括B00T内核,用于加载运行BOOT程序;精简工具集,用于实现基本的系统管理和维护功能;所述业务程序运行环境包括业务内核,用于加载运行业务程序;定制工具集,用于实现定制的系统管理和维护功能;所述B00T程序还用于完成业务内核、定制工具集和业务程序构成的业务版本的加载。
3. 根据权利要求2所述的实现嵌入式应用的系统,其特征在于,所述BOOT内核、精简工具集和BOOT程序构成的启动版本与系统BIOS整合在一起,并存放在系统的FLASHR0M中,系统BIOS用于在启动过程中加载启动版本。
4. 根据权利要求2所述的实现嵌入式应用的系统,其特征在于,所述业务内核、定制工具集和业务程序构成的业务版本存放在系统的主控板或单板上。
5. 根据权利要求4所述的实现嵌入式应用的系统,其特征在于,所述BOOT程序用于加载业务版本具体操作包括BOOT程序用于从当前单板或主控板上下载最新的业务版本,并加载业务版本;在加载业务版本中还用于提取业务内核、定制工具集和业务程序;在加载业务版本后还用于通过KEXEC内核二次加载方式加载运4亍业务内核。
6. 根据权利要求3所述的实现嵌入式应用的系统,其特征在于,所述启动版本存》文在系统的FLASHR0M中具体搮:作包括压缩BOOT内核,整合精简工具集和BOOT程序的文件并对该文件进行压缩,将系统BIOS和MiniBOOT程序存放在系统的FLASHROM中,所述Mini BOOT程序用于解压启动版本。
7. —种实现嵌入式应用的方法,所述方法包括以下处理过程BIOS启动过程中加载启动版本中的BOOT内核,BOOT内核引导成功后加载运^于BOOT程序;BOOT程序进行业务版本的加载,启动业务内核,业务内核引导成功后加载运行业务程序,业务程序接管系统的运行。
8. 根据权利要求7所述的实现嵌入式应用的方法,其特征在于,所述加载运4亍BOOT程序具体包括以下处理过程BIOS启动后运4亍Mini BOOT程序;Mini BOOT程序将压缩的BOOT内核拷贝到内存空间并解压运行,以及解压精简工具集和BOOT程序;运行BOOT内核,加载运4亍BOOT程序。
9. 根据权利要求7所述的实现嵌入式应用的方法,其特征在于,所述加载运行业务程序具体包括以下处理过程比较当前单板和主控板上的业务版本的版本信息,BOOT程序下载版本信息最新的业务版本,存储到本地硬盘上,并加载该运行业务版本;在加载过程中,B0OT程序从业务版本中提取业务内核、定制工具集和业务程序;在完成加载后,BOOT程序加载运行业务内核,业务内核引导成功后加载运行业务程序,业务程序接管系统的运行。
10. 根据权利要求9所述的实现嵌入式应用的方法,其特征在于,所述业务内核的加载运行方式为通过KEXEC内核二次加载方式加载运行业务内核。
全文摘要
本发明公开了一种实现嵌入式应用的系统和方法,采用了将上层应用开发和底层运行环境支撑工作相分离的处理方式,使得上层应用模块仍旧专注于业务能力研发,底层运行支撑模块负责搭建系统平台。从而保证,将SUSE Linux服务器方案移植到嵌入式方案过程中,移植工作量降低到最少,以减少不必要的开销。并能够满足如刀片服务器等系统应用场景的嵌入式系统架构,实现在不增加系统开发复杂度的情况下,提高系统的可靠性和稳定性。
文档编号G06F9/44GK101582029SQ20091010769
公开日2009年11月18日 申请日期2009年6月5日 优先权日2009年6月5日
发明者磊 周, 王魏强, 珊 陈 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1