一种适用于不同处理器的引导方法与流程

文档序号:17948449发布日期:2019-06-18 23:50阅读:703来源:国知局
一种适用于不同处理器的引导方法与流程

本发明涉及计算机软件技术领域,具体涉及一种适用于不同处理器的引导方法。



背景技术:

不同的处理器,包括国产申威处理器在内,其所对应的各整机厂商生产的主板上的硬件不同,导致一个kernel不能够支持所有整机厂商生产的主板,在操作系统安装时就需要对应的kernel才能够启动和安装系统,导致了操作的不便。



技术实现要素:

为解决现有技术存在的不足,本发明提供了一种适用于不同处理器的引导方法,包括如下步骤:

步骤s1:插入光盘启动器,进入bios设置,从光盘启动系统;

步骤s2:获取boardid变量值;

步骤s3:将boardid变量值传入grub.cfg脚本文件;

步骤s4:判断boardid对应值;

步骤s5:根据判断的boardid对应值启动路径boot,以完成不同处理器的引导。

其中,所判断的boardid的对应值包括boot.img、bootloard.bin及vmlinuxl

其中,所述步骤s5包括:

步骤s51:启动临时根文件系统boot.img;

步骤s52:启动cpu和硬件初始化程序bootloard.bin;

步骤s53:启动系统内核vmlinuxl;

步骤s54:启动安装程序anaconda。

其中,所述步骤s2中,通过grub程序从flash中获取boardid变量值。

本发明提供的适用于不同处理器的引导方法,支持多个厂商整机和不同处理器型号的引导和安装问题,统一了操作系统对外提供的版本,也解决了操作系统版本多,维护和支持难的问题。

附图说明

图1:本发明的适用于不同处理器的引导方法的实现流程图。

具体实施方式

为了对本发明的技术方案及有益效果有更进一步的了解,下面结合附图详细说明本发明的技术方案及其产生的有益效果。

本发明的发明构思为:针对各整机厂商生产主板的硬件不同而导致kernel不止一个,且安装时又需要安装对应kernel的这一现象,通过boardid不同进而启动和安装对应的kernel,使得一个iso文件解决各厂商整机、不同处理器型号的引导、安装和启动。

具体的,设置boardid来区别各厂商的主板。在grub引导时根据boardid来启动和安装对应的kernel,实现一个iso(系统镜像)文件引导安装和启动不同整机厂商、不同处理器的功能。

boardid是grub通过读取主板上flash获得的一个变量,根据厂商的不同其值也随之改变。如江南所的整机厂商代号为1,表1为江南所生产的boardid。

表1:江南所生产的boardid

grub是最常用的多重操作系统引导管理器,它负责装入内核并引导操作系统。由硬盘启动装载grub和操作系统的过程,包括以下几个操作步骤:

1、stage1阶段

bios通常是转向第一块硬盘的第一个扇区,即主引导记录(mbr)。mbr扇区(0面0磁道的第1扇区),大小为512字节(446字节代码+64字节分区表+2字节标志55aa),它负责加载存放于0面0道第2扇区的start程序。

2、stage1_5阶段

stage1_5负责识别文件系统和加载stage2,所以stage1_5往往有多个,以支持不同文件系统的读取。在安装grub的时候,grub会根据当前/boot/分区类型,加载相应的stage1_5到0面0磁道的第3扇区。stage1_5是由start1加载的。

3、stage2阶段

它负责显示启动菜单和提供用户交互接口,并根据用户选择或默认配置加载操作系统内核。

grub的工作目录是在/boot/grub下,其中grub.cfg是一个基于脚本的文本文件(如图1),其中包含菜单显示的配置和各个操作系统的内核加载配置。grub根据grub.cfg显示启动菜单,提供同用户交互界面。根据用户选择或默认配置和grub.cfg的内核配置加载相应的内核程序,并把控制权交给内核程序,使得内核程序完成真正的操作系统的启动。

图1为本发明的适用于不同处理器的引导方法的实现流程图,如图1所示,本发明的适用于不同处理器的引导方法,主要包括如下步骤:

步骤s1:grub引导插入光盘启动机器,进入bios设置,从光盘启动系统。

步骤s2:执行grub程序的三个阶段运行结束后,从flash中获取boardid变量。

步骤s3:将boardid变量值传入grub.cfg脚本文件。

步骤s4:在grub.cfg中判段boardid对应值,显示出对应分支grub菜单:

neokylindesktop4.0(sunway)install

neokylindesktop4.0(sunway)backup

neokylindesktop4.0(sunway)recovery

neokylindesktop4.0(sunway)debug

步骤s5:在选中并执行grub菜单后,会进入操作系统安装环境,由于已经判断了boardid的值,会设置对应的启动路径boot,boot是一个目录,里面含有boot.img、bootloader.bin、vmlinux1。引导过程如图1所示。

步骤s51:启动临时根文件系统boot.img。其生存周期很短,只会用作到真实文件系统的一个桥梁

步骤s52:启动cpu和硬件初始化程序bootloard.bin。主要作用是完成cpu和相关硬件的初始化,将系统的软硬件环境带到一个合适状态,以便为最终调用系统内核。

步骤s53:启动系统内核vmlinux1。进入真实的文件系统,运行安装程序。

经此过程就可以实现一个iso(系统镜像)文件适配安装所有厂商整机的问题。

本发明的适用于不同处理器的引导方法,尤其适用于国产申威处理器平台下兼容各厂商整机和不同处理器型号的引导方法。

本发明解决了申威处理器平台一个iso(系统镜像)文件包含多个内核,支持多个厂商整机和不同处理器型号的引导和安装问题,统一了申威平台操作系统对外提供的版本,也解决了操作系统版本多、维护和支持难的问题。

本发明中,所谓的“申威处理器”,源自于dec的alpha21164,为采用申威自主指令集的一种64位国产处理器。

本发明中,所谓的“boardid”,为一种各整机厂商在主板信息字节中定义的唯一标识码。如浪潮超越的整机厂商代号为101(0x65),开发的整机cs5536atx的主板编号则为0x65xxxxx2。

本发明中,所谓的“grub”,为grandunifiedbootloader的简称,是一个来自gnu项目的多操作系统启动程序。grub是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。grub可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。

虽然本发明已利用上述较佳实施例进行说明,然其并非用以限定本发明的保护范围,任何本领域技术人员在不脱离本发明的精神和范围之内,相对上述实施例进行各种变动与修改仍属本发明所保护的范围,因此本发明的保护范围以权利要求书所界定的为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1