CN113646745A - 禁用软件持久性 - Google Patents
禁用软件持久性 Download PDFInfo
- Publication number
- CN113646745A CN113646745A CN201980094778.4A CN201980094778A CN113646745A CN 113646745 A CN113646745 A CN 113646745A CN 201980094778 A CN201980094778 A CN 201980094778A CN 113646745 A CN113646745 A CN 113646745A
- Authority
- CN
- China
- Prior art keywords
- operating system
- booted
- computing device
- information
- software
- 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
- 230000002688 persistence Effects 0.000 title claims abstract description 77
- 238000000034 method Methods 0.000 claims abstract description 24
- 230000004044 response Effects 0.000 claims abstract 12
- 230000002085 persistent effect Effects 0.000 claims 1
- 238000002405 diagnostic procedure Methods 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- LFQCEHFDDXELDD-UHFFFAOYSA-N tetramethyl orthosilicate Chemical compound CO[Si](OC)(OC)OC LFQCEHFDDXELDD-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
- G06F9/441—Multiboot arrangements, i.e. selecting an operating system to be loaded
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
一种示例计算装置包括存储装置、随机存取存储器、只读存储器和处理器。处理器用于在引导过程期间确定正在被引导的操作***是否是主操作***;响应于确定正在被引导的操作***不同于主操作***,确定正在被引导的操作***是否满足第一标准;以及响应确定正在被引导的操作***不满足第一标准,禁用软件持久性。
Description
背景技术
在计算环境中,可能需要确保特定程序或应用程序等可用于由操作***执行。例如,可能需要确保操作***配备有防盗软件、反恶意软件或特定驱动程序等。相应地,计算环境可以包括通过自动安装程序或应用程序来确保特定程序或应用程序的持久性的能力。然而,可能会出现希望避免这种持久性的情况。
附图说明
根据以下结合附图的描述,本公开的某些示例将更加显而易见,在附图中:
图1示出了根据示例的其中可以选择性地禁用软件持久性的计算装置;
图2示出了根据示例的在计算装置上选择性地禁用软件持久性的方法;
图3示出了根据示例的在计算装置上选择性地禁用软件持久性的方法;以及
图4A和图4B示出了根据各种示例的在选择性地禁用软件持久性时可以考虑的操作***(OS)的信息。
在整个附图中,应注意,相似的附图标记用于描绘相同或相似的元件、特征、部件、组件和结构。
具体实施方式
下文将参考附图更全面地描述各种示例。以下描述的示例可以以许多不同的形式进行修改。
在整个描述中,当元件被称为“连接”或“耦接”到另一元件时,该元件可以直接连接或耦接到该另一元件,或者可以在居间元件介于该元件和该另一元件之间的情况下连接或耦接到该另一元件。
在以下描述中,单数表达包括复数表达,除非另有说明。还应理解,诸如“包括”或“包含”之类的术语在本文中用于指定特征、数量、步骤、操作、元件、组件或者它们的组合的存在,而不排除存在或添加一个或多个其它特征、数量、步骤、操作、元件、组件或它们的组合的可能性。还应理解,诸如“第一”或“第二”等的术语用于将具有相同或相似术语的对象区分开,并且绝不旨在表示顺序,除非另有明确说明。
诸如个人计算机(PC)、膝上型计算机、平板电脑或移动终端等的计算装置可以包括确保所需软件的持久性的能力。这种软件可以使用处理器可执行指令来实现,并且可以包括或涉及各种程序、应用程序、驱动程序等中的任何一种。例如,可能需要确保防盗软件、反恶意软件或用于特定驱动程序的软件等在计算装置上持久地安装和可用。
为了确保所需软件的安装和可用性,在计算装置启动或引导时执行的固件(例如基本输入输出***(BIOS)软件或统一扩展固件接口(UEFI)软件)可以包括与所需软件相对应的嵌入式程序。当计算装置被引导时,***固件(例如,BIOS、UEFI等)定位并准备用于向计算装置的操作***(OS)公布的嵌入式程序。随着计算装置继续引导,OS定位并执行所公布的程序,并将程序写入其中存储有OS的存储器中。因此,即使该程序随后被从其中存储有OS的存储器中删除,计算装置的重新引导也再次引起该程序被OS公布、定位、执行和存储,从而引起所需软件的持久性。
作为示例,在使用WindowsTM OS操作的计算装置中,固件可以包括本地模式应用程序形式的嵌入式软件(即平台二进制文件)。当计算装置被引导时,固件将平台二进制文件复制到计算装置的物理存储器中的某个位置,并创建Windows平台二进制表(WPBT)。WPBT是包括物理地址指针的固定的高级配置和电源接口(ACPI)表,该物理地址指针指示平台二进制文件在物理存储器中的位置。随着引导过程的继续,OS读取WPBT以确定平台二进制文件的物理存储器地址,获得并执行平台二进制文件,并将平台二进制文件写入OS启动的存储位置。例如,如果OS是从计算装置的存储装置启动的,则平台二进制文件被写入存储装置。这允许OS回收物理存储器中的存储位置。使用这个过程,每次引导计算装置时都可以确保所需软件的持久性。
然而,可能会出现不希望软件的持久化的情况。例如,计算装置可以用于诊断测试并且可以使用诊断OS来引导。在这种情况下,计算装置的固件可以将软件写入保持诊断OS的磁盘。作为示例,在计算装置使用WindowsTM OS并且计算装置使用支持WPBT的OS(即WindowsTM OS)进行诊断的情况下,固件将自动提取并公布所需的软件,使得诊断OS将软件复制到包含诊断OS的磁盘或其它源。
本公开的概念是提供一种用于选择性地防止软件的持久化的机制和框架。为了选择性地避免软件持久性,可以确定正在被引导的OS是否是计算装置的主OS,并且可以存储该确定的结果以供OS和固件使用。作为示例,可以确定正在被引导的操作***不同于主操作***,并且可以存储该确定的结果以供OS和固件使用。计算装置的主OS可以是安装在计算装置的存储装置上的OS、最近用于引导计算装置的OS、在可引导源的列表中包括的OS或不位于外部源的OS等。此外,如果正在被引导的OS不是主OS,则可以提供策略来确定是否仍应为正在被引导的OS启用所需软件的持久性。此外,可以提供一种机制,通过该机制固件将选择性地禁用软件持久性。
图1示出了根据示例的其中可以选择性地禁用软件持久性的计算装置。
参考图1,计算装置100可以包括中央处理单元(CPU)110、随机存取存储器(RAM)120、只读存储器(ROM)130、存储装置140、外部端口150、和总线60。计算装置100可以进一步包括可以被提供在计算装置100的外部的输入装置170和显示装置180。尽管未示出,但是计算装置100可以进一步包括附加装置或组件等,诸如向所示组件中的任何或全部提供电力的电源。在实施方式中,计算装置100可以是PC、膝上型计算机、平板电脑或移动终端等。
CPU 110可以控制计算装置100的整体操作。例如,CPU 110可以控制计算装置100的引导或启动,并且可以控制在计算装置100中包括的其它组件,使得执行与通过输入装置170接收的用户输入相对应的操作。CPU 110可以包括用于控制计算装置100的算术和逻辑组件并且可以被实现为标准处理装置、微处理器、微控制器或可编程集成电路等。此外,CPU110可以被实现为多个CPU或多核处理器等。
RAM 120是易失性存储器并且可以提供计算装置100的主存储器或物理存储器。RAM 120可以被实现为动态RAM(DRAM)、同步DRAM(SDRAM)或双倍数据速率***SDRAM(DDR4)等。
ROM 130是被提供用于存储在启动或引导计算装置100时使用的软件的非易失性存储器。ROM 130可以被实现为可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、非易失性RAM(NVRAM)或闪存等。
ROM 130可以包括可以用于引导计算装置100的固件131。在示例中,固件131可以包括与要在计算装置100上持续存在的应用程序、程序或驱动程序等相对应的嵌入式软件。作为示例,在其中计算装置100使用WindowsTM OS的情况下,固件131可以包括可以在OS初始化期间由WindowsTM会话管理器执行的本地模式应用程序(即,平台二进制文件)。在这种情况下,在计算装置100的引导期间,固件131可以将本地模式应用程序复制到RAM 120并创建包括RAM 120中的本地模式应用程序的地址的WPBT。
存储装置140是其上可以存储软件、应用程序、程序或驱动程序等的非易失性存储器或存储装置。存储装置140可以被实现为磁性硬盘驱动器(HDD)装置或固态驱动器(SSD)装置等。例如,如果被实现为HDD,则存储装置140可以是并行高级技术附件(PATA)存储装置(即,集成驱动电子(IDE)或增强型IDE(EIDE)存储装置)、串行ATA(SATA)存储装置或小型计算机***接口(SCSI)存储装置等。作为另一示例,如果被实现为SSD,则存储装置140可以包括闪存(诸如基于NAND的闪存)或其它基于半导体的存储器。在示例中,存储装置140具有在其中存储的主操作***(OS)141。主OS 141可以被实现为WindowsTM OS、macTM OS或LinuxTM等。在计算装置100的引导期间,主OS 141可以被提供有来自固件131的嵌入式软件以确保所需要的应用程序、程序或驱动程序等的持久性。在其中计算装置100使用WindowsTM OS的示例中,固件131创建包括RAM 120中的地址的WPBT,嵌入式本地模式应用程序已复制到该地址。在这种情况下,在WindowsTM OS引导期间,WindowsTM会话管理器将获得并执行嵌入式本地模式应用程序并将应用程序写入存储装置140。
外部端口150可以为外部存储器提供连接点。外部端口150可以被实现为通用串行总线(USB)端口、安全数字(SD)端口或microSD端口等。在示例中,诸如便携式USB装置的外部存储器装置可以使用外部端口150连接到计算装置100以执行诊断测试。在这种示例中,外部USB装置可能已经在其上存储了可用于诊断或以其它方式测试计算装置100的OS。计算装置100可以包括多个外部端口150。
总线160可以提供CPU 110、RAM 120、ROM 130、存储装置140和外部端口150中的任何或所有之间的电连接。尽管总线160在图1中被示为单条总线,但是它可以被实现为多条总线或其它类型的电连接。此外,虽然未示出,但是计算装置100可以包括耦接在总线160和所示组件之间的附加的组件或装置。
输入装置170可以接收用户输入并且可以被实现为键盘、鼠标、物理按钮、触摸屏、相机或麦克风等。显示装置180可以显示诸如执行程序的结果、用于用户选择的菜单或图形用户界面(GUI)等的信息,并且可以被实现为液晶显示器(LCD)、发光二极管(LED)显示器、有机LED(OLED)显示器或有源矩阵OLED(AMOLED)显示器等。
尽管示出为单独的组件和装置,但是组件和装置中的某些可以被实现为单个组件或装置。作为示例,输入装置170和显示装置180可以被实现为执行输入装置170和显示装置180两者的功能的单个触摸屏装置。
如上所述,可以使用固件131和主OS 141来引导计算装置100。在这种情况下,嵌入在固件131中的程序可以由主OS 141获得并执行,并且存储在存储装置140上。这将确保在每次引导计算装置100时嵌入式程序的持久性。也就是说,即使从存储装置140中删除了该程序,该程序也会在计算装置100的后续引导期间再次被执行和安装。在其中正在使用不是主OS 141的OS引导计算装置100的情况下,例如,如果使用在使用外部端口150连接到计算装置100的外部USB装置上存储的OS来诊断计算装置100,则可能期望避免嵌入式程序的持久性。
在本公开的示例中,计算装置100可以选择性地禁用软件持久性。在示例中,可以通过确定是否正在使用主OS 141引导计算装置100来选择性地禁用软件持久性。作为示例,可以确定正在被引导的OS是否不同于主OS 141。如果计算装置100没有正在使用主OS 141引导,或者如果正在被引导的OS不同于主OS 141,则可以确定正在被用于引导计算装置100的OS是否满足使得软件持久性被启用的标准。如果正在被用于引导计算装置100的OS不能满足标准,则可以禁用软件持久性。
图2示出了根据示例的在计算装置上选择性地禁用软件持久性的方法。
在本公开的示例中,确定计算装置是否正在使用主OS被引导。为了确定计算装置是否正在使用主OS被引导,需要确定哪个OS构成了主OS。参考图2,在操作205中确定计算装置的主OS。在示例中,可以认为安装在计算装置的存储装置上的OS是主OS。在另一示例中,最近用于引导计算装置的OS可以被认为是主OS。在另一示例中,计算装置可以包括可引导源的列表。在这种情况下,可以评估可引导源的列表以确定哪个可引导源是主OS。作为示例,在使用WindowsTM OS的计算装置中,创建了可引导源的列表,该列表包括标记为Windows引导管理器的条目。如果存在Windows引导管理器,则可以将其视为主OS。可替代地,可引导源的列表中的第一条目,或基于本地源的可引导源的列表中的第一条目(例如,非基于USB的OS、非基于网络的OS等)可以被认为主OS。在又一示例中,如果正在被引导的OS位于外部源上(例如,基于USB的OS、基于网络的OS等),则可以确定正在被引导的OS不是主OS。
在操作205中确定主OS还可以包括存储关于主OS的信息,例如与主OS的源相对应的硬件信息或者与主OS的位置相对应的装置路径等。记录的信息可以存储在固件中、计算装置的RAM中或者计算装置的存储装置中等。
基于在操作205中对主OS的确定,在操作210中确定计算装置是否正在使用主OS被引导。作为示例,可以确定计算装置是否正在使用不同于主OS的OS被引导。在操作210的确定计算装置是否正在使用主OS被引导时,计算装置可以将正在被引导的OS与在操作205中确定的主OS进行比较。作为示例,计算装置可以将存储的关于主OS的信息与关于正在被引导的OS的信息进行比较。例如,如果关于正在被引导的OS的硬件信息与存储的关于主OS的硬件信息相匹配,则计算装置可以认为正在被引导的OS是主OS。在另一示例中,如果正在被引导的OS的装置路径信息与存储的主OS的装置路径信息相匹配,则计算装置可以认为正在被引导的OS是主OS。
如果在操作210中确定计算装置正在使用主OS被引导,则在操作220中启用软件持久性。作为示例,当计算装置使用WindowsTM OS时,固件可以继续创建WPBT以公布由主OS执行和存储的嵌入式程序。
在操作230中,计算装置继续引导过程以启动OS并开始操作。
另一方面,如果在操作210中确定计算装置正在使用不同于主OS的OS被引导,则在操作240中确定正在被引导的OS是否满足用于启用软件持久性的标准。作为示例,可以确定正在被引导的OS是位于内部源(例如,计算装置的存储装置)上还是位于外部源(例如,基于USB的装置)上。就此而言,在确定是否满足标准时,可以考虑关于正在被引导的OS的信息,例如与正在被引导的OS的源相对应的硬件信息或者与正在被引导的OS的位置相对应的装置路径等。用户可以设置标准,使得如果正在被引导的OS位于外部装置上,则标准未被满足。类似地,用户可以设置标准,使得如果正在被引导的OS位于内部位置上,则标准被满足。
如果在操作240中确定正在被引导的OS不满足用于启用软件持久性的标准,则在操作250中禁用软件持久性。例如,可以使用固件来禁用软件持久性。例如,在WindowsTM OS中,固件可以防止使用平台二进制文件的地址来填充WPBT,可以从WPBT中擦除或以其它方式去除关于平台二进制文件的信息,或者可以从主ACPI表中去除指向WPBT的指针,使得OS不会被指示使用WPBT。过程继续到操作230以继续计算装置的引导。
另一方面,如果在操作240中确定正在被引导的OS确实满足用于启用软件持久性的标准,则过程继续到其中启用软件持久性的操作220,并且继续到其中计算装置继续引导过程以启动OS并开始操作的操作230。
图3示出了根据示例的在计算装置中选择性地禁用软件持久性的方法。
如上面参考图2所描述的,计算装置可以确定主OS并存储关于主OS的信息。作为示例,计算装置可以存储诸如与主OS的源相对应的硬件信息或者与主OS的位置相对应的装置路径等信息。使用所存储的信息,可以确定正在用于引导计算装置的OS是否是主OS。
参照图3,在操作310中,计算装置可以确定是否保存了上次成功的OS的信息。例如,计算装置的固件可以确定是否保存了与上次成功的OS的源相对应的硬件信息。在另一示例中,计算装置的固件可以确定是否保存了与上次成功的OS的源相对应的装置路径。在示例中,信息可以保存在固件中、保存到计算装置的RAM或者保存到计算装置的存储装置等。
如果在操作310中确定保存了上次成功的OS的信息,则计算装置在操作315中确定正在被引导的OS的信息。在操作315中,计算装置可以确定正在被引导的OS的与上次成功的OS的保存信息相似的的信息。作为示例,如果上次成功的OS的保存信息包括与上次成功的OS的源相对应的硬件信息,则计算装置将确定与正在被引导的OS的源相对应的硬件信息。作为另一示例,如果上次成功的OS的保存信息包括与上次成功的OS的位置相对应的装置路径信息,则计算装置将确定与正在被引导的OS的位置相对应的装置路径信息。
另一方面,如果在操作310中确定没有保存上次成功的OS的信息,则在操作345中将上次成功的OS的信息设置为空字符串并且过程继续到操作315以确定正在被引导的OS的信息。
在操作320,确定上次成功的OS的信息是否与正在被引导的OS的信息相匹配。如果上次成功的OS的信息与正在被引导的OS的信息相匹配,则认为正在被引导的OS是主OS。在这种情况下,过程继续到其中启用软件持久性的操作325。
另一方面,如果在操作320中确定上次成功的OS的信息与正在被引导的OS的信息不匹配,则认为正在被引导的OS不是主OS。在这种情况下,在操作350中确定正在被引导的OS的信息是否与软件持久性兼容。作为示例,可以在操作350中确定正在被引导的OS是否满足启用软件持久性的标准。
用于启用软件持久性的标准可以由计算装置的用户或制造商设置。作为示例,标准可以对应于与正在被引导的OS是否驻留在计算装置的内部或外部源上或者正在被引导的OS是否列在引导菜单的某个层次结构内等有关的信息。
如果在操作350中确定正在被引导的OS的信息与软件持久性兼容,则在操作355中将正在被引导的OS的信息设置为上次成功的OS的信息。在操作355中,正在被引导的OS的信息可以保存在固件中或者保存到计算装置的存储装置等。过程进行到其中启用软件持久性的操作325。
另一方面,如果在操作350中确定正在被引导的OS的信息与软件持久性不兼容,则在操作360中禁用软件持久性。作为示例,固件可以不使用已被复制到计算装置的RAM的嵌入式程序的地址来填充WPBT表。作为另一示例,固件可以删除RAM地址或关于嵌入式程序的其它信息,使得正在被引导的OS无法获得并执行该程序。在又一示例中,固件可以配置主ACPI表,使得它不指向WPBT并且OS无法获得和执行嵌入式程序。
在其中启用软件持久性的操作325之后,或者在其中禁用软件持久性的操作360之后,保存关于软件持久性的状态信息。作为示例,如果操作320的确定指示正在被引导的OS是主OS,使得在操作325中软件持久性被启动,则在操作320中存储的状态信息将指示软件持久性被启用。另一方面,如果操作320的确定指示正在被引导的OS不是主OS并且操作350的确定指示正在被引导的OS与软件持久性不兼容,使得在操作360中软件持久性被禁用,则在操作320中存储的状态信息将指示软件持久性被禁用。在任一情况下,固件可以通过更新固件中的变量、通过将状态信息保存到计算装置的物理存储器或者通过将状态信息保存到计算装置的存储装置等来保存状态信息。在示例中,状态信息可以是在固件中存储的单个位标志。
在操作335中,计算装置继续引导过程以启动OS并开始操作。
在操作340中,可以确定操作335的引导过程是否成功。在操作335的示例中,可能存在其中正在被引导的OS的路径与安装OS的位置不对应的情况。例如,如果引导路径被用户错误地选择为不包含OS的路径,则在操作340中将确定引导不成功。
如果在操作340中确定操作335的引导过程成功,则计算装置结束该过程。另一方面,如果在操作340中确定操作335的引导过程不成功,则固件可以在操作365中设置到用于引导的下一个OS的路径。在固件设置了到用于引导的下一个OS的路径之后,该过程返回到操作320并继续如上所述的后续操作。
图4A和图4B示出了根据各种示例的在选择性地禁用软件持久性时可以考虑的OS的信息。
参考图4A,计算装置可以提供用户界面,用户可以从该用户界面选择用于引导的OS。在这种情况下,计算装置可以显示示出计算装置可用的可引导源的列表的屏幕410并且突出显示所选择的OS。在图4A的示例中,示出了计算装置使用WindowsTM OS操作。在这种情况下,可引导源的列表可以包括UEFI Windows引导管理器的第一源411。在图4A的示例中,UEFI Windows引导管理器的第一源411已被用户选择并且与其它条目相比被示出为突出显示。
可引导源的列表还可以包括基于UEFI的外部源412。作为示例,如果用户将包括OS存储在其上的基于USB的外部存储装置连接到计算装置,则可引导源的列表将显示基于UEFI的外部源412。可以在计算装置的诊断过程期间使用具有OS存储在其上的基于USB的外部存储装置。在这种情况下,可能需要禁用软件持久性。
可引导源的列表可以进一步包括传统OS源413。在示例中,传统OS源413可以对应于使用存储在计算装置的存储装置上但处于传统(例如,非UEFI)模式的OS来引导计算装置。在这种情况下,因为传统OS源413可以满足软件持久性的标准,如果用户选择了传统OS源413,则可以启用软件持久性。
可引导源的列表可以包括与位于计算装置外部的网络上并以传统(例如,非UEFI)模式操作的OS相对应的传统网络(N/W)源414。如果选择传统N/W源414作为用于引导计算装置的OS,则可以确定不需要用于软件持久性的标准,这是因为OS位于外部源上,使得可以禁用软件持久性。
可引导源的列表还可以包括允许用户从可以位于计算装置内部或外部的文件位置中选择OS的从文件引导(Boot From File)源415。在选择从文件引导源415作为用于引导的OS的源的情况下,软件持久性可以取决于文件位置是在计算装置内部还是外部。在另一示例中,可以基于从文件引导源415在可引导源的列表上的层次结构来禁用软件持久性。
参考图4B,屏幕420示出了与计算装置可用的可引导源相对应的信息的列表的示例。在图4B的示例中,信息可以包括可引导源的描述或者可引导源的位置(例如,装置路径)等。当然,与可引导源相对应的信息不限于图4B中所示的信息,并且可以包括更多或更少的与可引导源相对应的信息。信息的列表可以包括与Windows引导管理器(Windows BootManager)相对应的第一信息421。在第一信息421中,位置或装置路径指向存储装置,其具有全局唯一标识符(GUID)、从扇区0x800开始且长度为0xB4000的分区以及与OS相对应的特定文件。在确定是否禁用软件持久性时,这些信息中的任何信息都可以用作上次成功的OS和/或正在被引导的OS的信息。
信息的列表可以包括包含与基于UEFI的外部源OS相对应的外部USB装置的控制器的位置的第二信息422。第二信息422可以包括与USB装置相对应的PCI地址以及在USB控制器上的地址。信息的列表可以包括包含与第二信息422相同但处于传统模式(例如,非UEFI)的外部USB装置的位置的第三信息423。信息的列表可以包括包含磁盘在非易失性存储器控制器上的位置且包含PCI地址的第四信息424。最后,信息的列表可以包括包含支持互联网协议版本4(IPv4)的网络装置的位置的第五信息425。
在确定是否禁用软件持久性时,第一信息421至第五信息425中的任何信息(例如,位置、装置路径、硬件信息、PCI地址等)都可以用作上次成功的OS和/或正在被引导的OS的信息。即,屏幕420中所示的第一信息421至第五信息425可以用作与在引导计算装置时可以使用的OS相对应的信息。在这种情况下,该信息可以与存储的信息进行比较以确定正在被引导的OS是否是主OS或者正在被引导的OS是否满足用于软件持久性的标准。
前述示例还可以实施为其上记录有计算机可执行指令和数据的非暂时性计算机可读记录介质。指令和数据中的至少一者可以以程序代码的形式存储并且可以在由处理器执行时使得程序模块执行适当的操作。非暂时性计算机可读记录介质的示例包括磁存储介质(例如,硬盘)和光记录介质(例如,压缩盘(CD)或数字多功能盘(DVD)),或者在可通过网络访问的服务器中包括的存储器。
虽然已经参考本公开的各种示例示出和描述了本公开,但是本领域技术人员将理解,在不脱离由所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以在形式和细节上进行各种改变。因此,本公开的范围不应仅由所描述的示例来定义,而应由所附权利要求及其等同物来定义。
Claims (15)
1.一种计算装置,包括:
存储装置;
随机存取存储器;
只读存储器;以及
处理器,用于:
在引导过程期间,确定正在被引导的操作***是否是主操作***;
响应于确定正在被引导的所述操作***不同于所述主操作***,确定正在被引导的所述操作***是否满足第一标准;以及
响应于确定正在被引导的所述操作***不满足所述第一标准,禁用软件持久性。
2.根据权利要求1所述的计算装置,其中,所述处理器进一步用于存储所述软件持久性被禁用的指示符。
3.根据权利要求1所述的计算装置,其中,响应于确定正在被引导的所述操作***满足所述第一标准,所述处理器进一步用于:
存储与正在被引导的所述操作***的源相对应的硬件信息或与正在被引导的所述操作***的位置相对应的装置路径;
启用所述软件持久性;以及
存储所述软件持久性被启用的指示符。
4.根据权利要求1所述的计算装置,
其中,所述处理器进一步用于通过将与正在被引导的所述操作***的源相对应的硬件信息或与正在被引导的所述操作***的位置相对应的装置路径与存储的信息进行比较来确定正在被引导的所述操作***是否是所述主操作***,并且
其中,所述处理器进一步用于通过识别正在被引导的所述操作***的硬件信息、正在被引导的所述操作***的装置路径或正在被引导的所述操作***是否是可引导源的列表中的条目来确定正在被引导的所述操作***是否满足所述第一标准。
5.根据权利要求1所述的计算装置,其中,当所述引导过程未完成时,所述处理器进一步用于选择另一操作***并且确定所述另一操作***是否满足所述第一标准。
6.一种计算装置,包括:
存储装置;
随机存取存储器;
只读存储器;以及
处理器,用于:
在引导过程期间,确定正在被引导的操作***的信息是否与上次用于引导所述计算装置的操作***的信息相匹配;
响应于确定正在被引导的所述操作***的所述信息与上次用于引导所述计算装置的所述操作***的所述信息不匹配,确定正在被引导的所述操作***的所述信息是否与软件持久性兼容;以及
响应于确定正在被引导的所述操作***的所述信息与所述软件持久性不兼容,禁用所述软件持久性。
7.根据权利要求6所述的计算装置,其中,所述处理器进一步用于存储所述软件持久性被禁用的指示符。
8.根据权利要求6所述的计算装置,
其中,响应于确定正在被引导的所述操作***的所述信息与所述软件持久性兼容,所述处理器进一步用于存储正在被引导的所述操作***的所述信息,并且
其中,正在被引导的所述操作***的所述信息包括正在被引导的所述操作***的源或与正在被引导的所述操作***的位置相对应的装置路径。
9.根据权利要求6所述的计算装置,其中,响应于确定正在被引导的所述操作***的所述信息与所述软件持久性兼容,所述处理器进一步用于:
启用所述软件持久性;以及
存储所述软件持久性被启用的指示符。
10.根据权利要求6所述的计算装置,其中,当所述引导过程未完成时,所述处理器进一步用于选择另一操作***并且确定所述另一操作***是否与所述软件持久性兼容。
11.一种编码有处理器能执行的指令的非暂时性机器可读存储介质,所述机器可读存储介质包括:
用于确定计算装置的主操作***的指令;
用于确定正在被引导的操作***是否是所述计算装置的所述主操作***的指令;
用于确定正在被引导的所述操作***是否满足第一标准的指令;以及
用于响应于确定正在被引导的所述操作***不是所述主操作***或未满足所述第一标准来禁用软件持久性的指令。
12.根据权利要求11所述的机器可读存储介质,进一步包括用于存储所述软件持久性被禁用的指示符的指令。
13.根据权利要求11所述的机器可读存储介质,进一步包括用于响应于确定正在被引导的所述操作***满足所述第一标准来存储与正在被引导的所述操作***的源相对应的硬件信息或与正在被引导的所述操作***的位置相对应的装置路径的指令。
14.根据权利要求13所述的机器可读存储介质,进一步包括用于响应于确定正在被引导的所述操作***满足所述第一标准来执行以下动作的指令:
用于启用所述软件持久性的指令;以及
用于存储所述软件持久性被启用的指示符的指令。
15.根据权利要求11所述的机器可读存储介质,其中,用于确定正在被引导的所述操作***是否是所述主操作***的所述指令包括用于将与正在被引导的所述操作***的源相对应的硬件信息或与正在被引导的所述操作***的位置相对应的装置路径与存储的信息进行比较的指令。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2019/032810 WO2020236133A1 (en) | 2019-05-17 | 2019-05-17 | Disabling software persistence |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113646745A true CN113646745A (zh) | 2021-11-12 |
Family
ID=73459135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980094778.4A Pending CN113646745A (zh) | 2019-05-17 | 2019-05-17 | 禁用软件持久性 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220066784A1 (zh) |
EP (1) | EP3935492A4 (zh) |
CN (1) | CN113646745A (zh) |
TW (1) | TWI754221B (zh) |
WO (1) | WO2020236133A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230111120A1 (en) * | 2020-03-27 | 2023-04-13 | Hewlett-Packard Development Company, L.P. | Alternate operating systems |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140325665A1 (en) * | 2012-05-11 | 2014-10-30 | Frederick J. Duca | Computer system for preventing the disabling of content blocking software functionality therein, and method therefor |
US20140337610A1 (en) * | 2013-05-11 | 2014-11-13 | Lenovo (Singapore) Pte, Ltd. | Arrangement for secure independent operating environments in a computer |
CN104813329A (zh) * | 2012-11-19 | 2015-07-29 | 戴尔产品有限公司 | 响应于外部存储资源启动的信息处理资源的隔离***及方法 |
US9681251B1 (en) * | 2014-03-31 | 2017-06-13 | Sprint Communications Company L.P. | Customization for preloaded applications |
US20190026140A1 (en) * | 2017-07-20 | 2019-01-24 | Vmware, Inc. | Managing hosts of a pre-configured hyper-converged computing device |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6754855B1 (en) | 1999-12-01 | 2004-06-22 | Microsoft Corporation | Automated recovery of computer appliances |
US7779243B2 (en) * | 2006-12-29 | 2010-08-17 | Intel Corporation | Dual operating system computing system |
US20100211769A1 (en) * | 2009-02-19 | 2010-08-19 | Subramonian Shankar | Concurrent Execution of a Smartphone Operating System and a Desktop Operating System |
US8171272B1 (en) * | 2009-04-09 | 2012-05-01 | Symantec Corporation | Critical pre-OS driver verification |
TW201106267A (en) * | 2009-08-13 | 2011-02-16 | Acer Inc | Operation system data update method and electronic apparatus having multiple operation systems |
US8185729B2 (en) * | 2009-08-27 | 2012-05-22 | Devon It, Inc. | Method of converting personal computers into thin client computers |
JPWO2014155528A1 (ja) * | 2013-03-26 | 2017-02-16 | 株式会社東芝 | 電子機器および制御方法 |
US9588774B2 (en) * | 2014-03-18 | 2017-03-07 | International Business Machines Corporation | Common boot sequence for control utility able to be initialized in multiple architectures |
US10212601B2 (en) * | 2016-01-21 | 2019-02-19 | Motorola Mobility Llc | Hardware verification with RFID-stored build information |
US10445503B2 (en) * | 2017-07-14 | 2019-10-15 | Google Llc | Secure persistent software updates |
US10754955B2 (en) * | 2017-08-04 | 2020-08-25 | Dell Products, L.P. | Authenticating a boot path update |
US20210373905A1 (en) * | 2020-05-28 | 2021-12-02 | Dell Products L.P. | Systems and methods for cloud-centric operating system deployment through service operating system |
-
2019
- 2019-05-17 WO PCT/US2019/032810 patent/WO2020236133A1/en unknown
- 2019-05-17 EP EP19930145.8A patent/EP3935492A4/en active Pending
- 2019-05-17 US US17/293,025 patent/US20220066784A1/en active Pending
- 2019-05-17 CN CN201980094778.4A patent/CN113646745A/zh active Pending
-
2020
- 2020-02-14 TW TW109104745A patent/TWI754221B/zh not_active IP Right Cessation
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140325665A1 (en) * | 2012-05-11 | 2014-10-30 | Frederick J. Duca | Computer system for preventing the disabling of content blocking software functionality therein, and method therefor |
CN104813329A (zh) * | 2012-11-19 | 2015-07-29 | 戴尔产品有限公司 | 响应于外部存储资源启动的信息处理资源的隔离***及方法 |
US20140337610A1 (en) * | 2013-05-11 | 2014-11-13 | Lenovo (Singapore) Pte, Ltd. | Arrangement for secure independent operating environments in a computer |
US9681251B1 (en) * | 2014-03-31 | 2017-06-13 | Sprint Communications Company L.P. | Customization for preloaded applications |
US20190026140A1 (en) * | 2017-07-20 | 2019-01-24 | Vmware, Inc. | Managing hosts of a pre-configured hyper-converged computing device |
Also Published As
Publication number | Publication date |
---|---|
TW202044034A (zh) | 2020-12-01 |
TWI754221B (zh) | 2022-02-01 |
EP3935492A4 (en) | 2023-02-08 |
WO2020236133A1 (en) | 2020-11-26 |
EP3935492A1 (en) | 2022-01-12 |
US20220066784A1 (en) | 2022-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9501289B2 (en) | Method of a UEFI firmware and computer system thereof | |
US10055218B2 (en) | System and method for adding and storing groups of firmware default settings | |
US8751783B2 (en) | Booting computing devices with EFI aware operating systems | |
US9239725B2 (en) | System and method for installing an OS via a network card supporting PXE | |
WO2018076792A1 (zh) | 一种arm设备中磁盘管理的方法、装置和arm设备 | |
US9448889B2 (en) | BIOS failover update with service processor | |
US20210004242A1 (en) | Method and system for remote selection of boot device | |
US11144328B2 (en) | System method to update failover process by running basic input/output (BIOS) system boot code from non-volatile memory express device (NVME) | |
US10606677B2 (en) | Method of retrieving debugging data in UEFI and computer system thereof | |
CN107766084B (zh) | 启动装载及安装方法及其计算*** | |
US9411605B2 (en) | Device-less and system agnostic unified extensible firmware interface (UEFI) driver | |
US10664598B1 (en) | Firmware security patch deployment | |
US9672047B1 (en) | Systems and methods for accessing a bootable partition on a serial peripheral interface device | |
US11704198B2 (en) | Method and apparatus for providing recovery from a computing device boot up error | |
CN107135462B (zh) | Uefi固件的蓝牙配对方法及其计算*** | |
US7849300B2 (en) | Method for changing booting sources of a computer system and a related backup/restore method thereof | |
US11106457B1 (en) | Updating firmware runtime components | |
US8499142B1 (en) | UEFI boot loader for loading non-UEFI compliant operating systems | |
US20130097412A1 (en) | Performing A Boot Sequence In A Multi-Processor System | |
TWI743480B (zh) | 電腦系統與其開機方法 | |
TWI754221B (zh) | 軟體存留性關閉技術 | |
US11340882B2 (en) | Systems and methods for enforcing update policies while applying updates from bootable image file | |
US10838737B1 (en) | Restoration of memory content to restore machine state | |
TWI518594B (zh) | 計算機系統與計算機系統啓動方法 | |
US10628309B1 (en) | Loading a serial presence detect table according to jumper settings |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20211112 |