TW201324349A - Application compatibility with library operating systems - Google Patents

Application compatibility with library operating systems Download PDF

Info

Publication number
TW201324349A
TW201324349A TW101112828A TW101112828A TW201324349A TW 201324349 A TW201324349 A TW 201324349A TW 101112828 A TW101112828 A TW 101112828A TW 101112828 A TW101112828 A TW 101112828A TW 201324349 A TW201324349 A TW 201324349A
Authority
TW
Taiwan
Prior art keywords
operating system
library
application
library operating
compatible
Prior art date
Application number
TW101112828A
Other languages
Chinese (zh)
Other versions
TWI549056B (en
Inventor
Galen C Hunt
Reuben R Olinsky
Michael R Fortin
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US13/314,512 external-priority patent/US9891939B2/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of TW201324349A publication Critical patent/TW201324349A/en
Application granted granted Critical
Publication of TWI549056B publication Critical patent/TWI549056B/en

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

Application compatibility is facilitated by use of library operating systems. Library operating systems can encapsulate portions of an application likely to break application compatibility. An application can be bound to a compatible library operating system that operates over a host operating system. Furthermore, library operating system version can be greater than, equal, or less than the version of the host operating system. Consequently, both backward and forward compatibility is enabled.

Description

以函式庫作業系統達成之應用程式相容性 Application compatibility achieved with the library operating system 相關申請案之交叉引用 Cross-reference to related applications

本申請案主張2011年3月3日所申請之名為「LIBRARY-OPERATING-SYSTEM PACKAGING-MODEL SCENARIOS」的美國臨時申請案第61/449,072號之權利,該申請案之全文以引用之方式併入本文中。 The present application claims the benefit of U.S. Provisional Application Serial No. 61/449,072, filed on Jan. 3, 2011, which is incorporated herein by reference. In this article.

本發明係關於應用程式相容性。 The present invention relates to application compatibility.

在1990年代藉由若干作業系統設計來支持作業系統(OS)建構之函式庫方法。函式庫OS之概念為OS之整體個性於應用程式之位址空間內作為函式庫而執行,應用程式視該OS的整體個性而定。OS個性為OS之應用程式設計介面(API)及應用程式可見語義(即,OS服務)的實施,應用程式係基於該等OS服務而建立。函式庫OS方法之早期支持者主要主張:該函式庫OS可經由每一應用程式客戶規格設定來啟用較好效能。舉例而言,具有特異性檔案存取模式之磁碟I/O結合應用程式可藉由使用定製檔案系統儲存堆疊而非使用內定順序預提取試探法實現較好效能。 In the 1990s, a library method for operating system (OS) construction was supported by several operating system designs. The concept of the library OS is that the overall personality of the OS is executed as a library in the address space of the application, and the application depends on the overall personality of the OS. The OS personality is the implementation of the application programming interface (API) of the OS and the visible semantics of the application (ie, the OS service), and the application is built based on the OS services. Early supporters of the library OS approach primarily argued that the library OS can enable better performance via each application client specification. For example, a disk I/O combining application with a specific file access mode can achieve better performance by using a custom file system storage stack instead of using a default order pre-fetch heuristic.

與函式庫OS方法之同期方法中之許多方法一樣,該函式庫OS方法基本上被遺忘,成為現代虛擬機之出現 的犧牲品。在當代多數新OS設計(包括函式庫OS設計)僅在小研究原型上執行一小部分定製應用程式時,虛擬機系統激增,因為該等虛擬機系統可藉由再利用現存之功能豐富的作業系統執行主要應用程式。由函式庫OS設計提供之效能效益未克服對舊式相容性之需要。 Like many of the methods in the same way as the library OS approach, the library OS approach is largely forgotten and becomes the emergence of modern virtual machines. The victim. In most contemporary new OS designs (including library OS design), virtual machine systems proliferate when only a small number of custom applications are executed on small research prototypes, because these virtual machine systems can be re-used by reusing existing features. The operating system executes the main application. The performance benefits provided by the library OS design do not overcome the need for legacy compatibility.

以下呈現簡化之發明內容以提供對所揭示標的之一些態樣的基本瞭解。此發明內容並非為廣泛概述。此發明內容不欲識別關鍵/主要元件或敘述所主張之標的之範疇。此發明內容之唯一目的係以簡化之形式呈現一些概念作為隨後呈現之更詳細描述的序部。 The summary of the invention is presented below to provide a basic understanding of some aspects of the disclosed subject matter. This summary is not an extensive overview. This Summary is not intended to identify key/primary elements or the scope of the claimed subject matter. The sole purpose of the summary is to present some concepts

簡要地描述,本發明係關於以函式庫作業系統達成之應用程式相容性。應用程式可結合至相容函式庫作業系統。函式庫作業系統可囊封作業系統之最可能破壞應用程式相容性之部分且可在主機作業系統之頂部上執行。函式庫作業系統之版本可低於、等於或高於主機作業系統之版本。因此,藉由將應用程式結合至適當函式庫作業系統來啟用逆向以及正向相容性。 Briefly described, the present invention relates to application compatibility achieved with a library operating system. The application can be integrated into a compatible library operating system. The library operating system can encapsulate the portion of the operating system that is most likely to disrupt application compatibility and can be executed on top of the host operating system. The version of the library operating system can be lower than, equal to, or higher than the version of the host operating system. Therefore, reverse and forward compatibility is enabled by incorporating the application into the appropriate library operating system.

為達到前述及相關目標,在本文中結合以下實施方式及附隨圖式描述所主張之標的之某些說明性態樣。此等態樣說明該標的可進行實踐之各種方式,所有方式意欲在所主張之標的之範疇內。在結合圖式進行考慮時,其他優點及新穎特徵可由以下實施方式而變得顯而易見。 To the extent that the foregoing and related ends are set forth, certain illustrative aspects of the claimed subject matter are described herein. These are illustrative of the various ways in which the subject matter can be practiced, and all manners are intended to be within the scope of the claimed subject matter. Other advantages and novel features will become apparent from the following description.

作業系統在應用程式(application program)或僅為應用程式(application)與電腦硬體之間提供介面以使該應用程式能夠與該硬體相互作用。開發應用程式以將特殊作業系統作為目標。然而,作業系統隨各種版本(例如,Windows Vista®、Windows 7®、不同服務包......)而改變,且因此保持以應用程式達成之相容性為一項重大挑戰。舉例而言,若開發出用於版本1之作業系統之應用程式並將電腦更新至版本2,則應用程式可能不再以正確之方式工作或運行。當作業系統供應商消耗大量資源保持相容性時,各作業系統版本必然導致大量破壞的應用程式。此情況對大量且主要業務線(LOB)應用程式被新作業系統版本破壞的企業而言尤為麻煩。 The operating system provides an interface between the application program or only the application and the computer hardware to enable the application to interact with the hardware. Develop applications to target special operating systems. However, with the various versions of the operating system (eg, Windows Vista ®, Windows 7 ® , ...... different service packs) changed, and thus to maintain the compatibility of the reach of applications is a major challenge. For example, if an application for a version 1 operating system is developed and the computer is updated to version 2, the application may no longer work or function in the correct manner. When operating system vendors consume large amounts of resources to maintain compatibility, each operating system version necessarily results in a large number of corrupted applications. This situation is particularly troublesome for a large number of companies whose primary line of business (LOB) applications are corrupted by new operating system versions.

一種解決相容性問題之方式為使用虛擬機技術。可在相異虛擬機中同時執行不同作業系統,且應用程式可在相容虛擬機中執行。在此,應用程式與特殊全功能作業系統一起封裝成單一單元,且因此應用程式將總在彼經封裝作業系統上執行而不考慮主機作業系統,虛擬機在主機作業系統上執行。此外,存在執行作業系統之完全單獨副本之嚴重效能及資源間接費用。在實務中,消費型裝置可能每次僅能執行一個或兩個虛擬機,此使得難以執行許多不同應用程式。 One way to address compatibility issues is to use virtual machine technology. Different operating systems can be executed simultaneously in different virtual machines, and applications can be executed in compatible virtual machines. Here, the application is packaged into a single unit with a special full-featured operating system, and thus the application will always execute on the packaged operating system regardless of the host operating system, which is executed on the host operating system. In addition, there is a significant performance and resource overhead for performing a completely separate copy of the operating system. In practice, a consumer device may only be able to execute one or two virtual machines at a time, which makes it difficult to execute many different applications.

以下細節通常係指以函式庫作業系統達成之應用程式 相容性。利用函式庫作業系統,可以一部分間接費用及效能成本而實現虛擬機技術之相同效益。此外,應用程式不需如習知一樣與作業系統一起封裝。相反,應用程式可獨立於作業系統而封裝,即使存在對特定作業系統或特定作業系統之版本的嚴重依賴。因此,在單獨作業系統版本實例上執行各種不同應用程式係可行的。 The following details usually refer to the application implemented by the library operating system. compatibility. With the library operating system, the same benefits of virtual machine technology can be realized with a part of overhead and performance costs. In addition, the application does not need to be packaged with the operating system as is conventional. Instead, the application can be packaged independently of the operating system, even if there is a heavy reliance on the version of a particular operating system or a particular operating system. Therefore, it is possible to execute a variety of different applications on separate operating system version instances.

更具體而言,可將應用程式結合至相容函式庫作業系統,該相容函式庫作業系統囊封作業系統之最可能破壞應用程式相容性之部分。在一個實施例中,可將複數個函式庫作業系統與主機作業系統一起封裝。當啟動執行應用程式時,可將相容函式庫作業系統結合至應用程式,並加載至應用程式之位址空間中。相容函式庫作業系統之版本可為低於、等於或高於主機作業系統之版本。因此,此外,啟用以較早或舊式版本之作業系統達成之逆向相容性(亦稱,相容性)以及以較新版本之作業系統達成之正向相容性(亦稱,反向相容性)。 More specifically, the application can be incorporated into a compatible library operating system that encapsulates the portion of the operating system that most likely undermines application compatibility. In one embodiment, a plurality of library operating systems may be packaged with the host operating system. When the application is launched, the compatible library operating system can be incorporated into the application and loaded into the application's address space. The version of the compatible library operating system can be lower than, equal to, or higher than the version of the host operating system. Therefore, in addition, the reverse compatibility (also known as compatibility) achieved with an earlier or older version of the operating system and the forward compatibility achieved with a newer version of the operating system (also known as the reverse phase) Capacitance).

現參看附隨圖式更詳細地描述本發明之各種態樣,其中在全文中,相同符號係指相同或對應元件。然而,應瞭解,圖式及與圖式有關之詳細描述不欲將所主張之標的限於所揭示之特定形式。相反,目的在於涵蓋在所主張之標的之精神及範疇內的所有修改、等效物及替代物。 The various aspects of the invention are described in more detail with reference to the accompanying drawings, in which It should be understood, however, that the drawings are not intended to be On the contrary, the intention is to cover all modifications, equivalents, and alternatives

首先參看圖1,圖示促進應用程式相容性之系統100。該系統100包括選擇組件110及結合組件120。此外,選擇組件110接收、擷取或另外獲得或獲取軟體應用程 式(application program)或僅為應用程式(application)及/或關於應用程式之資訊。此外,例如基於應用程式及/或關於應用程式之資訊,選擇組件110經配置以識別、決定或推斷與應用程式相容的函式庫作業系統。結合組件120經配置以將應用程式與由選擇組件110識別之相容函式庫作業系統相結合(或換言之,關聯)。根據一個態樣,可在運行時執行與至少結合組件120相關聯之功能性。舉例而言,當啟動執行應用程式時,可將應用程式與相容函式庫作業系統動態地結合。 Referring first to Figure 1, a system 100 for facilitating application compatibility is illustrated. The system 100 includes a selection component 110 and a bonding assembly 120. In addition, the selection component 110 receives, retrieves, or otherwise obtains or obtains a software application. Application program or just application and/or information about the application. Further, based on the application and/or information about the application, for example, the selection component 110 is configured to identify, determine, or infer an application-compatible library operating system. The bonding component 120 is configured to combine (or in other words, associate with) an application with a compatible library operating system identified by the selection component 110. According to one aspect, the functionality associated with at least the bonding component 120 can be performed at runtime. For example, when launching an application, the application can be dynamically combined with a compatible library operating system.

選擇組件110可以各種方式選擇相容函式庫作業系統。在一個實施例中,應用程式可包括清單檔案或相同結構,或可與清單檔案或相同結構相關聯,該清單檔案或相同結構識別相容作業系統及/或函式庫作業系統。在此實例中,選擇組件110可經配置以由清單檔案識別相容函式庫作業系統。在另一實施例中,可分析應用程式及相關聯功能性,且在此基礎上,可決定或推斷相容函式庫作業系統。在又一實施例中,選擇組件110可經配置以向應用程式使用者、管理者或其他個體查詢與應用程式相容之函式庫作業系統。在一個特定實例中,可嘗試複數個函式庫作業系統,且使用者可識別工作最好之函式庫作業系統。此外,可使用方法的混合,諸如,推斷與應用程式相容之函式庫作業系統並允許應用程式使用者確認或拒絕所推斷之相容函式庫作業系統。進一步地,應用程式可與超過一個作業系統相容,或在某種程 度上相容。在任何情況下,選擇組件110可識別一或多個相容函式庫作業系統。 Selection component 110 can select a compatible library operating system in a variety of ways. In one embodiment, the application may include a manifest file or the same structure, or may be associated with a manifest file or the same structure that identifies a compatible operating system and/or a library operating system. In this example, selection component 110 can be configured to identify a compatible library operating system from a manifest file. In another embodiment, the application and associated functionality can be analyzed, and based on this, a compatible library operating system can be determined or inferred. In yet another embodiment, the selection component 110 can be configured to query an application user, manager, or other individual for an application-compatible library operating system. In one particular example, a plurality of library operating systems can be tried and the user can identify the best working library operating system. In addition, a mix of methods can be used, such as inferring an application-compatible library operating system and allowing the application user to confirm or reject the inferred compatible library operating system. Further, the application can be compatible with more than one operating system, or in some way Compatible. In any event, selection component 110 can identify one or more compatible library operating systems.

如上所提及,結合組件120經配置以將應用程式結合至相容函式庫作業系統。舉例而言,來自可用之函式庫作業系統之相容函式庫作業系統與應用程式相關聯。隨後,例如,可將函式庫作業系統加載至應用程式之位址空間中。亦可由結合組件120或一些其他組件在運行時執行此加載。 As mentioned above, the binding component 120 is configured to incorporate an application into a compatible library operating system. For example, a compatible library operating system from an available library operating system is associated with an application. Subsequently, for example, the library operating system can be loaded into the address space of the application. This loading can also be performed at runtime by the binding component 120 or some other component.

根據一個態樣,函式庫作業系統可囊封作業系統之最可能破壞應用程式相容性之部分。因此,函式庫作業系統提供機制以解決應用程式相容性問題。詳言之,函式庫作業系統可根據需要在主機作業系統之頂部作業且可由應用程式加以使用。自某些意義而言,各應用程式可與應用程式所選擇之函式庫作業系統一起執行,從而消除相容性問題。 According to one aspect, the library operating system can encapsulate the portion of the operating system that is most likely to compromise application compatibility. Therefore, the library operating system provides mechanisms to address application compatibility issues. In particular, the library operating system can be run on top of the host operating system as needed and can be used by the application. In some sense, applications can be executed with the library operating system selected by the application to eliminate compatibility issues.

可藉由以特定方式重構習知函式庫作業系統來產生此函式庫作業系統。更具體而言,應用程式服務(例如,框架、繪製引擎、共用使用者介面控制、語言執行環境......)可封裝在函式庫作業系統中,且使用者服務(例如,圖形使用者介面、剪輯板、搜索索引......)及硬體服務(例如,OS核心、裝置驅動器、檔案系統......)可與主機作業系統一起封裝。在一個實例中,可生成為完整作業系統之大小之1/50th的函式庫作業系統。此函式庫作業系統與先前函式庫作業系統設計不同,先前函式 庫作業系統設計旨在藉由將低級硬體抽象組件暴露至應用程式來提供應用程式定制效能增強。此等先前設計為應用程式提供諸如頁表、網路封包及磁碟塊之硬體資源之細分定制控制。在此,此外,所使用之函式庫作業系統在函式庫作業系統之目標方面有所差異,且因此提供促進應用程式相容性之較高級抽象組件。 This library operating system can be generated by reconstructing a conventional library operating system in a specific manner. More specifically, application services (eg, frameworks, rendering engines, shared user interface controls, language execution environments...) can be packaged in a library operating system, and user services (eg, graphics) User interfaces, editing boards, search indexes...) and hardware services (eg, OS cores, device drivers, file systems, etc.) can be packaged with the host operating system. In one example, it may be generated as the size of 1/50 th of a complete library of operating system OS. This library operating system is different from the previous library operating system design, which was designed to provide application customization performance enhancements by exposing low-level hardware abstract components to the application. These previous designs provided sub-customized control for the application's hardware resources such as page tables, network packets, and disk blocks. Here, in addition, the library operating system used differs in the goals of the library operating system and thus provides a higher level abstraction component that facilitates application compatibility.

參看圖2,圖示例示性函式庫作業系統架構200。如圖所示,架構200包括主機作業系統210,該主機作業系統210為安裝於電腦上之主要作業系統。在多數情況下,主機作業系統210為唯一的作業系統。然而,在此,若干函式庫作業系統220(函式庫作業系統1至函式庫作業系統M,其中M為正整數)為在主機作業系統210上或在主機作業系統210內作業之客體。大量應用程式230(應用程式1至應用程式N,其中N為正整數)在相容函式庫作業系統220上執行。該複數個函式庫作業系統220中之各者捕獲作業系統之個性(例如,應用程式設計介面及應用程式語義,應用程式係基於應用程式設計介面及應用程式語義而建立)並作為函式庫在應用程式之位址空間中執行,應用程式視作業系統之個性而定。因此,函式庫作業系統可囊封作業系統之最可能破壞應用程式相容性之部分(例如,應用程式服務)。 Referring to Figure 2, an exemplary library operating system architecture 200 is illustrated. As shown, the architecture 200 includes a host operating system 210, which is a primary operating system installed on a computer. In most cases, host operating system 210 is the only operating system. Here, however, several library operating systems 220 (the library operating system 1 to the library operating system M , where M is a positive integer) are objects that operate on the host operating system 210 or within the host operating system 210. . A large number of applications 230 (Application 1 to Application N , where N is a positive integer) are executed on the compatible library operating system 220. Each of the plurality of library operating systems 220 captures the personality of the operating system (eg, the application programming interface and application semantics, the application is based on the application programming interface and application semantics) and acts as a library Executed in the address space of the application, the application depends on the personality of the operating system. Therefore, the library operating system can encapsulate the portion of the operating system that is most likely to disrupt application compatibility (eg, application services).

架構200類似於習知虛擬機架構,但使用函式庫作業系統,而非使用整體作業系統。因此顯著地降低資源間接費用。舉例而言,可由函式庫作業系統消耗小於16 MB 之隨機存儲記憶體(RAM)及64 MB之磁碟空間,而非消耗512 MB之RAM及5 GB之磁碟空間來執行作業系統之完全單獨副本。在實務中,典型消費型裝置可能僅能執行整體習知作業系統之一個或兩個副本,此使得難以執行許多不同應用程式。然而,藉由取代習知作業系統之函式庫作業系統很容易地支援需要各種版本之作業系統之許多不同應用程式。 Architecture 200 is similar to the conventional virtual machine architecture, but uses a library operating system rather than an overall operating system. This significantly reduces resource overheads. For example, less than 16 MB can be consumed by the library operating system Instead of consuming 512 MB of RAM and 5 GB of disk space to perform a completely separate copy of the operating system, random access memory (RAM) and 64 MB of disk space. In practice, a typical consumer device may only be able to execute one or two copies of the overall learned operating system, which makes it difficult to execute many different applications. However, it is easy to support many different applications that require various versions of the operating system by replacing the library operating system of the conventional operating system.

函式庫作業系統220之版本可低於、等於或高於主機作業系統210之版本。因此,啟用逆向相容性及正向相容性用於利用函式庫作業系統之應用程式。 The version of the library operating system 220 can be lower than, equal to, or higher than the version of the host operating system 210. Therefore, enabling reverse compatibility and forward compatibility is used for applications that utilize the library operating system.

根據一個實施例,主機作業系統210可與一或多個函式庫作業系統220一起封裝。換言之,主機作業系統210可包括(例如)在函式庫作業系統儲存器212內之一或多個函式庫作業系統之集合。舉例而言,此外,函式庫作業系統可相對於主機作業系統儲存於平行目錄中之磁盤上。應用程式可結合至相對於主機作業系統210所包括之該等函式庫作業系統中之一者。隨後此作業系統可加載或複製至應用程式之位址空間中。此舉解決逆向相容性(亦稱,相容性),因為主機作業系統210可包括先前函式庫作業系統或舊式函式庫作業系統之至少一子集。舉例而言,設計用於先前版本之作業系統之應用程式可藉由使用與最新版本之作業系統一起封裝之函式庫作業系統而在最新版本之作業系統上執行。亦解決正向相容性(亦稱,反向相容性)。 According to one embodiment, host operating system 210 may be packaged with one or more library operating systems 220. In other words, host operating system 210 can include, for example, a collection of one or more library operating systems within library operating system storage 212. For example, in addition, the library operating system can be stored on a disk in a parallel directory relative to the host operating system. The application can be coupled to one of the library operating systems included with host operating system 210. This operating system can then be loaded or copied into the application's address space. This solves the reverse compatibility (also known as compatibility) because the host operating system 210 can include at least a subset of the previous library operating system or the legacy library operating system. For example, an application designed for a previous version of the operating system can be executed on the latest version of the operating system by using a library operating system packaged with the latest version of the operating system. Forward compatibility (also known as reverse compatibility) is also addressed.

與在更新版本之作業系統上執行應用程式(該應用程式經編寫用於先前版本之作業系統)相反,經編寫用於更新作業系統版本之應用程式亦可在先前版本之作業系統上執行。通常,藉由應用程式設計介面(API)將應用程式綁定至特定版本之主機作業系統。因此,開發者面臨當一大部分客戶可能未升級至新作業系統時是否將新主機作業系統作為目標的兩難困境。因此,當開發者採用API時通常存在滯後,API將新作業系統作為目標直至作業系統獲得足夠使用者(通常稱為安裝基數)以調整將新作業系統作為目標。藉由利用函式庫作業系統,開發者可將最新之作業系統作為目標並降級執行應用程式,或換言之,在執行較舊版本之作業系統之電腦上執行應用程式。由於相容性問題存在於函式庫作業系統中,因此開發者可使用相對於新版本之作業系統之函式庫作業系統,且因此應用程式可將最新API作為目標。在一個實例中,可收取授權費以便能夠將較新函式庫OS中之最新作業系統功能作為目標。 In contrast to executing an application on a newer version of the operating system (which was written for a previous version of the operating system), an application written to update the operating system version can also be executed on a previous version of the operating system. Typically, an application is bound to a specific version of the host operating system through an application programming interface (API). As a result, developers face the dilemma of targeting a new host operating system when a large percentage of customers may not be upgraded to a new operating system. Therefore, when developers adopt APIs, there is usually a lag, and the API targets the new operating system until the operating system gets enough users (often called the installation base) to adjust the new operating system as a target. By utilizing the library operating system, developers can target the latest operating system and downgrade the execution of the application, or in other words, execute the application on a computer running an older version of the operating system. Since the compatibility issue exists in the library operating system, the developer can use the library operating system relative to the new version of the operating system, and thus the application can target the latest API. In one example, an authorization fee can be charged to be able to target the latest operating system functions in the newer library OS.

此外,藉由允許主機及應用程式單獨發展,主機作業系統中之改變不需破壞應用程式。舉例而言,假定主機作業系統經升級至新版本。在更新時,安裝於電腦上之應用程式可經重配置以在函式庫作業系統上執行,該函式庫作業系統與先前版本之作業系統匹配。 In addition, by allowing the host and application to evolve independently, changes in the host operating system do not require disruption to the application. For example, assume that the host operating system is upgraded to a new version. Upon update, the application installed on the computer can be reconfigured to execute on the library operating system that matches the previous version of the operating system.

根據一個實施例,應用程式230及函式庫作業系統220之各組合可在微微程序(picoprocess)240內作業,該 微微程序240為由作業系統程序位址空間構建的但不存取主機作業系統210之完整服務的輕型安全隔離容器。換言之,應用程式可經沙盒封裝以使得表現不良之應用程式不能危害其他應用程式或應用程式之主機。在微微程序中執行之編碼可使用主機作業系統210之介面,該介面由圖2中的箭頭來表示,且該介面遵循硬體虛擬機之設計型樣。介面調用可由主機作業系統210之安全監視組件(未圖示)提供服務,該安全監視組件在功能上可相對於習知硬體虛擬機與超管理器或虛擬機監視器類似。 According to one embodiment, each combination of application 230 and library operating system 220 can operate within a picoprocess 240, which The pico-program 240 is a lightweight, secure, isolated container that is built from the operating system program address space but does not access the full service of the host operating system 210. In other words, applications can be sandboxed so that poorly performing applications can't compromise other applications or applications. The encoding performed in the pico-program can use the interface of the host operating system 210, which is represented by the arrows in Figure 2, and the interface follows the design of the hardware virtual machine. The interface call may be served by a security monitoring component (not shown) of the host operating system 210, which may be functionally similar to a hypervisor or virtual machine monitor relative to a conventional hardware virtual machine.

在函式庫作業系統與主機作業系統一起封裝的情況下,例如,在函式庫作業系統儲存器212中,促進維護。可開發用以更新主機作業系統210之機制來更新與主機作業系統一起封裝之函式庫作業系統。舉例而言,可藉由主機作業系統210中之更新設施為安全更新及正確性更改修補函式庫作業系統。此外,藉由在運行時將函式庫作業系統結合至應用程式,可利用最新函式庫作業系統而非將最新函式庫作業系統結合至該最新函式庫作業系統之一些其他版本。 In the case where the library operating system is packaged with the host operating system, for example, in the library operating system storage 212, maintenance is facilitated. A mechanism for updating the host operating system 210 can be developed to update the library operating system packaged with the host operating system. For example, the library operating system can be patched for security updates and correctness changes by the update facility in host operating system 210. In addition, by incorporating the library operating system into the application at runtime, the latest library operating system can be utilized instead of incorporating the latest library operating system into some other version of the latest library operating system.

另外,可開發用以更新主機作業系統210之機制以在主機作業系統已運送或換言之,已遞送至客戶後安裝新函式庫作業系統。舉例而言,若基於主機作業系統之服務決定新版本之函式庫作業系統係可用的,則可獲取及保存新函式庫作業系統。 Additionally, mechanisms for updating the host operating system 210 can be developed to install a new library operating system after the host operating system has shipped or, in other words, has been delivered to the customer. For example, if a new version of the library operating system is available based on the services of the host operating system, the new library operating system can be acquired and saved.

圖3圖示促進應用程式相容性之系統300。類似於圖1之系統100,如先前所描述,系統300包括選擇組件110及結合組件120。簡言之,選擇組件110經配置以選擇或識別與應用程式相容之函式庫作業系統,且結合組件120經配置以將應用程式結合至函式庫作業系統。系統100先前假設用於應用程式之必要函式庫作業系統之局部可用性。然而,在某些實例中情況可能並非如此。獲取組件320解決此問題。更特定而言,獲取組件320可經配置以(例如)自公共或另外可存取網站獲取函式庫作業系統。在一個特定實例中,獲取組件320可經配置以藉由主機作業系統更新機制觸發函式庫作業系統之下載。總而言之,若選擇組件110識別用於應用程式(該應用程式未呈現於系統上)之函式庫作業系統,則結合組件120經配置以藉由獲取組件320獲取函式庫作業系統。 FIG. 3 illustrates a system 300 that facilitates application compatibility. Similar to system 100 of FIG. 1, system 300 includes selection component 110 and bonding component 120, as previously described. In short, the selection component 110 is configured to select or identify an application-compatible library operating system, and the bonding component 120 is configured to integrate the application to the library operating system. System 100 previously assumed the local availability of the necessary library operating system for the application. However, this may not be the case in some instances. Get component 320 solves this problem. More specifically, the acquisition component 320 can be configured to obtain a library operating system, for example, from a public or otherwise accessible website. In one particular example, the acquisition component 320 can be configured to trigger the download of the library operating system by the host operating system update mechanism. In summary, if the selection component 110 identifies a library operating system for an application that is not present on the system, the binding component 120 is configured to obtain the library operating system by the acquisition component 320.

各種函式庫作業系統與主機作業系統可共存於電腦上。例如,考慮在主機作業系統旁邊之函式庫作業系統之一個可能佈局:C:\Windows\System32 Various library operating systems and host operating systems can coexist on the computer. For example, consider a possible layout of the library operating system next to the host operating system: C:\Windows\System32

C:\Windows\SysWOW64 C:\Windows\SysWOW64

C:\Windows\Windows.6.2.8102.Win8BUILD C:\Windows\Windows.6.2.8102.Win8BUILD

C:\Windows\Windows.6.1.7601.Win7SP1 C:\Windows\Windows.6.1.7601.Win7SP1

C:\Windows\Windows.6.1.7600.Win7RTM C:\Windows\Windows.6.1.7600.Win7RTM

C:\Windows\Windows.6.0.6002.VistaSP2 C:\Windows\Windows.6.0.6002.VistaSP2

C:\Windows\Windows.6.0.6001.VistaSP1 C:\Windows\Windows.6.0.6001.VistaSP1

C:\Windows\Windows.6.0.6000.VistaRTM 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)之函式庫作業系統。 C:\Windows\Windows.5.1.2600.WinXPSP3 In this example, the "System32" directory tree contains a 64-bit host operating system. The directory tree "SysWOW64" contains the 32-bit file of the host operating system, which is executed on the 64-bit host operating system. Other directory trees include library operating systems from earlier operating systems (Win7SP1, Win7RTM, VistaSP2, VistaSP1, VistaRTM, WinXPSP3) or newer operating systems (Win8BUILD).

已相對於若干組件之間的相互作用描述上述系統、架構、環境等。應瞭解,此等系統及組件可包括在此等系統及組件中規定之彼等組件或子組件、該等規定之組件或子組件中之一些組件或子組件及/或附加組件。子組件亦可作為通訊地耦接至其他組件而非包括於母組件內之組件而實施。更進一步地,可將一或多個組件及/或子組件組合成單一組件以提供聚集功能性。可根據推模式及/或拉模式達成系統、組件及/或子組件之間的通訊。組件亦可與一或多個其他組件相互作用,為簡潔起見,在本文中未具體描述該一或多個其他組件,但該一或多個其他組件為熟習此項技術者所熟知。 The above systems, architectures, environments, etc. have been described with respect to interactions between several components. It is to be understood that such systems and components can include those components or sub-components specified in such systems and components, some of the specified components or sub-components, and/or additional components. Sub-components can also be implemented as components communicatively coupled to other components rather than being included in the parent component. Still further, one or more components and/or sub-components can be combined into a single component to provide aggregate functionality. Communication between systems, components, and/or sub-components can be achieved in accordance with push mode and/or pull mode. The components may also interact with one or more other components, which are not specifically described herein for the sake of brevity, but one or more other components are well known to those skilled in the art.

此外,以上所揭示之系統及以下方法之各種部分可包括或使用人工智慧、機器學習或基於知識或規則之組件、子組件、程序、方式、方法或機制(例如,支援向量機、類神經網路、專家系統、貝斯(Bayesian)信念 網路、乏晰邏輯、資料融合引擎、分類器......)。此等組件尤其可自動化經執行之某些機制或程序,從而使系統及方法之部分更適應以及更有效及更智慧。舉例而言而非限制,選擇組件110可使用此機制以決定相容函式庫作業系統。 Furthermore, the systems disclosed above and various portions of the methods below may include or use artificial intelligence, machine learning, or knowledge or rule based components, subcomponents, programs, methods, methods, or mechanisms (eg, support vector machines, neural networks) Road, expert system, Bayesian belief Network, ambiguous logic, data fusion engine, classifier...). In particular, such components may automate certain mechanisms or programs that are executed to make the systems and methods part more adaptable and more efficient and intelligent. By way of example and not limitation, selection component 110 can use this mechanism to determine a compatible library operating system.

鑒於以上描述之例示性系統,將參看圖4之流程圖更好地瞭解可根據所揭示之標的實施的方法。然而出於簡單解釋之目的,以一系列方塊展示且描述方法,應理解且應瞭解,所主張之標的不受方塊之順序限制,因為一些方塊可以不同順序出現且/或可與其他方塊同時出現,其他方塊來自在本文中描繪及描述之方塊。此外,並不需要所有圖示之方塊來實施在下文中所描述之方法。 In view of the exemplary systems described above, a method that can be implemented in accordance with the disclosed subject matter will be better appreciated with reference to the flowchart of FIG. However, for the purposes of abbreviated purposes, a series of blocks are shown and described, and it should be understood and understood that the claimed subject matter is not limited by the order of the blocks, as some blocks may appear in a different order and/or may occur simultaneously with other blocks. The other blocks are from the blocks depicted and described herein. In addition, not all illustrated blocks may be required to implement the methods described hereinafter.

參看圖4,圖示促進相容性之方法400。在元件符號410處,決定用於應用程式之相容函式庫作業系統,在相容函式庫作業系統中,函式庫作業系統囊封習知作業系統之最可能破壞應用程式相容性之部分。在一個實例中,函式庫作業系統可由與應用程式相關聯之清單檔案來識別,函式庫作業系統可自個體(例如,終端使用者、程式員、管理者......)獲取或可另外自應用程式之分析來決定或推斷。在符號420處,作出經決定之函式庫作業系統是否可用的決定。若在電腦上函式庫系統局部不可用(「NO」),則自430處之遠程位置獲取函式庫作業系統。另外,若函式庫作業系統為可用的(「YES」),則 方法400在元件符號440處繼續,在元件符號440處,應用程式結合至函式庫作業系統。儘管在此未顯示應用程式與多個作業系統相容而非遠程獲取函式庫作業系統,但可使用其他局部函式庫作業系統中之一者。當啟動執行應用程式時,可將經結合之函式庫系統加載至應用程式之位址空間中。 Referring to Figure 4, a method 400 of promoting compatibility is illustrated. At component symbol 410, a compatible library operating system for an application is determined. In a compatible library operating system, the library operating system encapsulates the most likely application compatibility of the application operating system. Part of it. In one example, the library operating system can be identified by a manifest file associated with the application, and the library operating system can be obtained from an individual (eg, an end user, a programmer, a manager, ...). Or it can be determined or inferred from the analysis of the application. At symbol 420, a decision is made as to whether the determined library operating system is available. If the library system is partially unavailable ("NO") on the computer, the library operating system is acquired from the remote location at 430. In addition, if the library operating system is available ("YES"), then Method 400 continues at component symbol 440 where the application is coupled to the library operating system. Although it is not shown here that the application is compatible with multiple operating systems rather than remotely accessing the library operating system, one of the other local library operating systems may be used. When the execution application is launched, the combined library system can be loaded into the application's address space.

圖5為主機作業系統替換之方法500之流程圖。在元件符號510處,應用程式自主機作業系統重新結合至相同版本之函式庫作業系統。在符號520處,替換主機作業系統。以此方式,在不破壞應用程式的情況下,可藉由將應用程式移位至相容函式庫作業系統來升級/更新主機作業系統。 FIG. 5 is a flow diagram of a method 500 of replacing a host operating system. At component symbol 510, the application recombines from the host operating system to the same version of the library operating system. At symbol 520, the host operating system is replaced. In this way, the host operating system can be upgraded/updated by shifting the application to a compatible library operating system without breaking the application.

如本文中所使用,術語「組件」、「系統」、「架構」以及該等術語之各種形式(例如,組件、系統、子系統......)欲指電腦相關之實體(硬體、硬體與軟體之組合、軟體或執行中之軟體)。舉例而言,組件可為(但不限於)在處理器上執行之程序、處理器、物體、實例、可執行碼、執行線程、程式及/或電腦。藉由說明,在電腦上執行之應用程式與電腦二者皆可為組件。一或多個組件可位於程序及/或執行線程內,且組件可定位於一個電腦上且/或可分佈於兩個或兩個以上電腦之間。 As used herein, the terms "component", "system", "architecture", and various forms of such terms (eg, components, systems, subsystems...) are intended to refer to computer-related entities (hardware). , a combination of hardware and software, software or software in execution). For example, a component can be, but is not limited to being, a program executed on a processor, a processor, an object, an instance, an executable, a thread, a program, and/or a computer. By way of illustration, both an application and a computer executing on a computer can be components. One or more components can reside within a program and/or execution thread and the components can be located on a computer and/or can be distributed between two or more computers.

字語「例示性」或「例示性」之各種形式在本文中用以意謂作為實例、例子或說明。本文中所描述作為「例示性」之任何態樣或設計不必理解為較佳或優於其他態 樣或設計。此外,出於清晰及理解之目的,單獨地提供實例,且實例並不意謂以任何方式限制或限定本發明之所主張之標的或相關部分。應瞭解,出於簡潔之目的,可提出(但已省略)變化範疇之大量附加或替代實例。 The various forms of the words "exemplary" or "exemplary" are used herein to mean as an example, instance, or illustration. Any aspect or design described herein as "exemplary" is not necessarily to be construed as preferred or advantageous. Sample or design. In addition, the examples are provided for clarity and understanding, and the examples are not intended to limit or define the claimed subject matter or the relevant parts of the invention in any way. It should be understood that numerous additional or alternative examples of the scope of the changes may be presented (but omitted) for the sake of brevity.

除另有規定或由上下文很清楚外,如此實施方式及附隨申請專利範圍中所使用之連詞「或」欲意謂包含「或」而非排斥「或」。換言之,「'X'或'Y'」欲意謂「X」及「Y」之任何包含排列。舉例而言,若「'A'使用'X'」、「'A'使用'Y'」或「'A'使用'A'與'B'兩者」,則在前述實例之任何實例的情況下滿足「'A'使用'X'或'Y'」。 The word "or" as used in the context of the application and the scope of the appended claims is intended to include "or" rather than exclusive. In other words, "'X' or 'Y'" is intended to mean any arrangement of "X" and "Y". For example, if "A' uses 'X'", "'A' uses 'Y'" or "A' uses both 'A' and 'B'", then in the case of any of the preceding examples Satisfy "'A' using 'X' or 'Y'".

如本文中所使用,術語「推斷」通常係指自如經由事件及/或資料捕獲之一組觀測來推出或推斷系統、環境及/或使用者之狀態的過程。舉例而言,可使用推斷以識別具體上下文或動作,或可產生關於狀態之機率分佈。推斷可為機率性的,即基於對資料及事件之考慮計算所關注狀態之機率分佈。推斷亦可指用於自一組事件及/或資料組成較高級事件的技術。此推斷導致自一組觀測之事件及/或儲存之事件資料建構新事件或動作,無論事件是否以緊密時序近接相關聯,及事件及資料是否來自一或若干事件及資料源。可結合執行與所主張標的相關之自動及/或推斷之動作使用各種分類方案及/或系統(例如,支援向量機、類神經網路、專家系統、貝斯(Bayesian)信念網路、乏晰邏輯、資料融合引擎......)。 As used herein, the term "inference" generally refers to the process of deriving or inferring the state of a system, environment, and/or user from a group of observations of events and/or data captures. For example, inference can be used to identify a particular context or action, or a probability distribution with respect to a state can be generated. Inference can be probabilistic, that is, based on the consideration of data and events, the probability distribution of the state of interest is calculated. Inference can also refer to techniques used to compose higher-level events from a set of events and/or data. This inference results in the construction of a new event or action from a set of observed events and/or stored event data, whether or not the event is closely related in close sequence, and whether the event and data are from one or several events and sources. Various classification schemes and/or systems may be used in conjunction with performing automatic and/or inferred actions associated with the claimed subject (eg, support vector machine, neural network, expert system, Bayesian belief network, ambiguous logic) , data fusion engine......).

此外,就在實施方式或申請專利範圍中使用術語「包 括」、「含有」、「具有」或該等術語之形式變化而言,此等術語意欲為以類似於術語「包含」之方式的包含的,因為「包含」在作為請求項中之轉折詞使用時加以解釋。 In addition, the term "package" is used in the context of the embodiment or patent application. In the case of "including", "having" or "having" or such terms, these terms are intended to be encompassed in a manner similar to the term "comprising", as "including" is used as a turning point in the claim. Explain when using.

為提供用於所主張之標的之上下文,圖6以及以下論述意欲提供合適環境之簡潔總體描述,可在合適環境中實施本標的之各種態樣。然而,合適環境僅為實例且不欲對使用範疇或功能性範疇提議任何限制。 To provide a context for the claimed subject matter, FIG. 6 and the following discussion are intended to provide a simplified overall description of a suitable environment, and various aspects of the subject matter can be implemented in a suitable environment. However, suitable environments are merely examples and are not intended to suggest any limitation as to the scope of use or functionality.

儘管可在程式(該程式在一或多個電腦上執行)之電腦可執行指令之總體上下文中描述以上所揭示之系統及方法,但熟習此項技術者將認識到亦可結合其他程式模組等實施態樣。大體而言,此外,程式模組包括執行特定任務且/或實施特定抽象資料類型之常式、程式、組件、資料結構。此外,熟習此項技術者將瞭解上述系統及方法可以各種電腦系統配置加以實踐,該等電腦系統配置包括單一處理器電腦系統、多元處理器電腦系統或多核處理器電腦系統、小型計算裝置、大型電腦以及個人電腦、手持式計算裝置(例如,個人數位助理(PDA)、電話、錶......)、基於微處理器或可程式化消費型電子產品或基於微處理器或可程式化工業電子產品等。亦可在分布式計算環境中實踐態樣,在分布式計算環境中,藉由經由通訊網路鏈接之遠程處理裝置來執行任務。然而,所主張之標的之某些(若非全部)態樣可在獨立電腦上實踐。在分布式計算環境中,程式模組可定位於局部記憶體儲存裝置及遠程記憶體儲存裝置中之一者或兩 者中。 Although the above disclosed systems and methods can be described in the general context of computer executable instructions of a program (which is executed on one or more computers), those skilled in the art will recognize that other program modules can be incorporated. And so on. In general, in addition, the program module includes routines, programs, components, and data structures that perform particular tasks and/or implement particular abstract data types. In addition, those skilled in the art will appreciate that the above systems and methods can be practiced in a variety of computer system configurations, including single processor computer systems, multiprocessor computer systems or multi-core processor computer systems, small computing devices, large Computers and personal computers, handheld computing devices (eg personal digital assistants (PDAs), telephones, watches...), microprocessor-based or programmable consumer electronics or microprocessor-based or programmable Chemical industrial electronics, etc. It is also possible to practice in a distributed computing environment where tasks are performed by remote processing devices linked via a communication network. However, some, if not all, of the claimed subject matter can be practiced on a stand-alone computer. In a distributed computing environment, the program module can be located in one or both of a local memory storage device and a remote memory storage device. Among them.

參看圖6,圖示實例通用電腦610或計算裝置(例如,桌上電腦、膝上型電腦、伺服器、手持型、可程式化消費型電子產品或可程式化工業電子產品、機上盒、遊戲系統......)。電腦610包括一或多個處理器620、記憶體630、系統匯流排640、大容量儲存器650及一或多個介面組件670。系統匯流排640通訊地耦接至少上述系統組件。然而,應瞭解,在電腦610之最簡單形式中,電腦610可包括耦接至記憶體630之一或多個處理器620,該一或多個處理器620執行儲存於記憶體630內之各種電腦可執行動作、指令及/或組件。 Referring to Figure 6, an example general purpose computer 610 or computing device (e.g., a desktop computer, laptop, server, handheld, programmable consumer electronics or programmable industrial electronics, set-top box, Game system......). The computer 610 includes one or more processors 620, memory 630, system bus 640, mass storage 650, and one or more interface components 670. The system bus 640 is communicatively coupled to at least the above system components. However, it should be appreciated that in the simplest form of computer 610, computer 610 can include one or more processors 620 coupled to memory 630 that perform various types of memory stored in memory 630. The computer can execute actions, instructions, and/or components.

用經設計以執行本文中所描述之功能之通用處理器、數位訊號處理器(DSP)、特殊應用積體電路(ASIC)、場可程式化閘陣列(FPGA)或其他可程式化邏輯裝置、離散閘或電晶體邏輯、離散硬體組件或上述裝置之任何組合可實施一或多個處理器620。通用處理器可為微處理器,但在替代方案中,處理器為任何處理器、控制器、微控制器或狀態機。一或多個處理器620亦可經實施作為計算裝置之組合,例如,DSP與微處理器、複數個微處理器、多核處理器、結合DSP核之一或多個微處理器或任何其他此配置之組合。 A general purpose processor, digital signal processor (DSP), special application integrated circuit (ASIC), field programmable gate array (FPGA), or other programmable logic device designed to perform the functions described herein, One or more processors 620 can be implemented with discrete gate or transistor logic, discrete hardware components, or any combination of the above. A general purpose processor may be a microprocessor, but in the alternative, the processor is any processor, controller, microcontroller, or state machine. The one or more processors 620 can also be implemented as a combination of computing devices, such as a DSP and a microprocessor, a plurality of microprocessors, a multi-core processor, one or more microprocessors in conjunction with a DSP core, or any other such A combination of configurations.

電腦610可包括各種電腦可讀媒體或另外與各種電腦可讀媒體相互作用以促進對電腦610的控制來實施所主張之標的之一或多個態樣。電腦可讀媒體可為可由電腦 610存取之任何可用媒體且包括揮發性媒體及非揮發性媒體及可移式媒體及不可移式媒體。舉例而言而非限制,電腦可讀媒體可包含電腦儲存媒體及通訊媒體。 Computer 610 may comprise or otherwise interact with various computer readable media to facilitate control of computer 610 to implement one or more aspects of the claimed subject matter. Computer readable medium can be computer readable 610 accesses any available media and includes volatile media and non-volatile media and removable media and non-removable media. By way of example and not limitation, computer readable media may include computer storage media and communication media.

電腦儲存媒體包括在用於儲存諸如電腦可讀指令、資料結構、程式模組或其他資料之資訊之任意方法或技術中實施的揮發性媒體及非揮發性媒體、可移式媒體及不可移式媒體。電腦儲存媒體包括(但不限於)記憶體裝置(例如,隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電子可抹除可程式化唯讀記憶體(EEPROM)......)、磁性儲存裝置(例如,硬碟、軟碟、卡式帶、磁帶......)、光碟(例如,壓縮光碟(CD)、數位化通用光碟(DVD)......)及固態裝置(例如,固態驅動器(SSD)、快閃記憶體驅動器(例如,卡、記憶卡、隨身碟......)......)或可用以儲存所需之資訊並可由電腦610存取之任何其他媒體。 Computer storage media includes volatile media and non-volatile media, removable media, and non-removable media implemented in any method or technology for storing information such as computer readable instructions, data structures, program modules or other materials. media. Computer storage media includes, but is not limited to, memory devices (eg, random access memory (RAM), read only memory (ROM), electronic erasable programmable read only memory (EEPROM).... ..), magnetic storage devices (eg, hard drives, floppy disks, cassettes, tapes...), optical discs (eg, compact discs (CDs), digitally versatile discs (DVD).... ..) and solid state devices (eg solid state drives (SSD), flash memory drives (eg cards, memory cards, flash drives...)) or can be used to store the required Information and any other media that can be accessed by computer 610.

通訊媒體通常體現電腦可讀指令、資料結構、程式模組或調變資料訊號(諸如,載波或其他傳輸機制)中之其他資料,且包括任何資訊傳送媒體。術語「調變資料訊號」意謂具有訊號之特徵集中之一或多者或以此方式變化以編碼訊號中之資訊之訊號。舉例而言而非限制,通訊媒體包括有線媒體(諸如有線網路或直接有線連接)及無線媒體(諸如音波、射頻(radio frequency;RF)、紅外及其他無線媒體)。上述媒體中之任何媒體的組合亦應包括於電腦可讀媒體之範疇內。 The communication medium typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal (such as a carrier wave or other transmission mechanism) and includes any information delivery medium. The term "modulation data signal" means a signal that has one or more of the feature sets of the signal or that changes in this manner to encode the information in the signal. By way of example and not limitation, communication media may include wired media (such as a wired network or direct wired connection) and wireless media (such as,,,,,,,,,,,,,,,,,,,,, Combinations of any of the above media should also be included in the context of computer readable media.

記憶體630及大容量儲存器650為電腦可讀儲存媒體之實例。視計算裝置之精確配置及類型而定,記憶體630可為揮發性記憶體(例如,RAM)、非揮發性記憶體(例如,ROM、快閃記憶體......)或兩者之某一組合。舉例而言,此外,當揮發性記憶體可充當外部快取記憶體以藉由一或多個處理器620促進處理時,包括基本常式以(諸如在起動期間)在電腦610內之元件之間傳輸資訊的基本輸入/輸出系統(BIOS)可儲存於非揮發性記憶體中。 Memory 630 and mass storage 650 are examples of computer readable storage media. Depending on the precise configuration and type of computing device, memory 630 can be volatile memory (eg, RAM), non-volatile memory (eg, ROM, flash memory, etc.) or both. a combination of them. For example, in addition, when volatile memory can act as external cache memory to facilitate processing by one or more processors 620, including basic routines (such as during startup) components within computer 610 The basic input/output system (BIOS) that transfers information between the two can be stored in non-volatile memory.

大容量儲存器650包括用於儲存與記憶體630相關之大量資料之可移式/不可移式電腦儲存媒體、揮發性/非揮發性電腦儲存媒體。舉例而言,大容量儲存器650包括(但不限於)一或多個裝置,諸如,磁碟機或光碟機、軟式磁碟機、快閃記憶體、固態驅動器或記憶卡。 The mass storage device 650 includes removable/non-removable computer storage media, volatile/non-volatile computer storage media for storing a large amount of data associated with the memory 630. For example, mass storage 650 includes, but is not limited to, one or more devices, such as a magnetic or optical disk drive, a floppy disk drive, a flash memory, a solid state drive, or a memory card.

記憶體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轉變為特定機。 The memory 630 and the mass storage 650 can include an operating system 660, one or more application programs 662, one or more program modules 664 and data 666, or an operating system 660, one or more applications 662, or A plurality of program modules 664 and data 666 are stored in the memory 630 and the mass storage 650. The operating system 660 is used to control and allocate resources of the computer 610. Here, the operating system 660 can correspond to a host operating system 210 that can support a large number of library operating systems 220. The application 662 includes one or both of the system and the application software, and the application 662 can be accessed by the operating system 660 via the program module 664 and the data 666 stored in the memory 630 and/or the mass storage 650. To develop capital Source management to perform one or more actions. Thus, application 662 can convert general purpose computer 610 into a particular machine based on the logic thus provided.

可使用標準程式化及/或工程技術實施所主張之標的之全部或部分以產生軟體、韌體、硬體或軟體、韌體及硬體之任何組合來控制電腦以實現所揭示功能性。舉例而言而非限制,系統100或系統100之部分可為應用程式662之部分或形成應用程式662之部分,並包括儲存於記憶體及/或大容量儲存器650中之一或多個模組664及資料666,在由一或多個處理器620執行一或多個模組664及資料666時,可實現一或多個模組664及資料666之功能性。 All or a portion of the claimed subject matter can be implemented using standard stylization and/or engineering techniques to produce any combination of software, firmware, hardware or software, firmware and hardware to control the computer to achieve the disclosed functionality. By way of example and not limitation, portions of system 100 or system 100 can be part of application 662 or form part of application 662 and include one or more modules stored in memory and/or mass storage 650. Group 664 and data 666 may implement the functionality of one or more modules 664 and data 666 when one or more modules 664 and data 666 are executed by one or more processors 620.

根據一個特定實施例,一或多個處理器620可對應於片上系統(SOC)或相似構架,該相似構架在單一積體電路基板上包括,或換言之整合硬體及軟體兩者。在此,此外,一或多個處理器620可包括一或多個處理器以及至少類似於一或多個處理器620及記憶體630之記憶體。習知處理器包括最少量之硬體及軟體並廣泛依賴外部硬體及軟體。相反,處理器之SOC實施更加強大,因為處理器之SOC實施將硬體及軟體嵌入處理器,該硬體及軟體以對外部硬體及軟體之最小依賴或不依賴於外部硬體及軟體來啟用特定功能性。舉例而言,可將系統100及/或相關聯之功能性嵌入SOC架構中之硬體內。 According to a particular embodiment, one or more processors 620 may correspond to a system on a chip (SOC) or similar architecture that includes, or in other words integrates, both hardware and software on a single integrated circuit substrate. In addition, one or more processors 620 may include one or more processors and memory at least similar to one or more processors 620 and memory 630. Conventional processors include the smallest amount of hardware and software and rely extensively on external hardware and software. On the contrary, the processor's SOC implementation is more powerful, because the processor's SOC implementation embeds hardware and software into the processor. The hardware and software are minimally dependent on external hardware and software or independent of external hardware and software. Enable specific functionality. For example, system 100 and/or associated functionality can be embedded within the hardware of the SOC architecture.

電腦610亦包括一或多個介面組件670,該一或多個介面組件670通訊地耦接至系統匯流排640並促進與電 腦610的相互作用。舉例而言,介面組件670可為埠(例如,串列埠、平行埠、PCMCIA、USB、火線......)或介面卡(例如,聲音、視訊......)等。在一個實例實施中,介面組件670可體現為使用者輸入/輸出介面以使使用者能經由一或多個輸入裝置(例如,指向裝置,諸如,滑鼠、軌跡球、尖筆、觸控板、鍵盤、麥克風、操縱桿、遊戲台、衛星接收碟、掃描器、攝影機、其他電腦......)將命令及資訊輸入電腦610。在另一實例實施中,此外,介面組件670可體現為輸出外圍介面以將輸出供應至顯示器(例如,CRT、LCD、電漿......)、揚聲器、印表機及/或其他電腦。更進一步地,介面組件670可體現為網路介面以能與其他計算裝置(未圖示)諸如在有線或無線通訊鏈路上通訊。 The computer 610 also includes one or more interface components 670 that are communicatively coupled to the system bus 640 and facilitate electrical The interaction of brain 610. For example, interface component 670 can be 埠 (eg, serial 埠, parallel 埠, PCMCIA, USB, Firewire...) or interface card (eg, sound, video, etc.), and the like. In an example implementation, the interface component 670 can be embodied as a user input/output interface to enable a user to pass one or more input devices (eg, pointing devices such as a mouse, trackball, stylus, trackpad) , keyboard, microphone, joystick, game console, satellite receiving disc, scanner, camera, other computer......) Input commands and information into computer 610. In another example implementation, in addition, interface component 670 can be embodied as an output peripheral interface to supply output to a display (eg, CRT, LCD, plasma, etc.), speakers, printers, and/or other computer. Still further, interface component 670 can be embodied as a network interface to enable communication with other computing devices (not shown), such as over a wired or wireless communication link.

以上所描述之內容包括所主張之標的之態樣的實例。當然,不可能描述用於描述所主張之標的之組件或方法之每一可能組合,但一般技術者可認識到所揭示標的之許多進一步組合及排列係可能的。因此,所揭示標的意欲包括在附隨申請專利範圍之精神及範疇內之所有此等改變、修改及變化。 What has been described above includes examples of the claimed subject matter. Of course, it is not possible to describe every possible combination of components or methods for describing the claimed subject matter, but one of ordinary skill in the art will recognize that many further combinations and permutations of the disclosed subject matter are possible. Accordingly, the appended claims are intended to cover all such changes, modifications, and variations in the scope of the invention.

100‧‧‧系統 100‧‧‧ system

110‧‧‧選擇組件 110‧‧‧Select components

120‧‧‧結合組件 120‧‧‧Combined components

200‧‧‧函式庫作業系統架構 200‧‧‧Library operating system architecture

210‧‧‧主機作業系統 210‧‧‧Host operating system

212‧‧‧函式庫作業系統儲存器 212‧‧‧Library operating system storage

220‧‧‧函式庫作業系統 220‧‧‧Library operating system

230‧‧‧應用程式 230‧‧‧Application

240‧‧‧微微程序 240‧‧‧ picoprogram

300‧‧‧系統 300‧‧‧ system

320‧‧‧獲取組件 320‧‧‧Get components

400‧‧‧方法 400‧‧‧ method

410‧‧‧元件符號 410‧‧‧Component symbol

420‧‧‧符號 420‧‧‧ symbol

430‧‧‧符號 430‧‧‧ symbol

440‧‧‧元件符號 440‧‧‧Component symbol

500‧‧‧方法 500‧‧‧ method

510‧‧‧元件符號 510‧‧‧Component symbol

520‧‧‧符號 520‧‧‧ symbol

610‧‧‧通用電腦 610‧‧‧General Computer

620‧‧‧處理器 620‧‧‧ processor

630‧‧‧記憶體 630‧‧‧ memory

640‧‧‧系統匯流排 640‧‧‧System Bus

650‧‧‧大容量儲存器 650‧‧ ‧ mass storage

660‧‧‧作業系統 660‧‧‧ operating system

662‧‧‧應用程式 662‧‧‧Application

664‧‧‧程式模組 664‧‧‧Program Module

666‧‧‧資料 666‧‧‧Information

670‧‧‧介面組件 670‧‧‧Interface components

圖1為促進應用程式相容性之系統之方塊圖。 Figure 1 is a block diagram of a system that facilitates application compatibility.

圖2為例示性函式庫作業系統架構之方塊圖。 2 is a block diagram of an exemplary library operating system architecture.

圖3為促進應用程式相容性之系統之方塊圖。 Figure 3 is a block diagram of a system that facilitates application compatibility.

圖4為促進相容性之方法之流程圖。 4 is a flow chart of a method for promoting compatibility.

圖5為主機作業系統替換之方法之流程圖。 Figure 5 is a flow chart of a method of replacing a host operating system.

圖6為說明本發明之態樣之適合作業環境的示意性方塊圖。 Figure 6 is a schematic block diagram illustrating a suitable operating environment in accordance with aspects of the present invention.

100‧‧‧系統 100‧‧‧ system

110‧‧‧選擇組件 110‧‧‧Select components

120‧‧‧結合組件 120‧‧‧Combined components

Claims (20)

一種促進相容性之方法,該方法包含以下步驟:使用經配置以執行儲存於記憶體中之電腦可執行指令的至少一個處理器來執行以下動作:將一應用程式結合至一相容函式庫作業系統,該相容函式庫作業系統囊封一作業系統之可能破壞應用程式相容性之部分。 A method of facilitating compatibility, the method comprising the steps of: using at least one processor configured to execute computer executable instructions stored in a memory to perform an action of combining an application to a compatible function A library operating system that encapsulates an operating system that may disrupt the compatibility of the application. 如請求項1所述之方法,該方法進一步包含以下步驟:由一清單檔案決定該相容函式庫作業系統。 The method of claim 1, the method further comprising the step of determining the compatible library operating system from a manifest file. 如請求項2所述之方法,該方法包含以下步驟:由該清單檔案決定若干相容函式庫作業系統。 The method of claim 2, the method comprising the steps of: determining, by the manifest file, a number of compatible library operating systems. 如請求項1所述之方法,該方法包含以下步驟:將該應用程式結合至相較於一主機作業系統之一更新版本之該函式庫作業系統。 The method of claim 1, the method comprising the step of incorporating the application into the library operating system as compared to an updated version of a host operating system. 如請求項1所述之方法,該方法進一步包含以下步驟:自一主機作業系統加載該相容函式庫作業系統。 The method of claim 1, the method further comprising the step of loading the compatible library operating system from a host operating system. 如請求項1所述之方法,該方法進一步包含以下步驟:獲取作為一主機作業系統更新程序之部分的該函式庫作業系統。 The method of claim 1, the method further comprising the step of obtaining the library operating system as part of a host operating system update program. 如請求項1所述之方法,該方法進一步包含以下步驟:更新作為一主機作業系統更新程序之部分的該函式庫作業系統。 The method of claim 1, the method further comprising the step of updating the library operating system as part of a host operating system update program. 如請求項1所述之方法,該方法進一步包含以下步驟: 用一第二版本替換一第一版本之一主機作業系統且將先前結合至該第一版本之該主機作業系統之該應用程式結合至對應於該第一版本之該主機作業系統之該函式庫作業系統。 The method of claim 1, the method further comprising the steps of: Replacing a host operating system of a first version with a second version and binding the application of the host operating system previously coupled to the first version to the host operating system corresponding to the first version Library operating system. 一種促進相容性之系統,該系統包含:一處理器,該處理器耦接至一記憶體,該處理器經配置以執行儲存於該記憶體中之以下電腦可執行組件:一第一組件,該第一組件經配置以在運行時將一應用程式結合至一相容函式庫作業系統。 A system for facilitating compatibility, the system comprising: a processor coupled to a memory, the processor configured to execute a computer executable component stored in the memory: a first component The first component is configured to integrate an application into a compatible library operating system at runtime. 如請求項9所述之系統,該函式庫作業系統與一主機作業系統一起封裝。 The system of claim 9, the library operating system being packaged with a host operating system. 如請求項9所述之系統,該函式庫作業系統相較於一主機作業系統為一更新版本之一作業系統。 The system of claim 9, wherein the library operating system is one of the updated operating systems compared to a host operating system. 如請求項9所述之系統,該函式庫作業系統相較於一主機作業系統為一更舊版本之一作業系統。 The system of claim 9, wherein the library operating system is one of the older operating systems than the host operating system. 如請求項9所述之系統,該系統進一步包含一第二組件,該第二組件經配置以決定該相容函式庫作業系統。 The system of claim 9, the system further comprising a second component configured to determine the compatible library operating system. 如請求項13所述之系統,該第二組件經配置以由一清單檔案決定該相容函式庫作業系統。 The system of claim 13, the second component configured to determine the compatible library operating system from a manifest file. 如請求項9所述之系統,一主機作業系統之一更新機制經配置以更新該函式庫作業系統。 In the system of claim 9, one of the host operating system update mechanisms is configured to update the library operating system. 如請求項9所述之系統,一主機作業系統之一更新機制經配置以獲取該函式庫作業系統。 In the system of claim 9, an update mechanism of a host operating system is configured to obtain the library operating system. 一種電腦可讀儲存媒體,該電腦可讀儲存媒體具有儲存 於該電腦可讀儲存媒體上之指令,該電腦可讀儲存媒體啟用至少一個處理器來執行以下動作:在運行時將一應用程式與一相容函式庫作業系統相結合,該相容函式庫作業系統安裝於一主機作業系統上。 A computer readable storage medium having storage An instruction on the computer readable storage medium, the computer readable storage medium enabling at least one processor to perform an action of combining an application with a compatible library operating system at runtime, the compatible function The library operating system is installed on a host operating system. 如請求項17所述之電腦可讀儲存媒體,進一步包含由一清單檔案識別該相容函式庫作業系統。 The computer readable storage medium of claim 17, further comprising identifying the compatible library operating system by a manifest file. 如請求項17所述之電腦可讀儲存媒體,進一步包含識別一新版本之該主機作業系統作為該相容函式庫作業系統。 The computer readable storage medium of claim 17, further comprising the host operating system identifying a new version as the compatible library operating system. 如請求項17所述之電腦可讀儲存媒體,進一步包含識別一舊式版本之該主機作業系統作為該相容函式庫作業系統。 The computer readable storage medium of claim 17, further comprising the host operating system identifying an old version as the compatible library operating system.
TW101112828A 2011-12-08 2012-04-11 Application compatibility with library operating systems TWI549056B (en)

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 true TW201324349A (en) 2013-06-16
TWI549056B TWI549056B (en) 2016-09-11

Family

ID=49033270

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101112828A TWI549056B (en) 2011-12-08 2012-04-11 Application compatibility with library operating systems

Country Status (1)

Country Link
TW (1) TWI549056B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112214470A (en) * 2019-07-11 2021-01-12 纬创资通股份有限公司 Data acquisition device and data operation system and method

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7287259B2 (en) * 2000-04-24 2007-10-23 Microsoft Corporation Isolating assembly versions for binding to application programs
US7047337B2 (en) * 2003-04-24 2006-05-16 International Business Machines Corporation Concurrent access of shared resources utilizing tracking of request reception and completion order
US7974993B2 (en) * 2006-12-04 2011-07-05 Microsoft Corporation Application loader for support of version management
US20090248737A1 (en) * 2008-03-27 2009-10-01 Microsoft Corporation Computing environment representation

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112214470A (en) * 2019-07-11 2021-01-12 纬创资通股份有限公司 Data acquisition device and data operation system and method
CN112214470B (en) * 2019-07-11 2024-05-17 纬创资通股份有限公司 Data acquisition device and data operation system and method

Also Published As

Publication number Publication date
TWI549056B (en) 2016-09-11

Similar Documents

Publication Publication Date Title
US9891939B2 (en) Application compatibility with library operating systems
US20220398109A1 (en) Dynamically Loaded Plugin Architecture
JP5007046B2 (en) Maintaining component-based software products
US9965270B2 (en) Updating computer firmware
KR101232558B1 (en) Automated modular and secure boot firmware update
US8839228B2 (en) System and method for updating an offline virtual machine
KR102084816B1 (en) Layout and execution of software applications using bpram
EP4018319B1 (en) Data preservation using memory aperture flush order
US8387032B1 (en) Captive runtime deployment
US11669334B2 (en) Just-in-time containers
US11775475B2 (en) Deferred path resolution during container deployment
KR20150052107A (en) Layout and execution of operating systems using bpram
US20160378361A1 (en) Methods and apparatus to apply a modularized virtualization topology using virtual hard disks
US9703578B2 (en) Providing class loading for JAVA™ applications
TWI549056B (en) Application compatibility with library operating systems
CN107667343B (en) System and method for loading on-demand resources
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 (en) Method, device, and computer program product for composing modular firmware
WO2023055438A1 (en) Dynamic resource determination for system update
WO2010087834A1 (en) Loading a plurality of appliances onto a blade