TWI549056B - 以函式庫作業系統達成之應用程式相容性 - Google Patents
以函式庫作業系統達成之應用程式相容性 Download PDFInfo
- Publication number
- TWI549056B TWI549056B TW101112828A TW101112828A TWI549056B TW I549056 B TWI549056 B TW I549056B TW 101112828 A TW101112828 A TW 101112828A TW 101112828 A TW101112828 A TW 101112828A TW I549056 B TWI549056 B TW I549056B
- Authority
- TW
- Taiwan
- Prior art keywords
- operating system
- library
- application
- compatible
- library operating
- Prior art date
Links
Landscapes
- Stored Programmes (AREA)
Description
本申請案主張2011年3月3日所申請之名為「LIBRARY-OPERATING-SYSTEM PACKAGING-MODEL SCENARIOS」的美國臨時申請案第61/449,072號之權利,該申請案之全文以引用之方式併入本文中。
本發明係關於應用程式相容性。
在1990年代藉由若干作業系統設計來支持作業系統(OS)建構之函式庫方法。函式庫OS之概念為OS之整體個性於應用程式之位址空間內作為函式庫而執行,應用程式視該OS的整體個性而定。OS個性為OS之應用程式設計介面(API)及應用程式可見語義(即,OS服務)的實施,應用程式係基於該等OS服務而建立。函式庫OS方法之早期支持者主要主張:該函式庫OS可經由每一應用程式客戶規格設定來啟用較好效能。舉例而言,具有特異性檔案存取模式之磁碟I/O結合應用程式可藉由使用定製檔案系統儲存堆疊而非使用內定順序預提取試探法實現較好效能。
與函式庫OS方法之同期方法中之許多方法一樣,該函式庫OS方法基本上被遺忘,成為現代虛擬機之出現
的犧牲品。在當代多數新OS設計(包括函式庫OS設計)僅在小研究原型上執行一小部分定製應用程式時,虛擬機系統激增,因為該等虛擬機系統可藉由再利用現存之功能豐富的作業系統執行主要應用程式。由函式庫OS設計提供之效能效益未克服對舊式相容性之需要。
以下呈現簡化之發明內容以提供對所揭示標的之一些態樣的基本瞭解。此發明內容並非為廣泛概述。此發明內容不欲識別關鍵/主要元件或敘述所主張之標的之範疇。此發明內容之唯一目的係以簡化之形式呈現一些概念作為隨後呈現之更詳細描述的序部。
簡要地描述,本發明係關於以函式庫作業系統達成之應用程式相容性。應用程式可結合至相容函式庫作業系統。函式庫作業系統可囊封作業系統之最可能破壞應用程式相容性之部分且可在主機作業系統之頂部上執行。函式庫作業系統之版本可低於、等於或高於主機作業系統之版本。因此,藉由將應用程式結合至適當函式庫作業系統來啟用逆向以及正向相容性。
為達到前述及相關目標,在本文中結合以下實施方式及附隨圖式描述所主張之標的之某些說明性態樣。此等態樣說明該標的可進行實踐之各種方式,所有方式意欲在所主張之標的之範疇內。在結合圖式進行考慮時,其他優點及新穎特徵可由以下實施方式而變得顯而易見。
作業系統在應用程式(application program)或僅為應用程式(application)與電腦硬體之間提供介面以使該應用程式能夠與該硬體相互作用。開發應用程式以將特殊作業系統作為目標。然而,作業系統隨各種版本(例如,Windows Vista®、Windows 7®、不同服務包......)而改變,且因此保持以應用程式達成之相容性為一項重大挑戰。舉例而言,若開發出用於版本1之作業系統之應用程式並將電腦更新至版本2,則應用程式可能不再以正確之方式工作或運行。當作業系統供應商消耗大量資源保持相容性時,各作業系統版本必然導致大量破壞的應用程式。此情況對大量且主要業務線(LOB)應用程式被新作業系統版本破壞的企業而言尤為麻煩。
一種解決相容性問題之方式為使用虛擬機技術。可在相異虛擬機中同時執行不同作業系統,且應用程式可在相容虛擬機中執行。在此,應用程式與特殊全功能作業系統一起封裝成單一單元,且因此應用程式將總在彼經封裝作業系統上執行而不考慮主機作業系統,虛擬機在主機作業系統上執行。此外,存在執行作業系統之完全單獨副本之嚴重效能及資源間接費用。在實務中,消費型裝置可能每次僅能執行一個或兩個虛擬機,此使得難以執行許多不同應用程式。
以下細節通常係指以函式庫作業系統達成之應用程式
相容性。利用函式庫作業系統,可以一部分間接費用及效能成本而實現虛擬機技術之相同效益。此外,應用程式不需如習知一樣與作業系統一起封裝。相反,應用程式可獨立於作業系統而封裝,即使存在對特定作業系統或特定作業系統之版本的嚴重依賴。因此,在單獨作業系統版本實例上執行各種不同應用程式係可行的。
更具體而言,可將應用程式結合至相容函式庫作業系統,該相容函式庫作業系統囊封作業系統之最可能破壞應用程式相容性之部分。在一個實施例中,可將複數個函式庫作業系統與主機作業系統一起封裝。當啟動執行應用程式時,可將相容函式庫作業系統結合至應用程式,並加載至應用程式之位址空間中。相容函式庫作業系統之版本可為低於、等於或高於主機作業系統之版本。因此,此外,啟用以較早或舊式版本之作業系統達成之逆向相容性(亦稱,相容性)以及以較新版本之作業系統達成之正向相容性(亦稱,反向相容性)。
現參看附隨圖式更詳細地描述本發明之各種態樣,其中在全文中,相同符號係指相同或對應元件。然而,應瞭解,圖式及與圖式有關之詳細描述不欲將所主張之標的限於所揭示之特定形式。相反,目的在於涵蓋在所主張之標的之精神及範疇內的所有修改、等效物及替代物。
首先參看圖1,圖示促進應用程式相容性之系統100。該系統100包括選擇組件110及結合組件120。此外,選擇組件110接收、擷取或另外獲得或獲取軟體應用程
式(application program)或僅為應用程式(application)及/或關於應用程式之資訊。此外,例如基於應用程式及/或關於應用程式之資訊,選擇組件110經配置以識別、決定或推斷與應用程式相容的函式庫作業系統。結合組件120經配置以將應用程式與由選擇組件110識別之相容函式庫作業系統相結合(或換言之,關聯)。根據一個態樣,可在運行時執行與至少結合組件120相關聯之功能性。舉例而言,當啟動執行應用程式時,可將應用程式與相容函式庫作業系統動態地結合。
選擇組件110可以各種方式選擇相容函式庫作業系統。在一個實施例中,應用程式可包括清單檔案或相同結構,或可與清單檔案或相同結構相關聯,該清單檔案或相同結構識別相容作業系統及/或函式庫作業系統。在此實例中,選擇組件110可經配置以由清單檔案識別相容函式庫作業系統。在另一實施例中,可分析應用程式及相關聯功能性,且在此基礎上,可決定或推斷相容函式庫作業系統。在又一實施例中,選擇組件110可經配置以向應用程式使用者、管理者或其他個體查詢與應用程式相容之函式庫作業系統。在一個特定實例中,可嘗試複數個函式庫作業系統,且使用者可識別工作最好之函式庫作業系統。此外,可使用方法的混合,諸如,推斷與應用程式相容之函式庫作業系統並允許應用程式使用者確認或拒絕所推斷之相容函式庫作業系統。進一步地,應用程式可與超過一個作業系統相容,或在某種程
度上相容。在任何情況下,選擇組件110可識別一或多個相容函式庫作業系統。
如上所提及,結合組件120經配置以將應用程式結合至相容函式庫作業系統。舉例而言,來自可用之函式庫作業系統之相容函式庫作業系統與應用程式相關聯。隨後,例如,可將函式庫作業系統加載至應用程式之位址空間中。亦可由結合組件120或一些其他組件在運行時執行此加載。
根據一個態樣,函式庫作業系統可囊封作業系統之最可能破壞應用程式相容性之部分。因此,函式庫作業系統提供機制以解決應用程式相容性問題。詳言之,函式庫作業系統可根據需要在主機作業系統之頂部作業且可由應用程式加以使用。自某些意義而言,各應用程式可與應用程式所選擇之函式庫作業系統一起執行,從而消除相容性問題。
可藉由以特定方式重構習知函式庫作業系統來產生此函式庫作業系統。更具體而言,應用程式服務(例如,框架、繪製引擎、共用使用者介面控制、語言執行環境......)可封裝在函式庫作業系統中,且使用者服務(例如,圖形使用者介面、剪輯板、搜索索引......)及硬體服務(例如,OS核心、裝置驅動器、檔案系統......)可與主機作業系統一起封裝。在一個實例中,可生成為完整作業系統之大小之1/50th的函式庫作業系統。此函式庫作業系統與先前函式庫作業系統設計不同,先前函式
庫作業系統設計旨在藉由將低級硬體抽象組件暴露至應用程式來提供應用程式定制效能增強。此等先前設計為應用程式提供諸如頁表、網路封包及磁碟塊之硬體資源之細分定制控制。在此,此外,所使用之函式庫作業系統在函式庫作業系統之目標方面有所差異,且因此提供促進應用程式相容性之較高級抽象組件。
參看圖2,圖示例示性函式庫作業系統架構200。如圖所示,架構200包括主機作業系統210,該主機作業系統210為安裝於電腦上之主要作業系統。在多數情況下,主機作業系統210為唯一的作業系統。然而,在此,若干函式庫作業系統220(函式庫作業系統1至函式庫作業系統M,其中M為正整數)為在主機作業系統210上或在主機作業系統210內作業之客體。大量應用程式230(應用程式1至應用程式N,其中N為正整數)在相容函式庫作業系統220上執行。該複數個函式庫作業系統220中之各者捕獲作業系統之個性(例如,應用程式設計介面及應用程式語義,應用程式係基於應用程式設計介面及應用程式語義而建立)並作為函式庫在應用程式之位址空間中執行,應用程式視作業系統之個性而定。因此,函式庫作業系統可囊封作業系統之最可能破壞應用程式相容性之部分(例如,應用程式服務)。
架構200類似於習知虛擬機架構,但使用函式庫作業系統,而非使用整體作業系統。因此顯著地降低資源間接費用。舉例而言,可由函式庫作業系統消耗小於16 MB
之隨機存儲記憶體(RAM)及64 MB之磁碟空間,而非消耗512 MB之RAM及5 GB之磁碟空間來執行作業系統之完全單獨副本。在實務中,典型消費型裝置可能僅能執行整體習知作業系統之一個或兩個副本,此使得難以執行許多不同應用程式。然而,藉由取代習知作業系統之函式庫作業系統很容易地支援需要各種版本之作業系統之許多不同應用程式。
函式庫作業系統220之版本可低於、等於或高於主機作業系統210之版本。因此,啟用逆向相容性及正向相容性用於利用函式庫作業系統之應用程式。
根據一個實施例,主機作業系統210可與一或多個函式庫作業系統220一起封裝。換言之,主機作業系統210可包括(例如)在函式庫作業系統儲存器212內之一或多個函式庫作業系統之集合。舉例而言,此外,函式庫作業系統可相對於主機作業系統儲存於平行目錄中之磁盤上。應用程式可結合至相對於主機作業系統210所包括之該等函式庫作業系統中之一者。隨後此作業系統可加載或複製至應用程式之位址空間中。此舉解決逆向相容性(亦稱,相容性),因為主機作業系統210可包括先前函式庫作業系統或舊式函式庫作業系統之至少一子集。舉例而言,設計用於先前版本之作業系統之應用程式可藉由使用與最新版本之作業系統一起封裝之函式庫作業系統而在最新版本之作業系統上執行。亦解決正向相容性(亦稱,反向相容性)。
與在更新版本之作業系統上執行應用程式(該應用程式經編寫用於先前版本之作業系統)相反,經編寫用於更新作業系統版本之應用程式亦可在先前版本之作業系統上執行。通常,藉由應用程式設計介面(API)將應用程式綁定至特定版本之主機作業系統。因此,開發者面臨當一大部分客戶可能未升級至新作業系統時是否將新主機作業系統作為目標的兩難困境。因此,當開發者採用API時通常存在滯後,API將新作業系統作為目標直至作業系統獲得足夠使用者(通常稱為安裝基數)以調整將新作業系統作為目標。藉由利用函式庫作業系統,開發者可將最新之作業系統作為目標並降級執行應用程式,或換言之,在執行較舊版本之作業系統之電腦上執行應用程式。由於相容性問題存在於函式庫作業系統中,因此開發者可使用相對於新版本之作業系統之函式庫作業系統,且因此應用程式可將最新API作為目標。在一個實例中,可收取授權費以便能夠將較新函式庫OS中之最新作業系統功能作為目標。
此外,藉由允許主機及應用程式單獨發展,主機作業系統中之改變不需破壞應用程式。舉例而言,假定主機作業系統經升級至新版本。在更新時,安裝於電腦上之應用程式可經重配置以在函式庫作業系統上執行,該函式庫作業系統與先前版本之作業系統匹配。
根據一個實施例,應用程式230及函式庫作業系統220之各組合可在微微程序(picoprocess)240內作業,該
微微程序240為由作業系統程序位址空間構建的但不存取主機作業系統210之完整服務的輕型安全隔離容器。換言之,應用程式可經沙盒封裝以使得表現不良之應用程式不能危害其他應用程式或應用程式之主機。在微微程序中執行之編碼可使用主機作業系統210之介面,該介面由圖2中的箭頭來表示,且該介面遵循硬體虛擬機之設計型樣。介面調用可由主機作業系統210之安全監視組件(未圖示)提供服務,該安全監視組件在功能上可相對於習知硬體虛擬機與超管理器或虛擬機監視器類似。
在函式庫作業系統與主機作業系統一起封裝的情況下,例如,在函式庫作業系統儲存器212中,促進維護。可開發用以更新主機作業系統210之機制來更新與主機作業系統一起封裝之函式庫作業系統。舉例而言,可藉由主機作業系統210中之更新設施為安全更新及正確性更改修補函式庫作業系統。此外,藉由在運行時將函式庫作業系統結合至應用程式,可利用最新函式庫作業系統而非將最新函式庫作業系統結合至該最新函式庫作業系統之一些其他版本。
另外,可開發用以更新主機作業系統210之機制以在主機作業系統已運送或換言之,已遞送至客戶後安裝新函式庫作業系統。舉例而言,若基於主機作業系統之服務決定新版本之函式庫作業系統係可用的,則可獲取及保存新函式庫作業系統。
圖3圖示促進應用程式相容性之系統300。類似於圖1之系統100,如先前所描述,系統300包括選擇組件110及結合組件120。簡言之,選擇組件110經配置以選擇或識別與應用程式相容之函式庫作業系統,且結合組件120經配置以將應用程式結合至函式庫作業系統。系統100先前假設用於應用程式之必要函式庫作業系統之局部可用性。然而,在某些實例中情況可能並非如此。獲取組件320解決此問題。更特定而言,獲取組件320可經配置以(例如)自公共或另外可存取網站獲取函式庫作業系統。在一個特定實例中,獲取組件320可經配置以藉由主機作業系統更新機制觸發函式庫作業系統之下載。總而言之,若選擇組件110識別用於應用程式(該應用程式未呈現於系統上)之函式庫作業系統,則結合組件120經配置以藉由獲取組件320獲取函式庫作業系統。
各種函式庫作業系統與主機作業系統可共存於電腦上。例如,考慮在主機作業系統旁邊之函式庫作業系統之一個可能佈局:C:\Windows\System32
C:\Windows\SysWOW64
C:\Windows\Windows.6.2.8102.Win8BUILD
C:\Windows\Windows.6.1.7601.Win7SP1
C:\Windows\Windows.6.1.7600.Win7RTM
C:\Windows\Windows.6.0.6002.VistaSP2
C:\Windows\Windows.6.0.6001.VistaSP1
C:\Windows\Windows.6.0.6000.VistaRTM
C:\Windows\Windows.5.1.2600.WinXPSP3在此實例中,「System32」目錄樹含有64位元主機作業系統。目錄樹「SysWOW64」含有主機作業系統之32位元檔案,該32位元檔案在64位元主機作業系統上執行。其他目錄樹包括來自較早作業系統(Win7SP1、Win7RTM、VistaSP2、VistaSP1、VistaRTM、WinXPSP3)或較新作業系統(Win8BUILD)之函式庫作業系統。
已相對於若干組件之間的相互作用描述上述系統、架構、環境等。應瞭解,此等系統及組件可包括在此等系統及組件中規定之彼等組件或子組件、該等規定之組件或子組件中之一些組件或子組件及/或附加組件。子組件亦可作為通訊地耦接至其他組件而非包括於母組件內之組件而實施。更進一步地,可將一或多個組件及/或子組件組合成單一組件以提供聚集功能性。可根據推模式及/或拉模式達成系統、組件及/或子組件之間的通訊。組件亦可與一或多個其他組件相互作用,為簡潔起見,在本文中未具體描述該一或多個其他組件,但該一或多個其他組件為熟習此項技術者所熟知。
此外,以上所揭示之系統及以下方法之各種部分可包括或使用人工智慧、機器學習或基於知識或規則之組件、子組件、程序、方式、方法或機制(例如,支援向量機、類神經網路、專家系統、貝斯(Bayesian)信念
網路、乏晰邏輯、資料融合引擎、分類器......)。此等組件尤其可自動化經執行之某些機制或程序,從而使系統及方法之部分更適應以及更有效及更智慧。舉例而言而非限制,選擇組件110可使用此機制以決定相容函式庫作業系統。
鑒於以上描述之例示性系統,將參看圖4之流程圖更好地瞭解可根據所揭示之標的實施的方法。然而出於簡單解釋之目的,以一系列方塊展示且描述方法,應理解且應瞭解,所主張之標的不受方塊之順序限制,因為一些方塊可以不同順序出現且/或可與其他方塊同時出現,其他方塊來自在本文中描繪及描述之方塊。此外,並不需要所有圖示之方塊來實施在下文中所描述之方法。
參看圖4,圖示促進相容性之方法400。在元件符號410處,決定用於應用程式之相容函式庫作業系統,在相容函式庫作業系統中,函式庫作業系統囊封習知作業系統之最可能破壞應用程式相容性之部分。在一個實例中,函式庫作業系統可由與應用程式相關聯之清單檔案來識別,函式庫作業系統可自個體(例如,終端使用者、程式員、管理者......)獲取或可另外自應用程式之分析來決定或推斷。在符號420處,作出經決定之函式庫作業系統是否可用的決定。若在電腦上函式庫系統局部不可用(「NO」),則自430處之遠程位置獲取函式庫作業系統。另外,若函式庫作業系統為可用的(「YES」),則
方法400在元件符號440處繼續,在元件符號440處,應用程式結合至函式庫作業系統。儘管在此未顯示應用程式與多個作業系統相容而非遠程獲取函式庫作業系統,但可使用其他局部函式庫作業系統中之一者。當啟動執行應用程式時,可將經結合之函式庫系統加載至應用程式之位址空間中。
圖5為主機作業系統替換之方法500之流程圖。在元件符號510處,應用程式自主機作業系統重新結合至相同版本之函式庫作業系統。在符號520處,替換主機作業系統。以此方式,在不破壞應用程式的情況下,可藉由將應用程式移位至相容函式庫作業系統來升級/更新主機作業系統。
如本文中所使用,術語「組件」、「系統」、「架構」以及該等術語之各種形式(例如,組件、系統、子系統......)欲指電腦相關之實體(硬體、硬體與軟體之組合、軟體或執行中之軟體)。舉例而言,組件可為(但不限於)在處理器上執行之程序、處理器、物體、實例、可執行碼、執行線程、程式及/或電腦。藉由說明,在電腦上執行之應用程式與電腦二者皆可為組件。一或多個組件可位於程序及/或執行線程內,且組件可定位於一個電腦上且/或可分佈於兩個或兩個以上電腦之間。
字語「例示性」或「例示性」之各種形式在本文中用以意謂作為實例、例子或說明。本文中所描述作為「例示性」之任何態樣或設計不必理解為較佳或優於其他態
樣或設計。此外,出於清晰及理解之目的,單獨地提供實例,且實例並不意謂以任何方式限制或限定本發明之所主張之標的或相關部分。應瞭解,出於簡潔之目的,可提出(但已省略)變化範疇之大量附加或替代實例。
除另有規定或由上下文很清楚外,如此實施方式及附隨申請專利範圍中所使用之連詞「或」欲意謂包含「或」而非排斥「或」。換言之,「'X'或'Y'」欲意謂「X」及「Y」之任何包含排列。舉例而言,若「'A'使用'X'」、「'A'使用'Y'」或「'A'使用'A'與'B'兩者」,則在前述實例之任何實例的情況下滿足「'A'使用'X'或'Y'」。
如本文中所使用,術語「推斷」通常係指自如經由事件及/或資料捕獲之一組觀測來推出或推斷系統、環境及/或使用者之狀態的過程。舉例而言,可使用推斷以識別具體上下文或動作,或可產生關於狀態之機率分佈。推斷可為機率性的,即基於對資料及事件之考慮計算所關注狀態之機率分佈。推斷亦可指用於自一組事件及/或資料組成較高級事件的技術。此推斷導致自一組觀測之事件及/或儲存之事件資料建構新事件或動作,無論事件是否以緊密時序近接相關聯,及事件及資料是否來自一或若干事件及資料源。可結合執行與所主張標的相關之自動及/或推斷之動作使用各種分類方案及/或系統(例如,支援向量機、類神經網路、專家系統、貝斯(Bayesian)信念網路、乏晰邏輯、資料融合引擎......)。
此外,就在實施方式或申請專利範圍中使用術語「包
括」、「含有」、「具有」或該等術語之形式變化而言,此等術語意欲為以類似於術語「包含」之方式的包含的,因為「包含」在作為請求項中之轉折詞使用時加以解釋。
為提供用於所主張之標的之上下文,圖6以及以下論述意欲提供合適環境之簡潔總體描述,可在合適環境中實施本標的之各種態樣。然而,合適環境僅為實例且不欲對使用範疇或功能性範疇提議任何限制。
儘管可在程式(該程式在一或多個電腦上執行)之電腦可執行指令之總體上下文中描述以上所揭示之系統及方法,但熟習此項技術者將認識到亦可結合其他程式模組等實施態樣。大體而言,此外,程式模組包括執行特定任務且/或實施特定抽象資料類型之常式、程式、組件、資料結構。此外,熟習此項技術者將瞭解上述系統及方法可以各種電腦系統配置加以實踐,該等電腦系統配置包括單一處理器電腦系統、多元處理器電腦系統或多核處理器電腦系統、小型計算裝置、大型電腦以及個人電腦、手持式計算裝置(例如,個人數位助理(PDA)、電話、錶......)、基於微處理器或可程式化消費型電子產品或基於微處理器或可程式化工業電子產品等。亦可在分布式計算環境中實踐態樣,在分布式計算環境中,藉由經由通訊網路鏈接之遠程處理裝置來執行任務。然而,所主張之標的之某些(若非全部)態樣可在獨立電腦上實踐。在分布式計算環境中,程式模組可定位於局部記憶體儲存裝置及遠程記憶體儲存裝置中之一者或兩
者中。
參看圖6,圖示實例通用電腦610或計算裝置(例如,桌上電腦、膝上型電腦、伺服器、手持型、可程式化消費型電子產品或可程式化工業電子產品、機上盒、遊戲系統......)。電腦610包括一或多個處理器620、記憶體630、系統匯流排640、大容量儲存器650及一或多個介面組件670。系統匯流排640通訊地耦接至少上述系統組件。然而,應瞭解,在電腦610之最簡單形式中,電腦610可包括耦接至記憶體630之一或多個處理器620,該一或多個處理器620執行儲存於記憶體630內之各種電腦可執行動作、指令及/或組件。
用經設計以執行本文中所描述之功能之通用處理器、數位訊號處理器(DSP)、特殊應用積體電路(ASIC)、場可程式化閘陣列(FPGA)或其他可程式化邏輯裝置、離散閘或電晶體邏輯、離散硬體組件或上述裝置之任何組合可實施一或多個處理器620。通用處理器可為微處理器,但在替代方案中,處理器為任何處理器、控制器、微控制器或狀態機。一或多個處理器620亦可經實施作為計算裝置之組合,例如,DSP與微處理器、複數個微處理器、多核處理器、結合DSP核之一或多個微處理器或任何其他此配置之組合。
電腦610可包括各種電腦可讀媒體或另外與各種電腦可讀媒體相互作用以促進對電腦610的控制來實施所主張之標的之一或多個態樣。電腦可讀媒體可為可由電腦
610存取之任何可用媒體且包括揮發性媒體及非揮發性媒體及可移式媒體及不可移式媒體。舉例而言而非限制,電腦可讀媒體可包含電腦儲存媒體及通訊媒體。
電腦儲存媒體包括在用於儲存諸如電腦可讀指令、資料結構、程式模組或其他資料之資訊之任意方法或技術中實施的揮發性媒體及非揮發性媒體、可移式媒體及不可移式媒體。電腦儲存媒體包括(但不限於)記憶體裝置(例如,隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電子可抹除可程式化唯讀記憶體(EEPROM)......)、磁性儲存裝置(例如,硬碟、軟碟、卡式帶、磁帶......)、光碟(例如,壓縮光碟(CD)、數位化通用光碟(DVD)......)及固態裝置(例如,固態驅動器(SSD)、快閃記憶體驅動器(例如,卡、記憶卡、隨身碟......)......)或可用以儲存所需之資訊並可由電腦610存取之任何其他媒體。
通訊媒體通常體現電腦可讀指令、資料結構、程式模組或調變資料訊號(諸如,載波或其他傳輸機制)中之其他資料,且包括任何資訊傳送媒體。術語「調變資料訊號」意謂具有訊號之特徵集中之一或多者或以此方式變化以編碼訊號中之資訊之訊號。舉例而言而非限制,通訊媒體包括有線媒體(諸如有線網路或直接有線連接)及無線媒體(諸如音波、射頻(radio frequency;RF)、紅外及其他無線媒體)。上述媒體中之任何媒體的組合亦應包括於電腦可讀媒體之範疇內。
記憶體630及大容量儲存器650為電腦可讀儲存媒體之實例。視計算裝置之精確配置及類型而定,記憶體630可為揮發性記憶體(例如,RAM)、非揮發性記憶體(例如,ROM、快閃記憶體......)或兩者之某一組合。舉例而言,此外,當揮發性記憶體可充當外部快取記憶體以藉由一或多個處理器620促進處理時,包括基本常式以(諸如在起動期間)在電腦610內之元件之間傳輸資訊的基本輸入/輸出系統(BIOS)可儲存於非揮發性記憶體中。
大容量儲存器650包括用於儲存與記憶體630相關之大量資料之可移式/不可移式電腦儲存媒體、揮發性/非揮發性電腦儲存媒體。舉例而言,大容量儲存器650包括(但不限於)一或多個裝置,諸如,磁碟機或光碟機、軟式磁碟機、快閃記憶體、固態驅動器或記憶卡。
記憶體630及大容量儲存器650可包括作業系統660、一或多個應用程式662、一或多個程式模組664及資料666或使作業系統660、一或多個應用程式662、一或多個程式模組664及資料666儲存於記憶體630及大容量儲存器650中。作業系統660用以控制且分配電腦610之資源。在此,作業系統660可對應於能支援大量函式庫作業系統220之主機作業系統210。應用程式662包括系統及應用程式軟體中之一者或兩者,且應用程式662可藉由作業系統660經由儲存於記憶體630及/或大容量儲存器650中之程式模組664及資料666來開發資
源管理以執行一或多個動作。因此,應用程式662可根據因此而提供之邏輯將通用電腦610轉變為特定機。
可使用標準程式化及/或工程技術實施所主張之標的之全部或部分以產生軟體、韌體、硬體或軟體、韌體及硬體之任何組合來控制電腦以實現所揭示功能性。舉例而言而非限制,系統100或系統100之部分可為應用程式662之部分或形成應用程式662之部分,並包括儲存於記憶體及/或大容量儲存器650中之一或多個模組664及資料666,在由一或多個處理器620執行一或多個模組664及資料666時,可實現一或多個模組664及資料666之功能性。
根據一個特定實施例,一或多個處理器620可對應於片上系統(SOC)或相似構架,該相似構架在單一積體電路基板上包括,或換言之整合硬體及軟體兩者。在此,此外,一或多個處理器620可包括一或多個處理器以及至少類似於一或多個處理器620及記憶體630之記憶體。習知處理器包括最少量之硬體及軟體並廣泛依賴外部硬體及軟體。相反,處理器之SOC實施更加強大,因為處理器之SOC實施將硬體及軟體嵌入處理器,該硬體及軟體以對外部硬體及軟體之最小依賴或不依賴於外部硬體及軟體來啟用特定功能性。舉例而言,可將系統100及/或相關聯之功能性嵌入SOC架構中之硬體內。
電腦610亦包括一或多個介面組件670,該一或多個介面組件670通訊地耦接至系統匯流排640並促進與電
腦610的相互作用。舉例而言,介面組件670可為埠(例如,串列埠、平行埠、PCMCIA、USB、火線......)或介面卡(例如,聲音、視訊......)等。在一個實例實施中,介面組件670可體現為使用者輸入/輸出介面以使使用者能經由一或多個輸入裝置(例如,指向裝置,諸如,滑鼠、軌跡球、尖筆、觸控板、鍵盤、麥克風、操縱桿、遊戲台、衛星接收碟、掃描器、攝影機、其他電腦......)將命令及資訊輸入電腦610。在另一實例實施中,此外,介面組件670可體現為輸出外圍介面以將輸出供應至顯示器(例如,CRT、LCD、電漿......)、揚聲器、印表機及/或其他電腦。更進一步地,介面組件670可體現為網路介面以能與其他計算裝置(未圖示)諸如在有線或無線通訊鏈路上通訊。
以上所描述之內容包括所主張之標的之態樣的實例。當然,不可能描述用於描述所主張之標的之組件或方法之每一可能組合,但一般技術者可認識到所揭示標的之許多進一步組合及排列係可能的。因此,所揭示標的意欲包括在附隨申請專利範圍之精神及範疇內之所有此等改變、修改及變化。
100‧‧‧系統
110‧‧‧選擇組件
120‧‧‧結合組件
200‧‧‧函式庫作業系統架構
210‧‧‧主機作業系統
212‧‧‧函式庫作業系統儲存器
220‧‧‧函式庫作業系統
230‧‧‧應用程式
240‧‧‧微微程序
300‧‧‧系統
320‧‧‧獲取組件
400‧‧‧方法
410‧‧‧元件符號
420‧‧‧符號
430‧‧‧符號
440‧‧‧元件符號
500‧‧‧方法
510‧‧‧元件符號
520‧‧‧符號
610‧‧‧通用電腦
620‧‧‧處理器
630‧‧‧記憶體
640‧‧‧系統匯流排
650‧‧‧大容量儲存器
660‧‧‧作業系統
662‧‧‧應用程式
664‧‧‧程式模組
666‧‧‧資料
670‧‧‧介面組件
圖1為促進應用程式相容性之系統之方塊圖。
圖2為例示性函式庫作業系統架構之方塊圖。
圖3為促進應用程式相容性之系統之方塊圖。
圖4為促進相容性之方法之流程圖。
圖5為主機作業系統替換之方法之流程圖。
圖6為說明本發明之態樣之適合作業環境的示意性方塊圖。
100‧‧‧系統
110‧‧‧選擇組件
120‧‧‧結合組件
Claims (19)
- 一種促進相容性之方法,該方法包含以下步驟:使用經配置以執行儲存於記憶體中之電腦可執行指令的至少一個處理器來執行以下動作:決定用於一應用程式的一相容函式庫作業系統,該相容函式庫作業系統經配置以在一主機作業系統之頂部上執行,及在運行時將該應用程式結合至該相容函式庫作業系統,其中一作業系統的應用程式服務封裝在該相容函式庫作業系統中,且使用者服務及硬體服務與該主機作業系統一起封裝。
- 如請求項1所述之方法,該方法進一步包含以下步驟:由一清單檔案決定該相容函式庫作業系統。
- 如請求項2所述之方法,該方法包含以下步驟:由該清單檔案決定若干相容函式庫作業系統。
- 如請求項1所述之方法,該方法包含以下步驟:將該應用程式結合至相較於該主機作業系統之一更新版本之該函式庫作業系統。
- 如請求項1所述之方法,該方法進一步包含以下步驟:自該主機作業系統加載該相容函式庫作業系統。
- 如請求項1所述之方法,該方法進一步包含以下步驟:獲取作為該主機作業系統更新程序之部分的該函式庫作業系統。
- 如請求項1所述之方法,該方法進一步包含以下步驟:更新作為該主機作業系統更新程序之部分的該函式庫作業系統。
- 如請求項1所述之方法,該方法進一步包含以下步驟:用一第二版本替換一第一版本之該主機作業系統且將先前結合至該第一版本之該主機作業系統之該應用程式結合至對應於該第一版本之該主機作業系統之該函式庫作業系統。
- 一種促進相容性之系統,該系統包含:一處理器,該處理器耦接至一記憶體,該處理器經配置以執行儲存於該記憶體中之以下電腦可執行組件:一第一組件,該第一組件經配置以決定用於一應用程式的一相容函式庫作業系統,該相容函式庫作業系統經配置以在一主機作業系統之頂部上執行;及一第二組件,該第二組件經配置以在運行時將該應用程式結合至該相容函式庫作業系統,其中一作業系統的應用程式服務封裝在該相容函式庫作業系統中,且使用者服務及硬體服務與該主機作業系統一起封裝。
- 如請求項9所述之系統,其中該函式庫作業系統與該主機作業系統一起封裝。
- 如請求項9所述之系統,其中該函式庫作業系統相較於該主機作業系統為一更新版本之一作業系統。
- 如請求項9所述之系統,其中該函式庫作業系統相較於 該主機作業系統為一更舊版本之一作業系統。
- 如請求項9所述之系統,該第一組件經配置以由一清單檔案決定該相容函式庫作業系統。
- 如請求項9所述之系統,該主機作業系統之一更新機制經配置以更新該函式庫作業系統。
- 如請求項9所述之系統,該主機作業系統之一更新機制經配置以獲取該函式庫作業系統。
- 一種電腦可讀儲存媒體,該電腦可讀儲存媒體具有儲存於該電腦可讀儲存媒體上之指令,該電腦可讀儲存媒體啟用至少一個處理器來執行以下動作:決定用於一應用程式的一相容函式庫作業系統,該相容函式庫作業系統經配置以在一主機作業系統之頂部上執行,及在運行時將該應用程式與該相容函式庫作業系統相結合,該相容函式庫作業系統安裝於該主機作業系統上,其中一作業系統的應用程式服務封裝在該相容函式庫作業系統中,且使用者服務及硬體服務與該主機作業系統一起封裝。
- 如請求項16所述之電腦可讀儲存媒體,進一步包含由一清單檔案識別該相容函式庫作業系統。
- 如請求項16所述之電腦可讀儲存媒體,進一步包含識別一新版本之該主機作業系統作為該相容函式庫作業系統。
- 如請求項16所述之電腦可讀儲存媒體,進一步包含識 別一舊式版本之該主機作業系統作為該相容函式庫作業系統。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/314,512 US9891939B2 (en) | 2011-03-03 | 2011-12-08 | Application compatibility with library operating systems |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201324349A TW201324349A (zh) | 2013-06-16 |
TWI549056B true TWI549056B (zh) | 2016-09-11 |
Family
ID=49033270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101112828A TWI549056B (zh) | 2011-12-08 | 2012-04-11 | 以函式庫作業系統達成之應用程式相容性 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI549056B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI773907B (zh) * | 2019-07-11 | 2022-08-11 | 緯創資通股份有限公司 | 資料擷取裝置與資料運算系統及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020019972A1 (en) * | 2000-04-24 | 2002-02-14 | Grier Michael J. | Isolating assembly versions for binding to application programs |
TW200511006A (en) * | 2003-04-24 | 2005-03-16 | Ibm | Concurrent access of shared resources |
US20080133590A1 (en) * | 2006-12-04 | 2008-06-05 | Microsoft Corporation | Application loader for support of version management |
TW200943090A (en) * | 2008-03-27 | 2009-10-16 | Microsoft Corp | Computing environment representation |
-
2012
- 2012-04-11 TW TW101112828A patent/TWI549056B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020019972A1 (en) * | 2000-04-24 | 2002-02-14 | Grier Michael J. | Isolating assembly versions for binding to application programs |
TW200511006A (en) * | 2003-04-24 | 2005-03-16 | Ibm | Concurrent access of shared resources |
US20080133590A1 (en) * | 2006-12-04 | 2008-06-05 | Microsoft Corporation | Application loader for support of version management |
TW200943090A (en) * | 2008-03-27 | 2009-10-16 | Microsoft Corp | Computing environment representation |
Also Published As
Publication number | Publication date |
---|---|
TW201324349A (zh) | 2013-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9891939B2 (en) | Application compatibility with library operating systems | |
US11853774B2 (en) | Dynamically loaded plugin architecture | |
JP5007046B2 (ja) | コンポーネントベースのソフトウェア・プロダクトの保守 | |
US9965270B2 (en) | Updating computer firmware | |
US11669334B2 (en) | Just-in-time containers | |
EP4018319B1 (en) | Data preservation using memory aperture flush order | |
US10101915B2 (en) | Methods and apparatus to manage inter-virtual disk relations in a modularized virtualization topology using virtual hard disks | |
US11775475B2 (en) | Deferred path resolution during container deployment | |
US9928010B2 (en) | Methods and apparatus to re-direct detected access requests in a modularized virtualization topology using virtual hard disks | |
CN104603750A (zh) | 使用bpram来布局和执行软件应用 | |
CN104583948A (zh) | 使用bpram来布局和执行操作系统 | |
US9804789B2 (en) | Methods and apparatus to apply a modularized virtualization topology using virtual hard disks | |
US9703578B2 (en) | Providing class loading for JAVA™ applications | |
CN107667343B (zh) | 用于加载按需加载资源的系统和方法 | |
TWI549056B (zh) | 以函式庫作業系統達成之應用程式相容性 | |
US10126983B2 (en) | Methods and apparatus to enforce life cycle rules in a modularized virtualization topology using virtual hard disks | |
Okafor et al. | Eliminating the operating system via the bare machine computing paradigm | |
US12001860B1 (en) | Methods and apparatus to generate code as a plug-in in a cloud computing environment | |
TWI777636B (zh) | 組成模組化韌體的方法、裝置及電腦程式產品 | |
TWI835545B (zh) | 軟體開發套組之方法、運算裝置及非暫時性電腦可讀儲存媒體 | |
US20240231801A1 (en) | Dynamic resource determination for system update |