TWI754221B - 軟體存留性關閉技術 - Google Patents
軟體存留性關閉技術 Download PDFInfo
- Publication number
- TWI754221B TWI754221B TW109104745A TW109104745A TWI754221B TW I754221 B TWI754221 B TW I754221B TW 109104745 A TW109104745 A TW 109104745A TW 109104745 A TW109104745 A TW 109104745A TW I754221 B TWI754221 B TW I754221B
- Authority
- TW
- Taiwan
- Prior art keywords
- operating system
- powered
- computing device
- information
- software
- Prior art date
Links
- 230000002688 persistence Effects 0.000 title claims abstract description 77
- 238000000034 method Methods 0.000 claims abstract description 23
- 230000004044 response Effects 0.000 claims abstract description 12
- 238000002405 diagnostic procedure Methods 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 238000003745 diagnosis Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process 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
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002085 persistent effect Effects 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
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
本揭示係有關於軟體存留性關閉技術。
在一運算環境中,可期望確保某一程式、應用程式、或類似者可用於藉由一作業系統來執行。舉例而言,可期望確保該作業系統設置有防盜軟體、防惡意程式軟體、一特定驅動程式、或類似者。因此,該運算環境可包括藉由自動安裝程式或應用程式來確保某程式或應用程式之存留性的能力。然而,可能出現期望避免此類存留性的情況。
依據本發明之一實施例,係特地提出一種運算裝置,其包含:一儲存裝置;一隨機存取記憶體;一唯讀記憶體;以及一處理器,其用以:在一開機程序中判斷一開機之作業系統是否係一主作業系統;回應於該開機之作業系統係有別於該主作業系統之一判斷而判斷該開機之作業系統是否滿足一第一準則;以及回應於該開機之作業系統無法滿足該第一準則之一判斷而停用軟體存留性。
下文中參照附圖更完全地說明各種實例。可將下文所述實例修改成許多不同形式。
在整篇說明書中,當一元件稱為「連接」或「耦合」至另一元件時,其可直接連接或耦合至另一元件、或可憑藉於之間插入的中介元件來連接或耦合至另一元件。
在以下說明中,除非另有所指,一單數表達包括一複數表達。也要瞭解的是,諸如「包含」或「包括」之用語在本文中係用於指定一特性、一數字、一步驟、一操作、一元件、一組件、或以上的組合之存在性,而不是用於排除新增其他特性、數字、步驟、操作、元件、組件、或以上的組合中之一或多者之存在性或可能性。也要瞭解的是,除非另外明確敍述,否則諸如「第一」、「第二」、或類似者之用語係用於在具有相同或相似術語之物體之間作區別,並且絕非意欲代表一順序。
諸如一個人電腦(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之算術及邏輯組件,並且可予以實施成一標準處理裝置、一微處理器、一微控制器、一可規劃積體電路、或類似者。同樣地,可將CPU 110實施成多個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建立一WPBT,該WPBT在RAM 120中包括已受複製一嵌入式原生模式應用程式之一位址。在那種狀況中,於WindowsTM
OS開機期間,WindowsTM
工作階段管理員將取得並執行嵌入式原生模式應用程式,並且將該應用程式寫入至儲存裝置140。
外部連接埠150可為一外部記憶體提供一連接點。可將外部連接埠150實施成一通用串列匯流排(USB)連接埠、一安全數位(SD)連接埠、一microSD連接埠、或類似者。在一實例中,可使用外部連接埠150將諸如一可攜式USB裝置之一外部記憶體裝置連接至運算裝置100以進行診斷測試。在那實例中,外部USB裝置可具有儲存於其上之一OS,可將該OS用於診斷或按其他方式測試運算裝置100。運算裝置100可包括複數個外部連接埠150。
匯流排160可在CPU 110、RAM 120、ROM 130、儲存裝置140、及外部連接埠150中任何一者或全部之間提供一電氣連接。雖然圖1中將匯流排160繪示為一單一匯流排,仍可將其實施成複數個匯流排或其他類型之電氣連接。再者,雖然圖未示,運算裝置100仍可包括附加組件或在匯流排160與所示組件之間耦合的裝置。
輸入裝置170可接收一使用者輸入,並且可予以實施成一鍵盤、一滑鼠、一實體按鈕、一觸控螢幕、一相機、一麥克風、或類似者。顯示裝置180可顯示諸如執行一程式之一結果、用於一使用者選擇之一選單、一圖形使用者介面(GUI)、或類似者之資訊,並且可予以實施成一液晶顯示器(LCD)、一發光二極體(LED)顯示器、一有機LED (OLED)顯示器、一主動矩陣OLED (AMOLED)顯示器、或類似者。
雖然繪示為單獨組件及裝置,仍可將某些該等組件及裝置實施成一單一組件或裝置。舉一例來說,可將輸入裝置170及顯示裝置180實施成進行輸入裝置170及顯示裝置180兩者之功能的一單一觸控螢幕裝置。
如上述,運算裝置100可使用韌體131及主OS 141來開機。在那種狀況中,嵌入在韌體131中之一程式可藉由主OS 141取得並執行,並且儲存在儲存裝置140上。這將確保運算裝置100每次開機時嵌入式程式之存留性。也就是說,即使將程式從儲存裝置140刪除,運算裝置100之一隨後開機期間仍將重新執行及安裝該程式。在使用非為主OS 141之一OS使運算裝置100開機之一情況下,舉例而言,如果運算裝置100係使用儲存在以外部連接埠150連接至運算裝置100之一外部USB裝置上之一OS來診斷,則仍可期望避免嵌入式程式之存留性。
在本揭露之實例中,運算裝置100可選擇性地停用軟體存留性。在一實例中,軟體存留性可藉由判斷運算裝置100是否係使用主OS 141開機來選擇性地停用。舉一例來說,可判斷開機之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抹除或按其他方式移除、或可將指向WPBT之一指標從一主ACPI表移除,使得OS未受引導使用WPBT。程序繼續至操作230以繼續運算裝置之開機。
另一方面,如果操作240中判斷開機之OS的確滿足用於啟用軟體存留性之準則,則程序繼續至操作220啟用軟體存留性,並且至操作230,其中運算裝置繼續開機程序以啟動OS並開始操作。
圖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開機管理程式之一第一資訊421。在第一資訊421中,位置或裝置路徑指向一儲存裝置,該儲存裝置具有一全球唯一識別符(GUID)、起於長度為0xB4000之扇區0x800之一分區、以及對應於一OS之一特定檔案。此資訊中任何一者均可在判斷是否停用軟體存留時用作為一上次成功OS及/或一開機之OS的資訊。
資訊清單可包括一第二資訊422,第二資訊422包括與一UEFI為基之外部來源OS對應之一外部USB裝置之一控制器之一位置。第二資訊422可包括對應於USB裝置之一PCI位址以及USB控制器上之一位址。資訊清單可包括一第三資訊423,第三資訊423如同第二資訊422包括相同外部USB裝置之一位置,但處於舊有模式(例如:非UEFI)。資訊清單可包括一第四資訊424,第四資訊424包括一碟片在一非依電性記憶體控制器上之一位置並且包括一PCI位址。最後,資訊清單可包括一第五資訊425,第五資訊425包括支援網際網路協定版本4 (IPv4)之一網路裝置之一位置。
第一至第五資訊421至425中之任何資訊(例如:位置、裝置路徑、硬體資訊、一PCI位址等)均可用作為一上次成功OS及/或判斷是否停用軟體存留性之一開機之OS的資訊。也就是說,畫面420中說明之第一至第五資訊421至425可用作為與可在使運算裝置開機時使用之一OS對應的資訊。在那種狀況中,可將該資訊與所儲存資訊作比較,以判斷一開機之OS是否係一主OS,或該開機之OS是否滿足用於軟體存留性之一準則。
前述實例亦可具體實現為上有記錄電腦可執行指令及資料之一非暫時性電腦可讀記錄媒體。可將該等指令及資料中之至少一者以程式碼之形式儲存,並且可令一程式模組在由一處理器執行時進行一適當操作。非暫時性電腦可讀記錄媒體之實例包括磁性儲存媒體(例如:硬碟)及光學記錄媒體(例如:光碟(CD)或數位多樣化光碟(DVD))、或包括在可透過一網路存取之一伺服器中之記憶體。
儘管本揭露已參照其各種實例展示並且說明,所屬技術領域中具有通常知識者將會瞭解的是,仍可於其中進行各種形式及細節方面的改變,但不會脫離如隨附申請專利範圍及其均等論述所定義本揭露之精神與範疇。因此,本揭露之範疇不應單獨由所述實例來定義,而是應由所隨附申請專利範圍及其均等論述來定義。
100:運算裝置
110:中央處理單元
120:隨機存取記憶體
130:唯讀記憶體
131:韌體
140:儲存裝置
141:主作業系統
150:外部連接埠
160:匯流排
170:輸入裝置
180:顯示裝置
210~250,310~365:操作
本揭露之某些實例將從以下說明搭配附圖而更顯而易見,其中:
圖1根據一實例繪示可在其中選擇性地停用軟體存留性之一運算裝置;
圖2根據一實例繪示在一運算裝置上選擇性地停用軟體存留性之一方法;
圖3根據一實例繪示在一運算裝置上選擇性地停用軟體存留性之一方法;以及
圖4A及4B根據各種實例繪示當選擇性地停用軟體存留性時可考量之一作業系統(OS)之資訊。
在各個附圖中,應知,相似之參考數字符號係用於繪示相同或類似之元件、特徵、部件、組件、及結構。
210~250:操作
Claims (15)
- 一種運算裝置,其包含:一儲存裝置;一隨機存取記憶體;一唯讀記憶體;以及一處理器,其用以:在一開機程序中判斷正在開機之一作業系統是否係一主作業系統;回應於正在開機之該作業系統係有別於該主作業系統之一判斷而判斷正在開機之該作業系統是否滿足一第一準則;以及回應於正在開機之該作業系統未能滿足該第一準則之一判斷而停用軟體存留性。
- 如請求項1之運算裝置,其中該處理器係進一步用來儲存該軟體存留性被停用之一指示符。
- 如請求項1之運算裝置,其中回應於正在開機之該作業系統滿足該第一準則之一判斷,該處理器係進一步用來:儲存與正在開機之該作業系統之一來源對應之硬體資訊、或與正在開機之該作業系統之一位置對應之一裝置路徑;啟用該軟體存留性;以及儲存該軟體存留性被啟用之一指示符。
- 如請求項1之運算裝置,其中該處理器係進一步用來藉由將與正在開機之該作業系統之一來源對應之硬體資訊、或與正在開機之該作業系統之一位置對應之一裝置路徑與所儲存資訊作比較,來判斷正在開機之該作業系統是否係該主作業系統,以及其中該處理器係進一步用來藉由識別正在開機之該作業系統之硬體資訊、 正在開機之該作業系統之一裝置路徑來判斷正在開機之該作業系統是否滿足該第一準則,或判斷正在開機之該作業系統是否係一可開機來源清單上之一表項。
- 如請求項1之運算裝置,其中當該開機程序未能完成時,該處理器係進一步用來選擇另一作業系統,並且判斷該另一作業系統是否滿足該第一準則。
- 一種運算裝置,其包含:一儲存裝置;一隨機存取記憶體;一唯讀記憶體;以及一處理器,其用以:在一開機程序期間,判斷正在開機之一作業系統之資訊是否與上次用於使該運算裝置開機之一作業系統之資訊匹配;回應於正在開機之該作業系統之該資訊未能與上次用於使該運算裝置開機之該作業系統之該資訊匹配之一判斷,判斷正在開機之該作業系統之該資訊是否與軟體存留性相容;以及回應於正在開機之該作業系統之該資訊與該軟體存留性不相容之一判斷而停用該軟體存留性。
- 如請求項6之運算裝置,其中該處理器係進一步用來儲存該軟體存留性被停用之一指示符。
- 如請求項6之運算裝置,其中,回應於正在開機之該作業系統之該資訊與該軟體存留性相容之一判斷,該處理器係進一步用來儲存正在開機之該作業系統之該資訊,以及其中,正在開機之該作業系統之該資訊包括正在開機之該作業系統之一來源、或與正在開機之該作業系統之一位置對應之一裝置路徑。
- 如請求項6之運算裝置,其中,回應於正在開機之該作業系統之該資訊與該軟體存留性相容之一判斷,該處理器係進一步用來:啟用該軟體存留性;以及儲存該軟體存留性被啟用之一指示符。
- 如請求項6之運算裝置,其中當該開機程序未能完成時,該處理器係進一步用來選擇另一作業系統,並且判斷該另一作業系統是否與該軟體存留性相容。
- 一種非暫時性機器可讀儲存媒體,其編碼有可由一處理器執行之指令,該機器可讀儲存媒體包含:用以判斷一運算裝置之一主作業系統的指令;用以判斷正在開機之一作業系統是否係該運算裝置之該主作業系統的指令;用以判斷正在開機之該作業系統是否滿足一第一準則的指令;以及用以回應於正在開機之該作業系統有別於該主作業系統、或未能滿足該第一準則之一判斷而停用軟體存留性的指令。
- 如請求項11之機器可讀儲存媒體,其更包含用以儲存該軟體存留性被停用之一指示符的指令。
- 如請求項11之機器可讀儲存媒體,其更包含用以回應於正在開機之該作業系統滿足該第一準則之一判斷而儲存與正在開機之該作業系統之一來源對應之硬體資訊、或與正在開機之該作業系統之一位置對應之一裝置路徑的指令。
- 如請求項13之機器可讀儲存媒體,其更包含用以回應於正在開機之該作業系統滿足該第一準則之該判斷的指令:用以啟用該軟體存留性的指令;以及 用以儲存該軟體存留性被啟用之一指示符的指令。
- 如請求項11之機器可讀儲存媒體,其中用以判斷正在開機之該作業系統是否係該主作業系統的指令包含用以將與正在開機之該作業系統之一來源對應之硬體資訊、或與正在開機之該作業系統之一位置對應之一裝置路徑與所儲存資訊作比較的指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2019/032810 WO2020236133A1 (en) | 2019-05-17 | 2019-05-17 | Disabling software persistence |
WOPCT/US19/32810 | 2019-05-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202044034A TW202044034A (zh) | 2020-12-01 |
TWI754221B true TWI754221B (zh) | 2022-02-01 |
Family
ID=73459135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109104745A TWI754221B (zh) | 2019-05-17 | 2020-02-14 | 軟體存留性關閉技術 |
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 (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
TWI639090B (zh) * | 2014-03-18 | 2018-10-21 | 萬國商業機器公司 | 用於可在多種架構中初始化之控制公用程式之共同開機順序 |
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 |
US8185729B2 (en) * | 2009-08-27 | 2012-05-22 | Devon It, Inc. | Method of converting personal computers into thin client computers |
US9092596B2 (en) * | 2012-05-11 | 2015-07-28 | Onyx Protected Systems, Llc | Computer system for preventing the disabling of content blocking software functionality therein, and method therefor |
US9092630B2 (en) * | 2012-11-19 | 2015-07-28 | Dell Products L.P. | Systems and methods for isolation of information handling resources in response to external storage resource boot |
WO2014155528A1 (ja) * | 2013-03-26 | 2014-10-02 | 株式会社 東芝 | 電子機器および制御方法 |
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 EP EP19930145.8A patent/EP3935492A4/en active Pending
- 2019-05-17 WO PCT/US2019/032810 patent/WO2020236133A1/en unknown
- 2019-05-17 CN CN201980094778.4A patent/CN113646745A/zh active Pending
- 2019-05-17 US US17/293,025 patent/US20220066784A1/en active Pending
-
2020
- 2020-02-14 TW TW109104745A patent/TWI754221B/zh not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140337610A1 (en) * | 2013-05-11 | 2014-11-13 | Lenovo (Singapore) Pte, Ltd. | Arrangement for secure independent operating environments in a computer |
TWI639090B (zh) * | 2014-03-18 | 2018-10-21 | 萬國商業機器公司 | 用於可在多種架構中初始化之控制公用程式之共同開機順序 |
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 |
---|---|
WO2020236133A1 (en) | 2020-11-26 |
TW202044034A (zh) | 2020-12-01 |
CN113646745A (zh) | 2021-11-12 |
EP3935492A1 (en) | 2022-01-12 |
EP3935492A4 (en) | 2023-02-08 |
US20220066784A1 (en) | 2022-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6198876B2 (ja) | セキュア・リカバリ装置及び方法 | |
US8751783B2 (en) | Booting computing devices with EFI aware operating systems | |
TWI722361B (zh) | 系統開機碼記憶體管理方法、記憶體裝置與應用其之電子系統 | |
CN103718165B (zh) | Bios闪存攻击保护和通知 | |
JP5889933B2 (ja) | コンピュータの動作不良を防止する方法、コンピュータ・プログラムおよびコンピュータ | |
US9239725B2 (en) | System and method for installing an OS via a network card supporting PXE | |
TW201729123A (zh) | 遠程地啟動部署程式的方法與伺服器 | |
CN105917306B (zh) | 用于配置系统固件配置数据的系统和方法 | |
US11144328B2 (en) | System method to update failover process by running basic input/output (BIOS) system boot code from non-volatile memory express device (NVME) | |
US9411605B2 (en) | Device-less and system agnostic unified extensible firmware interface (UEFI) driver | |
WO2016177067A1 (zh) | 一种扩展手机存储的方法及终端 | |
US11704198B2 (en) | Method and apparatus for providing recovery from a computing device boot up error | |
TWI486874B (zh) | 電子裝置及開機方法 | |
US20190272176A1 (en) | Chipset fuse programming system | |
TWI475485B (zh) | 韌體更新之方法及其相關電腦系統 | |
US7849300B2 (en) | Method for changing booting sources of a computer system and a related backup/restore method thereof | |
TWI754221B (zh) | 軟體存留性關閉技術 | |
TWI743480B (zh) | 電腦系統與其開機方法 | |
TWI518594B (zh) | 計算機系統與計算機系統啓動方法 | |
US10628309B1 (en) | Loading a serial presence detect table according to jumper settings | |
JP4735765B2 (ja) | Linuxプログラム起動システム | |
US10684843B1 (en) | Firmware updates using updated firmware files in a dedicated firmware volume | |
JP2016162342A (ja) | 不揮発性記憶デバイス及び不揮発性記憶デバイスの処理方法 | |
TW202319926A (zh) | 可快速更新作業系統的資料儲存裝置及方法 | |
KR101271784B1 (ko) | 다중 부트 매니저를 실행시키는 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |