国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      在應(yīng)用程序模塊不工作時(shí)自動(dòng)卸載的方法和裝置的制作方法

      文檔序號(hào):6605203閱讀:306來源:國知局
      專利名稱:在應(yīng)用程序模塊不工作時(shí)自動(dòng)卸載的方法和裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明整體涉及計(jì)算機(jī)系統(tǒng)領(lǐng)域,更具體地說是涉及在應(yīng)用程序模塊不能正常工作時(shí)對(duì)目標(biāo)應(yīng)用程序模塊的自動(dòng)卸載。
      有許多的技術(shù)使用安裝程序來安裝目標(biāo)應(yīng)用程序,這里安裝程序本身就是一個(gè)應(yīng)用程序。安裝應(yīng)用程序負(fù)責(zé)獲取目標(biāo)應(yīng)用程序中必要的組成部分,并將它放置在目標(biāo)媒介中,如果需要的話改動(dòng)操作系統(tǒng),來允許目標(biāo)應(yīng)用程序正常地執(zhí)行。這些技術(shù)包括使用可執(zhí)行程序或批處理文件。應(yīng)用程序的安裝通常是由用戶啟動(dòng)的。如果存在問題,如果不能正常地運(yùn)行就會(huì)要求用戶卸載應(yīng)用程序。
      然而,如果不經(jīng)用戶知道和許可就自動(dòng)安裝應(yīng)用程序,如果應(yīng)用程序不能正常地運(yùn)行或不能正常操作,應(yīng)用程序可能會(huì)導(dǎo)致系統(tǒng)的閉鎖。
      本發(fā)明包括一種自動(dòng)卸載在目標(biāo)媒介上的一個(gè)應(yīng)用程序模塊的方法。在一個(gè)實(shí)施例中,這種方法包括確定共享資源是否存在于目標(biāo)媒介中,如果共享資源存在,確定應(yīng)用程序模塊在目標(biāo)媒介中能否正常工作,如果應(yīng)用程序模塊不能正常工作,自動(dòng)卸載這個(gè)應(yīng)用程序模塊。
      下面介紹其他實(shí)施例及其權(quán)利要求。


      圖1是使用本發(fā)明的設(shè)備和方法的信息分布系統(tǒng)的一個(gè)實(shí)施例的系統(tǒng)方框圖;圖2顯示了實(shí)現(xiàn)本發(fā)明的實(shí)施例的示范處理器系統(tǒng)或者用戶計(jì)算機(jī)系統(tǒng);圖3顯示了本發(fā)明的一個(gè)實(shí)施例的邏輯圖;圖4A和4B顯示了依據(jù)本發(fā)明的原理提供的過程流程圖的一個(gè)實(shí)施例;圖5顯示了依據(jù)本發(fā)明的一個(gè)實(shí)施例的BIOS和非易失性存儲(chǔ)器的邏輯圖;圖6是顯示依據(jù)本發(fā)明的一個(gè)實(shí)施例由源應(yīng)用程序模塊執(zhí)行的操作的流程圖;圖7是依據(jù)本發(fā)明的一個(gè)示范實(shí)施例在目標(biāo)媒介上安裝時(shí)由目標(biāo)應(yīng)用程序模塊執(zhí)行的操作的流程圖。
      本發(fā)明包括一種在目標(biāo)應(yīng)用程序模塊不能工作或不能正常工作時(shí)自動(dòng)卸載該目標(biāo)應(yīng)用程序模塊的方法和設(shè)備。在一個(gè)實(shí)施例中,當(dāng)計(jì)算機(jī)系統(tǒng)最初啟動(dòng)時(shí),源應(yīng)用程序模塊在非易失性存儲(chǔ)器中查找共享資源,如果沒有發(fā)現(xiàn),就生成共享資源并初始化共享資源中的第一和第二標(biāo)志。在生成共享資源之前或之后,源應(yīng)用程序模塊在目標(biāo)媒介上自動(dòng)安裝目標(biāo)應(yīng)用程序模塊。目標(biāo)應(yīng)用程序模塊一旦起動(dòng),將復(fù)位第一標(biāo)志。如果目標(biāo)應(yīng)用程序模塊正常工作,則目標(biāo)應(yīng)用程序模塊復(fù)位第二標(biāo)志。確定目標(biāo)應(yīng)用程序是否正常工作的標(biāo)準(zhǔn)依賴于諸多因素并可能相應(yīng)地發(fā)生改變。
      在隨后的計(jì)算機(jī)系統(tǒng)加電自檢(POST)過程中,當(dāng)源應(yīng)用程序模塊啟動(dòng)時(shí),源應(yīng)用程序模塊再一次查找共享資源,如果存在,首先詢問第二標(biāo)志。如果第二標(biāo)志大于(或者等于)第二預(yù)定計(jì)數(shù),表示目標(biāo)應(yīng)用程序模塊對(duì)于第二預(yù)定計(jì)數(shù)已經(jīng)連續(xù)地不能正常工作,源應(yīng)用程序模塊自動(dòng)卸載或禁止目標(biāo)應(yīng)用程序模塊。源應(yīng)用程序模塊在共享資源中可選地設(shè)置第三標(biāo)志來防止目標(biāo)應(yīng)用程序模塊的重新安裝。
      如果第二標(biāo)志不大于第二預(yù)定計(jì)數(shù),源應(yīng)用程序模塊就會(huì)查詢第一標(biāo)志。如果第一標(biāo)志大于(或者等于)第一預(yù)定計(jì)數(shù),表明目標(biāo)應(yīng)用程序模塊對(duì)于第一預(yù)定計(jì)數(shù)已經(jīng)連續(xù)地不能正常啟動(dòng),源應(yīng)用程序模塊自動(dòng)重新安裝目標(biāo)應(yīng)用程序模塊。然而,如果第一標(biāo)志不大于第一預(yù)定計(jì)數(shù),則源應(yīng)用程序模塊增量第一和第二標(biāo)志并結(jié)束,表明目標(biāo)應(yīng)用程序模塊正常工作。在一個(gè)實(shí)施例中,這一進(jìn)程在隨后的POST過程中無限期地重復(fù)。
      定義此處討論的“計(jì)算機(jī)系統(tǒng)”是一個(gè)包括能夠處理數(shù)據(jù)的電路的產(chǎn)品。計(jì)算機(jī)系統(tǒng)包括但并不局限于,通用計(jì)算機(jī)系統(tǒng)(例如,服務(wù)器,膝上電腦,桌面電腦,掌上電腦,個(gè)人電子設(shè)備等)、個(gè)人電腦(PC)、硬拷貝設(shè)備(例如,打印機(jī),繪圖儀,傳真機(jī)等)、銀行設(shè)備(例如,自動(dòng)柜員機(jī))以及類似的設(shè)備。信息媒介是一個(gè)代表商品和服務(wù)生產(chǎn)者提供信息的網(wǎng)址,還向商家提供關(guān)于供應(yīng)商和其他商家提供的產(chǎn)品和/或服務(wù)等的相關(guān)信息。內(nèi)容指的是應(yīng)用程序、驅(qū)動(dòng)程序、實(shí)用程序、有效負(fù)荷等及其組合,還包括圖形、信息材料(文章、股票報(bào)價(jià)等)和類似的內(nèi)容,或者單獨(dú)或者任意組合?!坝行ж?fù)荷”是指用圖形或信息資料(例如文章、股票報(bào)價(jià)等)表示的消息,包括文件或應(yīng)用程序。在一個(gè)實(shí)施例中,將其在預(yù)定時(shí)間傳送到系統(tǒng)的海量存儲(chǔ)介質(zhì)。另外,“通信鏈路”是指通信的媒介或信道。通信鏈路包括電話線、調(diào)制解調(diào)器連接、因特網(wǎng)連接、綜合業(yè)務(wù)數(shù)字網(wǎng)(“ISDN”)連接、異步傳遞模式(ATM)連接、幀中繼連接、以太網(wǎng)連接、同軸連接、光纖連接、衛(wèi)星連接(例如數(shù)字衛(wèi)星服務(wù)等)、無線連接、射頻(RF)鏈接,電磁鏈接、雙向?qū)ず暨B接等及其組合。
      另外,操作系統(tǒng)(“OS”)的加載指的是操作系統(tǒng)引導(dǎo)裝入程序的初始布置。在一個(gè)實(shí)施例中,在OS加載過程中,一般將一個(gè)扇區(qū)的信息從硬盤加載進(jìn)系統(tǒng)存儲(chǔ)器?;蛘?,將引導(dǎo)裝入程序從網(wǎng)絡(luò)加載進(jìn)系統(tǒng)存儲(chǔ)器。OS“引導(dǎo)”是指引導(dǎo)裝入程序的執(zhí)行。這樣將OS置于系統(tǒng)的控制下。在OS引導(dǎo)期間執(zhí)行的一些動(dòng)作包括系統(tǒng)配置、設(shè)備檢測(cè)、驅(qū)動(dòng)器加載和用戶登錄。
      OS運(yùn)行時(shí)間指的是引導(dǎo)階段的完成和由OS執(zhí)行應(yīng)用程序的開始。在一個(gè)實(shí)施例中,在OS運(yùn)行時(shí)間期間,OS和用戶交互作用來執(zhí)行和/或運(yùn)行應(yīng)用程序。
      通電自檢(POST)指的是在加載OS前執(zhí)行的用以配置和檢測(cè)系統(tǒng)硬件的指令。
      下面來介紹包含本發(fā)明實(shí)施例的一個(gè)例示系統(tǒng)。
      圖1是使用本發(fā)明的設(shè)備和方法的信息分布系統(tǒng)10的一個(gè)實(shí)施例的系統(tǒng)方框圖。系統(tǒng)10涉及到信息媒介的提供。它包含對(duì)因特網(wǎng)用戶和系統(tǒng)輪廓文件的安全和私人儲(chǔ)存庫的構(gòu)造和維護(hù),這些主要是從授權(quán)服務(wù)注冊(cè)、因特網(wǎng)服務(wù)注冊(cè)、系統(tǒng)輪廓文件、用戶偏好中收集的。最初,這些信息用于向所購買的硬件和軟件產(chǎn)品的制造商以及在線或其他服務(wù)的供應(yīng)商注冊(cè)用戶。隨著時(shí)間的過去,用戶數(shù)據(jù)用于生成一個(gè)用戶輪廓文件,并通知用戶相關(guān)軟件的更新和升級(jí),以鼓勵(lì)在線購買相關(guān)產(chǎn)品,并允許一對(duì)一的定做銷售和其他服務(wù)。
      在一個(gè)實(shí)施例中,兩個(gè)軟件模塊用來實(shí)現(xiàn)本發(fā)明的各個(gè)實(shí)施例。一個(gè)軟件駐留于用戶系統(tǒng)中,用來訪問一個(gè)預(yù)定網(wǎng)址。例如,在一個(gè)實(shí)施例中,操作系統(tǒng)和基本輸入輸出系統(tǒng)(BIOS)預(yù)先安裝在一個(gè)計(jì)算機(jī)系統(tǒng)中,當(dāng)計(jì)算機(jī)系統(tǒng)隨后首次啟動(dòng)時(shí),一個(gè)出于討論的目的被稱為第一軟件模塊(在一個(gè)實(shí)施例中,第一軟件模塊是將在下文中描述的初始啟動(dòng)應(yīng)用程序(ISUA))的應(yīng)用程序?qū)⒃试S一個(gè)或多個(gè)可執(zhí)行程序在引導(dǎo)前的環(huán)境中啟動(dòng)。在一個(gè)實(shí)施例中,第一軟件模塊使一個(gè)或多個(gè)可執(zhí)行程序在OS的加載、引導(dǎo)、執(zhí)行與/或運(yùn)行之前的啟動(dòng)變得容易。在一個(gè)實(shí)施例中,用戶被鼓勵(lì)選擇使用像這樣的程序(即,第一軟件模塊的使用),在另一個(gè)實(shí)施例中,程序是自動(dòng)啟動(dòng)的。包含在第一軟件模塊中的程序能夠使工具和實(shí)用程序在適當(dāng)?shù)臅r(shí)間以正確的用戶授權(quán)運(yùn)行,還允許用戶通過PC機(jī)上的因特網(wǎng)連接下載一個(gè)包括驅(qū)動(dòng)程序、應(yīng)用程序和附加有效負(fù)荷的第二軟件模塊。如果OS不能成功地啟動(dòng),程序還可以提供系統(tǒng)的遠(yuǎn)程管理。
      一旦第二個(gè)軟件模塊被傳遞過來,它可成為駐留存儲(chǔ)器的程序,并且禁止第一軟件模塊的傳送的拷貝。仍然駐留在系統(tǒng)的非易失性存儲(chǔ)器中的第一軟件模塊的原始拷貝保持空閑,直到第二軟件模塊不能工作、遭破壞或被刪除為止,此時(shí),又傳送第一軟件模塊的原始拷貝如上所述。第二軟件模塊包括將用戶和因特網(wǎng)上的特定服務(wù)連接起來并指導(dǎo)用戶到預(yù)定網(wǎng)址上尋求授權(quán)來下載更多的預(yù)約資料的一個(gè)應(yīng)用程序。第二軟件模塊還包括和第一軟件模塊的內(nèi)容相同或相近的內(nèi)容。
      在一個(gè)實(shí)施例中,系統(tǒng)還可以包括一個(gè)存儲(chǔ)在只讀存儲(chǔ)器BIOS(ROMBIOS)中的初始有效負(fù)荷。在一個(gè)實(shí)施例中,初始有效負(fù)荷是第一軟件模塊(例如,ISUA)的一部分。在另一個(gè)實(shí)施例中,初始有效負(fù)荷作為一個(gè)模塊存儲(chǔ)在ROM BIOS中,同第一軟件模塊分開。在一個(gè)實(shí)施例中,初始有效負(fù)荷是從ROM BIOS中啟動(dòng),并在通電自檢(POST)之后,但在OS引導(dǎo)、加載和/或執(zhí)行之前顯示在屏幕上。這將在預(yù)定時(shí)間上發(fā)生,例如在系統(tǒng)被制造、裝配和檢測(cè)時(shí),或者在終端用戶首次激活系統(tǒng)時(shí)。在另一個(gè)實(shí)施例中,這個(gè)初始有效負(fù)荷在預(yù)定時(shí)間被復(fù)制到預(yù)定位置(比如系統(tǒng)的硬盤中),例如在系統(tǒng)被制造、裝配和檢測(cè)時(shí),或者當(dāng)終端用戶首次激活系統(tǒng)時(shí)。一旦被復(fù)制,有效負(fù)荷在POST之后、OS操作之前執(zhí)行,并在屏幕上顯示圖形、廣告、動(dòng)畫、聯(lián)合圖象專家組(JPEG)/運(yùn)動(dòng)圖象專家組(MPEG)格式的資料。當(dāng)附加程序和/或有效負(fù)荷(通過因特網(wǎng)或其他外部連接)被傳送時(shí),在OS引導(dǎo)前和引導(dǎo)過程中,顯示屏將被用于以消息或圖形的方式提供定制屏幕。另外,除了隨后的從網(wǎng)站上下載的程序(例如第二軟件模塊)之外,在第一軟件模塊中傳送的可執(zhí)行程序可以用來檢測(cè)PC以決定所安裝的設(shè)備、驅(qū)動(dòng)程序和應(yīng)用程序的各種類型。在一個(gè)實(shí)施例中,如同在題目為“在計(jì)算機(jī)上自動(dòng)安裝和配置軟件的方法和設(shè)備”的其內(nèi)容在此作為參考的共同未決的美國專利申請(qǐng)的序列號(hào)_中所描述的,第一軟件模塊用于為用戶識(shí)別和自動(dòng)生成快捷方式和/或書簽。從網(wǎng)站上下載的程序包括基于用戶偏好收集和維護(hù)的用戶輪廓文件的軟件。這些信息提供給信息媒體,信息媒體隨后根據(jù)信息將信息和/或所編輯數(shù)據(jù)的一部分提供給供應(yīng)商和其他商家,以便獲得供應(yīng)商和其他商家提供的信息的更新或修訂。
      參考圖1,信息分布系統(tǒng)10包括通過一條或者多條通信鏈路301-30N與一臺(tái)或多臺(tái)用戶計(jì)算機(jī)系統(tǒng)401-40N(“40”)連接起來的服務(wù)中心20。服務(wù)中心20包括一個(gè)或多個(gè)服務(wù)器22、一個(gè)或多個(gè)數(shù)據(jù)庫24以及一個(gè)或多個(gè)計(jì)算機(jī)261-26M。一個(gè)或多個(gè)計(jì)算機(jī)261-26M可以由多個(gè)用戶計(jì)算機(jī)系統(tǒng)401-40N同時(shí)訪問。如果使用了多個(gè)計(jì)算機(jī),則計(jì)算機(jī)261-26M可以通過局域網(wǎng)(LAN)或其他相似的連接技術(shù)進(jìn)行連接。然而,對(duì)于服務(wù)中心20來說,也可以有其他配置。例如,較少數(shù)目的大型計(jì)算機(jī)(比如少數(shù)的主機(jī)、小型計(jì)算機(jī)等),帶有在大型計(jì)算機(jī)上運(yùn)行的、能夠與用戶計(jì)算機(jī)建立通信鏈路的一些內(nèi)部程序和進(jìn)程。
      服務(wù)中心20也可以連接到遠(yuǎn)程網(wǎng)絡(luò)50(例如因特網(wǎng))或者遠(yuǎn)程位置(例如在附圖1中沒有顯示的衛(wèi)星)。遠(yuǎn)程網(wǎng)絡(luò)50或者遠(yuǎn)程位置允許服務(wù)中心20提供可能存儲(chǔ)在服務(wù)中心20中的更廣泛的計(jì)算機(jī)軟件、內(nèi)容等。與服務(wù)中心計(jì)算機(jī)、例如261相連接的一個(gè)或多個(gè)數(shù)據(jù)庫24用于存儲(chǔ)包括在計(jì)算機(jī)26上可用的計(jì)算機(jī)軟件的數(shù)據(jù)庫項(xiàng)。在一個(gè)實(shí)施例中,每個(gè)用戶計(jì)算機(jī)401-40N都有自己的不能被其他計(jì)算機(jī)訪問的安全數(shù)據(jù)庫(未顯示)。通信鏈路301-30N允許一個(gè)或多個(gè)用戶計(jì)算機(jī)系統(tǒng)401-40N同時(shí)和計(jì)算機(jī)261-26M連接。連接由服務(wù)器22管理。
      在一個(gè)用戶計(jì)算機(jī)系統(tǒng)40與信息服務(wù)計(jì)算機(jī)26建立雙向通信之后,將內(nèi)容以下述方式傳送到用戶計(jì)算機(jī)系統(tǒng)40。下載的內(nèi)容包括一個(gè)用來檢測(cè)用戶和/或用戶計(jì)算機(jī)系統(tǒng)的硬件和/或軟件以便開發(fā)一個(gè)用戶輪廓文件以及用戶系統(tǒng)的輪廓文件的應(yīng)用程序。從用戶和/或用戶計(jì)算機(jī)系統(tǒng)搜集的信息隨后被提供給服務(wù)中心20,服務(wù)中心20根據(jù)用戶和系統(tǒng)輪廓文件向用戶計(jì)算機(jī)40提供附加內(nèi)容。與服務(wù)計(jì)算機(jī)26相連的數(shù)據(jù)庫的數(shù)據(jù)庫項(xiàng)包括關(guān)于計(jì)算機(jī)軟件、硬件和用戶可以使用的第三方服務(wù)和產(chǎn)品的信息。在用戶和/或系統(tǒng)輪廓文件基礎(chǔ)上,內(nèi)容進(jìn)一步被傳送給用戶計(jì)算機(jī)來顯示。該內(nèi)容還包括信息摘要,例如現(xiàn)有計(jì)算機(jī)軟件的補(bǔ)丁和糾錯(cuò)的可用性、現(xiàn)有計(jì)算機(jī)軟件的新版本、全新計(jì)算機(jī)軟件、新的幫助文件等。該內(nèi)容還包括關(guān)于硬件和用戶感興趣的第三方產(chǎn)品和服務(wù)的可用性的信息。用戶能夠從可用產(chǎn)品和服務(wù)摘要中做出一個(gè)或多個(gè)選擇,要求將產(chǎn)品從服務(wù)計(jì)算機(jī)26傳送到用戶計(jì)算機(jī)。或者,用戶也可以從可用產(chǎn)品和服務(wù)摘要中購買所需的產(chǎn)品或服務(wù)。
      圖2顯示了實(shí)現(xiàn)本發(fā)明的實(shí)施例的一個(gè)例示計(jì)算機(jī)系統(tǒng)100。計(jì)算機(jī)系統(tǒng)100顯示了用戶計(jì)算機(jī)系統(tǒng)401-40N和/或計(jì)算機(jī)261-26M(圖1)的一個(gè)實(shí)施例,但也可以容易地使用其他的實(shí)施例。
      參考圖2,計(jì)算機(jī)系統(tǒng)100包括處理器或中央處理單元(CPU)104。所示的CPU 104包括一個(gè)進(jìn)行計(jì)算的算術(shù)邏輯單元(ALU)、一個(gè)用于臨時(shí)存儲(chǔ)數(shù)據(jù)和指令的寄存器集合和一個(gè)控制系統(tǒng)100的操作的控制單元。在一個(gè)實(shí)施例中,CPU 104包括IntelTM公司出售的X86、PentiumTM、PentiumⅡTM、Pentium ProTM微處理器、AMDTM出售的K-6微處理器、或者CyrixTM公司出售的6×86MX微處理器中的任意一種。更多的例子還包括Digital Equipment CorporationTM(數(shù)字設(shè)備公司)出售的AlphaTM處理器、MotorolaTM出售的680X0處理器、或者IBMTM出售的Power PCTM處理器。另外,包括Sun Microsystems、MIPS、IBM、Motorola、NEC、Cyrix、AMD、Nexgen和其他公司出售的其他處理器種類中的任何一種都能用于實(shí)現(xiàn)CPU 104。CPU 104不僅僅局限于微處理器,還可以有其他形式,如微控制器、數(shù)字信號(hào)處理器、精簡指令集計(jì)算機(jī)(RISC)、應(yīng)用專用集成電路等。盡管只顯示了一個(gè)CPU 104,計(jì)算機(jī)系統(tǒng)100也可以包括多個(gè)處理單元。
      CPU 104通過CPU總線108與總線控制器112相連。總線控制器112包括集成在其內(nèi)的存儲(chǔ)器控制器116,但存儲(chǔ)器控制器116也可以在總線控制器112外部。存儲(chǔ)器控制器116提供了CPU 104或其他設(shè)備經(jīng)存儲(chǔ)器總線120訪問系統(tǒng)存儲(chǔ)器124的接口。在一個(gè)實(shí)施例中,系統(tǒng)存儲(chǔ)器124包括同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(SDRAM)。系統(tǒng)存儲(chǔ)器124可以可選地包括附加的或者可替代的高速存儲(chǔ)設(shè)備或存儲(chǔ)電路。總線控制器112與系統(tǒng)總線128相連,系統(tǒng)總線128可以是外設(shè)部件互連(PCI)總線、工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(ISA)總線等。同系統(tǒng)總線128相連的是圖形控制器、圖形引擎或視頻控制器132、海量存儲(chǔ)設(shè)備152、通信接口設(shè)備156、一個(gè)或多個(gè)輸入/輸出(I/O)設(shè)備1681-168N、以及擴(kuò)展總線控制器172。視頻控制器132與能夠在如數(shù)字144所指示的一單個(gè)卡或設(shè)備上集成的視頻存儲(chǔ)器136(例如8兆字節(jié))和視頻BIOS 140相連。視頻存儲(chǔ)器136用于容納在顯示屏148上顯示信息的顯示數(shù)據(jù),視頻BIOS 140包括用于控制視頻控制器132的代碼和視頻服務(wù)。在另一個(gè)實(shí)施例中,視頻控制器132通過高級(jí)圖形端口(AGP)總線和CPU 104相連接。
      海量存儲(chǔ)設(shè)備152包括(但不僅僅局限于)硬盤、軟盤、CD-ROM、DVD-ROM、磁帶、高密度軟盤、高容量可拆卸媒體、低容量可拆卸媒體、固態(tài)存儲(chǔ)設(shè)備等及其組合。海量存儲(chǔ)設(shè)備152還可以包括任何其他海量存儲(chǔ)媒體。通信接口設(shè)備156包括網(wǎng)卡、調(diào)制解調(diào)器接口等,用于通過通信鏈路160訪問網(wǎng)絡(luò)164。I/O設(shè)備1681-168N包括鍵盤、鼠標(biāo)、聲卡、打印機(jī)和類似設(shè)備。I/O設(shè)備1681-168N可以是盤驅(qū)動(dòng)器、例如緊致盤驅(qū)動(dòng)器、數(shù)字盤驅(qū)動(dòng)器、磁帶驅(qū)動(dòng)器、高速驅(qū)動(dòng)器、強(qiáng)化驅(qū)動(dòng)器、數(shù)字視盤(DVD)驅(qū)動(dòng)器、固態(tài)存儲(chǔ)設(shè)備、磁光盤驅(qū)動(dòng)器、高密度軟盤驅(qū)動(dòng)器、高容量可拆卸驅(qū)動(dòng)器、低容量媒體設(shè)備和/或其任何組合。擴(kuò)展總線控制器172與包括系統(tǒng)固件176的非易失性存儲(chǔ)器175相連。系統(tǒng)固件176包括用來控制計(jì)算機(jī)系統(tǒng)100中的硬件設(shè)備及其它實(shí)體的系統(tǒng)BIOS82。系統(tǒng)固件176還包括ROM 180和閃存(或EEPROM)184。擴(kuò)展總線控制器172還與具有RAM、ROM和/或閃存(未顯示)的擴(kuò)展存儲(chǔ)器188相連接。系統(tǒng)100另外還包括與總線控制器112相連接的存儲(chǔ)器模塊190。在一個(gè)實(shí)施例中,存儲(chǔ)器模塊190包括ROM 192和閃存(或EEPROM)194。
      對(duì)于本領(lǐng)域普通技術(shù)人員來說熟悉的是,計(jì)算機(jī)系統(tǒng)100還包括一個(gè)操作系統(tǒng)(OS)和至少一個(gè)應(yīng)用程序,在一個(gè)實(shí)施例中,將OS與應(yīng)用程序從海量存儲(chǔ)器152載入系統(tǒng)存儲(chǔ)器124并在POST之后啟動(dòng)。OS包括但并不局限或限制在包括DOS、WindowsTM(例如Windows95TM,Windows98TM,Windows NTTM等)、Unix、Linux、OS/2、OS/9、Xenix等中的任何一種OS類型。操作系統(tǒng)是控制計(jì)算機(jī)系統(tǒng)的操作和資源分配的一個(gè)或多個(gè)程序的集合。應(yīng)用程序是執(zhí)行用戶所要求的任務(wù)的一個(gè)或多個(gè)軟件程序的集合。
      根據(jù)計(jì)算機(jī)編程領(lǐng)域普通技術(shù)人員的實(shí)踐,除非另外指明,在下文中參考由計(jì)算機(jī)系統(tǒng)100執(zhí)行的操作的符號(hào)表示來描述本發(fā)明。這樣的操作有時(shí)稱作是由計(jì)算機(jī)執(zhí)行的。這樣將認(rèn)識(shí)到,以符號(hào)表示的操作包括由CPU104對(duì)表示數(shù)據(jù)比特的電信號(hào)的處理和數(shù)據(jù)比特在系統(tǒng)存儲(chǔ)器124中的存儲(chǔ)單元上的維護(hù),以及其他的信號(hào)處理。維護(hù)數(shù)據(jù)比特的存儲(chǔ)單元是有與數(shù)據(jù)比特相符合的特定的電、磁、光或有機(jī)特性的物理區(qū)域。
      當(dāng)以軟件實(shí)施時(shí),本發(fā)明的元素實(shí)質(zhì)上是執(zhí)行必要任務(wù)的代碼段。程序或代碼段可以被存儲(chǔ)在處理器可讀媒體中或以包含在載波中的計(jì)算機(jī)數(shù)據(jù)信號(hào)在傳播媒體或通信鏈路上發(fā)送?!疤幚砥骺勺x媒體”包括能夠存儲(chǔ)或傳送信息的任何媒體。處理器可讀媒體的例子包括電子線路、半導(dǎo)體存儲(chǔ)設(shè)備、ROM、閃存、可擦除ROM(EROM)、軟盤、CD-ROM、光盤、硬盤、光纖媒體、射頻(RF)鏈路等。計(jì)算機(jī)數(shù)據(jù)信號(hào)包括能夠在諸如電子網(wǎng)絡(luò)信道、光纖、空中、電磁、射頻鏈路等的傳輸媒體上傳播的任何信號(hào)。代碼段可通過因特網(wǎng)、內(nèi)聯(lián)網(wǎng)等計(jì)算機(jī)網(wǎng)絡(luò)下載。
      圖3顯示了計(jì)算機(jī)系統(tǒng)100的邏輯圖。參考圖2和3,系統(tǒng)固件176包括在POST期間載入系統(tǒng)存儲(chǔ)器124并在隨后由處理器104執(zhí)行的軟件模塊和數(shù)據(jù)。在一個(gè)實(shí)施例中,系統(tǒng)固件176包括一個(gè)具有系統(tǒng)BIOS處理程序、硬件例程等的系統(tǒng)BIOS模塊82、一個(gè)ROM應(yīng)用程序接口(RAPI)模塊84、一個(gè)初始啟動(dòng)應(yīng)用程序(ISUA)模塊86、一個(gè)初始有效負(fù)荷88a、密鑰90、密碼引擎92和顯示引擎94。系統(tǒng)固件176的上述模塊和部分包含于ROM180和/或閃存184中?;蛘撸到y(tǒng)固件176的上述模塊和部分也可以包含于ROM190和/或閃存194中。RAPI84、ISUA86和初始有效負(fù)荷88a每一個(gè)都在最初使用計(jì)算機(jī)系統(tǒng)100之前單獨(dú)地開發(fā)并存儲(chǔ)在系統(tǒng)固件176中。在一個(gè)實(shí)施例中,RAPI84、ISUA86和初始有效負(fù)荷88a每一個(gè)都包括由Phoenix Technologies,Ltd開發(fā)的專有軟件。RAPI84提供了ROM應(yīng)用程序和系統(tǒng)固件176之間的安全接口。在轉(zhuǎn)讓給Phoenix Technologies,Ltd的1999年6月18日提交的、題目為“安全使用基本輸入輸出(BIOS)服務(wù)的系統(tǒng)和方法”的共同未決的美國專利申請(qǐng)的序列號(hào)_中描述了RAPI 84的一個(gè)實(shí)施例,其內(nèi)容在此作為參考。在轉(zhuǎn)讓給Phoenix Technologies,Ltd的1999年6月18日提交的題目為“在計(jì)算機(jī)上自動(dòng)安裝和配置軟件的方法和設(shè)備”的共同未決的美國專利申請(qǐng)的序列號(hào)_中描述了ISUA 86的一個(gè)實(shí)施例,其內(nèi)容在此作為參考。
      如圖3和4A和4B所示的一個(gè)實(shí)施例中,在最初對(duì)一個(gè)新的計(jì)算機(jī)系統(tǒng)100加電之后,系統(tǒng)以POST過程開始。在初始POST期間,ISUA 86被傳送到海量存儲(chǔ)設(shè)備152,如A1所示。在一個(gè)實(shí)施例中,這樣的傳送是在制造和/或裝配過程中當(dāng)系統(tǒng)100在操作系統(tǒng)安裝之后(但是在載入和運(yùn)行操作系統(tǒng)之前)首次加電時(shí)進(jìn)行的。在另一個(gè)實(shí)施例中,這樣的傳送是在制造和/或裝配過程之后在用戶收到和加電系統(tǒng)100之后進(jìn)行的。在另一個(gè)可代替實(shí)施例中,在ISUA 86傳送期間,附加程序、應(yīng)用程序、驅(qū)動(dòng)程序、數(shù)據(jù)、圖形和其他信息也可以被傳送(例如,從ROM)到海量存儲(chǔ)器152。例如,傳送包括初始有效負(fù)荷88a到海量存儲(chǔ)器152的傳送,隨后從海量存儲(chǔ)器152傳遞出初始有效負(fù)荷。在1999年6月18日提交的、轉(zhuǎn)讓給Phoenix Technologies,Ltd的題目為“一種從系統(tǒng)固件向存儲(chǔ)設(shè)備傳送應(yīng)用程序的系統(tǒng)和方法”的共同未決的美國專利申請(qǐng)的序列號(hào)_中描述了用于這種傳送的系統(tǒng)和過程的一個(gè)實(shí)施例,其內(nèi)容在此作為參考。在1999年3月19日提交的、題目為“一種提供基于存儲(chǔ)器的設(shè)備仿真的方法和設(shè)備”的共同未決的美國專利申請(qǐng)的序列號(hào)09/272,859、在1999年6月18日提交的、題目為“提供基于存儲(chǔ)器的設(shè)備仿真的方法和設(shè)備”的共同未決的美國專利部分繼續(xù)申請(qǐng)的序列號(hào)、以及1999年6月18日提交的、題目為“在海量存儲(chǔ)器中插入一個(gè)或者多個(gè)文件的系統(tǒng)和方法”的共同未決的美國專利申請(qǐng)的序列號(hào)_中描述了用于這種傳送的系統(tǒng)和過程的其它實(shí)施例,每一個(gè)申請(qǐng)都轉(zhuǎn)讓給本發(fā)明的受讓人Phoenix Technologies,Ltd,其內(nèi)容在此作為參考。
      在一個(gè)實(shí)施例中,ISUA 86是一個(gè)確定是否有駐留在終端用戶系統(tǒng)中的預(yù)安裝程序的計(jì)算機(jī)軟件可執(zhí)行程序。如果是,它將識(shí)別那些預(yù)安裝的程序,并(在Windows操作系統(tǒng)的情況下,在桌面上)生成快捷方式或書簽,來允許用戶自動(dòng)啟動(dòng)程序。在這個(gè)實(shí)施例中,如下所述可執(zhí)行程序也能夠啟動(dòng)和建立與服務(wù)器22和/或任何一個(gè)服務(wù)計(jì)算機(jī)26(圖1)上的一個(gè)或者多個(gè)應(yīng)用程序的雙向通信。此外,在一個(gè)實(shí)施例中,初始有效負(fù)荷88a中的圖形內(nèi)容在POST期間通過顯示引擎94顯示在用戶的顯示器上?;蛘?,初始有效負(fù)荷88a中的圖形內(nèi)容可以在隨后的引導(dǎo)過程之后顯示。例如,作為下述的用戶輪廓文件的一部分,用戶會(huì)被詢問他或她是否想獲得關(guān)于一種或多種產(chǎn)品和/或服務(wù)的附加信息。如果用戶這樣要求,所需產(chǎn)品和或服務(wù)的相關(guān)內(nèi)容在隨后的引導(dǎo)過程期間被顯示。
      一旦POST完成,OS被加載、執(zhí)行和初始化。然后標(biāo)準(zhǔn)的OS驅(qū)動(dòng)程序和服務(wù)程序被加載。然后提示用戶輸入包括諸如年齡、性別、愛好等人口統(tǒng)計(jì)信息的注冊(cè)信息。另外,執(zhí)行ISUA 86,在后臺(tái)運(yùn)行,保持空閑狀態(tài)直到它檢測(cè)到通過圖2的網(wǎng)絡(luò)164(例如,因特網(wǎng))在計(jì)算機(jī)系統(tǒng)100與遠(yuǎn)程服務(wù)器(例如圖1中的服務(wù)器22)之間建立的通信鏈路。在一個(gè)實(shí)施例中,ISUA 86可以通過操作系統(tǒng)查找,以確定是否有已經(jīng)加載和已經(jīng)安裝在系統(tǒng)上的應(yīng)用程序。如果有,一旦通信鏈路建立,ISUA86能自動(dòng)為應(yīng)用程序提供快捷方式和/或書簽來發(fā)送進(jìn)一個(gè)預(yù)定的服務(wù)器。這個(gè)通信鏈路可以通過套接字以一個(gè)網(wǎng)絡(luò)協(xié)議堆棧(比如TCP/IP)或任何其他的本領(lǐng)域已知雙向通信技術(shù)來建立。一旦建立了通信鏈路30,ISUA 86向服務(wù)器22(如A2所示)發(fā)出一個(gè)請(qǐng)求信號(hào),以便從一個(gè)內(nèi)容模塊60下載一個(gè)初始內(nèi)容程序包62。響應(yīng)這個(gè)請(qǐng)求,服務(wù)器下載這個(gè)初始內(nèi)容程序包62(如A3所示),在一個(gè)實(shí)施例中,該初始內(nèi)容程序包62被存儲(chǔ)在海量存儲(chǔ)器152中。在一個(gè)實(shí)施例中,初始內(nèi)容62和后續(xù)內(nèi)容64可以單獨(dú)開發(fā),在服務(wù)器22上存儲(chǔ)初始內(nèi)容62和后續(xù)內(nèi)容64之前,將每個(gè)內(nèi)容都用密鑰進(jìn)行加密和/或數(shù)字簽名。當(dāng)初始內(nèi)容62和或/后續(xù)內(nèi)容64隨后被下載進(jìn)系統(tǒng)100中時(shí),密碼引擎92將使用密鑰90對(duì)初始內(nèi)容62和/或后續(xù)內(nèi)容64進(jìn)行解密。
      如上所述,初始內(nèi)容程序包62包括應(yīng)用程序62a、驅(qū)動(dòng)程序62b和有效負(fù)荷62c。在一個(gè)實(shí)施例中,應(yīng)用程序62a包括一個(gè)數(shù)據(jù)加載應(yīng)用程序和一個(gè)輪廓文件管理器應(yīng)用程序。數(shù)據(jù)加載應(yīng)用程序以與ISUA 86相同或相似的方式工作,一旦下載,則禁止并替代ISUA 86。更具體地,數(shù)據(jù)加載應(yīng)用程序是一個(gè)也能夠啟動(dòng)、建立和結(jié)束服務(wù)器22和計(jì)算機(jī)系統(tǒng)100之間的雙向通信的計(jì)算機(jī)軟件程序。數(shù)據(jù)加載應(yīng)用程序還提供服務(wù)器22和計(jì)算機(jī)系統(tǒng)100之間的通信控制管理、以及促進(jìn)終端用戶系統(tǒng)和指定服務(wù)器之間的通信和下載到終端用戶系統(tǒng)的內(nèi)容等其他功能。
      輪廓文件管理器根據(jù)用戶偏好、系統(tǒng)硬件和在計(jì)算機(jī)系統(tǒng)100上安裝的軟件獲得計(jì)算機(jī)系統(tǒng)100的用戶和系統(tǒng)的輪廓文件。在獲得計(jì)算機(jī)系統(tǒng)100的用戶和系統(tǒng)輪廓文件基礎(chǔ)上,輪廓文件管理器應(yīng)用程序?qū)⒔Y(jié)果傳送給數(shù)據(jù)加載應(yīng)用程序,數(shù)據(jù)加載應(yīng)用程序隨后將這些信息提供給服務(wù)器22,服務(wù)器22將用戶告訴的偏好與數(shù)據(jù)庫24(圖1)進(jìn)行匹配。結(jié)果可以在預(yù)定的時(shí)間間隔或根據(jù)用戶要求被傳送。然后,服務(wù)器22處理用戶輪廓文件或人口統(tǒng)計(jì)學(xué)數(shù)據(jù),并將內(nèi)容對(duì)準(zhǔn)有相似輪廓文件的用戶。另外,多個(gè)用戶的用戶輪廓文件數(shù)據(jù)在服務(wù)器22中被編譯和集合來生成一個(gè)總體用戶輪廓文件模型。然后將內(nèi)容傳送到以用戶輪廓文件數(shù)據(jù)和/或總體用戶輪廓文件模塊為基礎(chǔ)的用戶的計(jì)算機(jī)系統(tǒng)上(如A4所示)。后續(xù)內(nèi)容64被下載并存儲(chǔ)在系統(tǒng)固件176中,由數(shù)字88b所示。在一個(gè)實(shí)施例中,后續(xù)內(nèi)容64被保存在非易失性存儲(chǔ)器、例如閃存或EEPROM中,如同本領(lǐng)域普通技術(shù)人員所熟知的,后續(xù)內(nèi)容的加載是通過重新擦寫ROM完成的。后續(xù)內(nèi)容64也可以作為一個(gè)或多個(gè)文件存儲(chǔ)在海量存儲(chǔ)器152中或被用于修正WindowsTM系統(tǒng)文件(在WindowsTM環(huán)境下)。輪廓文件收集過程在計(jì)算機(jī)系統(tǒng)100活動(dòng)期間一直繼續(xù)。在一個(gè)實(shí)施例中,內(nèi)容可以在服務(wù)器22接收并分析了用戶的輪廓文件之后才下載。
      當(dāng)計(jì)算機(jī)系統(tǒng)100隨后被加電時(shí)(見圖4B),系統(tǒng)再次執(zhí)行POST。然后,在加載和/或執(zhí)行操作系統(tǒng)之前,顯示先前下載和保存在系統(tǒng)固件176中且有關(guān)版權(quán)問題已經(jīng)解決的內(nèi)容。在WindowsTM環(huán)境中,在初始加載操作系統(tǒng)期間顯示的WindowsTM徽標(biāo)隨后被一個(gè)或多個(gè)顯示保存在系統(tǒng)固件176中的以前下載的內(nèi)容的屏幕所代替。
      在與再閃爍ROM不同將內(nèi)容作為一個(gè)或者多個(gè)文件存儲(chǔ)在海量存儲(chǔ)器152中的情況下,在引導(dǎo)或關(guān)閉時(shí)顯示的WindowsTM徽標(biāo)可以被改變或替換。利用這種方法的一個(gè)實(shí)施例包括用一個(gè)或多個(gè)顯示內(nèi)容的文件(例如,圖形文件)替換相應(yīng)的WindowsTM系統(tǒng)文件,如同在1999年6月18日提交的、題目為“在引導(dǎo)或關(guān)閉過程中顯示圖象”、轉(zhuǎn)讓給PhoenixTechnologies,Ltd的共同未決的美國專利申請(qǐng)的序列號(hào)_中所描述的,其內(nèi)容在此作為參考。將引導(dǎo)Windows顯示文件取名為LOGO.SYS,通常位于Windows目錄中。首先將WindowsTMLOGO.SYS文件從Windows目錄傳送到其他目錄。然后,將內(nèi)容圖形文件重命名為LOGO.SYS并傳送到Windows目錄下。當(dāng)操作系統(tǒng)初次被運(yùn)行時(shí),操作系統(tǒng)將恢復(fù)這個(gè)文件,因此,內(nèi)容在顯示器上顯示。WindowsTM期望LOGO.SYS文件是圖形分辨率為320×400和256色的一個(gè)位圖文件,盡管WindowsTM后來為了顯示的目的將圖象分辨率擴(kuò)展到640×400。因此,內(nèi)容圖形文件要成為同樣的圖形格式(在重命名為LOGO.SYS之前通常以“.BMP”為擴(kuò)展名進(jìn)行命名)。
      操作系統(tǒng)然后被加載、執(zhí)行和初始化。標(biāo)準(zhǔn)操作系統(tǒng)驅(qū)動(dòng)程序和應(yīng)用程序也被加載。輪廓文件管理器被執(zhí)行。當(dāng)已經(jīng)建立與預(yù)定網(wǎng)站的鏈接時(shí),附加的內(nèi)容會(huì)被下載和隨后被顯示。這樣的附加內(nèi)容既可以任意地被提供,也可以根據(jù)從用戶或用戶系統(tǒng)的調(diào)查中獲得的信息被提供。在一個(gè)實(shí)施例中,一旦引導(dǎo)過程完成,顯示屏的一部分將被用來提供用于訪問關(guān)于以前顯示過的消息或廣告的詳細(xì)信息的圖標(biāo)和快捷方式。在更進(jìn)一步的實(shí)施例中,消息或廣告在關(guān)閉過程期間可以再次被顯示,例如,用其他的選擇內(nèi)容來替換屏幕顯示的“Windows正在關(guān)機(jī)”或“現(xiàn)在可以安全關(guān)閉你的計(jì)算機(jī)”等消息。
      圖5顯示了依據(jù)本發(fā)明的一個(gè)實(shí)施例的BIOS 205和非易失性存儲(chǔ)器220的邏輯圖。參考圖5,邏輯圖顯示了可以實(shí)施為一個(gè)單獨(dú)設(shè)備或多個(gè)設(shè)備的BIOS 205。BIOS 205包括一個(gè)源應(yīng)用程序模塊210和一個(gè)目標(biāo)應(yīng)用程序模塊215及其它模塊。在一個(gè)實(shí)施例中,源和目標(biāo)模塊210和215在生成BIOS 205的過程中被安裝。至少一部分BIOS 205有電可改變的非易失性存儲(chǔ)器,例如EEPROM或閃存。這樣,在另一個(gè)實(shí)施例中,目標(biāo)模塊215在BIOS 205生成和安裝之后被編程進(jìn)BIOS 205。在一個(gè)實(shí)施例中,目標(biāo)應(yīng)用程序模塊215是圖3中所示的ISAU 86。在一個(gè)可替代的的實(shí)施例中,目標(biāo)應(yīng)用程序模塊215也是替換ISAU 86之后的數(shù)據(jù)載入應(yīng)用程序。源應(yīng)用程序模塊210在BIOS POST期間的一些時(shí)刻被執(zhí)行。在一個(gè)實(shí)施例中,源應(yīng)用程序模塊210位于系統(tǒng)BIOS 82中(圖3)。
      圖5還顯示了可以采取許多形式的非易失性存儲(chǔ)器220。在一個(gè)實(shí)施例中,非易失性存儲(chǔ)器220包括一海量存儲(chǔ)器(例如硬盤)、光學(xué)設(shè)備等或其組合(例如,圖2中的海量存儲(chǔ)器152),但并不僅僅局限或限定于這些。必須注意的是,源和目標(biāo)應(yīng)用程序模塊210和215可以存儲(chǔ)在非易失性存儲(chǔ)器220中而不是在BIOS 205中。
      參考圖2和5,當(dāng)計(jì)算機(jī)系統(tǒng)100最初被接通時(shí),源應(yīng)用程序模塊210確定當(dāng)前是否有操作系統(tǒng),如箭頭240所示。換句話說,源模塊210查看是否全部條件都滿足,以便安裝目標(biāo)應(yīng)用程序215。在一個(gè)實(shí)施例中,源應(yīng)用程序模塊通過檢測(cè)(ⅰ)目標(biāo)媒介(例如硬盤)上的分區(qū)、(ⅱ)目標(biāo)媒介上的知道的文件系統(tǒng)結(jié)構(gòu)(例如FAT表)、(ⅲ)文件系統(tǒng)結(jié)構(gòu)中的目標(biāo)操作系統(tǒng)和/或(ⅳ)在目標(biāo)應(yīng)用程序中使用的必要文件的存在來確定操作系統(tǒng)的存在。
      一旦確定操作系統(tǒng)已經(jīng)存在,源應(yīng)用程序模塊210查看在目標(biāo)媒介(例如,海量存儲(chǔ)器220)的預(yù)定位置是否有共享資源230存在。如果共享資源230不存在,源應(yīng)用程序模塊210生成共享資源230,如箭頭250所示,并將目標(biāo)應(yīng)用程序模塊215安裝(箭頭245)在目標(biāo)媒介(例如,海量存儲(chǔ)器220)上,如數(shù)字225所示。共享資源230可以是在具有被源應(yīng)用程序模塊210和目標(biāo)應(yīng)用程序模塊225兩者都共享的標(biāo)志或變量的非易失性存儲(chǔ)器220中的文件或存儲(chǔ)單元。或者,共享資源230可以位于BOIS 205(例如EEPROM,閃存等)的電可改變部分上。應(yīng)該理解,共享資源230可以在目標(biāo)應(yīng)用程序225安裝前、安裝時(shí)或安裝后生成。
      一旦安裝到目標(biāo)媒介上,目標(biāo)應(yīng)用程序模塊225就變成在計(jì)算機(jī)系統(tǒng)100上運(yùn)行的可執(zhí)行程序。在一個(gè)實(shí)施例中,每次計(jì)算機(jī)系統(tǒng)100被啟動(dòng)和操作系統(tǒng)被加載,目標(biāo)應(yīng)用程序模塊225都會(huì)在后臺(tái)執(zhí)行。在這個(gè)實(shí)施例中,目標(biāo)應(yīng)用程序模塊225可以是ISUA 86(附圖3)?;蛘撸繕?biāo)應(yīng)用程序模塊225也可以是由ISUA 86下載到計(jì)算機(jī)系統(tǒng)100上并替代ISUA 86的數(shù)據(jù)加載應(yīng)用程序。如上所述,ISUA 86在后臺(tái)運(yùn)行,并保持空閑,直到檢測(cè)到一個(gè)因特網(wǎng)連接(或其他網(wǎng)絡(luò)連接)。因此,ISUA 86定期地輪詢(例如,每15秒一次)以查看是否存在因特網(wǎng)連接。
      在一個(gè)實(shí)施例中,確定目標(biāo)應(yīng)用程序模塊225是否正常工作的標(biāo)準(zhǔn)包括(ⅰ)輪詢以查看是否有因特網(wǎng)連接X次(例如5次),(ⅱ)檢測(cè)有因特網(wǎng)連接,和/或(ⅲ)成功地下載數(shù)據(jù)加載應(yīng)用程序。如果目標(biāo)應(yīng)用程序模塊225是或變成數(shù)據(jù)加載應(yīng)用程序,則用于確定目標(biāo)應(yīng)用程序模塊225是否起作用的標(biāo)準(zhǔn)可能不同。數(shù)據(jù)加載應(yīng)用程序的功能包括從遠(yuǎn)程計(jì)算機(jī)(例如,網(wǎng)站)下載內(nèi)容,但并不僅僅局限和限定于此。必須注意到,目標(biāo)應(yīng)用程序模塊225可以執(zhí)行任何其他功能,因此確定目標(biāo)應(yīng)用程序模塊225是否正常工作的標(biāo)準(zhǔn)也是不同的。然而,本發(fā)明的實(shí)施例提供了一個(gè)機(jī)構(gòu),該機(jī)構(gòu)自動(dòng)安裝目標(biāo)應(yīng)用程序模塊,在目標(biāo)應(yīng)用程序模塊不能正常工作時(shí)自動(dòng)卸載,以及/或在特定情況下自動(dòng)重新安裝目標(biāo)應(yīng)用程序模塊,而不用管目標(biāo)應(yīng)用程序模塊225是什么或目標(biāo)應(yīng)用程序模塊被認(rèn)為正常工作的條件如何。
      如果目標(biāo)應(yīng)用程序模塊225不能執(zhí)行,則在共享資源中生成的第一標(biāo)志不復(fù)位,使得源應(yīng)用程序模塊在下一次被執(zhí)行時(shí)檢測(cè)到目標(biāo)應(yīng)用程序模塊執(zhí)行或正常運(yùn)行的失敗。不能執(zhí)行可能是由于很多因素,包括傳送目標(biāo)應(yīng)用程序模塊中的故障、目標(biāo)媒介中的故障或服務(wù)于目標(biāo)應(yīng)用程序模塊的操作系統(tǒng)的功能故障等。如果目標(biāo)應(yīng)用程序模塊不能連續(xù)執(zhí)行第一預(yù)定次數(shù),則源應(yīng)用程序模塊執(zhí)行目標(biāo)應(yīng)用程序模塊在目標(biāo)媒介上的自動(dòng)重新安裝?;蛘撸磻?yīng)用程序模塊執(zhí)行目標(biāo)應(yīng)用程序模塊在另一媒介上的自動(dòng)安裝。
      如果目標(biāo)應(yīng)用程序模塊可以執(zhí)行但不能正常工作,則在共享資源中生成的第二個(gè)標(biāo)志不被復(fù)位,允許源應(yīng)用程序模塊在下一次被執(zhí)行時(shí)檢測(cè)到目標(biāo)應(yīng)用程序模塊正常工作的失敗。如果目標(biāo)應(yīng)用程序模塊不能連續(xù)地正常工作第二預(yù)定次數(shù),則源應(yīng)用程序模塊執(zhí)行目標(biāo)應(yīng)用程序模塊從目標(biāo)媒介的自動(dòng)卸載。在成功卸載之后,源應(yīng)用程序模塊可選地建立另一個(gè)標(biāo)志來確保不會(huì)作出對(duì)自動(dòng)安裝目標(biāo)應(yīng)用程序模塊的進(jìn)一步的嘗試?;蛘?,允許用戶復(fù)位這個(gè)標(biāo)志或在預(yù)定時(shí)段過去之后復(fù)位這個(gè)標(biāo)志,來允許源應(yīng)用程序模塊再嘗試重新安裝目標(biāo)應(yīng)用程序模塊。
      一旦目標(biāo)應(yīng)用程序模塊225滿足了標(biāo)準(zhǔn),則復(fù)位第一和第二標(biāo)志,以便在下一次執(zhí)行時(shí)向源應(yīng)用程序模塊210表明目標(biāo)應(yīng)用程序模塊225執(zhí)行并正常工作。
      源應(yīng)用程序模塊210也監(jiān)視共享資源和/或目標(biāo)應(yīng)用程序模塊225在無差錯(cuò)條件下的狀態(tài)以考慮重新安裝。例如,在硬盤上安裝目標(biāo)應(yīng)用程序模塊225之后,如果硬盤被拆除或被擦除,或安裝了一個(gè)新的操作系統(tǒng)或系統(tǒng)文件而改變了目標(biāo)應(yīng)用程序模塊225和/或共享資源230的特性,則源應(yīng)用程序模塊210檢測(cè)到目標(biāo)應(yīng)用程序模塊225和/或共享資源230不存在并重新安裝它們。
      圖6是顯示依據(jù)本發(fā)明的一個(gè)實(shí)施例由源應(yīng)用程序模塊300執(zhí)行的操作的流程圖。源應(yīng)用程序模塊300在BIOS POST期間的某點(diǎn)上啟動(dòng)的。參考圖6,源應(yīng)用程序模塊300在框302處開始,在那里,源應(yīng)用程序模塊300在目標(biāo)媒介(例如,諸如海量存儲(chǔ)器或閃存等的非易失性存儲(chǔ)器)上的預(yù)定位置查找共享資源。在框304,如果共享資源文件不存在,源應(yīng)用程序模塊300在目標(biāo)媒介的預(yù)定位置生成并存儲(chǔ)共享資源(框306)。源應(yīng)用程序模塊300然后在共享資源文件中生成和初始化幾個(gè)標(biāo)志。特別地,將SOURCE_APP_DISABLE設(shè)為0,將START_FAIL和EXIT_FAIL都設(shè)為1。然后,在框308,將目標(biāo)應(yīng)用程序模塊安裝在目標(biāo)媒介上。在一個(gè)實(shí)施例中,安裝和/或重新安裝目標(biāo)應(yīng)用程序模型的步驟包括(ⅰ)確定分區(qū)表是否存在,(ⅱ)找到有效分區(qū)并判斷是否支持其類型,(ⅲ)詢問文件分配表和目錄結(jié)構(gòu),以確定是否存在成功安裝的操作系統(tǒng),(ⅳ)詢問操作系統(tǒng)的初始化文件等。在確定了操作系統(tǒng)已經(jīng)安裝之后,源應(yīng)用程序模塊處理文件系統(tǒng)結(jié)構(gòu),以便在目標(biāo)子目錄中生成附加文件項(xiàng)。在生成文件項(xiàng)之后,源應(yīng)用程序模塊把目標(biāo)應(yīng)用程序和相關(guān)文件解壓縮并拷貝到目標(biāo)子目錄中去。一旦安裝了目標(biāo)應(yīng)用程序模塊,源應(yīng)用程序模塊300結(jié)束(框324)。注意,在目標(biāo)媒介被拆除或被擦除的情況下,或者在共享資源文件被擦除的情況下,在源應(yīng)用程序模塊300的初始執(zhí)行過程中執(zhí)行框306和308。
      另一方面,在框304,如果共享資源文件存在,表明目標(biāo)應(yīng)用程序模塊已經(jīng)安裝,在框310,源應(yīng)用程序模塊300詢問SOURCE_APP_DISABLE。如果SOURCE_APP_DISABLE等于1,則源應(yīng)用程序模塊300結(jié)束。如果SOURCE_APP_DISABLE不等于1,則源應(yīng)用程序模塊300在框312上詢問EXIT_FAIL。如果EXIT_FAIL大于N,其中N是一個(gè)正整數(shù)(例如6),表明目標(biāo)應(yīng)用程序模塊不能正常工作連續(xù)N次,源應(yīng)用程序模塊300自動(dòng)卸載或禁止目標(biāo)應(yīng)用程序模塊(框314),將SOURCE_APP_DISABLE修改為1(框316),然后結(jié)束。然而,在一個(gè)實(shí)施例中,為了防止過早地卸載目標(biāo)應(yīng)用程序模塊,N被設(shè)置為2或更大的數(shù)。按照可能的失敗原因,在所有情況下卸載目標(biāo)應(yīng)用程序模塊可能是苛刻和不靈活的。例如,盡管目標(biāo)應(yīng)用程序能被正確地操作,可能的差錯(cuò)條件或失敗原因可能是由于用戶不正確地關(guān)閉計(jì)算機(jī)。
      如果EXIT_FAIL不大于N,則源應(yīng)用程序模塊300詢問START_FAIL(框318)。如果START_FAIL大于M,其中M是一個(gè)正整數(shù)(例如4),表明目標(biāo)應(yīng)用程序模塊不能正常啟動(dòng)連續(xù)M次,則源應(yīng)用程序模塊300自動(dòng)重新安裝目標(biāo)應(yīng)用程序模塊(框320)并結(jié)束。如果目標(biāo)應(yīng)用程序模塊被擦除、破壞、與操作系統(tǒng)文件不相容等,它都不能正常地啟動(dòng)。如果START_FAIL不大于M,源應(yīng)用程序模塊300增量位于共享資源中的EXIT_FAIL和START_FAIL的值(框322)。
      附圖7是顯示依據(jù)本發(fā)明的示范實(shí)施例當(dāng)安裝在目標(biāo)媒介上時(shí)由目標(biāo)應(yīng)用程序模塊400執(zhí)行的操作的流程圖。參考圖7,目標(biāo)應(yīng)用程序模塊400開始于框402,在那里執(zhí)行初始化,例如初始化參數(shù)、證實(shí)操作系統(tǒng)文件存在、證實(shí)目標(biāo)應(yīng)用程序模塊文件存在等。如果框402成功執(zhí)行,則在框404將START_FAIL復(fù)位為0,表明目標(biāo)應(yīng)用程序模塊400能夠執(zhí)行。在框406,確定目標(biāo)應(yīng)用程序模塊400是否正常工作。確定目標(biāo)應(yīng)用程序模塊400是否正常工作的標(biāo)準(zhǔn)隨應(yīng)用程序而變化,然而,上面依據(jù)一個(gè)實(shí)施例提供了例示性標(biāo)準(zhǔn)。如果目標(biāo)應(yīng)用程序模塊400能正常地工作,則將EXIT_FAIL復(fù)位為0(框408),目標(biāo)應(yīng)用程序模塊400在框410結(jié)束。如果目標(biāo)應(yīng)用程序模塊400不能正常工作,則在框410結(jié)束而不復(fù)位EXIT_FAIL為0。
      本發(fā)明提供了一個(gè)源應(yīng)用程序模塊,該源應(yīng)用程序模塊監(jiān)視目標(biāo)應(yīng)用程序模塊的功能,并在出故障的情況下自動(dòng)卸載該目標(biāo)應(yīng)用程序模塊。這樣提供了很多優(yōu)點(diǎn),包括對(duì)由很多非確定性情況導(dǎo)致的失敗的檢測(cè)、在不需要用戶知道或干涉的情況下目標(biāo)應(yīng)用程序模塊的自動(dòng)卸載、非確定性情況的自檢來防止自動(dòng)安裝、以及不使用操作系統(tǒng)的情況下目標(biāo)應(yīng)用程序模塊的卸載。
      雖然在附圖中描述和顯示了特定的例示性實(shí)施例,但應(yīng)該明白,這樣的實(shí)施例僅僅是說明性的,而不限定該廣闊的發(fā)明,本發(fā)明不僅僅局限于顯示和描述的特定結(jié)構(gòu)和布置,對(duì)于本領(lǐng)域普通技術(shù)人員來說,可以進(jìn)行其他各種修改。
      權(quán)利要求
      1.一種自動(dòng)卸載目標(biāo)媒介上的應(yīng)用程序模塊的方法,包括確定共享資源是否存在于目標(biāo)媒介上;以及如果共享資源存在,確定應(yīng)用程序模塊是否在目標(biāo)媒介上正常工作,如果應(yīng)用程序模塊不能正常工作,自動(dòng)卸載這個(gè)應(yīng)用程序模塊。
      2.根據(jù)權(quán)利要求1所述的方法,其特征在于,如果共享資源不存在,生成共享資源;以及在目標(biāo)媒介上自動(dòng)安裝應(yīng)用程序模塊。
      3.根據(jù)權(quán)利要求1所述的方法,其特征在于,確定應(yīng)用程序模塊是否在目標(biāo)媒介上正常工作包括詢問位于共享資源中的標(biāo)志。
      4.根據(jù)權(quán)利要求1所述的方法,其特征在于,自動(dòng)卸載應(yīng)用程序模塊包括如果應(yīng)用程序模塊在預(yù)定數(shù)目次數(shù)內(nèi)不能正常工作就自動(dòng)卸載這個(gè)應(yīng)用程序模塊。
      5.根據(jù)權(quán)利要求1所述的方法,其特征在于,如果共享資源存在,所述方法還包括確定應(yīng)用程序模塊是否在目標(biāo)媒介上執(zhí)行,如果應(yīng)用程序模塊不能在目標(biāo)媒介上執(zhí)行,自動(dòng)重新安裝應(yīng)用程序模塊。
      6.根據(jù)權(quán)利要求1所述的方法,其特征在于,目標(biāo)媒介包括海量存儲(chǔ)器。
      7.根據(jù)權(quán)利要求1所述的方法,其特征在于,共享資源產(chǎn)生在下列中的一個(gè)上閃存和海量存儲(chǔ)器。
      8.一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)可用媒介,在其中包含有計(jì)算機(jī)程序代碼,用來確定共享資源是否存在于目標(biāo)媒介上;以及計(jì)算機(jī)可讀程序代碼,用來確定應(yīng)用程序模塊是否在目標(biāo)媒介上正常工作,以及,如果存在共享資源且應(yīng)用程序模塊不能正常地工作時(shí),用來自動(dòng)卸載應(yīng)用程序模塊。
      9.根據(jù)權(quán)利要求7所述的計(jì)算機(jī)程序產(chǎn)品,還包括如果共享資源不存在時(shí)生成共享資源并在目標(biāo)媒介上自動(dòng)安裝應(yīng)用程序模塊的計(jì)算機(jī)可讀程序代碼。
      10.根據(jù)權(quán)利要求8所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,確定應(yīng)用程序模塊是否正常工作的計(jì)算機(jī)可讀程序代碼包括用于詢問位于共享資源中的標(biāo)志的計(jì)算機(jī)可讀程序代碼。
      11.根據(jù)權(quán)利要求8所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,自動(dòng)卸載應(yīng)用程序模塊的計(jì)算機(jī)可讀程序代碼包括如果應(yīng)用程序模塊在預(yù)定數(shù)目次數(shù)內(nèi)不能正常工作時(shí)自動(dòng)卸載這個(gè)應(yīng)用程序模塊的計(jì)算機(jī)可讀程序代碼。
      12.根據(jù)權(quán)利要求8所述的計(jì)算機(jī)程序產(chǎn)品,還包括確定應(yīng)用程序模塊是否在目標(biāo)媒介上執(zhí)行并且如果應(yīng)用程序模塊不能在目標(biāo)媒介上執(zhí)行時(shí)自動(dòng)重新安裝應(yīng)用程序模塊的計(jì)算機(jī)可讀程序代碼。
      13.根據(jù)權(quán)利要求8所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,目標(biāo)媒介包括海量存儲(chǔ)器。
      14.根據(jù)權(quán)利要求8所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,共享資源被生成在下列中的一個(gè)上閃存和海量存儲(chǔ)器。
      15.一種計(jì)算機(jī)系統(tǒng),包括具有一個(gè)或多個(gè)指令的存儲(chǔ)元件;與存儲(chǔ)元件相連的處理器,所述處理器響應(yīng)一個(gè)或多個(gè)指令,以便確定共享資源在第一媒介上是否存在,如果共享資源不存在,在第二媒介上安裝一個(gè)目標(biāo)應(yīng)用程序;否則,確定在第一媒介上的最近一次操作中目標(biāo)應(yīng)用程序是否正常工作,如果目標(biāo)應(yīng)用程序不能正常工作,自動(dòng)卸載目標(biāo)應(yīng)用程序。
      16.根據(jù)權(quán)利要求15所述的計(jì)算機(jī)系統(tǒng),其特征在于,存儲(chǔ)元件是下列中的一種只讀存儲(chǔ)器和隨機(jī)存取存儲(chǔ)器。
      17.根據(jù)權(quán)利要求15所述的計(jì)算機(jī)系統(tǒng),其特征在于,第一媒介是硬盤。
      18.根據(jù)權(quán)利要求15所述的計(jì)算機(jī)系統(tǒng),其特征在于,第二媒介是閃存。
      19.根據(jù)權(quán)利要求15所述的計(jì)算機(jī)系統(tǒng),其特征在于,如果目標(biāo)應(yīng)用程序連續(xù)N次不能正常工作,處理器響應(yīng)一個(gè)或多個(gè)指令進(jìn)一步自動(dòng)卸載目標(biāo)應(yīng)用程序,其中N是一個(gè)大于1的正整數(shù)。
      全文摘要
      這里描述了一種自動(dòng)安裝應(yīng)用程序模塊并且如果目標(biāo)應(yīng)用程序模塊不能執(zhí)行或正常工作時(shí)卸載目標(biāo)應(yīng)用程序模塊的方法和設(shè)備。在一個(gè)實(shí)施例中,這種方法包括確定共享資源是否存在于目標(biāo)媒介中,如果共享資源存在,確定應(yīng)用程序模塊是否能在目標(biāo)媒介上正常工作,如果應(yīng)用程序模塊不能正常工作,自動(dòng)卸載這個(gè)應(yīng)用程序模塊。
      文檔編號(hào)G06F9/455GK1282915SQ0012701
      公開日2001年2月7日 申請(qǐng)日期2000年6月18日 優(yōu)先權(quán)日1999年6月18日
      發(fā)明者G·E·于斯塔德 申請(qǐng)人:鳳凰技術(shù)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1