CN117873580A - 操作系统切换方法、芯片及设备 - Google Patents
操作系统切换方法、芯片及设备 Download PDFInfo
- Publication number
- CN117873580A CN117873580A CN202311871807.8A CN202311871807A CN117873580A CN 117873580 A CN117873580 A CN 117873580A CN 202311871807 A CN202311871807 A CN 202311871807A CN 117873580 A CN117873580 A CN 117873580A
- Authority
- CN
- China
- Prior art keywords
- operating system
- container
- storage medium
- switching
- computing device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 74
- 230000015654 memory Effects 0.000 claims abstract description 107
- 238000005192 partition Methods 0.000 claims description 60
- 230000008569 process Effects 0.000 claims description 20
- 230000009191 jumping Effects 0.000 claims description 9
- 238000007726 management method Methods 0.000 description 29
- 230000006870 function Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 9
- 230000009286 beneficial effect Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004904 shortening Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 101001106432 Homo sapiens Rod outer segment membrane protein 1 Proteins 0.000 description 1
- 101150065817 ROM2 gene Proteins 0.000 description 1
- 102100021424 Rod outer segment membrane protein 1 Human genes 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本申请实施例提供了一种操作系统切换方法、芯片及设备,涉及计算机技术领域。该方法中,计算设备运行第一操作系统的容器时,若需要切换操作系统,计算设备从第一操作系统的容器跳转运行内存文件系统,并将确定的启动配置参数写入存储介质中,之后,基于存储介质中的启动配置参数,从内存文件系统直接跳转运行待启动操作系统的容器。由于是根据当前运行操作系统的容器的标识确定启动配置参数,并将启动配置参数写入存储介质,这样,在需要确定待启动操作系统的容器时,便可以通过存储介质中的启动配置参数进行确定,不仅提高了确定待启动操作系统的容器的便利性,还有助于提高所确定的待启动操作系统的容器的准确性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种操作系统切换方法、芯片及设备。
背景技术
相关技术中,计算设备运行当前操作系统的过程中,若需要切换操作系统,通常是从当前操作系统退回至只读存储器(read only memory,ROM)引导程序,然后,按照ROM引导程序指示的分区地址,依次加载待启动操作系统的引导加载程序、内核、根文件系统、应用程序等,从而实现启动待启动操作系统。这种情况下,操作系统切换消耗的时间特别长,导致操作系统切换的效率特别低,严重影响了用户的使用体验。
发明内容
本申请实施例提供一种操作系统切换方法、芯片及设备,有助于缩短操作系统切换所消耗的时间,提高操作系统切换的效率,从而提高用户的使用体验。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供了一种操作系统切换方法,用于计算设备,计算设备包括第一操作系统和第二操作系统,第一操作系统包括第一操作系统的容器,第二操作系统包括第二操作系统的容器,第一操作系统和第二操作系统使用的引导加载程序、内核和内存文件系统相同;该方法包括:加载引导加载程序和内核,从而运行第一操作系统的容器;当检测到发生目标事件,从第一操作系统的容器跳转运行内存文件系统;基于第一操作系统的容器的标识,确定启动配置参数,并将启动配置参数写入计算设备的存储介质中,启动配置参数用于指示待启动操作系统的容器,待启动操作系统的容器为第一操作系统的容器或第二操作系统的容器;基于启动配置参数,从内存文件系统跳转运行待启动操作系统的容器。
该方案中,计算设备运行第一操作系统时,若检测到发生目标事件,说明需要切换操作系统,基于此,计算设备从第一操作系统的容器跳转运行内存文件系统,并将基于第一操作系统的容器的标识确定的启动配置参数,写入存储介质中,之后,基于存储介质中的启动配置参数指示的待启动操作系统的容器,从内存文件系统直接跳转运行待启动操作系统的容器。由于是根据当前运行操作系统的容器的标识确定启动配置参数,并将启动配置参数写入存储介质,这样,在需要确定待启动操作系统的容器时,便可以通过存储介质中的启动配置参数进行确定,不仅提高了确定待启动操作系统的容器的便利性,还有助于提高所确定的待启动操作系统的容器的准确性。此外,第一操作系统和第二操作系统使用的引导加载程序、内核和内存文件系统相同,因此,计算设备基于启动配置参数确定待启动操作系统的容器后,可以在不重启引导加载程序和内核的情况下,也即,不必退回至ROM引导程序,而是从第一操作系统的内存文件系统直接跳转运行待启动操作系统的容器,进而实现了快速启动待启动操作系统,这样,有助于缩短操作系统切换消耗的时间,提高操作系统切换的效率,进而提高用户的使用体验。
在一种可能的实现方式中,存储介质包括易失性存储介质;将启动配置参数写入计算设备的存储介质中,包括:若系统切换类型为容器切换,将启动配置参数写入易失性存储介质;容器切换用于指示系统切换过程中加载待启动操作系统的容器。
该实现方式中,在系统切换类型为容器切换时,计算设备不会下电,也就是说,计算设备的易失性存储介质中的数据不会丢失,通过将启动配置参数存储在易失性存储介质中,不仅有助于保证本次系统切换时可以读取到启动配置参数,还可以在计算设备之后的下电过程中,自动清除易失性存储介质中的启动配置参数,避免启动配置参数长久占用存储空间,影响正常的操作系统启动流程。
另一种可能的实现方式中,存储介质还包括非易失性存储介质;将启动配置参数写入计算设备的存储介质中,包括:若系统切换类型为非容器切换,将启动配置参数写入非易失性存储介质;非容器切换用于指示系统切换过程中加载引导加载程序和内核。
该实现方式中,在系统切换类型为非容器切换时,将启动配置参数存储在非易失性存储介质中,这样,有助于避免跳转运行ROM引导程序时,启动配置参数丢失,进而有助于保证操作系统切换流程的顺利执行。
另一种可能的实现方式中,非易失性存储介质包括计算设备的裸分区或用户闪存UFM。这样,有助于充分利用计算设备上不同存储介质上的存储空间。
另一种可能的实现方式中,基于第一操作系统的容器的标识,确定启动配置参数,包括:基于第一操作系统的容器的标识,确定第一操作系统的容器的标识为启动配置参数。这样,有助于提高启动配置参数的写入效率。
另一种可能的实现方式中,基于第一操作系统的容器的标识,确定启动配置参数,包括:基于第一操作系统的容器的标识,确定第二操作系统的容器的标识为启动配置参数。这样,有助于提高基于启动配置参数进行操作系统切换时的效率。
另一种可能的实现方式中,检测到发生目标事件,包括:检测到系统切换请求。
该实现方式中,通过设置接收到系统切换请求时,跳转运行内存文件系统,这样,用户便可以通过向计算设备发送系统切换请求,实现触发计算设备进行操作系统切换,不仅有助于提高触发操作系统切换方式的多样性,还有助于提高用户的使用体验。
另一种可能的实现方式中,检测到发生目标事件,包括:检测到系统升级完成。
该实现方式中,通过设置执行完系统升级操作之后,自动跳转运行内存文件系统,从而实现在操作系统升级完成之后,自动切换运行升级后的操作系统,这样,便不必由用户手动触发切换操作系统,不仅有助于提高操作系统升级后的系统切换的便利性,还有助于提高用户的使用体验。
另一种可能的实现方式中,多个操作系统使用相同的引导加载程序和内核,包括:多个操作系统中的不同操作系统共用同一个引导加载程序和内核。
该实现方式中,在计算设备配置有多个操作系统时,多个操作系统中的不同操作系统共用同一个引导加载程序和内核,这样,有助于降低计算设备配置的多个操作系统时所占用的存储空间。
另一种可能的实现方式中,多个操作系统使用相同的引导加载程序和内核,包括:多个操作系统中不同操作系统的引导程序的代码和内核的代码相同。
该实现方式中,通过设置不同操作系统的引导程序的代码和内核的代码相同,这样,不仅使得每个操作系统可以使用其他操作系统的引导程序和内核,还有助于保证每个操作系统的完整性。
第二方面,提供了一种操作系统切换装置,该装置包括:用于执行第一方面提供的任意一种方法的功能单元,各个功能单元所执行的动作通过硬件实现或通过硬件执行相应的软件实现。例如,操作系统切换装置可以包括运行模块、跳转模块、配置模块和切换模块;运行模块,用于加载引导加载程序和内核,从而运行第一操作系统的容器;跳转模块,用于当检测到发生目标事件,从第一操作系统的容器跳转运行内存文件系统;配置模块,用于基于第一操作系统的容器的标识,确定启动配置参数,并将启动配置参数写入计算设备的存储介质中,启动配置参数用于指示待启动操作系统的容器,待启动操作系统的容器为第一操作系统的容器或第二操作系统的容器;切换模块,用于基于启动配置参数,从内存文件系统跳转运行待启动操作系统的容器。
第三方面,提供了一种芯片,芯片包括:处理器和存储器,所述处理器与存储器连接;所述存储器用于存储计算机执行指令,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述芯片实现第一方面提供的任意一种方法。
第四方面,提供了一种芯片,芯片包括:处理器和接口电路;接口电路,用于接收代码指令并传输至处理器;处理器,用于运行代码指令以执行上述第一方面提供的任意一种方法。
第五方面,提供了一种计算机设备,包括:供电电源和第三方面或第四方面提供的芯片,所述供电电源用于为芯片供电,所述芯片用于实现第一方面提供的任意一种方法。
第六方面,提供了一种计算机可读存储介质,存储有计算机执行指令,当计算机执行指令在计算机上运行时,使得计算机执行上述第一方面提供的任意一种方法。
第七方面,提供了一种计算机程序产品,包括:计算机执行指令,当计算机执行指令在计算机上运行时,使得计算机执行上述第一方面提供的任意一种方法。
其中,第二方面至第七方面中任一种实现方式所带来的技术效果可参见第一方面中不同实现方式所带来的技术效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种计算设备的示意图;
图2为本申请实施例提供的一种BMC单元的层级示意图;
图3为本申请实施例提供的一种操作系统切换方法的流程图;
图4为本申请实施例提供的一种界面示意图;
图5为本申请实施例提供的另一种操作系统切换方法的流程图;
图6为本申请实施例提供的一种存储启动配置参数的示意图;
图7为本申请实施例提供的一种操作系统启动的配置示意图;
图8为本申请实施例提供的一种操作系统切换装置的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
其中,在本申请的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;本申请中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。
并且,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。同时,在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。
以下,对本申请实施例涉及的相关术语进行简要介绍。
容器:是计算机操作系统中的一种虚拟化技术,可以用于封装和隔离不同应用程序的运行环境,以将应用程序与操作系统隔离开,使得应用程序只能访问被临时赋予的资源,而无法访问操作系统上实际存在的文件和文件夹。
在本申请实施例中,容器中可以包括根文件系统、系统守护进程和应用程序等。
分区:也可以称为操作系统分区(System Partion)、系统分区等,是指将存储设备的存储空间划分为不同区间。其中,存储操作系统的存储设备,可以按照操作系统的功能特性划分为不同分区,如:可以划分为引导加载程序(如:uboot)的分区、内核(如:kernel)的分区、根文件系统(如:rootfs)的分区以及应用程序的分区等。
在本申请实施例中,分区可以包括引导加载程序的分区、内核的分区以及容器的分区等。
根文件系统(如:rootfs):用于管理、存储文件。
内存文件系统(ramfs):是被操作系统的内核拉起的基础文件系统,用于切换容器、挂载/卸载分区、系统重启以及与处理器交互等。
change root(chroot)命令:用于将根目录更改为指定目录,也即,将程序运行环境切换到指定目录。切换后,在新运行环境下将访问不到旧的根目录结构和文件。示例性的,chroot命令可以从ramfs环境切换至指定容器的根目录环境。
系统守护进程(system daemon,systemd):是用于启动应用程序、并对各应用程序的启动前后依赖关系进行约束的进程。
应用程序:也可以称为服务,用于实现相对独立的功能,不同应用程序之间可以通过进程间的通信方式进行通信。
以下,对本申请实施例的应用场景进行示例性介绍。
相关技术中,计算设备运行当前操作系统的过程中,若需要切换操作系统,通常是从当前操作系统退回至ROM引导程序,然后,按照ROM引导程序指示的分区地址,依次加载待启动操作系统的引导加载程序、内核、根文件系统、应用程序等,从而实现重新启动待启动操作系统。这种情况下,操作系统切换消耗的时间特别长,导致操作系统切换的效率特别低,严重影响了用户的使用体验。
有鉴于此,本申请实施例提供一种操作系统切换方式,用于计算设备,计算设备运行第一操作系统时,若检测到发生了目标事件,说明需要切换操作系统,基于此,计算设备从第一操作系统的容器跳转运行内存文件系统,并将基于第一操作系统的容器的标识确定启动配置参数,写入存储介质中,之后,基于存储介质中的启动配置参数指示的待启动操作系统的容器,从内存文件系统直接跳转运行待启动操作系统的容器。由于是根据当前运行操作系统的容器的标识确定启动配置参数,并将启动配置参数写入存储介质,这样,在需要确定待启动操作系统的容器时,便可以通过存储介质中的启动配置参数进行确定,不仅提高了确定待启动操作系统的容器的便利性,还有助于提高所确定的待启动操作系统的容器的准确性。
以下,对本申请实施例的系统架构进行示例性介绍。
本申请实施例提供的操作系统切换方法适用于计算设备,计算设备包括至少一个管理单元。至少一个管理单元中的每个管理单元可以包括处理器、内存和存储设备等。其中,存储设备中存储有至少一个操作系统,处理器可以通过内存运行存储设备中的至少一个操作系统。
本申请实施例中,至少一个操作系统中的每个操作系统可以包括引导加载程序、内核和容器等。每个操作系统的容器可以包括根文件系统、系统守护进程和至少一个应用程序等。
需要说明的,本申请实施例中的至少一个可以是一个,或者,也可以是多个。其中,多个可以是两个,或者,也可以是两个以上,后续不再赘述。
本申请实施例提供的操作系统切换方法,适用于计算设备的每个管理单元,每个管理单元基于本申请实施例提供的操作系统切换方法,在切换操作系统时,可以将启动配置参数存储在每个管理单元的存储介质中,以便于后续可以根据启动配置参数直接确定待启动操作系统的容器,进而可以从当前运行操作系统的内存文件系统直接切换到待启动操作系统的容器,而不必重新启动引导加载程序、内核和内存文件系统等。
本申请实施例中,每个管理单元还可以包括只读存储器。只读存储器中存储有ROM引导程序。ROM引导程序指示了引导加载程序在存储设备中的分区地址,基于此,在启动操作系统时,管理单元通过运行ROM引导程序,可以基于ROM引导程序指示的分区地址,跳转运行操作系统的引导加载程序,并基于引导加载程序指示的内核的分区地址,跳转运行内核,从而实现重新启动操作系统的引导加载程序和内核。示例性的,ROM可以内嵌在处理器上。相同型号的处理器,ROM中的代码可以相同。
本申请实施例中,至少一个管理单元可以包括带内管理单元和带外管理单元。
示例性的,带内管理单元是指用于实现带内管理的单元,如:中央管理单元等,带内管理是指计算设备的管理数据和用户的业务数据使用相同的物理通道进行传输。
示例性的,带外管理单元是指用于实现带外管理的单元,如:基板管理控制器(board management controller,BMC)单元等,带外管理是指计算设备的管理数据和用户的业务数据使用不同的物理通道进行传输。
需要说明的是,不同计算设备对BMC有不同的称呼,例如,一些计算设备称为BMC,一些计算设备称为iLO,另一计算设备称为iDRAC。不论是叫BMC,还是叫iLO或iDRAC,都可以理解为是本发明实施例中的BMC。
可选地,计算设备可以包括网络设备或终端设备。
网络设备可以包括服务器等。其中,服务器可以是一个物理或逻辑服务器,也可以是有两个或两个以上分担不同职责的物理或逻辑服务器、相互协同来实现服务器的各项功能。示例性的,服务器可以是刀片服务器、高密服务器、机架服务器或塔式服务器等。
终端设备可以包括增强现实(augmented reality,AR)设备、虚拟现实(virtualreality,VR)设备、个人数字助理(personal digital assistant,PDA)、超级移动个人计算机(ultra-mobile personal computer,UMPC)、平板电脑、笔记本电脑、上网本、台式计算机、一体机等。
需要说明的,本申请实施例对计算设备的形态不做限制,以上仅为示例性说明。
如图1所示,为本申请实施例提供的一种计算设备的示意图。
示例性的,参见图1,计算设备可以包括第一管理单元和第二管理单元。其中,第一管理单元可以为带外管理单元,带外管理单元可以包括处理器1、ROM1、内存1以及存储设备1等。第二管理单元可以为带内管理单元,带内管理单元可以包括处理器2、ROM2、内存2以及存储设备2等。
需要说明的,图1所示的计算设备仅为可适用于本申请实施例的一种计算设备的结构示意图,其不对本申请实施例所适用的计算设备构成限定。
以下,以带外管理单元为BMC单元为例,对本申请实施例进行示例性介绍。
本申请实施例中,BMC单元可以包括至少一个操作系统。其中,至少一个操作系统中的每个操作系统可以包括引导加载程序、内核和容器。
在BMC单元包括一个操作系统时,该一个操作系统可以包括引导加载程序、内核和容器。其中,容器包括根文件系统、系统守护进程(systemd)和至少一个应用程序。
在此基础上,存储设备1的多个分区中存储有一个操作系统。如:多个分区包括分区1、分区2和分区3,其中,分区1存储引导加载程序,分区2存储内核,分区3存储容器。
需要说明的,本申请实施例对容器中的应用程序的数量不做限制。
在BMC单元包括多个操作系统时,多个操作系统中的不同操作系统使用的引导加载程序和内核相同。由于内存文件系统是基于内核拉起的,因此,在不同操作系统使用的内核相同的情况下,不同操作系统使用的内存文件系统也相同。
需要说明的,不同操作系统使用的引导加载程序和内核相同,也可以认为一个操作系统可以兼容其他操作系统的引导加载程序和内核。
以下,通过方式1至方式2,对使用的引导加载程序和内核相同进行示例性介绍。方式1:多个操作系统中不同操作系统共用同一个引导加载程序和内核。
其中,不同操作系统具有不同的容器。
示例性的,BMC单元包括M个操作系统,也即,存储设备1的多个分区中存储有M个操作系统,其中,M为大于1的正整数。由于不同操作系统使用同一个引导加载程序和内核,也即,共用相同的引导加载程序和内核,因此,M个操作系统可以包括一个引导加载程序、一个内核和M个容器。其中,一个容器属于一个操作系统,换言之,不同容器属于不同操作系统。一个操作系统的容器可以包括一个操作系统的根文件系统、系统守护进程(systemd)和应用程序。
该方式中,通过设置不同操作系统使用同一个引导加载程序、且使用同一个内核,这样,有助于减少多个操作系统所占用的存储空间,进而有助于节省存储资源。
示例性的,存储设备1的多个分区可以包括M+2个分区,其中,M+2个分区可以包分区1、分区2、分区3、......、分区M+2,其中,分区1可以用于存储引导加载程序,分区2可以用于存储内核,分区3、......、分区M+2用于存储M个容器。
需要说明的,不同容器中的应用程序可以相同,或者,也可以不同,本申请实施例对此也不做限制。
方式2:多个操作系统中不同操作系统使用的引导加载程序的代码相同,且不同操作系统使用的内核的代码相同。其中,不同操作系统具有不同的容器。
也就是说,多个操作系统都有独立的引导加载程序和内核,但是,不同操作系统使用的引导加载程序的代码相同,且不同操作系统使用的内核的代码相同。这种情况下,一个操作系统也可以使用另一个操作系统的引导加载程序和内核。
该方式中,通过设置不同操作系统包括独立的引导加载程序、内核和容器,且不同操作系统使用的引导加载程序的代码和内核的代码均相同,这样,不仅有助于保证每个操作系统的完整性,还有助于提高不同操作系统之间切换时的互通性,进而有助于系统切换时可以直接由当前运行的操作系统的容器跳转运行待启动操作系统的容器,进而有助于提高系统切换的效率。
需要说明的,关于容器的相关说明,可以参考上述方式1,此处不再赘述。
以下,以上述方式1为例,对本申请实施例进行示例性介绍。
如图2所示,为本申请实施例提供一种BMC单元的层级示意图。
参见图2,BMC单元包括硬件层和软件层,软件层是运行在硬件层上的程序代码。
其中,硬件层包括处理器、内存、ROM、存储设备等。软件层包括操作系统(如:引导加载程序、内核等)。用户侧可以通过软件层中的文件系统使用计算设备运行的应用程序。
以下,结合图2,对BMC单元的系统启动过程进行示例性介绍。
示例性的,BMC单元包括第一操作系统和第二操作系统,第一操作系统包括第一容器,第二操作系统包括第二容器,第一操作系统和第二操作系统共用相同的引导记载程序和内核。
需要说明的,在图3中,第一容器为实线,用于表征处于运行状态的容器。第二容器为虚线,用于表征处于非运行状态的容器,或者说,处于休眠状态的容器。
BMC单元上电时,BMC单元的处理器首先运行ROM引导程序,如:将ROM引导程序加载到BMC单元的内存中。之后,处理器基于ROM引导程序中的分区地址(即引导加载程序的分区地址),运行存储设备中的操作系统。
其中,运行存储设备中操作系统可以包括以下步骤:
1)运行操作系统的引导加载程序:按照ROM引导程序指示的分区地址,切换到引导加载程序所在分区,将引导加载程序加载到指定内存地址中运行,指定内存地址可以是出厂时设置的,运行引导加载程序的过程中,可以进行基础输入输出(input output,IO)配置等。
2)运行内核:基于引导加载程序指示的分区地址,切换到内核所在分区,将内核加载到指定的内存地址中运行。运行内核时,可以进行驱动设备配置和加载、拉起内存文件系统等。
其中,内核中包括切换配置模块,切换配置模块可以用于实现操作系统切换方法中的至少部分功能,如:确定启动配置参数、将启动配置参数存储至存储介质等。在拉起内存文件系统时,可以使用切换配置模块拉起内存文件系统,从而使得内存文件系统可以包括切换配置模块,进而使得内存文件系统可以用于实现本申请实施例提供的操作系统切换方法。内核中还包括切换器,切换器可以用于实现操作系统切换方法中的至少部分功能,如:从内存文件系统向待启动操作系统的容器跳转等。在拉起内存文件系统时,可以使用切换配置模块和切换器拉起内存文件系统,从而使得内存文件系可以包括切换配置模块和切换器,进而使得内存文件系统可以用于实现本申请实施例提供的操作系统切换方法。
3)运行容器:在拉起内存文件系统之后,切换到第一容器所在的分区,挂载第一容器所在的分区,并将第一容器的初始目录挂载为根目录,也即,将第一容器中的内容加载到指定的内存地址中运行。
4)运行应用程序:通过第一容器中的系统守护进程启动第一容器中的应用程序。
需要说明的,本申请实施例描述的系统架构以及应用场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
为了便于理解,以下,结合上述系统架构以及附图,对本申请实施例提供的系统启动的配置方法进行示例性介绍。
图3是根据一示例性实施例示出的一种系统启动的配置方法的流程图。示例性的,该系统启动的配置方法可以包括以下S301-S305。
以下,以计算设备的BMC单元的操作系统为例,对操作系统切换方法进行示例性说明。其中,下述的处理器、存储设备、内存、ROM、操作系统均属于BMC单元,后续不再说明。
以下,以BMC单元包括第一操作系统和第二操作系统为例,对图3所示实施例进行示例性说明。
其中,第一操作系统包括第一操作系统的容器,第二操作系统包括第二操作系统的容器,第一操作系统和第二操作系统使用的引导加载程序、内核和内存文件系统相同。第一操作系统的容器可以命名为第一容器,第二操作系统的容器可以命名为第二容器。
第一容器、第二容器可以包括根文件系统、系统守护进程以及至少一个应用程序。
需要说明的,本申请实施例对第一容器、第二容器中的应用程序的数量不做限制,且第一容器、第二容器中的应用程序可以全部相同、部分相同,或者,也可以全部不同。以下,以第一容器、第二容器包括多个应用程序为例,对本申请实施例进行示例性说明。
示例性的,第一操作系统和第二操作系统中的一个操作系统可以为BMC架构的操作系统(简称为BMC系统),另一个操作系统可以为OpenBMC架构的操作系统(简称为OpenBMC系统)。
以下,以BMC单元当前运行的操作系统为第一操作系统(如:第一操作系统为BMC系统)为例,对本申请实施例提供的操作系统切换方法进行示例性说明。
S301:计算设备加载引导加载程序和内核,从而运行第一操作系统的容器。
本申请实施例中,计算设备的BMC单元依次加载引导加载程序和内核,并在运行内核的过程中,基于内核包括的切换配置模块、切换器等生成内存文件系统,之后,运行第一操作系统的容器。
由于内存系统包括了切换器,因此,BMC运行内存文件系统的过程中,可以实现本申请实施例提供的操作系统切换方法。
需要说明的,S301的其他相关说明,可以参考上述图2的说明,此处不再赘述。
S302:当计算设备检测到发生目标事件,从第一操作系统的容器跳转运行内存文件系统。
本申请实施例中,计算设备的BMC单元运行第一容器的过程中,若检测到发生了目标事件,则BMC单元从运行第一容器跳转运行第一操作系统的内存文件系统。
需要说明的,BM单元运行第一容器,可以认为是BMC单元运行第一容器包括的多个应用程序。
需要说明的,本申请实施例中的BMC单元执行某个操作(如:加载内存文件系统、第一容器等),可以是BMC单元的处理器执行某个操作,后续不再说明。
本申请实施例中,检测到发生目标事件,包括多种情况,以下,通过情况1至情况2进行示例性说明。
情况1:计算设备接收到系统切换请求。
示例性的,用户需要切换BMC单元运行的操作系统时,可以通过电子设备向计算设备的BMC单元发送系统切换请求,以请求切换BMC单元运行的操作系统。BMC单元运行第一容器的过程中,若接收到系统切换请求,则跳转运行第一操作系统的内存文件系统。
该实施例中,通过设置目标事件可以为系统切换请求,从而实现在用户通过电子设备向计算设备发送系统切换请求时,可以通过本申请实施例提供的操作系统切换方法选择操作系统启动路径,也即,直接选择启动待启动操作系统的容器,进而有助于提高用户的使用体验。
情况2:计算设备执行完系统升级操作。
示例性的,在计算设备的BMC单元检测到某个操作系统(如:第二操作系统)被执行完升级操作的情况下,也就是说,检测到系统升级完成的情况下,BMC单元从运行第一容器跳转运行第一操作系统的内存文件系统。
在一个示例中,BMC单元可以在第二操作系统被执行完升级操作之后,立即从运行第一容器跳转运行第一操作系统的内存文件系统。
在另一个示例中,BMC单元可以在第二操作系统被执行完升级操作、且经过预设时长之后,从运行第一容器跳转运行第一操作系统的内存文件系统。
需要说明的,本申请实施例对预设时长的具体值不做限制。例如,可以是5秒、10秒等。
在又一个示例中,BMC单元可以在第二操作系统被执行完升级操作之后的指定时间,从运行第一容器跳转运行第一操作系统的内存文件系统。
需要说明的,本申请实施例对指定时间的具体时间点不做限制。例如,指定时间可以是次日的0点、1点等。
该实施例中,通过设置目标事件可以为系统升级完成,从而实现在操作系统升级完成后,可以自动切换到新升级的操作系统,这样,便不需要用户手动切换操作系统,有助于提高用户的使用体验。
需要说明的,第二操作系统升级可以是第二操作系统的容器升级,或者,也可以第二操作系统的整个操作系统进行升级,其中,第二操作系统的整个操作系统升级是指同时升级第二操作系统的引导记载程序、内核、容器等,本申请实施例对此不做限制。
本申请实施例中,计算设备的BMC单元从第一容器跳转运行第一操作系统的内存文件系统之前,可以对第一容器包括的多个应用程序执行关闭操作,以便于在关闭多个应用程序之后,再从第一容器跳转运行第一操作系统的内存文件系统。
这样,有助于避免突然退出第一容器,导致多个应用程序崩溃,影响第一操作系统的稳定性,从而导致计算设备宕机。此外,还有助于避免第一操作系统的应用程序应用后续启动的第二操作系统的应用程序的稳定性。
S303:计算设备确定启动配置参数。
其中,启动配置参数用于指示待启动操作系统的容器。待启动操作系统的容器也可以称为待启动容器。
需要说明的,本申请实施例中,待启动操作系统、待启动容器等,是泛指待启动的操作系统、待启动的容器等,并不特指某一个操作系统、容器等。
本申请实施例中,计算设备的BMC单元从第一操作系统的容器跳转运行第一操作系统的内存文件系统之后,与相关技术中不同的是,不再继续跳转运行ROM引导程序,而是基于第一操作系统的容器的标识,确定启动配置参数,以便于后续可以根据启动配置参数确定待启动操作系统的容器,进而实现从第一操作系统的容器直接切换至待启动操作系统的容器,而不必退回至ROM引导程序。
本申请实施例中,启动配置参数可以包括容器标识,该容器标识可以用于指示待启动容器。或者,启动配置参数可以包括操作系统标识,该操作系统标识可以用于指示待启动操作系统,在此基础上,计算设备可以将属于该待启动操作系统的容器确定为待启动容器。
需要说明的,本申请实施例对启动配置参数的形式并不做限制,以上仅为示例性说明。以下,以启动配置参数包括容器标识为例,对本申请实施例进行示例性说明。
对于待启动操作系统的容器,包括多种情况,以下通过情况a至情况c,进行示例性介绍。
情况a:待启动操作系统的容器为当前处于非运行状态的容器。
在当前运行操作系统为第一操作时,当前处于运行状态的容器为第一操作系统容器,基于此,当前处于非运行状态的容器为第二操作系统的容器。也就是说,待启动操作系统的容器为第二操作系统的容器。
示例性的,在情况a中,BMC单元检测到目标事件后,可以通过启动配置参数,将第二操作系统的容器确定为待启动操作系统的容器。
情况b:待启动操作系统的容器为当前处于运行状态的容器。
在当前运行操作系统为第一操作时,当前处于运行状态的容器为第一操作系统容器。也就是说,待启动操作系统的容器为第一操作系统的容器。
示例性的,在情况b中,BMC单元检测到目标事件后,可以通过启动配置参数,将第一操作系统的容器确定为待启动操作系统的容器。
情况c:待启动操作系统的容器为第一操作系统的容器或第二操作系统的容器。
BMC单元预先配置有系统切换策略,该系统切换策略可以包括启动除当前操作系统之前的其他操作系统或重新启启动当前操作系统。
示例性的,用户可以将系统切换策略例如,根目录路径为/mnt/inittramfs/rofs1,则BMC单元可以确定rofs1为启动配置参数。该示例中,由于可以将第一操作系统的容器的标识,也即,将当前运行操作系统的容器的标识,直接确定为启动配置参数,因此,有助于提高确定启动配置参数的效率。
示例2,计算设备可以确定第二操作系统的容器的标识为启动配置参数。这样,在需要确定待启动操作系统的容器时,计算设备可以将启动配置参数指示的容器,确定为待启动操作系统的容器。
例如,根目录路径为/mnt/inittramfs/rofs1,则BMC单元可以确定rofs2(即第二操作系统的容器的标识)为启动配置参数。该示例中,由于可以直接确定启动配置参数指示的容器为待启动操作系统的容器,因此,有助于提高确定待启动操作系统的容器的效率。
方式2,基于目标事件,确定启动配置参数。
本申请实施例中,BMC单元检测到目标事件后,可以根据目标事件,确定启动配置参数。
在一个示例中,目标事件为系统切换请求时,系统切换请求可以包括容器标识(即待启动操作系统的容器的标识)。BMC单元接收到系统切换请求后,可以基于系统切换请求中容器标识,确定启动配置参数。
示例性的,如图4中的(a)所示,用户的电子设备上显示第一界面,第一界面包括第一控件,其中,第一控件用于指示系统切换。用户选中第一控件,并点击第一界面上的下一步控件,如图4中的(b)所示,电子设备响应于用户的操作,显示第二界面,第二界面包括第二控件,第二控件用于指示容器。用户在第二界面上选中第二容器(即待启动操作系统的容器),并点击第二界面上的下一步控件之后,电子设备响应于用户的操作,向计算设备发送系统切换请求,该系统切换请求包括第二容器的标识。
在另一个示例中,目标事件为系统升级完成时,BMC单元可以根据最近时间段内被执行系统升级操作的容器,确定启动配置参数。例如,最近时间段内被执行系统升级操作的容器为第二容器,基于此,计算设备基于第二容器的标识,确定启动配置参数。
需要说明的,方式2的其他相关说明,可以参考上述方式1的说明,此处不再赘述。
需要说明的,本申请实施例中对S302中的“从第一操作系统的容器跳转运行内存文件系统”和S303的执行顺序不做限制,以上仅为示例性说明。
S304:计算设备将启动配置参数写入计算设备的存储介质中。
本申请实施例中,存储介质可以包括易失性存储介质和非易失性存储介质。
在一个示例中,计算设备的BMC单元可以将启动配置参数写入易失性存储介质。需要说明的,该示例的相关说明,可以参见图5所示实施例的S505,此处暂不赘述。
在另一个示例中,BMC单元可以将启动配置参数写入非易失性存储介质。需要说明的,该示例的相关说明,可以参见图5所示实施例的S506,此处暂不赘述。
S305:计算设备基于启动配置参数,从内存文件系统跳转运行待启动操作系统的容器。
在一个示例中,结合上述S303中方式1的示例1,计算设备的BMC单元从存储介质中获取到启动配置参数后,将启动配置参数未指示的容器确定为待启动操作系统的容器,也即,将第二操作系统的容器确定为待启动操作系统的容器。在另一个示例中,结合上述303中方式1的示例2,BMC单元从存储介质中获取到启动配置参数后,将启动配置参数指示的容器确定为待启动操作系统的容器,也即,将第二操作系统的容器确定为待启动操作系统的容器。
上述实施例中,计算设备运行第一操作系统时,若检测到发生目标事件,说明需要切换操作系统,基于此,计算设备从第一操作系统的容器跳转运行内存文件系统,并将基于第一操作系统的容器的标识确定的启动配置参数,写入存储介质中,之后,基于存储介质中的启动配置参数指示的待启动操作系统的容器,从内存文件系统直接跳转运行待启动操作系统的容器。由于是根据当前运行操作系统的容器的标识确定启动配置参数,并将启动配置参数写入存储介质,这样,在需要确定待启动操作系统的容器时,便可以通过存储介质中的启动配置参数进行确定,不仅提高了确定待启动操作系统的容器的便利性,还有助于提高所确定的待启动操作系统的容器的准确性。
此外,第一操作系统和第二操作系统使用的引导加载程序、内核和内存文件系统相同,因此,计算设备基于启动配置参数确定待启动操作系统的容器后,可以在不重启引导加载程序和内核的情况下,也即,不必退回至ROM引导程序,而是从第一操作系统的内存文件系统直接跳转运行待启动操作系统的容器,进而实现了快速启动待启动操作系统,这样,有助于缩短操作系统切换消耗的时间,提高操作系统切换的效率,进而提高用户的使用体验。
以下,结合图5对S304的不同实现方式进行示例性说明。
图5是根据一示例性实施例示出的另一种操作系统切换配置方法的流程图。示例性的,该操作系统切换方法可以包括以下S501-S507。
S501:计算设备加载引导加载程序和内核,从而运行第一操作系统的容器。
S502:当计算设备检测到发生目标事件,从第一操作系统的容器跳转运行内存文件系统。
S503:计算设备确定启动配置参数。
需要说明的,S501-S503的相关说明,可以参考上述S301-S303,此处不再赘述。
S504:计算设备确定系统切换类型是否为容器切换。
若确定结果为是,则执行下述S505。若确定结果为否,则执行下述S506。
本申请实施例中,系统切换类型可以包括容器切换或非容器切换。其中,容器切换也可以称为快速切换,非容器切换也可以称为全量切换或全量分区切换。
其中,容器切换用于指示系统切换过程中加载待启动操作系统的容器,换言之,不加载引导加载程序和内核等。示例性的,容器切换的路径为:当前操作系统的容器→当前操作系统的内存文件系统→待启动操作系统的容器。
其中,非容器切换用于指示系统切换过程中运行引导加载程序、内核以及待启动操作系统的容器。示例性的,非容器切换的路径为:当前操作系统的容器→当前操作系统的内存文件系统→ROM引导程序→待启动操作系统的引导加载程序→待启动操作系统的内核→待启动操作系统的内存文件系统→待启动操作系统的容器。
本申请实施例中,S504包括多种情况,以下,通过情况A至情况B进行示例性说明。
情况A:目标事件为系统切换请求。
若目标事件指示容器切换,则确定系统切换类型为容器切换。若目标事件指示非容器切换,则确定系统切换类型为非容器切换。
在一个示例中,系统切换请求指示了切换类型,计算设备的BMC单元可以通过系统切换请求指示的切换类型,确定系统切换类型是否为容器切换。这样,可以按照用户指示的切换类型进行系统切换,有助于提高用户的使用体验。
示例性的,系统切换请求包括切换标识,切换标识指示了切换类型,若切换标识指示了容器切换,确定系统切换类型为容器切换,若切换标识指示了非容器切换,确定系统切换类型为非容器切换。
在另一个示例中,系统切换请求指示了切换类型,BMC单元可以通过系统切换请求指示的切换类型以及多个应用程序的关闭操作是否满足预设条件,确定是否为容器切换。若切换标识指示了容器切换、且满足多个应用程序的关闭操作满足预设条件,则为容器切换,若切换标识指示了非容器切换或多个应用程序的关闭操作不满足预设条件,则为非容器切换。
这样,通过设置合适的预设条件,不仅有助于避免多个应用程序的崩溃而导致当前操作系统崩溃,还有助于避免当前操作系统的应用程序,影响后续启动的操作系统的应用程序的正常运行。
其中,多个应用程序的关闭操作满足预设条件,包括:多个应用程序中的每个应用程序均关闭成功,和/或,多个应用程序的关闭顺序与多个应用程序的启动顺序相反。
通过设置多个应用程序中的每个应用程序均关闭成功,可以避免当前操作系统的应用程序,影响后续启动的操作系统的应用程序的正常运行,而设置多个应用程序的关闭顺序与多个应用程序的启动顺序相反,有助于避免多个应用程序的崩溃而导致当前操作系统崩溃。
示例性的,在多个应用程序按照多个应用程序之间的依赖关系从内到外依次启动的情况下,可以认为多个应用程序按照多个应用程序之间的依赖关系从外到内依次关闭。
示例性的,第一操作系统的容器包括应用程序1、应用程序2和应用程序3。BMC单元的处理器启动第一操作系统的容器中的应用程序时,先启动应用程序1,再启动应用程序2,最后启动应用程序3,也就是说,多个应用程序的启动顺序为:应用程序1→应用程序2→应用程序3。在此基础上,对多个应用程序执行关闭操作的顺序为:应用程序3→应用程序2→应用程序1。
情况B:目标事件为系统升级完成。
在一个示例中,系统升级类型指示了切换类型,计算设备的BMC单元可以通过系统升级类型,确定系统切换类型是否为容器切换。例如,若操作系统升级时仅升级了容器,说明系统升级类型为容器升级,则BMC单元确定系统切换类型为容器切换。若操作系统升级时升级了整个操作系统,即同时升级了操作系统的引导加载程序、内核和容器等,说明系统升级类型为非容器升级,则BMC单元可以确定系统切换类型为非容器切换。
需要说明的,BMC单元可以通过系统日志查看系统升级类型,若系统日志中记录了最近一次操作系统升级时仅升级了容器,也就是说,未升级引导加载程序和内核,则系统升级类型为容器升级。若系统日志中记录了最近一次操作系统升级时同时升级了引导加载程序、内核和内存文件系统,则系统升级类型为非容器升级。
在另一个示例中,在目标事件为系统升级完成时,确定系统切换类型为容器切换。也就是说,无论系统升级类型为容器升级还是非容器升级,都确定系统切换类型为容器切换。
在又一个示例中,在目标事件为系统升级完成时,确定系统切换类型为非容器升级。也就是说,无论系统升级类型为容器升级还是非容器升级,都确定系统切换类型为非容器切换。
在又一个示例中,若系统升级类型为容器升级、且多个应用程序的关闭操作满足预设条件,确定系统切换类型为容器切换。
需要说明的,情况B的其他相关说明,可以参考上述情况A,此处不再赘述。
需要说明的,本申请实施例对S504与S502-S503的执行顺序不做限制。
S505:计算设备将启动配置参数写入易失性存储介质。
本申请实施例中,易失性存储介质可以为BMC的内存,
由于系统切换类型为容器切换时,BMC单元跳转运行内存文件系统后,不会继续跳转运行ROM引导程序,因此,BMC单元不会下电,基于此,将启动配置参数存储在易失性存储介质中,不仅可以保证能够获取到启动配置参数,还可以在BMC单元之后的下电过程中,自动清除启动配置参数,避免启动配置参数长久占用存储空间、影响正常的系统启动流程。
示例性的,易失性存储介质可以为BMC单元的内存,这样,有助于提高读写启动配置参时的速度,进而有助于提高系统启动的效率。
S506:计算设备运行将启动配置参数写入非易失性存储介质。
本申请实施例中,非易失性存储介质可以包括存储设备上的裸分区,或,可编程逻辑器件上的用户闪存(user flash memory,UFM)。
在一个示例中,计算设备的BMC单元包括存储设备,如:存储设备可以是嵌入式多媒体卡(embedded multi media card,EMMC)、与非型闪存(NANDFLASH)、或非型闪存(NORFLASH)、通用闪存存储器(universal flash storage,UFS)等,BMC单元可以将存储设备的部分储存区域划分为裸分区(也可以称为裸设备(raw device)或原始分区),该裸分区可以无文件系统格式。在此基础上,在需要确定待启动操作系统的容器时,BMC单元可以通过裸设备的固定偏移地址访问裸设备,以获取启动配置参数。
示例性的,参见图6中的(a),BMC单元确定待启动操作系统的容器之后,可以将待启动操作系统的容器的标识作为启动配置参数记录在init-options(初始化选项)中,并将init-options写入裸分区中。
在另一个示例中,计算设备的BMC单元可以包括可编程逻辑器件,如:可编程逻辑器件可以是复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)、现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)等。可编辑逻辑中包括UFM存储空间,其中,UFM存储空间是指用户可以使用的闪存存储空间。在此基础上,在需要确定待启动操作系统的容器时,BMC单元可以通过可编程逻辑器件提供的对外访问接口访问UFM存储空间,以获取启动配置参数。
示例性的,参见图6中的(b),BMC单元确定待启动操作系统的容器之后,可以将待启动操作系统的容器的标识作为启动配置参数记录在init-options(初始化选项)中,并将init-options写入可编程逻辑器件的UFM存储空间。
上述实施例中,计算设备提供了多种启动配置参数存储方式,如:容器启动时存储在易失性存储介质中,非容器启动时存储在非易失性存储介质中,这样,可以实现使用不同启动类型进行系统启动时,从不同的存储介质中获取启动配置参数,不仅有助于保证存储方式的多样性,还有助于充分利用计算设备的不同存储介质。
S507:计算设备基于启动配置参数,从内存文件系统跳转运行待启动操作系统的容器。
需要说明的,S507的相关说明,可以参考S305的说明,此处不再赘述。
在一个示例中,若系统切换类型为容器切换,计算设备的BMC单元将启动配置参数写入易失性存储介质后,可以卸载第一操作系统的根目录以及第一操作系统的容器所在的分区。之后,BMC单元从易失性存储介质读取启动配置参数,并基于启动配置参数确定待启动操作系统的容器,然后,从第一操作系统的内存文件系统直接跳转运行待启动操作系统的容器。
在另一个示例中,若系统切换类型为非容器切换,BMC单元将启动配置参数写入非易失性存储介质后,可以跳转运行ROM引导程序,并基于ROM引导程序指示的分区地址(即引导加载程序的分区地址),依次运行引导加载程序和内核,并在运行内核的过程中,基于内核中的切换配置模块、切换器等生成内存文件系统。在运行内存文件系统的过程中,BMC单元从非易失性存储介质中读取切的配置参数,并基于启动配置参数确定待启动操作系统的容器,然后,从内存文件系统直接跳转运行待启动操作系统的容器。
需要说明的,在该另一个示例中,BMC单元运行引导加载程序和内核,可以是第一操作系统的,或者,也可以是第二操作系统的,本申请实施例对此不做限制。
如图7所示,为本申请实施例提供的一种操作系统切换的示意图。以下,结合图7,对本申请实施例提供的操作系统切换过程进行示例性说明。
示例性的,BMC单元运行第一操作系统的容器(也可以称为原容器)时,用户触发目标事件,如:触发系统升级或系统切换,BMC单元检测到目标事件之后,对第一操作系统的容器中的多个应用程序执行关闭操作,以关闭第一操作系统的容器中的多个应用程序。之后,BMC单元确定系统切换类型是否为容器切换,若为系统切换类型为容器切换,则BMC单元执行容器启动流程,若系统切换类型不是容器切换,则BMC单元执行非容器切换流程,如:执行全量启动流程。
若BMC单元执行容器启动流程,BMC单元从第一操作系统的容器跳转运行第一操作系统的内存文件系统后,不跳转运行ROM引导程序,而是停留在运行第一操作系统的内存文件系统的阶段。在第一操作系统的运行内存文件系统的过程中,BMC单元将启动配置参数写入易失性存储介质,并卸载第一操作系统的根目录以及第一操作系统的容器所在的分区。
若执行全量启动流程,BMC单元从第一操作系统的容器跳转运行第一操作系统的内存文件系统,在运行第一操作系统的内存文件系统的过程中,将启动配置参数写入非易失性存储介质,之后,继续向ROM跳转,以退回至ROM引导程序,然后,基于ROM引导程序指示的分区地址,运行引导记载程序、内核以及内存文件系统。
之后,BMC单元获取启动配置参数,并基于启动配置参数,确定待启动操作系统的容器。示例性的,若启动配置参数为容器1的标识或空(NULL),BMC单元运行容器1(即待启动操作系统的容器),如:挂载容器1对应的分区,并挂载容器1的初始目录为根目录。若启动配置参数为容器2的标识,BMC单元运行容器2(即待启动操作系统的容器),如:挂载容器2对应的分区,并挂载容器2的初始目录为根目录。
之后,BMC单元通过chroot跳转根目录环境,如:启动配置参数指示了容器2的标识,则BMC单元跳转到容器2的初始目录对应的根目录,并通过容器2中的系统守护进程启动容器2中的多个应用程序。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,操作系统切换装置包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法,示例性的对操作系统切换装置进行功能模块的划分,例如,操作系统切换装置可以包括对应各个功能划分的各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
示例性的,图8示出了上述实施例中所涉及的操作系统切换装置(记为操作系统切换装置800)的一种可能的结构示意图,该操作系统切换装置800所执行的动作通过计算机设备实现或通过计算设备执行相应的软件实现。计算设备包括第一操作系统和第二操作系统,第一操作系统包括第一操作系统的容器,第二操作系统包括第二操作系统的容器,第一操作系统和第二操作系统使用的引导加载程序、内核和内存文件系统相同。操作系统切换装置800可以包括运行模块801、跳转模块802、配置模块803和切换模块804。运行模块801,用于加载引导加载程序和内核,从而运行第一操作系统的容器。例如,图3所示的S301。跳转模块802,用于当检测到发生目标事件,从第一操作系统的容器跳转运行内存文件系统。例如,图3所示的S302。配置模块803,用于基于第一操作系统的容器的标识,确定启动配置参数,并将启动配置参数写入计算设备的存储介质中,启动配置参数用于指示待启动操作系统的容器,待启动操作系统的容器为第一操作系统的容器或第二操作系统的容器。例如,图3所示的S303-S304。切换模块804,用于基于启动配置参数,从内存文件系统跳转运行待启动操作系统的容器。例如,图3所示的S305。
可选地,存储介质包括易失性存储介质;配置模块803具体用于:若系统切换类型为容器切换,将启动配置参数写入易失性存储介质;容器切换用于指示系统切换过程中加载待启动操作系统的容器。
可选地,存储介质还包括非易失性存储介质;配置模块803具体用于:若系统切换类型为非容器切换,将启动配置参数写入非易失性存储介质;非容器切换用于指示系统切换过程中加载引导加载程序和内核。
可选地,非易失性存储介质包括计算设备的裸分区或用户闪存UFM。
可选地,配置模块803具体用于:基于第一操作系统的容器的标识,确定第一操作系统的容器的标识为启动配置参数。
可选地,配置模块803具体用于:基于第一操作系统的容器的标识,确定第二操作系统的容器的标识为启动配置参数。
可选地,检测到发生目标事件,包括:检测到系统切换请求,或,检测到系统升级完成。
可选地,第一操作系统和第二操作系统使用相同的引导加载程序和内核,包括:第一操作系统和第二操作系统共用同一个引导加载程序和内核;或者,第一操作系统的引导加载程序的代码与第二操作系统的引导加载程序的代码相同,第一操作系统的内核的代码与第二操作系统的内核的代码相同。
关于上述可选方式的具体描述可以参见前述的方法实施例,此处不再赘述。此外,上述提供的任一种操作系统切换装置800的解释以及有益效果的描述均可参考上述对应的方法实施例,不再赘述。
本申请实施例还提供了一种计算设备,该计算设备包括处理器和存储器,处理器与存储器连接,存储器存储有计算机执行指令,处理器执行该计算机执行指令时实现上述实施例中的操作系统切换方法。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当该计算机程序在计算设备上运行时,使得该计算机执行上文提供的任一种计算设备所执行的方法。
关于上述提供的任一种计算机可读存储介质中相关内容的解释及有益效果的描述,均可以参考上述对应的实施例,此处不再赘述。
本申请实施例还提供了一种芯片。该芯片中集成了用于实现上述计算机设备的功能的控制电路和一个或者多个端口。可选的,该芯片支持的功能可以参考上文,此处不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可通过程序来指令相关的硬件完成。所述的程序可以存储于一种计算机可读存储介质中。上述提到的存储介质可以是只读存储器,随机接入存储器等。上述处理单元或处理器可以是中央处理器,通用处理器、特定集成电路(application specific integrated circuit,ASIC)、微处理器(digital signal processor,DSP),现场可编程门阵列(field programmable gatearray,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。
本申请实施例还提供了一种包含指令的计算机程序产品,当该指令在计算机上运行时,使得计算机执行上述实施例中的任意一种方法。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。应注意,本申请实施例提供的上述用于存储计算机指令或者计算机程序的器件,例如但不限于,上述存储器、计算机可读存储介质和通信芯片等,均具有非易失性(non-transitory)。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看附图、公开内容、以及所附权利要求书,可理解并实现公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种操作系统切换方法,其特征在于,用于计算设备,所述计算设备包括第一操作系统和第二操作系统,所述第一操作系统包括第一操作系统的容器,所述第二操作系统包括第二操作系统的容器;所述第一操作系统和所述第二操作系统使用的引导加载程序、内核和内存文件系统相同;所述方法包括:
加载所述引导加载程序和所述内核,从而运行所述第一操作系统的容器;
当检测到发生目标事件,从所述第一操作系统的容器跳转运行所述内存文件系统;
基于所述第一操作系统的容器的标识,确定启动配置参数,并将所述启动配置参数写入所述计算设备的存储介质中,所述启动配置参数用于指示待启动操作系统的容器,所述待启动操作系统的容器为所述第一操作系统的容器或所述第二操作系统的容器;
基于所述启动配置参数,从所述内存文件系统跳转运行所述待启动操作系统的容器。
2.根据权利要求1所述的方法,其特征在于,所述存储介质包括易失性存储介质;所述将启动配置参数写入所述计算设备的存储介质中,包括:
若系统切换类型为容器切换,将所述启动配置参数写入所述易失性存储介质;所述容器切换用于指示系统切换过程中加载待启动操作系统的容器。
3.根据权利要求1所述的方法,其特征在于,所述存储介质还包括非易失性存储介质;所述将启动配置参数写入所述计算设备的存储介质中,包括:
若系统切换类型为非容器切换,将所述启动配置参数写入所述非易失性存储介质;所述非容器切换用于指示系统切换过程中加载所述引导加载程序、所述内核以及待启动操作系统的容器。
4.根据权利要求3所述的方法,其特征在于,
所述非易失性存储介质包括所述计算设备的裸分区或用户闪存UFM。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述基于所述第一操作系统的容器的标识,确定启动配置参数,包括:
基于所述第一操作系统的容器的标识,确定所述第一操作系统的容器的标识为所述启动配置参数。
6.根据权利要求1-4中任一项所述的方法,其特征在于,所述基于所述第一操作系统的容器的标识,确定启动配置参数,包括:
基于所述第一操作系统的容器的标识,确定所述第二操作系统的容器的标识为所述启动配置参数。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述检测到发生目标事件,包括:
检测到系统切换请求,或者,检测到系统升级完成。
8.根据权利要求1-7中任一项所述的方法,其特征在于,
所述第一操作系统和所述第二操作系统使用相同的引导加载程序和内核,包括:
所述第一操作系统和所述第二操作系统共用同一个引导加载程序和内核;或者,所述第一操作系统的引导加载程序的代码与所述第二操作系统的引导加载程序的代码相同,所述第一操作系统的内核的代码与所述第二操作系统的内核的代码相同。
9.一种芯片,其特征在于,包括:处理器和存储器,所述处理器与存储器连接;所述存储器用于存储计算机执行指令,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述芯片实现如权利要求1-8中任一项所述的方法。
10.一种计算设备,其特征在于,包括:供电电源和如权利要求9所示的芯片,所述供电电源用于为所述芯片供电,所述芯片用于实现如权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311871807.8A CN117873580A (zh) | 2023-12-29 | 2023-12-29 | 操作系统切换方法、芯片及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311871807.8A CN117873580A (zh) | 2023-12-29 | 2023-12-29 | 操作系统切换方法、芯片及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117873580A true CN117873580A (zh) | 2024-04-12 |
Family
ID=90576695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311871807.8A Pending CN117873580A (zh) | 2023-12-29 | 2023-12-29 | 操作系统切换方法、芯片及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117873580A (zh) |
-
2023
- 2023-12-29 CN CN202311871807.8A patent/CN117873580A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10452404B2 (en) | Optimized UEFI reboot process | |
US10496424B2 (en) | Reconfiguring virtual machines | |
US7363484B2 (en) | Apparatus and method for selectively mapping proper boot image to processors of heterogeneous computer systems | |
KR102136906B1 (ko) | Bpram을 이용한 운영체제의 레이아웃 및 실행 | |
EP2339494A1 (en) | Automated modular and secure boot firmware update | |
KR20130004174A (ko) | 호스트로부터의 메모리 장치의 부팅 | |
US20080005551A1 (en) | Management of option rom | |
US11334427B2 (en) | System and method to reduce address range scrub execution time in non-volatile dual inline memory modules | |
US9235426B2 (en) | Multicore processor system, computer product, and notification method for updating operating system | |
WO2022105595A1 (zh) | 嵌入式设备的系统升级方法、装置及嵌入式设备 | |
US11861349B2 (en) | Modular firmware updates in an information handling system | |
US20200364040A1 (en) | System and Method for Restoring a Previously Functional Firmware Image on a Non-Volatile Dual Inline Memory Module | |
US20200371694A1 (en) | System and Method for Persistent Memory Rotation Based on Remaining Write Endurance | |
US7577814B1 (en) | Firmware memory management | |
CN117873580A (zh) | 操作系统切换方法、芯片及设备 | |
CN118113355A (zh) | 操作系统切换方法、芯片及设备 | |
CN117873579A (zh) | 操作系统跳转方法、芯片及设备 | |
CN113849230A (zh) | 服务器启动方法、装置、电子设备及可读存储介质 | |
CN117950733A (zh) | 计算设备、操作系统启动方法、运行方法及装置 | |
CN117891480A (zh) | 操作系统升级方法、芯片及设备 | |
US20230350755A1 (en) | Coordinated operating system rollback | |
CN103092632A (zh) | 一种Vxworks操作系统的安装方法 | |
CN110928582B (zh) | 信息处理设备和配置信息处理设备的目标装置的方法 | |
CN116841789A (zh) | 一种内存故障处理方法、装置、设备及介质 | |
CN117609009A (zh) | 测试方法、服务器、管理设备及测试系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |