一种适用于arm架构移动设备的多操作系统切换方法
【专利摘要】本发明公开了一种适用于ARM架构移动设备的多操作系统切换方法,属于移动设备的操作系统【技术领域】。在ARM架构的移动设备开机后,先进行内存、网络设备、看门狗、I/O等设备的初始化,之后进入操作系统选择界面,Bootloader会根据用户选定的操作系统设置相应启动参数,同时向服务器端发送启动中断,服务器截断该中断信号后,会搜索对应的系统内核、文件系统,并将系统内核以文件形式加载到客户端,烧录进既定的Flash分区再启动,文件系统直接采用nfs网络协议挂载到根目录下,完成操作系统的网络启动。本发明无需在ARM架构的移动终端设备上预先安装操作系统,实现了本地无操作系统,而通过网络启动多操作系统的目的。
【专利说明】一种适用于ARM架构移动设备的多操作系统切换方法
【技术领域】
[0001]本发明涉及移动设备的操作系统【技术领域】,特别是一种适用于ARM架构移动设备的多操作系统切换方法。
【背景技术】
[0002]ARM架构是一个32位元精简指令集中央处理器架构,由于具有体积小、低功耗、低成本等特点,ARM架构的处理器广泛应用于各种嵌入式设备中,如目前市场上大部分智能手机,平板电脑等移动设备都属于ARM架构。
[0003]现有的ARM架构移动设备上多操作系统切换方法主要有两种,一种是使用虚拟机方法,另一种是同一设备上预装多个操作系统的方法。
[0004]使用虚拟机的方法,先在硬件设备上安装虚拟机所需要的Host操作系统和虚拟机管理软件,再安装所需运行的多操作系统,在虚拟机管理软件的支持下,实现多操作系统的切换。缺点在于Host操作系统和虚拟机管理软件均大量占用系统资源,且需预装操作系统。
[0005]另一种在同一设备上预装多个操作系统的方法,需要预先将存储器进行分区,将需要安装的操作系统镜像文件存储在不同的分区上,操作系统启动前进行分区的选择。缺点主要在于所选择的操作系统需要预先安装好,对硬件的存储空间也有一定的要求。
【发明内容】
[0006]本发明所要解决的技术问题是,针对现有技术不足,提供一种适用于ARM架构移动设备的多操作系统切换方法,不需要在移动设备上预安装或存储任何操作系统,即可利用服务器端启动所需要的操作系统,实现多操作系统支持和切换。
[0007]为解决上述技术问题,本发明所采用的技术方案是:一种适用于ARM架构移动设备的多操作系统切换方法,该方法为:
1)在ARM架构智能移动设备的Bootloader层设计操作系统选择的图形用户界面;
2)在ARM架构智能移动设备的Bootloader层移植IXD驱动,在IXD上显示上述图形用户界面,并通过LCD选择需要启动的操作系统;
3)在ARM架构智能移动设备的Bootloader中移植无线网卡驱动,使ARM架构智能移动设备与服务器端建立网络连接,使用文件传输协议加载操作系统内核到ARM架构智能移动设备;
4)对ARM架构智能移动设备的Flash进行分区,为不同的操作系统划分专用的Flash区域;
5)在Bootloader中写入不同操作系统引导代码,将需要启动的操作系统内核从服务器下载到内存中,然后从内存中加载到相应的Flash分区中执行,采用nfs网络协议将需要启动的操作系统的文件系统直接挂载在nfs共享目录下,完成操作系统启动;
6)在服务器上配置好tftp和nfs网络服务,采用tftp和nfs网络协议为ARM架构智能移动设备端提供服务,通过配置网络服务环境,为用户提供各种服务;
7)编译经以上步骤I)?步骤6)修改过后的Boot loader,并将编译后的Boot loader下载到Flash的Boot loader分区内。
[0008]所述步骤3)中,使用tftp文件传输协议加载操作系统内核到ARM架构智能移动设备。
[0009]与现有技术相比,本发明所具有的有益效果为:本发明可以在一个没有预装操作系统的ARM架构移动通信设备上,通过图形界面选择所需启动的操作系统,进而从服务器端加载内核并启动,实现了多操作系统的支持和切换,而且操作系统运行在移动通信设备上,但所有程序和数据存储在服务器端,这种本地计算,远程存储的模式,具有较好的数据安全性。
【专利附图】
【附图说明】
[0010]图1为本发明一实施例方法流程图;
图2为IXD驱动流程图;
图3本发明一实施例网卡驱动主程序流程图;
图4本发明一实施例网卡驱动中断服务程序流程图;
图5为NAND Flash分区结构图;
图6为引导程序流程图;
图7为本发明一实施例移动设备NAND Flash分区结构图。
【具体实施方式】
[0011]本发明的总体思路为:在ARM架构的移动设备开机后,先进行内存、网络设备、看门狗、1/0等设备的初始化,之后进入操作系统选择界面,Bootloader会根据用户选定的操作系统设置相应启动参数,同时向服务器端发送启动中断,服务器截断该中断信号后,会搜索对应的系统内核、文件系统,并将系统内核以文件形式加载到客户端,烧录进既定的Flash分区再启动,文件系统直接采用nfs网络协议挂载到根目录下,完成操作系统的网络启动。
[0012]本发明具体步骤如下:
S1:在ARM架构智能移动设备的Boot loader层设计一个操作系统选择的图形用户界面:在Boot loader层添加开机图形用户界面,显示可选的多操作系统列表,添加菜单和按键选择功能,增强人机交互性。
[0013]S2:在ARM架构智能移动设备的Boot loader层移植LCD驱动:参照附图2,在Bootloader层增加IXD驱动程序,在IXD上显示SI的图形用户界面,用户通过IXD按键选择所需要启动的操作系统。
[0014]S3:在ARM架构智能移动设备的Boot loader中移植无线网卡驱动:参照附图3和附图4,在Boot loader中增加无线网卡驱动,实现在无操作系统的情况下与服务器端建立网络连接,然后使用tftp文件传输协议加载操作系统内核到移动设备。
[0015]S4:对ARM架构智能移动设备的Flash进行分区:使用Flash分区技术,为不同的操作系统划分专用的Flash区域,用于引导系统时能正确启动需要的操作系统,并且在分区时需要充分考虑到不同系统对Flash的使用和影响,将Boot loader置于Flash的开始部分、操作系统内核通常放在文件系统之前。
[0016]S5:设计引导程序管理机制,对完成S4以后所形成的多个分区进行管理,参照附图5,实现多系统支持:不同系统的启动参数以及环境变量并不相同,Boot loader中要先写好不同操作系统引导代码,参照附图6,当用户选择某一系统时,通过启动这一系统的引导代码,传递系统启动参数,在Flash中无任何操作系统镜像的情况下,将该系统内核通过网络从服务器下载到内存中,从内存中加载到相应的Flash分区中执行,完成系统启动。
[0017]S6:设置服务器端和网络环境:准备一台PC作为服务器,事先配置好tftp和nfs网络服务,采用tftp和nfs网络协议为移动设备端提供资源存储和管理、用户管理、系统监控等服务,通过配置网络服务环境,建立用户目录来配合客户端为用户提供操作系统、应用管理等各种服务。
[0018]S7:编译运行:将经过以上六个步骤修改过后的Boot loader进行编译,并下载到Flash 的 Boot loader 分区内。
[0019]完成以上七个步骤便可上电启动,运行Boot loader,进入图形用户界面,Bootloader会根据用户选定的操作系统设置相应启动参数,同时向服务器端发送启动中断,月艮务器截断该中断信号后,会搜索对应的系统内核、文件系统,并以文件形式加载到客户端,烧录进Flash分区再启动,文件系统直接采用nfs协议挂载到根目录下,完成操作系统的网络启动。
[0020]以下结合具体实例说明本发明的方法。
[0021]该实例采用型号为0K6410的一款ARM架构智能移动终端开发板作为移动设备,该开发板可用于开发平板电脑、手机等,硬件配置为:ARM架构CPU,型号为S3C6410 ;无线网卡,型号Marvell 8686 ;按键模块;存储模块为2G容量的NAND Flash。采用Uboot作为具体的Boot loader层实例;使用上述S1?S7的步骤,实现在未安装任何操作系统的情况下,对Linux和Android两个常用的嵌入式系统进行支持和切换。具体实施步骤如图1中的SI" S7所示。
[0022]实例S1:在Uboot中添加图形用户界面:找一个jpeg文件,通过命令行处理为8bit的bmp图片。将bmp文件放入/tools/logos中,并修改Makef iIe文件,替换相关bmp文件名,修改配置文件。在Uboot的main函数中添加几组switch语句用来选择按键,准备转入启动部分代码。
[0023]实例S2:在Uboot启动之后,进入到菜单选择界面。这里要添加一个IXD驱动模块:在driver/video目录下新建s3c6410_fb.c,用来设置与LCD相关的寄存器,并修改相关配置文件。
[0024]实例S3:引用驱动移植技术,在带有SDIO接口驱动的Uboot上移植网卡驱动程序,进入board /smdk6410.c目录,将默认网卡驱动替换成无线网卡Marvell8686的驱动,并修改相关配置文件,这样就添加了对无线网卡的支持,为后续网络启动和引导操作系统做铺垫。
[0025]实例S4:参照附图7,该方法中引用了 NAND Flash分区技术,对Flash存储器进行区域划分,将Flash上第一个2M空间留给客户端启动引导程序,即修改过的Uboot,随后5M是Linux的操作系统内核分区,再5M是Android的操作系统内核分区。[0026]实例S5:客户端Uboot设置bootargs启动参数:通过tftp协议,将Android/Linux系统内核下载到本地SDRAM中运行,再通过nfs协议,挂载服务器端的根文件系统。设置启动参数内容包括nfs共享目录,服务器和客户端的ip设置,tftp下载地址,启动地址等。Android/Linux系统的nfs共享目录在服务器端的nfs目录下,tftp下载地址在0x50008000,使用bootm命令进行启动。
[0027]实例S601:在装有Linux系统的服务器上安装tftp和nfs服务,tftp服务文件目录为/tftproot, nfs共享目录为/nfs。
[0028]实例S602:将Android和Linux的内核镜像拷贝到服务器端/tftproot路径下,将文件系统拷贝到/nfs路径下。
[0029]实例S7:编译经过以上步骤修改过后的Uboot代码,并将Uboot镜像文件拷入到NAND Flash的前2M空间内。
【权利要求】
1.一种适用于ARM架构移动设备的多操作系统切换方法,其特征在于,该方法为: 1)在ARM架构智能移动设备的Bootloader层设计操作系统选择的图形用户界面; 2)在ARM架构智能移动设备的Bootloader层移植IXD驱动,在IXD上显示上述图形用户界面,并通过LCD选择需要启动的操作系统; 3)在ARM架构智能移动设备的Bootloader中移植无线网卡驱动,使ARM架构智能移动设备与服务器端建立网络连接,使用文件传输协议加载操作系统内核到ARM架构智能移动设备; 4)对ARM架构智能移动设备的Flash进行分区,为不同的操作系统划分专用的Flash区域; 5)在Bootloader中写入不同操作系统引导代码,将需要启动的操作系统内核从服务器下载到内存中,然后从内存中加载到相应的Flash分区中执行,采用nfs网络协议将需要启动的操作系统的文件系统直接挂载在nfs共享目录下,完成操作系统启动; 6)在服务器上配置好tftp和nfs网络服务,采用tftp和nfs网络协议为ARM架构智能移动设备端提供服务,通过配置网络服务环境,为用户提供各种服务; 7)编译经以上步骤I)?步骤6)修改过后的Bootloader,并将编译后的Boot loader下载到Flash的Boot loader分区内。
2.根据权利要求1所述的适用于ARM架构移动设备的多操作系统切换方法,其特征在于,所述步骤3)中,使用tftp文件传输协议加载操作系统内核到ARM架构智能移动设备。
3.根据权利要求1所述的适用于ARM架构移动设备的多操作系统切换方法,其特征在于,所述ARM架构移动设备型号为0K6410 ;Boot loader采用Uboot。
4.根据权利要求3所述的适用于ARM架构移动设备的多操作系统切换方法,其特征在于,对Linux和Android两个嵌入式系统进行切换的方法如下: 1)在Uboot中添加图形用户界面:找一个jpeg文件,通过命令行处理为8bit的bmp图片;将bmp文件放入/tools/logos中,并修改Makefile文件,替换相关bmp文件名,修改配置文件;在Uboot的main函数中添加多组switch语句用来选择按键,准备转入启动部分代码; 2)在Uboot启动之后,进入到菜单选择界面;添加一个LCD驱动模块; 3)引用驱动移植技术,在带有SDIO接口驱动的Uboot上移植网卡驱动程序,将默认网卡驱动替换成无线网卡Marvel 18686的驱动,并修改相关配置文件; 4)利用NANDFlash分区技术对Flash存储器进行区域划分,将Flash上第一个2M空间留给客户端启动引导程序,即修改过的Uboot ; 5)客户端Uboot设置bootargs启动参数:通过tftp协议,将Android/Linux系统内核下载到本地SDRAM中运行,再通过nfs协议,挂载服务器端的根文件系统; 6)在装有Linux系统的服务器上安装tftp和nfs服务,tftp服务文件目录为/tftproot, nfs 共享目录为 /nfs ; 7)将Android和Linux的内核镜像拷贝到服务器端/tftproot路径下,将Android和Linux的文件系统拷贝到/nfs路径下; 8)编译经过以上步骤修改过后的Uboot代码,并将Uboot镜像文件拷入到NANDFlash的前2M空间内。
【文档编号】G06F9/44GK103761088SQ201410013575
【公开日】2014年4月30日 申请日期:2014年1月13日 优先权日:2014年1月13日
【发明者】张尧学, 熊永华, 吴敏, 陈建二, 王建新, 王国军, 周悦芝, 王慧昭, 梁伟 申请人:中南大学