CN116521209B - 操作系统的升级方法及装置、存储介质及电子设备 - Google Patents
操作系统的升级方法及装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN116521209B CN116521209B CN202310812515.0A CN202310812515A CN116521209B CN 116521209 B CN116521209 B CN 116521209B CN 202310812515 A CN202310812515 A CN 202310812515A CN 116521209 B CN116521209 B CN 116521209B
- Authority
- CN
- China
- Prior art keywords
- operating system
- flash memory
- core
- processor
- dual
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 110
- 238000003860 storage Methods 0.000 title claims abstract description 23
- 230000015654 memory Effects 0.000 claims abstract description 292
- 230000009977 dual effect Effects 0.000 claims abstract description 179
- 238000005192 partition Methods 0.000 claims abstract description 124
- 238000012545 processing Methods 0.000 claims description 70
- 230000003993 interaction Effects 0.000 claims description 49
- 238000004891 communication Methods 0.000 claims description 43
- 230000004044 response Effects 0.000 claims description 37
- 238000004590 computer program Methods 0.000 claims description 16
- 230000001360 synchronised effect Effects 0.000 claims description 14
- 230000008569 process Effects 0.000 description 28
- 230000006870 function Effects 0.000 description 11
- 238000013461 design Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000005316 response function Methods 0.000 description 3
- 239000000758 substrate Substances 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000007781 signaling event Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1456—Hardware arrangements for backup
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Hardware Redundancy (AREA)
Abstract
本申请实施例提供了一种操作系统的升级方法及装置、存储介质及电子设备,该方法包括:根据第一系统升级指令,获取双操作系统镜像,第一系统升级指令用于将多核处理器上运行的基板管理控制器的单操作系统升级为双操作系统,双操作系统镜像是与双操作系统对应的镜像文件,单操作系统是从与多核处理器对应的第一指定闪存的引导分区运行的;将双操作系统镜像烧写至与多核处理器对应的第二指定闪存中,第二指定闪存是与第一指定闪存不同的闪存;在第二指定闪存的引导分区为多核处理器的操作系统进行系统重启所执行的引导分区的情况下,重启多核处理器的操作系统,以通过第二指定闪存引导分区引导执行第二指定闪存中的双操作系统镜像来启动双操作系统。
Description
技术领域
本申请实施例涉及计算机领域,具体而言,涉及一种操作系统的升级方法及装置、存储介质及电子设备。
背景技术
基板管理控制器(Baseboard Management Controller,BMC)是用来管理服务器硬件的基板控制单元,它有自己完整且独立的操作系统,整个工作环境不需要借助于服务器操作系统(Operating System,OS)端的硬件资源或者软件资源,当服务器上电,基板管理控制器可以在主机操作系统端还未开机时就开始检测和控制服务器一些硬件资源的状态,同时对异常的状态进行处理和上报。目前,基板管理控制器一般采用单一操作系统,并且需要支持双闪存镜像备份功能。而但随着半导体技术的发展,出现了单处理器同构多核、单处理器异构多核等多样的处理器。随着对服务器需求量的增加,对服务器的业务量和算力需求也在增长,对基板管理控制器管理服务器的实时性也提出了要求,在这种情况下,需要基板管理控制器兼顾系统性能和实时性。
目前,通常采用多颗处理器的方案,即,一个高性能处理器运行一种操作系统,实现基板管理控制器管理的高性能,再搭配一个单片机运行另一操作系统,提高对服务器监管的实时响应功能。
然而,由于两个操作系统会伴随着大量和频繁的数据交换,则会严重影响系统性能。由此可见,相关技术中的操作系统升级方法,由于两个操作系统之间存在大量和频繁的数据交换导致的系统性能降低的问题。
发明内容
本申请实施例提供了一种操作系统的升级方法及装置、存储介质及电子设备,以至少解决相关技术中的操作系统升级方法由于两个操作系统之间存在大量和频繁的数据交换导致的系统性能降低的问题。
根据本申请的一个实施例,提供了一种操作系统的升级方法,包括:响应于获取到的第一系统升级指令,获取双操作系统镜像,其中,所述第一系统升级指令用于将多核处理器上运行的基板管理控制器的单操作系统升级为双操作系统,所述双操作系统镜像是与所述双操作系统对应的镜像文件,所述单操作系统是从与所述多核处理器对应的第一指定闪存的引导分区运行的;将所述双操作系统镜像烧写至与所述多核处理器对应的第二指定闪存中,其中,所述第二指定闪存是与所述第一指定闪存不同的闪存;在所述第二指定闪存的引导分区为所述多核处理器的操作系统进行系统重启所执行的引导分区的情况下,重启所述多核处理器的操作系统,以通过所述第二指定闪存的引导分区引导执行所述第二指定闪存中的所述双操作系统镜像来启动所述双操作系统。
根据本申请的又一个实施例,提供了一种操作系统的升级装置,包括:第一获取单元,用于响应于获取到的第一系统升级指令,获取双操作系统镜像,其中,所述第一系统升级指令用于将多核处理器上运行的基板管理控制器的单操作系统升级为双操作系统,所述双操作系统镜像是与所述双操作系统对应的镜像文件,所述单操作系统是从与所述多核处理器对应的第一指定闪存的引导分区运行的;第一烧写单元,用于将所述双操作系统镜像烧写至与所述多核处理器对应的第二指定闪存中,其中,所述第二指定闪存是与所述第一指定闪存不同的闪存;第一重启单元,用于在所述第二指定闪存的引导分区为所述多核处理器的操作系统进行系统重启所执行的引导分区的情况下,重启所述多核处理器的操作系统,以通过所述第二指定闪存的引导分区引导执行所述第二指定闪存中的所述双操作系统镜像来启动所述双操作系统。
根据本申请的又一个实施例,还提供了一种基板管理控制器BMC芯片,其中,包括:存储单元以及与所述存储单元连接的处理单元,所述存储单元用于存储程序,所述处理单元用于运行所述程序,以执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本申请实施例,采用将多核处理器上的基板管理控制器的单操作系统升级为双操作系统的方式,通过响应于获取到的第一系统升级指令,获取双操作系统镜像,其中,第一系统升级指令用于将多核处理器上运行的基板管理控制器的单操作系统升级为双操作系统,双操作系统镜像是与双操作系统对应的镜像文件,单操作系统是从与多核处理器对应的第一指定闪存的引导分区运行的;将双操作系统镜像烧写至与多核处理器对应的第二指定闪存中,其中,第二指定闪存是与第一指定闪存不同的闪存;在第二指定闪存的引导分区为多核处理器的操作系统进行系统重启所执行的引导分区的情况下,重启多核处理器的操作系统,以通过第二指定闪存的引导分区引导执行第二指定闪存中的双操作系统镜像来启动双操作系统,由于直接将在多核处理器上运行的单操作系统升级为双操作系统,即,通过同一个多核处理器同时运行基板管理控制器的双操作系统,双操作系统中的不同操作系统可以运行在多核处理器的不同处理器核心上,而不同操作系统之间的数据交换可以通过多核处理器中不同处理器核心之间的数据交互接口和通讯总线执行,即,不会涉及到不同处理器之间的数据交互,可以降低不同操作系统之间的数据交换对于系统性能的影响,达到提高系统性能的技术效果,进而解决了相关技术中的操作系统升级方法由于两个操作系统之间存在大量和频繁的数据交换导致的系统性能降低的问题。
附图说明
图1是根据本申请实施例的一种操作系统的升级方法的硬件环境示意图;
图2是根据本申请实施例的一种操作系统的升级方法的流程图;
图3是根据本申请实施例的一种操作系统的升级方法的示意图;
图4是根据本申请实施例的另一种操作系统的升级方法的示意图;
图5是根据本申请实施例的又一种操作系统的升级方法的流程图;
图6是根据本申请实施例的又一种操作系统的升级方法的流程图;
图7是根据本申请实施例的又一种操作系统的升级方法的流程图;
图8是根据本申请实施例的一种操作系统的升级装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在服务器、移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是根据本申请实施例的一种操作系统的升级方法的硬件环境示意图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的操作系统的升级方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
根据本申请实施例的一个方面,提供了一种操作系统的升级方法,以由处理器来执行本实施例中的操作系统的升级方法为例,图2是根据本申请实施例的一种操作系统的升级方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,响应于获取到的第一系统升级指令,获取双操作系统镜像,其中,第一系统升级指令用于将多核处理器上运行的基板管理控制器的单操作系统升级为双操作系统,双操作系统镜像是与双操作系统对应的镜像文件。
本实施例中的操作系统的升级方法可以应用到通过执行基板管理控制器的操作系统对应的镜像文件来启动对应的操作系统的场景,基板管理控制器是用来管理服务器硬件的基板控制单元,它有自己完整且独立的操作系统。与基板管理控制器的操作系统对应的镜像文件可以烧写到运行基板管理控制器的操作系统的处理器外部的指定闪存(flash)中,指定闪存可以具有引导分区(boot分区),该引导分区用于引导操作系统的启动。可选地,为了方便进行操作系统升级,指定闪存的数量可以为至少两个,其中一个指定闪存为主闪存,即,激活的(active)闪存,当前基板管理控制器的操作系统是从该指定闪存的引导分区运行的,另一个为备用闪存,即,未激活的(inactive)闪存,备用闪存和主闪存之间可以进行数据同步,以便在必要时进行主-备切换,将备用闪存切换为主闪存,从而基板管理控制器的操作系统可以从切换后的主闪存的引导分区运行。此外,某一个指定闪存的引导分区可以是系统(基板管理控制器的操作系统)每次重启所执行的引导分区,即,系统每次重启时默认启动的引导分区。
这里,上述的指定闪存可以是指计算机或设备中的特定闪存(Flash Memory)存储区域,其可以用于存储固件、操作系统或其他关键数据。指定闪存的引导分区可以是指存储在闪存存储区域中的启动程序,用于引导设备的启动过程。这个启动程序负责将系统从初始状态引导到正常工作状态,执行必要的初始化、自检、加载和配置等操作。
相关技术中,通常基板管理控制器一般采用单一操作系统,并且需要支持双闪存镜像备份功能,单一操作系统处理镜像升级的流程如图3所示,该升级流程可以是BMC单操作系统双镜像升级流程,可以包括以下步骤:
步骤S302,BMC镜像上传到SDRAM(Synchronous Dynamic Random Access Memory,同步动态随机存取存储器)。
BMC外接的flash包括flash0和flash1,flash0处于active状态(active flash0),flash1处于inactive状态(inactive flash1),flash0和flash1在运行的过程中会进行数据同步。在进行单一操作系统到双操作系统的升级时,可以把BMC镜像上传到SDRAM。
步骤S304,对镜像数据进行校验,判断镜像数据校验是否成功,如果校验成功,执行步骤S306,否则,如果校验失败,重新执行步骤S302,重新上传BMC镜像。
步骤S306,将BMC镜像烧写到flash1。
步骤S308,烧写结束,重启BMC。
随着对基板管理控制器管理服务器的系统性能和实时性需求的增加,为了兼顾系统性能和实时性,可以采用多颗处理器的方案,一个高性能处理器运行一种操作系统,实现基板管理控制器管理的高性能,再搭配一个单片机运行另一操作系统,提高对服务器监管的实时响应功能。然而,由于两个操作系统分别运行在不同的处理器上,而两个操作系统之间通常会伴随着大量和频繁的数据交换,从而影响系统性能。
需要说明的是,为提高对服务器监管的实时响应功能所运行的操作系统(第一操作系统,例如,上述单片机运行的操作系统)的响应速度高于为实现基板管理控制器管理的高性能所运行的操作系统(第二操作系统,例如,高性能处理器运行的操作系统)的响应速度。在实际应用中,两个操作系统的设计会随着大量和频繁的数据交换,如果没有合适的接口进行数据传输,则严重影响系统性能。
这里,第一操作系统可以是具有明确固定的时间约束的操作系统,所有处理过程(任务调度)需要在固定的时间约束内完成,否则系统会出错,其可以是实时操作系统(RealTime Operating System,简称RTOS),例如,FreeRTOS、RTLinux等,还可以是其他嵌入式系统中的实时操作系统。第二操作系统不具备该特征,第二操作系统一般采用公平任务调度算法,线程/进程数量增加时,就需要分享CPU(中央处理器,Central Processing Unit)时间,任务调试具有不确定性,可称为非实时操作系统,例如,contiki、HeliOS、Linux(全称GNU/Linux,是一套可自由传播的类Unix操作系统)等,还可以是其他嵌入式系统中的非实时操作系统,在本申请的部分示例中,以第一操作系统为RTOS系统,第二操作系统为Linux系统为例进行说明。
这里,RTOS系统是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的操作系统;而Linux系统是一个基于POSIX(Portable Operating System Interface,可移植操作系统接口)的多用户、多任务、支持多线程和多CPU的操作系统。
为了至少部分解决上述技术问题,以兼顾系统性能和实时性,在本实施例中,通过同一个多核处理器同时运行基板管理控制器的双操作系统,双操作系统中的不同操作系统可以运行在多核处理器的不同处理器核心上,而不同操作系统之间的数据交换可以通过多核处理器中不同处理器核心之间的数据交互接口和通讯总线执行,即,不会涉及到不同处理器之间的数据交互,可以降低不同操作系统之间的数据交换对于系统性能的影响,从而提高系统性能。多核处理器可以是具有多个处理器核心的处理器(例如,八核处理器),每个处理核心都可以独立执行指令,从而提高处理器的并行处理能力。多核处理器可以同时执行多个任务,并且可以将负载均衡在不同的核心之间,提高整体系统的性能和效率。可选地,多核处理器可以是同构多核处理器(同构多核,即,homogeneous,是指同一片处理器上所有核心具有相同的架构),也可以是异构多核处理器(异构多核,即,heterogeneous,是指同一片处理器上针对不同的需求,采用不同的核心架构,从而提高计算性能或者实时性能)。在本申请的部分示例中,以异构多核处理器为例进行说明。
这里,为了在多核处理器上运行双操作系统(例如,Linux系统+RTOS系统)的方案,同时方便将大量单一系统的产品升级成为双系统的产品,本实施例中提供了一种单一系统升级为双系统的方案,以解决上述系统升级问题。这里,多核处理器可以是BMC芯片上的多核处理器,进行操作系统升级可以是由BMC芯片或者BMC芯片上的多核处理器执行的。以BMC芯片为例,BMC芯片可以获取第一系统升级指令,第一系统升级指令可以是从另一设备接收到的,也可以是由BMC芯片自动生成的,该第一系统升级指令用于将多核处理器上运行的基板管理控制器的单操作系统升级为双操作系统,单操作系统可以是前述的第二操作系统,双操作系统可以包括前述的第一操作系统和第二操作系统。
在获取到第一系统升级指令之后,可以响应于获取到的第一系统升级指令,获取双操作系统镜像,这里,双操作系统镜像是与双操作系统对应的镜像文件,镜像文件可以是一个包含操作系统、软件和配置等内容的文件,可以用于将一个系统或软件复制到另一个计算机上,以实现系统或软件的升级、备份、恢复或分发等操作。双操作系统镜像可以是包含两个操作系统的镜像文件,其可以包含两个不同操作系统的完整安装文件和配置信息。使用双操作系统镜像可以让多核处理器上同时运行两个不同的操作系统,例如,Linux系统和RTOS系统。
步骤S204,将双操作系统镜像烧写至与多核处理器对应的第二指定闪存中,其中,第二指定闪存是与第一指定闪存不同的闪存。
可选地,在本实施例中,双操作系统镜像可以首先上传到SDRAM中,在上传到SDRAM中之后,可以对镜像数据进行校验,如果检验成功,则执行后续烧写到指定内存的步骤,否则,如果校验失败,则可以重新将双操作系统镜像上传到SDRAM中。
多核处理器可以至少外接两个指定闪存(例如,flash0和flash1),每个指定闪存均具有引导分区,其中,上述单操作系统可以是从其中的第一指定闪存的引导分区运行的。在获取到双操作系统镜像之后,可以将双操作系统镜像烧写至与多核处理器对应的第二指定闪存中。
这里,烧写(Flashing)是指将新的软件、固件或数据写入到可编程设备(如芯片、存储器、固态硬盘等)中的过程。烧写通常用于更新设备的固件或操作系统,以修复错误、提供新功能或改善性能。这个过程涉及将新的软件或数据传输到设备的存储介质中,取代原有的内容。常见的烧写方式包括使用专用的烧写工具、软件或通过计算机与设备之间的连接接口进行烧写。在计算机领域,烧写通常用于更新主板的BIOS(Basic Input OutputSystem,基本输入输出系统)固件、固态硬盘的固件、路由器的操作系统等。在嵌入式系统中,烧写常用于更新嵌入式设备的固件。
需要注意的是,烧写过程需要谨慎操作,因为如果烧写错误或中断,可能会导致设备损坏或无法正常工作。因此,在进行烧写操作前,通常会进行备份和验证,以确保数据的完整性和设备的稳定性。
步骤S206,在第二指定闪存的引导分区为多核处理器的操作系统进行系统重启所执行的引导分区的情况下,重启多核处理器的操作系统,以通过第二指定闪存的引导分区引导执行第二指定闪存中的双操作系统镜像来启动双操作系统。
系统重启默认的引导分区可能是第一指定闪存的引导分区,也可能是第二指定闪存的引导分区。如果第二指定闪存的引导分区为多核处理器的操作系统进行系统重启所执行的引导分区,此时,可以重启多核处理器的操作系统(即,基板管理控制器的操作系统)。由于系统重启时会读取该第二指定闪存中的操作系统镜像,确定是否存在双操作系统镜像(此时,BMC芯片可以确定需要启动的是双操作系统),而第二指定闪存中存在双操作系统镜像,则可以通过第二指定闪存的引导分区引导执行第二指定闪存中的双操作系统镜像,从而启动双操作系统。
例如,对于flash0和flash1,如果flash0的boot分区正常,则系统每次重启都是执行flash0的boot分区。由单一操作系统升级为双操作系统的过程,会根据之前单一操作系统运行的flash镜像编号不同稍有差异。如果升级前的单一操作系统运行的是flash1,则升级双系统时会烧写备份镜像到flash0。升级完成后系统重启时,系统默认会启动flash0的boot分区,此时启动的就是双操作系统的boot分区,直接可以运行双操作系统。
需要说明的是,本实施例中提供的可以是一种将多核处理器(例如,异构多核处理器)上运行的单一操作系统镜像升级为双操作系统镜像的升级方法(其可以是BMC升级为双系统镜像中的升级重启),可以实现在不需要修改硬件的情况下将已运行部署的单一操作系统的服务器平滑稳定升级到双操作系统,实现BMC既兼顾性能又兼顾实时性的应用场景,可以提升产品性能和用户的使用体验,同时可以节省成本。
通过上述步骤,通过响应于获取到的第一系统升级指令,获取双操作系统镜像,其中,第一系统升级指令用于将多核处理器上运行的基板管理控制器的单操作系统升级为双操作系统,双操作系统镜像是与双操作系统对应的镜像文件,单操作系统是从与多核处理器对应的第一指定闪存的引导分区运行的;将双操作系统镜像烧写至与多核处理器对应的第二指定闪存中,其中,第二指定闪存是与第一指定闪存不同的闪存;在第二指定闪存的引导分区为多核处理器的操作系统进行系统重启所执行的引导分区的情况下,重启多核处理器的操作系统,以通过第二指定闪存的引导分区引导执行第二指定闪存中的双操作系统镜像来启动双操作系统,可以解决相关技术中的操作系统升级方法由于两个操作系统之间存在大量和频繁的数据交换导致的系统性能降低的问题,提高了系统性能。
在一个示范性实施例中,在将双操作系统镜像烧写至与多核处理器对应的第二指定闪存中之后,上述方法还包括:
S11,禁用多核处理器中与双操作系统中的第一操作系统对应的处理器核心,其中,双操作系统包括第一操作系统和与单操作系统对应的第二操作系统,第一操作系统和第二操作系统运行在多核处理器的不同处理器核心上,与第一操作系统对应的处理器核心是用于运行第一操作系统的处理器核心。
与前述实施例中类似的,双操作系统可以包括第一操作系统和第二操作系统,第二操作系统是与单操作系统对应的操作系统。多核处理器的多个处理器核心中可以指定运行各个操作系统的处理器核心,其中,第一操作系统对应的指定处理器核心可以为第一处理器核心,第二操作系统对应的指定处理器核心可以为第二处理器核心,对于异构多核处理器,第一处理器核心可以为异构核,即,单操作系统对应的处理器核心架构不同的处理器核心。
与第一操作系统对应的处理器核心是用于运行第一操作系统的处理器核心,而与第二操作系统对应的处理器核心是用于运行第二操作系统的处理器核心。为了保证业务的正常运行,可以在每次系统重启时均启动与第二操作系统对应的处理器核心,即,与第二操作系统对应的处理器核心一直处于启动状态。而考虑到实时性业务的处理需求具有一定的突发性,不会一直有实时性业务业务需要第一操作系统进行处理,在有系统重启需求时,可以禁用多核处理器中与第一操作系统对应的处理器核心。
例如,以异构多核处理器为例,处理器核心为:ARM(一种处理器架构)双核cortex-A7(一种处理器核心)+ARM Cortex-M3核(一种处理器核心),如果用户使用双操作系统(Linux系统和RTOS系统),则A7核固定跑Linux系统,M3核跑RTOS系统。由于RTOS系统实时性比较高,可以运行一些复杂度低、高实时性、重复性高的业务,A7核主频高,适合做高性能应用。这样既能满足客户的BMC高性能应用,也能满足同时兼顾高实时性的需求。当用户使用单一Linux系统的情况下,则仅使用A7核,M3核不使用,做关闭处理。在需要进行系统重启时,可以先关闭异构核(即,M3)。
通过本实施例,在进行系统重启前,禁用运行双操作系统中与单操作系统不同的操作系统所对应的处理器核心,可以减少处理资源浪费,提高处理资源利用的合理性。
在一个示范性实施例中,禁用多核处理器中与双操作系统中的第一操作系统对应的处理器核心,包括:
S21,通过写使能和禁止与第一操作系统对应的处理器核心启动的寄存器禁用与第一操作系统对应的处理器核心。
禁用与第一操作系统对应的处理器核心(例如,前述的异构核)可以是通过写使能和禁止与第一操作系统对应的处理器核心启动的寄存器实现的。写使能(Write Enable)和禁止(Disable)是指控制对某个设备或功能进行写操作的启用和禁用。当写使能被启用时,表示允许对设备或功能进行写操作,这意味着可以向设备写入数据、进行数据修改或更新。写使能通常是通过特定的信号或控制位(如写使能引脚)来实现的。相反,当写使能被禁止时,表示不允许对设备或功能进行写操作,这意味着无法向设备写入数据或进行修改。禁止写操作可以用于保护设备或功能的数据安全性或防止误操作。写使能和禁止常用于各种设备和功能中,如存储器、寄存器、接口等。
例如,双系统因为启用了异构核,升级重启前需要通过写使能和禁止异构核启动的寄存器关闭异构核。如图4所示,双系统镜像执行升级的流程可以包括以下步骤:
步骤S402,BMC芯片上电。
步骤S404,flash0的boot启动,根据配置引导OS启动。
步骤S406,根据用户升级指令获取新镜像并烧写到备份flash(即,flash1)。
步骤S408,flash烧写完成后寄存器1e6e2a00写入0×0禁用异构核。
步骤S410,禁用异构核后执行系统重启。
通过本实施例,通过写使能和禁止处理器核心启动的寄存器来禁用处理器核心,可以提高处理器核心禁用的便捷性。
在一个示范性实施例中,在将双操作系统镜像烧写至与多核处理器对应的第二指定闪存中之后,上述方法还包括:
S31,在第一指定闪存的引导分区为多核处理器的操作系统进行系统重启所执行的引导分区的情况下,重启多核处理器的操作系统,并将第二指定闪存中的双操作系统镜像同步至第一指定闪存;
S32,再次重启多核处理器的操作系统,以通过第一指定闪存的引导分区引导执行第一指定闪存中的双操作系统镜像来启动双操作系统。
在本实施例中,多核处理器的操作系统进行系统重启所执行的引导分区也可能是第一指定闪存的引导分区。例如,单一操作系统升级为双操作系统时,可以根据之前单一操作系统运行的flash镜像编号不同有差异。如果flash0的boot分区正常,则系统每次重启都是执行flash0的boot分区。而升级前的单一系统也可以是从flash0运行的。在此场景下,也可以重启多核处理器的操作系统。操作系统重启的方式与前述实施例中类似,在此不做赘述。
由于系统重启所执行的引导分区是第一指定闪存的引导分区,由于此时双操作系统镜像烧写到了第二指定闪存,因此,系统重启时,双操作系统重启不成功,此时,可以将第二指定闪存中的双操作系统镜像同步至第一指定闪存。由于与第一操作系统对应的处理器核心已关闭(如前述实施例中类似的,与第一操作系统对应的处理器在系统重启前被关闭),或者,与第一操作系统对应的处理器核心虽然已启动,但由于启动时第一指定闪存中没有第一操作系统的操作系统镜像,该处理器核心可能运行异常,因此,可以再次重启多核处理器的操作系统。此时,第一指定闪存中包含双操作系统镜像,可以通过第一指定闪存的引导分区引导执行第一指定闪存中的双操作系统镜像,以启动双操作系统。
例如,升级前的单一操作系统是从flash0的boot分区运行,则升级镜像(例如,双操作系统镜像)烧写到flash1,此时flash0的boot分区得不到更新,需要升级完成后执行系统重启,等待Linux系统将flash1中的镜像同步到flash0,同步完成后再次执行系统重启,可以实现真正的启动双操作系统。
通过本实施例,当镜像烧写对应的引导分区不是多核处理器的操作系统进行系统重启所执行的引导分区时,将镜像同步到多核处理器的操作系统进行系统重启所执行的引导分区之后进行系统重启,可以提高系统启动的成功率。
在一个示范性实施例中,重启多核处理器的操作系统,并将第二指定闪存中的双操作系统镜像同步至第一指定闪存,包括:
S41,重启多核处理器的操作系统,以通过第一指定闪存的引导分区引导启动第一指定闪存中的操作系统镜像;
S42,在检测到第一指定闪存中不存在双操作系统镜像的情况下,将第二指定闪存中的双操作系统镜像同步至第一指定闪存。
在本实施例中,在第一次重启多核处理器的操作系统时,可以通过第一指定闪存的引导分区引导启动第一指定闪存中的操作系统镜像,由于此时需要执行的是双操作系统镜像,但是第一指定闪存中不存在双操作系统镜像,可以检测到第一指定闪存中不存在双操作系统镜像,此时可以将第二指定闪存中的双操作系统镜像同步至第一指定闪存。
为了保证系统重启的安全性,同时节省处理资源,可以采用与前述实施例中类似的方式在系统重启之前关闭与第一操作系统对应的处理器核心,即,与第一操作系统对应的处理器核心处于禁用状态,而在第一次进行系统重启时,由于没有检测到与第一操作系统对应的操作系统镜像,此时不启动与第一操作系统对应的处理器核心,那么,在再次重启多核处理器的操作系统之前,与第一操作系统对应的处理器核心处于禁用状态。为了保证双操作系统均正常运行,可以再次重启多核处理器的操作系统,从而在检测到与第一操作系统对应的操作系统镜像时启动与第一操作系统对应的处理器核心。
例如,双系统镜像备份到flash1,关闭异构核之后执行系统重启。由于双操作系统镜像并未备份到flash0,系统重启后将flash1中的双操作系统镜像同步到flash0,再次进行系统重启可以启动异构核。
通过本实施例,将双操作系统镜像同步至多核处理器的操作系统进行系统重启所执行的引导分区,且在将双操作系统镜像同步到多核处理器的操作系统进行系统重启所执行的引导分区之前关闭升级的操作系统对应的处理器核心,可以提高处理资源利用的合理性。
在一个示范性实施例中,双操作系统包括第一操作系统和与单操作系统对应的第二操作系统,在重启多核处理器的操作系统时,多核处理器中与单操作系统对应的处理器核心处于启动状态。
与前述实施例中类似的,双操作系统可以包括第一操作系统和与单操作系统对应的第二操作系统。多核处理器的多个处理器核心中可以指定运行各个操作系统的处理器核心,与第一操作系统对应的处理器核心是用于运行第一操作系统的处理器核心,而与第二操作系统对应的处理器核心是用于运行第二操作系统的处理器核心。
为了保证业务的正常运行,可以在重启多核处理器的操作系统时均启动与单操作系统对应的处理器核心,即,与多核处理器中与单操作系统对应的处理器核心一直处于启动状态。
例如,以异构多核处理器为例,处理器核心为:ARM双核cortex-A7+ARM Cortex-M3核,如果用户使用双操作系统(Linux系统和RTOS系统),则A7核固定跑Linux系统,M3核跑RTOS系统,如果用户使用单操作系统(Linux系统),则仅使用A7核,在需要进行系统重启的情况下,A7核会一直处于启动状态。
通过本实施例,在进行系统重启时,保持与单操作系统对应的处理器核心一直处于启动状态,可以保证业务的稳定运行,提高系统性能。
在一个示范性实施例中,在重启多核处理器的操作系统之后,上述方法还包括:
S51,执行第二指定闪存的引导分区中的二级程序加载器,其中,二级程序加载器用于引导启动第二指定闪存中的操作系统镜像;
S52,通过二级程序加载器引导执行第二指定闪存中的通用引导加载程序;
S53,通过通用引导加载程序依次引导执行第一操作系统镜像和第二操作系统镜像,以依次启动第一操作系统和第二操作系统。
在本实施例中,可以通过二级程序加载器(Second Program Loader,SPL)进行操作系统的启动引导,这里,SPL用于引导系统启动,其属于uboot(Universal Boot Loader,通用引导加载程序)第一阶段执行的代码,可以搬移uboot第二阶段代码到内存中运行,主要负责装载操作系统到RAM中的程序代码。这里,uboot是一种用于嵌入式系统的引导加载程序,是一种遵循GPL(General Public License,通用公共许可协议)协议的开源软件,可以看作是一个裸机综合例程,主要用于嵌入式系统的引导加载程序,可以支持多种不同的计算机系统结构,例如,PPC、ARM、AVR32、MIPS、x86、68k、Nios与MicroBlaze等。
在重启多核处理器的操作系统时,可以执行第二指定闪存的引导分区中的二级程序加载器,该二级程序加载器用于引导启动第二指定闪存中的操作系统镜像,这里,重启多核处理器的操作系统时可以首先唤醒与第二操作系统对应的处理器核心,通过二级程序加载器,可以引导执行第二指定闪存中的通用引导加载程序;而通过通用引导加载程序依次引导执行第一操作系统镜像和第二操作系统镜像,从而可以依次启动第一操作系统和第二操作系统。
通过本实施例,通过二级程序加载器引导运行对应的操作系统,可以兼容于已有的系统启动流程,提高了系统启动的效率。
在一个示范性实施例中,通过通用引导加载程序依次引导执行第一操作系统镜像和第二操作系统镜像,包括:
S61,在检测到第二指定闪存中存在第一操作系统镜像的情况下,通过通用引导加载程序将第一操作系统镜像复制到为第一操作系统预留的双倍速率同步动态随机存储器中;
S62,通过通用引导加载程序引导启动与第一操作系统对应的处理器核心,以通过与第一操作系统对应的处理器核心启动第二指定闪存中的第一操作系统镜像来运行第一操作系统。
在本实施例中,如果检测到第二指定闪存中存在第一操作系统镜像,为了启动第一操作系统,可以通过通用引导加载程序将第一操作系统镜像复制到为第一操作系统预留的双倍速率同步动态随机存储器(Double Data Rate SDRAM,DDR)中,并通过通用引导加载程序引导启动与第一操作系统对应的处理器核心,从而可以通过与第一操作系统对应的处理器核心启动第二指定闪存中的第一操作系统镜像,以运行第一操作系统。
例如,如图5所示,单一操作系统升级到双操作系统的启动过程的处理流程可以包括以下步骤:
步骤S502,在系统重启时,判断当前运行的是否是flash0上的单操作系统镜像,如果是,执行步骤S504,否则,执行步骤S510。
步骤S504,升级双操作系统镜像到备份flash1并关闭异构核,执行系统重启。
步骤S506,执行flash0上的boot分区。
步骤S508,系统启动后复制更新flash1中的双操作系统镜像到flash0,结束后执行系统重启。
步骤S510,如果当前运行flash1的单操作系统镜像,则升级双操作系统镜像到备份flash0并关闭异构核重启。
步骤S512,执行flash0的boot分区的SPL。
步骤S514,执行rtos_init,以清空预留给RTOS的内存。
步骤S516,执行启动RTOS(即,RTOS系统),检查当前运行的flash中有RTOS分区并将该分区RTOS镜像拷贝到预留给RTOS的DDR里面,启动异构核,执行RTOS。
通过本实施例,通过引导执行通用引导加载程序,引导依次运行对应的操作系统,可以提高系统引导运行的效率。
在一个示范性实施例中,在通过通用引导加载程序依次引导执行第一操作系统镜像和第二操作系统镜像的过程中,上述方法还包括:
S71,检测为第一操作系统预留的内存区域内的指定位置处中的操作系统启动标志位,其中,操作系统启动标志位在第一操作系统启动成功之后被置位;
S72,在根据操作系统启动标志位确定第一操作系统启动失败的情况下,将第一指定闪存中的操作系统镜像加载到第二指定闪存中;
S73,通过通用引导加载程序引导执行第二指定闪存中加载的操作系统镜像来启动与加载的操作系统镜像对应的操作系统。
单一操作系统到双操作系统的升级可以包含多种处理过程,可以包括但不限于以下至少之一:升级重启处理,启动过程处理,应用层处理。其中,升级重启处理和启动过程处理与前述前述实施例中类似,在此不做赘述。其中,对于应用层处理,由于第一操作系统和第二操作系统可以是先后启动的,但第二操作系统并不是在等到第一操作系统启动完成之后才启动的,为了保证操作系统启动的成功率,同时方便获取第一操作系统的启动结果,可以通过第一操作系统预留的内存区域内的指定位置处中的操作系统启动标志位来标识第一操作系统启动结果,该操作系统启动标志位在第一操作系统启动成功之后会被置位。
在通过通用引导加载程序依次引导执行第一操作系统镜像和第二操作系统镜像的过程中,可以先检测该操作系统启动标志位,如果根据操作系统启动标志位确定第一操作系统启动成功,则可以执行后续的处理流程,如果根据操作系统启动标志位确定第一操作系统启动失败,则可以将第一指定闪存中的操作系统镜像加载到第二指定闪存中,然后通过通用引导加载程序引导执行第二指定闪存中加载的操作系统镜像,以启动与加载的操作系统镜像对应的操作系统。
这里,第一指定闪存中的操作系统镜像可以是单操作系统镜像,也可以是双操作系统镜像,对于单操作系统镜像的场景,系统重启之后,多核处理器上运行的可以是单操作系统,例如,第二操作系统,对于双操作系统镜像的场景,系统重启之后,多核处理器上运行的可以是双操作系统。
例如,对于应用层处理,如图6所示,应用层RTOS加载异常的处理流程可以包括以下步骤:
步骤S602,加载默认镜像(即,默认flash0中的操作系统镜像)。
步骤S604,判断RTOS系统是否启动成功,如果是,执行步骤S608,否则,执行步骤S606。
在RTOS系统启动之后,在uboot中引导Linux系统启动前,可以通过检测RTOS预留内存区域0xb7000400位置处是否有RTOS启动标志来判断RTOS系统是否已经启动,如果启动成功,执行步骤S608,如果RTOS系统没有启动成功,则执行步骤S606。
步骤S606,加载备份镜像(即,备份flash1中的的操作系统镜像)。
步骤S608,执行后续流程。
通过本实施例,通过启动标志判断对应操作系统是否启动成功,可以提高操作系统加载异常的处理效率。
在一个示范性实施例中,通过通用引导加载程序引导执行第二指定闪存中加载的操作系统镜像来启动与加载的操作系统镜像对应的操作系统,包括:
S81,在第二指定闪存中加载的操作系统镜像为与单操作系统对应的单操作系统镜像的情况下,通过通用引导加载程序引导执行第二指定闪存中加载的单操作系统镜像来启动单操作系统。
与前述实施例中类似的,在重启多核处理器的操作系统时,可以执行第二指定闪存的引导分区中的二级程序加载器,该二级程序加载器用于引导启动第二指定闪存中的操作系统镜像,通过二级程序加载器,可以引导执行第二指定闪存中的通用引导加载程序,而通过通用引导加载程序可以引导执行第二指定闪存中加载的操作系统镜像,从而可以启动与加载的操作系统镜像对应的操作系统。
在第二指定闪存中加载的操作系统镜像为与单操作系统对应的单操作系统镜像的情况下,通过通用引导加载程序可以引导执行第二指定闪存中加载的单操作系统镜像来启动单操作系统。
例如,以第二指定闪存为flash0,单操作系统为Linux系统为例,在flash0中加载的操作系统镜像为与Linux系统对应的Linux系统镜像的情况下,可以通过uboot引导执行flash0中加载的Linux系统镜像来启动Linux系统。
通过本实施例,通过通用引导加载程序引导执行第二指定闪存中加载的操作系统镜像来启动与加载的操作系统镜像对应的操作系统,可以提高操作系统启动的便捷性和成功率。
在一个示范性实施例中,在重启多核处理器的操作系统之后,上述方法还包括:
S91,通过多核处理器的核间通信接口在第一操作系统和第二操作系统之间进行处理资源的抢占和释放,其中,双操作系统包括第一操作系统和第二操作系统。
在本实施例中,通过核间通信接口在第一操作系统和第二操作系统之间进行处理资源的抢占和释放,即,可以由一个操作系统通过核间通信接口向另外一个操作系统发送用于进行处理资源抢占的请求或者用于请求进行处理资源释放的请求,以实现处理资源的抢占或者释放。相对于通过通信总线进行交互的方式,通过处理器内部的核间通信接口进行交互具更高的通信速率,提高了通信的整体性能。这里,处理资源可以包括处理器核心(即,核心资源),还可以包含如内存等其他处理资源。
例如,核间通信接口模块可以用于完成第一操作系统与第二操作系统的通信与交互功能。在进行核心抢占与释放的过程中,抢占方与释放方可以将各自的状态(如忙闲状态)通过核间通信接口告知对方,同时还需要特定的信号事件来表征异构操作系统的行为(如抢占行为)。因此,通过该核间通信接口模块进行核心抢占与释放,可以维持异构操作系统硬核资源平衡,保证处理器具有较高的占用率。
可选地,抢占与释放过程取决于双操作系统实时负载情况,例如,当第二操作系统负载急速增加,需要更多处理器核心支撑时,可以通过IPI(Inter-Processor Interrupt,核间中断)向第一操作系统发出核心抢占请求,以抢占第一操作系统的处理器核心,若第一操作系统此时处于空闲状态(比如,无任务调度)或者至少部分核心资源处于空闲状态,它将释放核心资源给第二操作系统,此时第二操作系统核心抢占成功,同时意味着第一操作系统核心释放成功。
需要说明的是,核心抢占与释放过程是一个动态循环往复的过程,每次核心抢占与释放都伴随着处理器硬核资源的调整。此外,核心抢占与释放过程可以协同负载均衡策略、业务管理、资源自适应调度(例如,核心自适应调度)等模块来共同决定最终的核心调整结果。
通过本实施例,通过核间通信接口进行不同操作系统之间的处理资源的抢占和释放,可以提高通信速率,提高通信的整体性能。
在一个示范性实施例中,通过多核处理器的核间通信接口在第一操作系统和第二操作系统之间进行处理资源的抢占和释放,包括:
S101,通过核间通信接口将第一操作系统的第一交互请求传输至第二操作系统,其中,第一交互请求用于请求与第二操作系统进行资源交互,资源交互包括以下之一:资源抢占,资源释放;
S102,通过核间通信接口获取第二操作系统响应第一交互请求返回的第一交互响应,其中,第一交互响应用于指示第一操作系统根据第一交互响应与第二操作系统进行资源交互。
在本实施例中,对于第一操作系统,考虑到处理器所处理的大部分业务是对业务响应速度的要求不高的业务,对应地,由第一操作系统处理的业务的业务量通常较少,因此,第一操作系统可以通过核间通信接口请求抢占第二操作系统的处理资源或者主动向第二操作系统释放其所占用的处理资源。可选地,处理资源的抢占和释放可以是通过请求-响应的交互方式进行的。
在需要抢占第二操作系统的处理资源或者主动向第二操作系统释放处理资源时,第一操作系统可以通过核间通信接口将第一操作系统的第一交互请求传输至第二操作系统,以请求与第二操作系统进行资源抢占和资源释放中的一种资源交互。在接收到第一交互请求之后,第二操作系统可以基于自身的负载情况等确定是否允许第一操作系统占用其至少部分处理资源或者是否接受第一操作系统释放的处理资源,并通过核间通信接口将第一交互响应返回给第一操作系统,从而可以使得第一操作系统根据第一交互响应与第二操作系统进行资源交互。
需要说明的是,上述处理资源的抢占和释放是在操作系统层面上的处理资源的调度(即,在第一操作系统和第二操作系统之间完成处理资源调度的协商),而并不是实际的处理资源调度,在进行处理资源的实际调度时,由资源自适应调度模块完成处理资源的实际调度。
通过本实施例,通过对请求-响应的方式进行不同操作系统之间的资源交互,且允许响应速度快的操作系统主动向响应速度慢的操作系统释放处理资源,可以提高处理资源的利用率。
在一个示范性实施例中,通过多核处理器的核间通信接口在第一操作系统和第二操作系统之间进行处理资源的抢占和释放,包括:
S111,通过核间通信接口将第二操作系统的第二交互请求传输至第一操作系统,其中,第二交互请求用于请求抢占第一操作系统的处理资源;
S112,通过核间通信接口获取第一操作系统响应第二交互请求返回的第二交互响应,其中,第二交互响应用于指示第一操作系统是否允许第二操作系统抢占第一操作系统的处理资源。
在本实施例中,对于第二操作系统,考虑到处理器所处理的大部分业务是对业务响应速度的要求不高的业务,对应地,由第二操作系统处理的业务的业务量通常较多,因此,第二操作系统可以通过核间通信接口请求抢占第一操作系统的处理资源。可选地,处理资源的抢占可以是通过请求-响应的交互方式进行的。
在需要抢占第一操作系统的处理资源时,第二操作系统可以通过核间通信接口将第二操作系统的第二交互请求传输至第一操作系统,以请求与第一操作系统进行以资源抢占为目标的资源交互。在接收到第二交互请求之后,第一操作系统可以基于自身的负载情况等确定是否允许第二操作系统占用其至少部分处理资源,并通过核间通信接口将第二交互响应返回给第二操作系统,从而可以使得第二操作系统根据第二交互响应与第一操作系统进行资源交互。
需要说明的是,上述处理资源的抢占是在操作系统层面上的处理资源的调度(即,在第一操作系统和第二操作系统之间完成处理资源调度的协商),而并不是实际的处理资源调度,在进行处理资源的实际调度时,由资源自适应调度模块完成处理资源的实际调度。
通过本实施例,通过对请求-响应的方式进行不同操作系统之间的资源抢占,可以提高处理资源的利用率,同时,也可以提高业务处理的响应速度。
在一个示范性实施例中,上述方法还包括:
S121,响应于获取到的第二系统升级指令,获取单操作系统镜像,其中,第二系统升级指令用于将多核处理器上运行的双操作系统升级为单操作系统,单操作系统镜像是与单操作系统对应的镜像文件,双操作系统是从与多核处理器对应的第三指定闪存的引导分区运行的;
S122,将单操作系统镜像烧写至与多核处理器对应的第四指定闪存中,其中,第四指定闪存是与第三指定闪存不同的闪存;
S123,在第四指定闪存的引导分区为多核处理器的操作系统进行系统重启所执行的引导分区的情况下,重启多核处理器的操作系统,以通过第四指定闪存的引导分区引导启动第四指定闪存中的单操作系统镜像来运行单操作系统。
在本实施例中,对于基于多核处理器的单一操作系统和双操作系统互相升级的问题,根据单一操作系统和双操作系统的系统差异,存在将单一操作系统升级为双操作系统,以及将双操作系统升级为单一操作系统两种场景,将双操作系统升级为单一操作系统可以满足用户对于不同场景的需求。单一操作系统升级为双操作系统的方式可以与前述实施例中类似,在此不做赘述。
多核处理器运行的是双操作系统,双操作系统可以是从与多核处理器对应的第三指定闪存的引导分区运行的,第三指定闪存与第一指定闪存或者第二指定闪存可以是相同的,也可以是除了第一指定闪存和第二指定闪存以外的指定闪存。对于将双操作系统升级为单一操作系统的场景,BMC芯片可以获取第二系统升级指令,第二系统升级指令用于将多核处理器上运行双操作系统升级为单操作系统,获取第二系统升级指令的方式与获取第一系统升级指令的方式类似,在此不做赘述。响应于获取到的第二系统升级指令,可以获取单操作系统镜像,单操作系统镜像是与单操作系统对应的镜像文件。
与前述实施例中类似的,可以将单操作系统镜像烧写至与多核处理器对应的第四指定闪存中,即,烧写至与第三指定闪存不同的指定闪存中,第四指定闪存与第一指定闪存或者第二指定闪存可以是相同的,也可以是除了第一指定闪存和第二指定闪存以外的指定闪存。如果第四指定闪存的引导分区为多核处理器的操作系统进行系统重启所执行的引导分区,则可以重启多核处理器的操作系统,以通过第四指定闪存的引导分区引导启动第四指定闪存中的单操作系统镜像来运行单操作系统。这里,系统重启的过程与前述实施例中类似,在此不做赘述。
通过本实施例,通过提供将多核处理器上运行的操作系统由双操作系统升级为单一操作系统的方案,可以满足用户不同场景的需求,提高处理资源的利用率。
在一个示范性实施例中,在将单操作系统镜像烧写至与多核处理器对应的第四指定闪存中之后,上述方法还包括:
S131,禁用多核处理器中与双操作系统中的第一操作系统对应的处理器核心。
与前述实施例中类似的,可以在执行系统重启之前,禁用多核处理器中与双操作系统中的第一操作系统对应的处理器核心。双操作系统包括第一操作系统和与单操作系统对应的第二操作系统,第一操作系统和第二操作系统运行在多核处理器的不同处理器核心上,与第一操作系统对应的处理器核心是用于运行第一操作系统的处理器核心。已经进行过说明的,在此不做赘述。
通过本实施例,在进行系统重启前,禁用运行双操作系统中与单操作系统不同的操作系统所对应的处理器核心,可以减少处理资源浪费,提高处理资源利用的合理性。
在一个示范性实施例中,在将单操作系统镜像烧写至与多核处理器对应的第四指定闪存中之后,上述方法还包括:
S141,在第三指定闪存的引导分区为多核处理器的操作系统进行系统重启所执行的引导分区的情况下,重启多核处理器的操作系统,并将第四指定闪存中的单操作系统镜像同步至第三指定闪存;
S142,通过第三指定闪存的引导分区引导运行第三指定闪存中的单操作系统镜像,以启动单操作系统。
在本实施例中,如果第三指定闪存的引导分区为多核处理器的操作系统进行系统重启所执行的引导分区,则可以重启多核处理器的操作系统,并将第四指定闪存中的单操作系统镜像同步至第三指定闪存,重启操作系统的方式和将单操作系统镜像同步至第三指定闪存的方式与前述实施例中类似,在此不做赘述。
在将第四指定闪存中的单操作系统镜像同步至第三指定闪存之后,由于双操作系统包含单操作系统,运行该单操作系统的处理器核心已经启动,此时无需执行系统重启,可以直接通过第三指定闪存的引导分区引导启动第三指定闪存中的单操作系统镜像,以运行单操作系统,通过第三指定闪存的引导分区引导启动第三指定闪存中的单操作系统镜像的方式与前述实施例中类似,在此不做赘述。
通过本实施例,在将单操作系统镜像烧写至非引导系统执行重启的备份闪存时,将非引导系统执行重启的备份闪存上的镜像文件同步到引导系统执行重启的闪存上,同时引导运行单操作系统镜像,无需再次执行系统重启,可以提高操作系统升级的效率。
作为一种可选示例,执行上述操作系统的升级方法的BMC芯片的一个示例可以如图7所示,BMC芯片的硬件可以但不限于包括SOC(System on Chip,系统级芯片,也称片上系统)子模块和BMC带外子模块,其中,SOC子模块主要包含ARM核心(ARM Core 1, ARM Core2,..., ARM Core X),其还可以但不限于包括DDR4控制器(内存控制器)、MAC(MediaAccess Control Address,媒体访问控制地址)控制器(网络控制器)、SD(Secure Digital,安全数字)Card/eMMC(Embedded Multi Media Card,嵌入式多媒体卡)控制器(存储控制器)、PCIe(Peripheral Component Interconnect express,一种高速串行计算机扩展总线标准) RC(Root Complex,根复合体)控制器、SRAM(Static Random-Access Memory,静态随机存取存储器)及SPI(Serial Peripheral Interface,串行外设接口)控制器。
上述核心与各控制器通过第一总线互连,实现核心与各控制器间的交互。同时,ARM核心间连接至第一总线(比如:可以通过AXI(Advanced eXtensible Interface,高级可扩展接口)桥(Bridge)连接),核心间的通信通过第一总线实现。此外,SOC子模块中还实现了第一总线与第二总线的互连互通(比如:通过APB桥(APB Bridge)的转换实现),这样为SOC子模块访问第二总线上的外设提供一条物理通路。
DDR4控制器可以通过DDR4 PHY(Physical Layer,物理层)接口与其他部件或者设备相连,MAC控制器通过RGMII(Reduced Gigabit Media Independent Interface,吉比特介质独立接口)与其他部件或者设备相连,SD卡/eMMC控制器通过SD 接口与其他部件或者设备相连,PCIe RC控制器通过PCIe PHY接口与其他部件或者设备相连。
BMC带外子模块主要包含PWM、GPIO(General Purpose Input/Output,通用输入输出)、FanTech(风扇调速)、mailbox(邮箱)等芯片外设对应的控制器,通过这些控制器能够实现对BMC的PECI(Platform Environment Control Interface,平台环境式控制接口)通信(比如使用GPIO模拟PECI)、风扇调控等带外管理功能。由图7可知,该BMC带外子模块可以但不限于通过第二总线实现与SOC子模块的交互。
BMC芯片通过第一与第二总线实现片内ARM核、存储单元及控制器硬件资源间的互连。处理器资源的动态均衡调度主要涉及BMC芯片的ARM核心资源调度,核间通信指ARM核之间进行的通信。
此外,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
根据本申请实施例的又一方面,还提供了一种操作系统的升级装置,该装置用于实现上述实施例中所提供的操作系统的升级方法,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图8是根据本申请实施例的一种操作系统的升级装置的结构框图,如图8所示,该装置包括:
第一获取单元802,用于响应于获取到的第一系统升级指令,获取双操作系统镜像,其中,第一系统升级指令用于将多核处理器上运行的基板管理控制器的单操作系统升级为双操作系统,双操作系统镜像是与双操作系统对应的镜像文件,单操作系统是从与多核处理器对应的第一指定闪存的引导分区运行的;
第一烧写单元804,用于将双操作系统镜像烧写至与多核处理器对应的第二指定闪存中,其中,第二指定闪存是与第一指定闪存不同的闪存;
第一重启单元806,用于在第二指定闪存的引导分区为多核处理器的操作系统进行系统重启所执行的引导分区的情况下,重启多核处理器的操作系统,以通过第二指定闪存的引导分区引导执行第二指定闪存中的双操作系统镜像来启动双操作系统。
通过上述步骤,通过响应于获取到的第一系统升级指令,获取双操作系统镜像,其中,第一系统升级指令用于将多核处理器上运行的基板管理控制器的单操作系统升级为双操作系统,双操作系统镜像是与双操作系统对应的镜像文件,单操作系统是从与多核处理器对应的第一指定闪存的引导分区运行的;将双操作系统镜像烧写至与多核处理器对应的第二指定闪存中,其中,第二指定闪存是与第一指定闪存不同的闪存;在第二指定闪存的引导分区为多核处理器的操作系统进行系统重启所执行的引导分区的情况下,重启多核处理器的操作系统,以通过第二指定闪存的引导分区引导执行第二指定闪存中的双操作系统镜像来启动双操作系统,可以解决相关技术中的操作系统升级方法由于两个操作系统之间存在大量和频繁的数据交换导致的系统性能降低的问题,提高了系统性能。
可选地,上述装置还包括:
第一禁用单元,用于在将双操作系统镜像烧写至与多核处理器对应的第二指定闪存中之后,禁用多核处理器中与双操作系统中的第一操作系统对应的处理器核心,其中,双操作系统包括第一操作系统和与单操作系统对应的第二操作系统,第一操作系统和第二操作系统运行在多核处理器的不同处理器核心上,与第一操作系统对应的处理器核心是用于运行第一操作系统的处理器核心。
可选地,第一禁用单元包括:
禁用模块,用于通过写使能和禁止与第一操作系统对应的处理器核心启动的寄存器禁用与第一操作系统对应的处理器核心。
可选地,上述装置还包括:
第一执行单元,用于在将双操作系统镜像烧写至与多核处理器对应的第二指定闪存中之后,在第一指定闪存的引导分区为多核处理器的操作系统进行系统重启所执行的引导分区的情况下,重启多核处理器的操作系统,并将第二指定闪存中的双操作系统镜像同步至第一指定闪存;
第二重启单元,用于再次重启多核处理器的操作系统,以通过第一指定闪存的引导分区引导执行第一指定闪存中的双操作系统镜像来启动双操作系统。
可选地,第一执行单元包括:
重启模块,用于重启多核处理器的操作系统,以通过第一指定闪存的引导分区引导启动第一指定闪存中的操作系统镜像;
同步模块,用于在检测到第一指定闪存中不存在双操作系统镜像的情况下,将第二指定闪存中的双操作系统镜像同步至第一指定闪存;
其中,在再次重启多核处理器的操作系统之前,多核处理器中与双操作系统中的第一操作系统对应的处理器核心处于禁用状态,双操作系统包括第一操作系统和与单操作系统对应的第二操作系统,第一操作系统和第二操作系统运行在多核处理器的不同处理器核心上,与第一操作系统对应的处理器核心是用于运行第一操作系统的处理器核心。
可选地,上述装置还包括:
第二执行单元,用于在重启多核处理器的操作系统之后,执行第二指定闪存的引导分区中的二级程序加载器,其中,二级程序加载器用于引导启动第二指定闪存中的操作系统镜像;
第三执行单元,用于通过二级程序加载器引导执行第二指定闪存中的通用引导加载程序;
第四执行单元,用于通过通用引导加载程序依次引导执行第一操作系统镜像和第二操作系统镜像,以依次启动第一操作系统和第二操作系统;
其中,双操作系统镜像包括与第一操作系统对应的第一操作系统镜像和与第二操作系统对应的第二操作系统镜像,双操作系统包括第一操作系统和与单操作系统对应的第二操作系统。
可选地,第四执行单元包括:
复制模块,用于在检测到第二指定闪存中存在第一操作系统镜像的情况下,通过通用引导加载程序将第一操作系统镜像复制到为第一操作系统预留的双倍速率同步动态随机存储器中;
启动模块,用于通过通用引导加载程序引导启动与第一操作系统对应的处理器核心,以通过与第一操作系统对应的处理器核心启动第二指定闪存中的第一操作系统镜像来运行第一操作系统。
可选地,在通过通用引导加载程序依次引导执行第一操作系统镜像和第二操作系统镜像的过程中,上述装置还包括:
检测单元,用于检测为第一操作系统预留的内存区域内的指定位置处中的操作系统启动标志位,其中,操作系统启动标志位在第一操作系统启动成功之后被置位;
加载单元,用于在根据操作系统启动标志位确定第一操作系统启动失败的情况下,将第一指定闪存中的操作系统镜像加载到第二指定闪存中;
第五执行单元,用于通过通用引导加载程序引导执行第二指定闪存中加载的操作系统镜像来启动与加载的操作系统镜像对应的操作系统。
可选地,上述装置还包括:
第二获取单元,用于响应于获取到的第二系统升级指令,获取单操作系统镜像,其中,第二系统升级指令用于将多核处理器上运行双操作系统升级为单操作系统,单操作系统镜像是与单操作系统对应的镜像文件,双操作系统是从与多核处理器对应的第三指定闪存的引导分区运行的;
第二烧写单元,用于将单操作系统镜像烧写至与多核处理器对应的第四指定闪存中,其中,第四指定闪存是与第三指定闪存不同的闪存;
第三重启单元,用于在第四指定闪存的引导分区为多核处理器的操作系统进行系统重启所执行的引导分区的情况下,重启多核处理器的操作系统,以通过第四指定闪存的引导分区引导启动第四指定闪存中的单操作系统镜像来运行单操作系统。
可选地,上述装置还包括:
第二禁用单元,用于在将单操作系统镜像烧写至与多核处理器对应的第四指定闪存中之后,禁用多核处理器中与双操作系统中的第一操作系统对应的处理器核心,其中,双操作系统包括第一操作系统和与单操作系统对应的第二操作系统,第一操作系统和第二操作系统运行在多核处理器的不同处理器核心上,与第一操作系统对应的处理器核心是用于运行第一操作系统的处理器核心。
可选地,上述装置还包括:
第六执行单元,用于在将单操作系统镜像烧写至与多核处理器对应的第四指定闪存中之后,在第三指定闪存的引导分区为多核处理器的操作系统进行系统重启所执行的引导分区的情况下,重启多核处理器的操作系统,并将第四指定闪存中的单操作系统镜像同步至第三指定闪存;
启动单元,用于通过第三指定闪存的引导分区引导运行第三指定闪存中的单操作系统镜像,以启动单操作系统。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
根据本申请实施例的又一方面,还提供了一种基板管理控制器BMC芯片,其中,该BMC芯片可以包括:存储单元以及与存储单元连接的处理单元,存储单元用于存储程序,处理单元用于运行程序,以执行上述任一项方法实施例中的步骤。
与前述实施例中类似的,执行上述操作系统的升级方法的BMC芯片的一个示例可以如图7所示。
需要注意到的是,以芯片为BMC芯片、硬件接口信号为PECI信号为例,在相关技术中,为了实现BMC芯片与CPU等元器件之间的PECI通信,相关技术需要BMC芯片本身具备PECI控制器的硬件逻辑设计,从而导致了BMC芯片的设计成本较高的问题。换言之,相关技术中,为了在BMC芯片上生成PECI信号,则必须要预先在BMC芯片上实现PECI控制器的硬件逻辑设计,而在本申请中,仅需要第一操作系统即可在BMC芯片上生成PECI信号,无需必须在BMC芯片上实现PECI控制器的硬件逻辑设计,从而降低了BMC芯片的设计难度和设计成本。
根据本申请实施例的又一方面,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
根据本申请实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请实施例,对于本领域的技术人员来说,本申请实施例可以有各种更改和变化。凡在本申请实施例的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请实施例的保护范围之内。
Claims (20)
1.一种操作系统的升级方法,其特征在于,包括:
响应于获取到的第一系统升级指令,获取双操作系统镜像,其中,所述第一系统升级指令用于将多核处理器上运行的基板管理控制器的单操作系统升级为双操作系统,所述双操作系统镜像是与所述双操作系统对应的镜像文件,所述单操作系统是从与所述多核处理器对应的第一指定闪存的引导分区运行的;
将所述双操作系统镜像烧写至与所述多核处理器对应的第二指定闪存中,其中,所述第二指定闪存是与所述第一指定闪存不同的闪存;
在所述第二指定闪存的引导分区为所述多核处理器的操作系统进行系统重启所执行的引导分区的情况下,重启所述多核处理器的操作系统,以通过所述第二指定闪存的引导分区引导执行所述第二指定闪存中的所述双操作系统镜像来启动所述双操作系统;
其中,所述双操作系统通过所述多核处理器同时运行,所述双操作系统中的不同操作系统运行在所述多核处理器的不同处理器核心上,所述不同操作系统之间的数据交换通过所述多核处理器中不同处理器核心之间的数据交互接口和通讯总线执行。
2.根据权利要求1所述的方法,其特征在于,在所述将所述双操作系统镜像烧写至与所述多核处理器对应的第二指定闪存中之后,所述方法还包括:
禁用所述多核处理器中与所述双操作系统中的第一操作系统对应的处理器核心,其中,所述双操作系统包括所述第一操作系统和与所述单操作系统对应的第二操作系统,所述第一操作系统和所述第二操作系统运行在所述多核处理器的不同处理器核心上,所述与所述第一操作系统对应的处理器核心是用于运行所述第一操作系统的处理器核心。
3.根据权利要求2所述的方法,其特征在于,所述禁用所述多核处理器中与所述双操作系统中的第一操作系统对应的处理器核心,包括:
通过写使能和禁止与所述第一操作系统对应的处理器核心启动的寄存器禁用与所述第一操作系统对应的处理器核心。
4.根据权利要求1所述的方法,其特征在于,在所述将所述双操作系统镜像烧写至与所述多核处理器对应的第二指定闪存中之后,所述方法还包括:
在所述第一指定闪存的引导分区为所述多核处理器的操作系统进行系统重启所执行的引导分区的情况下,重启所述多核处理器的操作系统,并将所述第二指定闪存中的所述双操作系统镜像同步至所述第一指定闪存;
再次重启所述多核处理器的操作系统,以通过所述第一指定闪存的引导分区引导执行所述第一指定闪存中的所述双操作系统镜像来启动所述双操作系统。
5.根据权利要求4所述的方法,其特征在于,所述重启所述多核处理器的操作系统,并将所述第二指定闪存中的所述双操作系统镜像同步至所述第一指定闪存,包括:
重启所述多核处理器的操作系统,以通过所述第一指定闪存的引导分区引导启动所述第一指定闪存中的操作系统镜像;
在检测到所述第一指定闪存中不存在所述双操作系统镜像的情况下,将所述第二指定闪存中的所述双操作系统镜像同步至所述第一指定闪存;
其中,在再次重启所述多核处理器的操作系统之前,所述多核处理器中与所述双操作系统中的第一操作系统对应的处理器核心处于禁用状态,所述双操作系统包括所述第一操作系统和与所述单操作系统对应的第二操作系统,所述第一操作系统和所述第二操作系统运行在所述多核处理器的不同处理器核心上,所述与所述第一操作系统对应的处理器核心是用于运行所述第一操作系统的处理器核心。
6.根据权利要求4所述的方法,其特征在于,所述双操作系统包括第一操作系统和与所述单操作系统对应的第二操作系统,在重启所述多核处理器的操作系统时,所述多核处理器中与所述单操作系统对应的处理器核心处于启动状态。
7.根据权利要求1所述的方法,其特征在于,在所述重启所述多核处理器的操作系统之后,所述方法还包括:
执行所述第二指定闪存的引导分区中的二级程序加载器,其中,所述二级程序加载器用于引导启动所述第二指定闪存中的操作系统镜像;
通过所述二级程序加载器引导执行所述第二指定闪存中的通用引导加载程序;
通过所述通用引导加载程序依次引导执行第一操作系统镜像和第二操作系统镜像,以依次启动第一操作系统和第二操作系统;
其中,所述双操作系统镜像包括与所述第一操作系统对应的所述第一操作系统镜像和与所述第二操作系统对应的所述第二操作系统镜像,所述双操作系统包括所述第一操作系统和与所述单操作系统对应的所述第二操作系统。
8.根据权利要求7所述的方法,其特征在于,所述通过所述通用引导加载程序依次引导执行第一操作系统镜像和第二操作系统镜像,包括:
在检测到所述第二指定闪存中存在所述第一操作系统镜像的情况下,通过所述通用引导加载程序将所述第一操作系统镜像复制到为所述第一操作系统预留的双倍速率同步动态随机存储器中;
通过所述通用引导加载程序引导启动与所述第一操作系统对应的处理器核心,以通过与所述第一操作系统对应的处理器核心启动所述第二指定闪存中的所述第一操作系统镜像来运行所述第一操作系统。
9.根据权利要求8所述的方法,其特征在于,在所述通过所述通用引导加载程序依次引导执行第一操作系统镜像和第二操作系统镜像的过程中,所述方法还包括:
检测为所述第一操作系统预留的内存区域内的指定位置处中的操作系统启动标志位,其中,所述操作系统启动标志位在所述第一操作系统启动成功之后被置位;
在根据所述操作系统启动标志位确定所述第一操作系统启动失败的情况下,将所述第一指定闪存中的操作系统镜像加载到所述第二指定闪存中;
通过所述通用引导加载程序引导执行所述第二指定闪存中加载的操作系统镜像来启动与所述加载的操作系统镜像对应的操作系统。
10.根据权利要求9所述的方法,其特征在于,所述通过所述通用引导加载程序引导执行所述第二指定闪存中加载的操作系统镜像来启动与所述加载的操作系统镜像对应的操作系统,包括:
在所述第二指定闪存中加载的操作系统镜像为与所述单操作系统对应的单操作系统镜像的情况下,通过所述通用引导加载程序引导执行所述第二指定闪存中加载的所述单操作系统镜像来启动所述单操作系统。
11.根据权利要求1所述的方法,其特征在于,在所述重启所述多核处理器的操作系统之后,所述方法还包括:
通过所述多核处理器的核间通信接口在第一操作系统和第二操作系统之间进行处理资源的抢占和释放,其中,所述双操作系统包括所述第一操作系统和所述第二操作系统。
12.根据权利要求11所述的方法,其特征在于,所述通过所述多核处理器的核间通信接口在第一操作系统和第二操作系统之间进行处理资源的抢占和释放,包括:
通过核间通信接口将所述第一操作系统的第一交互请求传输至所述第二操作系统,其中,所述第一交互请求用于请求与所述第二操作系统进行资源交互,所述资源交互包括以下之一:资源抢占,资源释放;
通过所述核间通信接口获取所述第二操作系统响应所述第一交互请求返回的第一交互响应,其中,所述第一交互响应用于指示所述第一操作系统根据所述第一交互响应与所述第二操作系统进行所述资源交互。
13.根据权利要求11所述的方法,其特征在于,所述通过所述多核处理器的核间通信接口在第一操作系统和第二操作系统之间进行处理资源的抢占和释放,包括:
通过核间通信接口将所述第二操作系统的第二交互请求传输至所述第一操作系统,其中,所述第二交互请求用于请求抢占所述第一操作系统的处理资源;
通过所述核间通信接口获取所述第一操作系统响应所述第二交互请求返回的第二交互响应,其中,所述第二交互响应用于指示所述第一操作系统是否允许所述第二操作系统抢占所述第一操作系统的处理资源。
14.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于获取到的第二系统升级指令,获取单操作系统镜像,其中,所述第二系统升级指令用于将所述多核处理器上运行的所述双操作系统升级为所述单操作系统,所述单操作系统镜像是与所述单操作系统对应的镜像文件,所述双操作系统是从与所述多核处理器对应的第三指定闪存的引导分区运行的;
将所述单操作系统镜像烧写至与所述多核处理器对应的第四指定闪存中,其中,所述第四指定闪存是与所述第三指定闪存不同的闪存;
在所述第四指定闪存的引导分区为所述多核处理器的操作系统进行系统重启所执行的引导分区的情况下,重启所述多核处理器的操作系统,以通过所述第四指定闪存的引导分区引导启动所述第四指定闪存中的所述单操作系统镜像来运行所述单操作系统。
15.根据权利要求14所述的方法,其特征在于,在所述将所述单操作系统镜像烧写至与所述多核处理器对应的第四指定闪存中之后,所述方法还包括:
禁用所述多核处理器中与所述双操作系统中的第一操作系统对应的处理器核心,其中,所述双操作系统包括所述第一操作系统和与所述单操作系统对应的第二操作系统,所述第一操作系统和所述第二操作系统运行在所述多核处理器的不同处理器核心上,所述与所述第一操作系统对应的处理器核心是用于运行所述第一操作系统的处理器核心。
16.根据权利要求14所述的方法,其特征在于,在所述将所述单操作系统镜像烧写至与所述多核处理器对应的第四指定闪存中之后,所述方法还包括:
在所述第三指定闪存的引导分区为所述多核处理器的操作系统进行系统重启所执行的引导分区的情况下,重启所述多核处理器的操作系统,并将所述第四指定闪存中的所述单操作系统镜像同步至所述第三指定闪存;
通过所述第三指定闪存的引导分区引导运行所述第三指定闪存中的所述单操作系统镜像,以启动所述单操作系统。
17.一种操作系统的升级装置,其特征在于,包括:
第一获取单元,用于响应于获取到的第一系统升级指令,获取双操作系统镜像,其中,所述第一系统升级指令用于将多核处理器上运行的基板管理控制器的单操作系统升级为双操作系统,所述双操作系统镜像是与所述双操作系统对应的镜像文件,所述单操作系统是从与所述多核处理器对应的第一指定闪存的引导分区运行的;
第一烧写单元,用于将所述双操作系统镜像烧写至与所述多核处理器对应的第二指定闪存中,其中,所述第二指定闪存是与所述第一指定闪存不同的闪存;
第一重启单元,用于在所述第二指定闪存的引导分区为所述多核处理器的操作系统进行系统重启所执行的引导分区的情况下,重启所述多核处理器的操作系统,以通过所述第二指定闪存的引导分区引导执行所述第二指定闪存中的所述双操作系统镜像来启动所述双操作系统;
其中,所述双操作系统通过所述多核处理器同时运行,所述双操作系统中的不同操作系统运行在所述多核处理器的不同处理器核心上,所述不同操作系统之间的数据交换通过所述多核处理器中不同处理器核心之间的数据交互接口和通讯总线执行。
18.一种基板管理控制器BMC芯片,其特征在于,包括:存储单元以及与所述存储单元连接的处理单元,所述存储单元用于存储程序,所述处理单元用于运行所述程序,以执行如权利要求1至16中任一项所述的方法。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1至16任一项中所述的方法的步骤。
20.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现所述权利要求1至16任一项中所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310812515.0A CN116521209B (zh) | 2023-07-04 | 2023-07-04 | 操作系统的升级方法及装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310812515.0A CN116521209B (zh) | 2023-07-04 | 2023-07-04 | 操作系统的升级方法及装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116521209A CN116521209A (zh) | 2023-08-01 |
CN116521209B true CN116521209B (zh) | 2023-09-15 |
Family
ID=87408565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310812515.0A Active CN116521209B (zh) | 2023-07-04 | 2023-07-04 | 操作系统的升级方法及装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116521209B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881929B (zh) * | 2023-09-06 | 2024-01-19 | 苏州浪潮智能科技有限公司 | 安全防护方法、装置、电子设备以及基板控制器芯片 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111061338A (zh) * | 2019-11-30 | 2020-04-24 | 苏州浪潮智能科技有限公司 | 一种基板管理控制器时序的更新方法、系统及设备 |
CN113407247A (zh) * | 2021-07-16 | 2021-09-17 | 上海金脉电子科技有限公司 | 基于多核处理器的双系统启动方法 |
CN113934471A (zh) * | 2021-10-26 | 2022-01-14 | 讯牧信息科技(上海)有限公司 | 计算机系统的基板管理控制器和启动方法 |
CN115328562A (zh) * | 2022-08-30 | 2022-11-11 | 中电长城圣非凡信息系统有限公司 | 操作系统安装/升级方法、系统、服务器、bmc及uefi |
CN115357310A (zh) * | 2022-10-24 | 2022-11-18 | 北京智芯微电子科技有限公司 | 系统启动方法、装置、电子设备和存储介质 |
CN116009921A (zh) * | 2023-02-15 | 2023-04-25 | 山东浪潮科学研究院有限公司 | 一种嵌入式操作系统升级方法、装置及其介质 |
CN116028094A (zh) * | 2023-02-10 | 2023-04-28 | 苏州浪潮智能科技有限公司 | 一种bmc的升级方法和装置 |
CN116204214A (zh) * | 2023-04-25 | 2023-06-02 | 苏州浪潮智能科技有限公司 | Bmc升级方法、装置、系统、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11263023B1 (en) * | 2020-08-17 | 2022-03-01 | Dell Products L.P. | System and method for updating host operating system drivers from a management controller |
-
2023
- 2023-07-04 CN CN202310812515.0A patent/CN116521209B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111061338A (zh) * | 2019-11-30 | 2020-04-24 | 苏州浪潮智能科技有限公司 | 一种基板管理控制器时序的更新方法、系统及设备 |
CN113407247A (zh) * | 2021-07-16 | 2021-09-17 | 上海金脉电子科技有限公司 | 基于多核处理器的双系统启动方法 |
CN113934471A (zh) * | 2021-10-26 | 2022-01-14 | 讯牧信息科技(上海)有限公司 | 计算机系统的基板管理控制器和启动方法 |
CN115328562A (zh) * | 2022-08-30 | 2022-11-11 | 中电长城圣非凡信息系统有限公司 | 操作系统安装/升级方法、系统、服务器、bmc及uefi |
CN115357310A (zh) * | 2022-10-24 | 2022-11-18 | 北京智芯微电子科技有限公司 | 系统启动方法、装置、电子设备和存储介质 |
CN116028094A (zh) * | 2023-02-10 | 2023-04-28 | 苏州浪潮智能科技有限公司 | 一种bmc的升级方法和装置 |
CN116009921A (zh) * | 2023-02-15 | 2023-04-25 | 山东浪潮科学研究院有限公司 | 一种嵌入式操作系统升级方法、装置及其介质 |
CN116204214A (zh) * | 2023-04-25 | 2023-06-02 | 苏州浪潮智能科技有限公司 | Bmc升级方法、装置、系统、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
何毅平.《中国优秀博硕士学位论文全文数据库(硕士)工程科技Ⅱ辑》.2016,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN116521209A (zh) | 2023-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10353779B2 (en) | Systems and methods for detection of firmware image corruption and initiation of recovery | |
CN108616382B (zh) | 升级网卡固件的方法、装置、网卡和设备 | |
EP2831722B1 (en) | Method and system for verifying proper operation of a computing device after a system change | |
US10102170B2 (en) | System and method for providing input/output functionality by an I/O complex switch | |
US10303487B2 (en) | System and method for booting an information handling system | |
US20190042368A1 (en) | System and Method to Enable Rapid Recovery of an Operating System Image of an Information Handling System after a Malicious Attack | |
US10459742B2 (en) | System and method for operating system initiated firmware update via UEFI applications | |
CN116244229B (zh) | 硬件控制器的访问方法、装置、存储介质和电子设备 | |
CN116521209B (zh) | 操作系统的升级方法及装置、存储介质及电子设备 | |
CN116243996B (zh) | 业务的运行切换方法、装置、存储介质及电子装置 | |
CN116627520A (zh) | 基板管理控制器的系统运行方法以及基板管理控制器 | |
WO2011114476A1 (ja) | マルチコアプロセッサシステム、通知プログラム、および通知方法 | |
US20230229481A1 (en) | Provisioning dpu management operating systems | |
CN116881929B (zh) | 安全防护方法、装置、电子设备以及基板控制器芯片 | |
US20040064620A1 (en) | Device representation apparatus and methods | |
CN116302141B (zh) | 串口切换方法、芯片及串口切换系统 | |
US10572151B2 (en) | System and method to allocate available high bandwidth memory to UEFI pool services | |
WO2023125482A1 (zh) | 集群管理方法、设备及计算系统 | |
CN116848519A (zh) | 硬件接口信号的生成方法、装置及电子设备 | |
CN110688130A (zh) | 物理机部署方法、装置、可读存储介质及电子设备 | |
US10552168B2 (en) | Dynamic microsystem reconfiguration with collaborative verification | |
US11204704B1 (en) | Updating multi-mode DIMM inventory data maintained by a baseboard management controller | |
TW201327139A (zh) | 節點置換處理方法與使用其之伺服器系統 | |
CN117170901A (zh) | 硬件管理方法、装置、存储介质及电子设备 | |
JP5713089B2 (ja) | マルチコアプロセッサシステム、制御プログラム、および制御方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |