專利名稱::帶有診斷功能的自含式網(wǎng)絡(luò)瀏覽器的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種網(wǎng)絡(luò)瀏覽器軟件,尤其是涉及一種帶診斷功能的自含式網(wǎng)絡(luò)瀏覽器。
背景技術(shù):
:網(wǎng)絡(luò)瀏覽器(或?yàn)g覽器軟件)是由個(gè)人計(jì)算機(jī)執(zhí)行用以向網(wǎng)絡(luò)發(fā)送和接收來(lái)自網(wǎng)絡(luò)的數(shù)據(jù)的軟件。通常,該網(wǎng)絡(luò)是廣域網(wǎng),例如因特網(wǎng),或者它也可以是局域網(wǎng),例如內(nèi)聯(lián)網(wǎng)。一旦該瀏覽器軟件被連接到該網(wǎng)絡(luò),瀏覽器軟件就能請(qǐng)求信息,例如從網(wǎng)絡(luò)上的其它計(jì)算機(jī)或“服務(wù)器”獲得超文本鏈接標(biāo)示語(yǔ)言(HTML)文件。大部分瀏覽器軟件的特征,例如來(lái)自加州MountainView的網(wǎng)景公司(NetscapeCorporation)的NetscapeNavigator(TM),在于它是一個(gè)應(yīng)用程序。圖1表示現(xiàn)有的用于個(gè)人計(jì)算機(jī)的軟件堆棧100。形成軟件堆棧的軟件永久性地存儲(chǔ)在個(gè)人計(jì)算機(jī)的只讀存儲(chǔ)器(ROM)和的硬盤中。事實(shí)上,基本輸入輸出系統(tǒng)(下文稱BIOS)104存儲(chǔ)在ROM中,其中BIOS由與處理器永久關(guān)聯(lián)的有限目的可執(zhí)行固件代碼組成。BIOS104在操作系統(tǒng)的指導(dǎo)下控制低層輸入和輸出操作。操作系統(tǒng)108是一個(gè)或多個(gè)軟件產(chǎn)品(例如,設(shè)備驅(qū)動(dòng)程序),它們聯(lián)合起來(lái)管理個(gè)人計(jì)算機(jī)的系統(tǒng)資源(例如,存儲(chǔ)管理和外圍設(shè)備)以及使用該系統(tǒng)資源的所有其它程序(例如,應(yīng)用程序)。應(yīng)該注意到設(shè)備驅(qū)動(dòng)程序可以是操作系統(tǒng)108的一部分,或他們可以被加載到操作系統(tǒng)108之上。例如,一些設(shè)備驅(qū)動(dòng)程序可以根據(jù)需要被下載到內(nèi)存中。一個(gè)或多個(gè)應(yīng)用程序116被堆疊到操作系統(tǒng)108的上面。應(yīng)用程序116通過應(yīng)用程序接口(下文稱API)112與操作系統(tǒng)108通信,API中包括能被應(yīng)用程序116調(diào)用的子例行程序(functions)和過程。被應(yīng)用程序116調(diào)用的API112中的子例行程序和過程依次傳遞到操作系統(tǒng)108。然后,操作系統(tǒng)108傳遞所需的輸入/輸出過程到BIOS104,或使用設(shè)備驅(qū)動(dòng)程序直接處理它們。不同于BIOS104,操作系統(tǒng)108,API112,和應(yīng)用程序116都存儲(chǔ)在個(gè)人計(jì)算機(jī)的硬盤中。這在相當(dāng)大的程度上是因?yàn)檫@些軟件組件的大小,但是也與他們可擴(kuò)展的本質(zhì)有關(guān)。大部分瀏覽器軟件以應(yīng)用程序的形式書寫的主要原因是希望更“便攜”,即可以更容易的修改以便在不同的操作系統(tǒng)(例如,UNIX,Windows98(TM)等)上運(yùn)行以及在使用同一操作系統(tǒng)的不同類型的計(jì)算機(jī)上運(yùn)行。這擴(kuò)展了軟件供應(yīng)商的產(chǎn)品市場(chǎng)。根據(jù)最近的法律申明(woes),微軟公司相當(dāng)大程度上使其瀏覽器(InternetExplorer)成為其操作系統(tǒng)的一部分,而不是加載到操作系統(tǒng)上的應(yīng)用程序。人們并不知道微軟的瀏覽器是操作系統(tǒng)的一部分還是加載到操作系統(tǒng)上的應(yīng)用程序。無(wú)論微軟的或其他任何已知的瀏覽器是操作系統(tǒng)的一部分,還是一個(gè)應(yīng)用程序,事實(shí)仍然是瀏覽器,如同操作系統(tǒng)一樣,仍存儲(chǔ)在硬盤中。當(dāng)硬盤發(fā)生故障后,瀏覽器和個(gè)人計(jì)算機(jī)通常就不能用了。
發(fā)明內(nèi)容本發(fā)明提供了一個(gè)存儲(chǔ)在非硬盤的永久性存儲(chǔ)設(shè)備中的帶診斷功能的網(wǎng)絡(luò)瀏覽器。該網(wǎng)絡(luò)瀏覽器被用于修復(fù)連接在網(wǎng)絡(luò)上的計(jì)算機(jī)的外圍設(shè)備,如硬盤,從而避免迫使用戶人工診斷或解決故障。而且,網(wǎng)絡(luò)瀏覽器在做診斷時(shí)取消了對(duì)傳統(tǒng)操作系統(tǒng)的嚴(yán)格依賴以及由此導(dǎo)致的對(duì)硬盤的依賴。根據(jù)一個(gè)實(shí)施例,網(wǎng)絡(luò)瀏覽器由一組軟件模塊組成。該模塊包括設(shè)備驅(qū)動(dòng)器模塊216,所配置的該模塊用來(lái)初始化并測(cè)試一個(gè)或多個(gè)外圍設(shè)備;實(shí)時(shí)內(nèi)核模塊220,所配置的該模塊用來(lái)通過所謂的設(shè)備驅(qū)動(dòng)器模塊216檢測(cè)和分發(fā)來(lái)自或到達(dá)外圍設(shè)備的數(shù)據(jù),包括處理對(duì)應(yīng)于所述外圍設(shè)備操作的診斷數(shù)據(jù)以及執(zhí)行存儲(chǔ)管理任務(wù);因特網(wǎng)協(xié)議模塊224,所配置的該模塊用來(lái)處理與遠(yuǎn)程設(shè)備的網(wǎng)絡(luò)通信;圖形窗口模塊228,所配置的該模塊用來(lái)處理可視顯示數(shù)據(jù)和控制;以及超文本鏈接標(biāo)示語(yǔ)言模塊248,所配置的該模塊用來(lái)解釋超文本鏈接標(biāo)示語(yǔ)言文檔以便通過所述的圖形窗口模塊228來(lái)顯示。此處披露了該自含式瀏覽器的硬件配置和軟件方法。根據(jù)本發(fā)明的一個(gè)實(shí)施例,處理診斷數(shù)據(jù)包括初始化外圍設(shè)備,檢測(cè)故障,接觸遠(yuǎn)程服務(wù)器,裝載診斷接口文件,以及使用該接口文件與遠(yuǎn)程服務(wù)器交互來(lái)診斷故障。下列附圖通過實(shí)施例進(jìn)行說(shuō)明,而不是限制本發(fā)明,其中同一參考號(hào)(編號(hào))表示相同的組件,其中圖1描述現(xiàn)有的軟件堆棧。圖2是根據(jù)本發(fā)明的自含式基于ROM的瀏覽器軟件堆棧的方框圖。圖3是本發(fā)明的高層方框圖。圖4是本發(fā)明的詳細(xì)方框圖。圖5A是本發(fā)明的調(diào)用過程的流程圖。圖5B和5C是本發(fā)明有用的應(yīng)用程序的流程圖。圖6是個(gè)人計(jì)算機(jī)的方框圖。具體實(shí)施例方式圖2是自含式永久存儲(chǔ)的瀏覽器軟件堆棧208的方框圖。瀏覽器軟件堆棧208被永久存儲(chǔ),但不是存儲(chǔ)在傳統(tǒng)的電磁硬盤上。此處使用的“電磁硬盤”是磁存儲(chǔ)介質(zhì),通常稱為盤片,它可以機(jī)械旋轉(zhuǎn)。讀寫操作由作為該硬盤的一部分的一個(gè)讀寫頭完成。優(yōu)選的是,瀏覽器208存儲(chǔ)在ROM(只讀存儲(chǔ)器)212的PCBIOS中,或者是ROM等價(jià)物,例如電子可編程只讀存儲(chǔ)器(EPROM)、電子可擦寫可編程只讀存儲(chǔ)器(EEPROM)、電子可改寫可編程只讀存儲(chǔ)器(EAPROM),閃可擦寫可編程只讀存儲(chǔ)器(FLASH或FEPROM)。此處使用的PCBIOS代表“個(gè)人計(jì)算機(jī)基本輸入輸出系統(tǒng)”。PCBIOS是永久存儲(chǔ)在個(gè)人計(jì)算機(jī)上的存儲(chǔ)區(qū)域的固件代碼。它主要負(fù)責(zé)執(zhí)行低層輸入輸出操作,通常代表操作系統(tǒng)。但是,根據(jù)本發(fā)明的一個(gè)實(shí)施例,PCBIOS包括了自含式瀏覽器軟件堆棧208。瀏覽器208獨(dú)立于現(xiàn)有的操作系統(tǒng)和硬盤。因此,采用瀏覽器208使個(gè)人計(jì)算機(jī)降低對(duì)故障的感染率,并允許個(gè)人計(jì)算機(jī)在發(fā)生某些類型的故障后仍能操作——不管故障發(fā)生在啟動(dòng)時(shí)還是發(fā)生在個(gè)人計(jì)算機(jī)的實(shí)時(shí)運(yùn)行過程中。而且,瀏覽器208能夠用于診斷與連接到該個(gè)人計(jì)算機(jī)上的硬件組件有關(guān)的問題。如圖2所示的瀏覽器208從體系結(jié)構(gòu)上定義了本發(fā)明的一個(gè)實(shí)施例。根據(jù)本優(yōu)選實(shí)施例,瀏覽器208存儲(chǔ)在ROM212中。在詳細(xì)描述組成瀏覽器208的功能塊之前,先描述該瀏覽器的模塊元件(例如,程序代碼和硬件組合)是很有用的,因?yàn)樗鼈兩婕暗秸麄€(gè)發(fā)明。因此,我們轉(zhuǎn)向圖3。操作概覽圖3是瀏覽器300在電子硬件,例如個(gè)人計(jì)算機(jī)(圖6表示個(gè)人計(jì)算機(jī)的一個(gè)實(shí)施例)上操作的高層方框圖。根據(jù)本發(fā)明的一個(gè)實(shí)施例,含有瀏覽器軟件的個(gè)人計(jì)算機(jī)(下文稱計(jì)算機(jī)300)至少執(zhí)行四種基本操作。一種操作包括輸入/輸出功能。為了達(dá)到該目的,計(jì)算機(jī)300含有一個(gè)輸入模塊304。輸入模塊304包括硬件,它提供一個(gè)或多個(gè)與外部設(shè)備,例如鍵盤、鼠標(biāo)、手寫筆、或觸摸屏的通信方式。串口,I/O控制器,USB端口,IEEE1394端口以及CEBus都是通信方式的例子。包括在瀏覽器中的軟件處理中斷、緩存、以及為通過通信方式接收的輸入分發(fā)命令和控制。應(yīng)該注意到通過輸入模塊304的通信方式也可以處理輸出,盡管這不是輸入模塊304的主要功能。計(jì)算機(jī)300的另一個(gè)操作是低層網(wǎng)絡(luò)通信。為此,提供了一個(gè)網(wǎng)絡(luò)通信模塊308來(lái)處理通信功能和操作,該處理是在例如網(wǎng)絡(luò)
技術(shù)領(lǐng)域:
熟知的7層OSI(開放系統(tǒng)互連)參考模型中的物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層和傳輸層上進(jìn)行的。能夠執(zhí)行網(wǎng)絡(luò)通信模塊308的硬件設(shè)備包括以太網(wǎng)卡、傳統(tǒng)的陸上通訊線調(diào)制解調(diào)器、線纜調(diào)制解調(diào)器、以及無(wú)線調(diào)制解調(diào)器。作為因特網(wǎng)的標(biāo)準(zhǔn)的多因特網(wǎng)RFC(MultipleInternetRFCs),定義了允許這些硬件設(shè)備操作的軟件規(guī)范。根據(jù)本發(fā)明的實(shí)施例,因特網(wǎng)RFC包括791(因特網(wǎng)協(xié)議,或IP),792(因特網(wǎng)控制消息協(xié)議,或ICMP),793(傳輸控制協(xié)議或TCP),826(地址解析協(xié)議或ARP),以及1661(點(diǎn)到點(diǎn)協(xié)議,或PPP),所有這些都可以在因特網(wǎng)上獲得,URL是http//www.pmg.lcs.mit.edu/rfc.html。計(jì)算機(jī)300的第三種操作是處理來(lái)自或到達(dá)網(wǎng)絡(luò)通信模塊308的數(shù)據(jù)和控制。在網(wǎng)絡(luò)應(yīng)用模塊312,采用各種協(xié)議來(lái)解釋來(lái)自網(wǎng)絡(luò)通信模塊308的消息,并提供專門的客戶端(或用戶接口)給它們(例如,終端監(jiān)控器軟件或電子郵件客戶端),或者訪問在不同模塊(例如頁(yè)面呈遞模塊316,該模塊將在下面描述)的其它客戶端。如果網(wǎng)絡(luò)應(yīng)用模塊312提供客戶端給用戶,那么除了處理來(lái)自或到達(dá)網(wǎng)絡(luò)通信模塊308的數(shù)據(jù)之外,它還可以接收來(lái)自輸入模塊304的數(shù)據(jù)——或者直接接收,或者經(jīng)過另一模塊,例如頁(yè)面呈遞模塊316接收。網(wǎng)絡(luò)應(yīng)用模塊312的典型應(yīng)用(或協(xié)議)有DNS(域名系統(tǒng)DomainNameSystem),HTTP(超文本傳輸協(xié)議HypertextTransferProtocol),SSL(加密套接字協(xié)議層),HTTPS(安全HTTP),SMTP(簡(jiǎn)單郵件傳輸協(xié)議),POP3(郵箱協(xié)議版本3),TELNET,和FTP(文件傳輸協(xié)議)。這些網(wǎng)絡(luò)應(yīng)用進(jìn)一步在因特網(wǎng)RFC中描述為1034(DNS),2068(HTTP),821(SMTP),1081(POP3),854(TELNET),和959(FTP)。目前優(yōu)選的是,只在網(wǎng)絡(luò)應(yīng)用模塊312同時(shí)實(shí)現(xiàn)SMTP,POP3,DNS,HTTP,SSL和HTTPS。通常,瀏覽器中包括的協(xié)議越少,結(jié)果覆蓋區(qū)就越小(即存儲(chǔ)該自含式網(wǎng)絡(luò)瀏覽器所需要的內(nèi)存數(shù)量就減少)。在該方框圖的頂部是頁(yè)面呈遞模塊316。頁(yè)面呈遞模塊316處理所傳遞的超文本鏈接標(biāo)示語(yǔ)言(HTML)文檔以及其他文檔格式的解釋。例如,頁(yè)面呈遞模塊316呈遞圖形文件,執(zhí)行頁(yè)面分層子例行程序,并處理窗口位置,大小和滾動(dòng)以響應(yīng)來(lái)自輸入模塊304的數(shù)據(jù)(例如,來(lái)自鼠標(biāo)的數(shù)據(jù))。頁(yè)面呈遞模塊316與顯示模塊(未示出)直接通信。模塊詳細(xì)描述圖4是該自含式網(wǎng)絡(luò)瀏覽器的詳細(xì)功能方框圖。圖4按照從網(wǎng)絡(luò)(例如,通過外圍設(shè)備)到其最終顯示在計(jì)算機(jī)的顯示器或終端上的典型數(shù)據(jù)流來(lái)組織。盡管各種詳細(xì)模塊(圖4)的功能可以在通用目的模塊(圖3)之間移動(dòng),但是此處描述時(shí)都參照特定的通用目的模塊。例如,輸入模塊304(圖3)包括軟件模塊408到412。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)通信模塊308包括軟件模塊416到432,網(wǎng)絡(luò)應(yīng)用模塊312包括軟件模塊436到464,頁(yè)面呈遞模塊316包括軟件模塊468到482。數(shù)據(jù)輸入被外圍設(shè)備404(即增加到計(jì)算機(jī)300上的內(nèi)部或外部設(shè)備,例如以太網(wǎng)卡,鍵盤,鼠標(biāo),或有線/無(wú)線調(diào)制解調(diào)器)接收。當(dāng)數(shù)據(jù)被輸入模塊304接收之后,它被從一個(gè)或多個(gè)計(jì)算機(jī)輸入/輸出(I/O)接口發(fā)送到特定的模塊被處理。一般來(lái)說(shuō),每個(gè)外圍設(shè)備被賦予一個(gè)特定的I/O端口,與外圍設(shè)備的數(shù)據(jù)通信導(dǎo)致在實(shí)時(shí)內(nèi)核的中斷,下面將參照?qǐng)D2進(jìn)一步說(shuō)明。該中斷標(biāo)識(shí)某個(gè)異常矢量或一種算法的內(nèi)存地址,該算法處理來(lái)自外圍設(shè)備的輸入數(shù)據(jù)。例如,來(lái)自調(diào)制解調(diào)器的信號(hào)可以觸發(fā)第一串口中斷,接著導(dǎo)致調(diào)制解調(diào)器點(diǎn)到點(diǎn)(PPP)協(xié)議模塊416被激活。在說(shuō)明圖4詳細(xì)方框圖的單個(gè)組件之前,應(yīng)該知道調(diào)試控制臺(tái)(debugconsole)模塊412是不需要的。調(diào)試控制臺(tái)模塊412被用作用于達(dá)到軟件和硬件測(cè)試目的調(diào)試端口。另外,用實(shí)線表示的元件是瀏覽器軟件的一部分,而用虛線表示的元件是執(zhí)行瀏覽器軟件時(shí)整個(gè)個(gè)人計(jì)算機(jī)的一部分。另外,物理頁(yè)面(高速)緩存490和顯示器494不是瀏覽器軟件堆棧的一部分。頁(yè)面緩存490,優(yōu)選采用易失性存儲(chǔ)器,作為一個(gè)或多個(gè)網(wǎng)絡(luò)應(yīng)用在數(shù)據(jù)被傳遞到頁(yè)面呈遞模塊472之前處理數(shù)據(jù)的緩沖區(qū)使用。例如,頁(yè)面緩存490可以在HTML文件(包括沒有解釋的和已經(jīng)解釋的文件)被傳遞到顯示器494之前預(yù)先存儲(chǔ)它們。顯示器494可以是頁(yè)面呈遞模塊472與之通信的外圍設(shè)備,也可以是給用戶提供數(shù)據(jù)的實(shí)際顯示設(shè)備的易失性存儲(chǔ)緩沖區(qū)。顯示器494接收來(lái)自頁(yè)面呈遞模塊472的數(shù)據(jù)。另外,ROM文件468也不是必要的(盡管它們是優(yōu)選的)。ROM文件468能永久存儲(chǔ)一個(gè)或多個(gè)用戶診斷接口或模板,后者被特定的遠(yuǎn)程供應(yīng)商(例如,計(jì)算機(jī)制造商或因特網(wǎng)服務(wù)供應(yīng)商)用來(lái)診斷個(gè)人計(jì)算機(jī)的問題。例如,當(dāng)瀏覽器連接到遠(yuǎn)程供應(yīng)商時(shí),就能夠把所使用的HTML形式的或可執(zhí)行診斷程序存儲(chǔ)在ROM文件468中。盡管他們被稱為ROM文件,但是這些文件可以被存儲(chǔ)在電子可改寫ROM中,例如閃存(FLASHmemory)。把網(wǎng)上信息塊(cookies)或其它文件存儲(chǔ)在ROM文件468中是有用的,因?yàn)閏ookies并不是必然的完全靜止的文件,而是隨時(shí)發(fā)生著改變。光標(biāo)控制模塊408被用于處理從鼠標(biāo)或手寫筆輸入的數(shù)據(jù)。該數(shù)據(jù)通常是與鼠標(biāo)的移動(dòng)相對(duì)應(yīng)的兩維移動(dòng)數(shù)據(jù)。該數(shù)據(jù)還包括控制信號(hào),例如鼠標(biāo)選擇器點(diǎn)擊。光標(biāo)控制模塊408優(yōu)選從串行口接收數(shù)據(jù),但是它也可以從無(wú)線端口,例如紅外端口,接收數(shù)據(jù)。鍵盤模塊410是鍵盤驅(qū)動(dòng)程序。它被用于輸入或鍵入文本到表格和/或直接輸入命令到頁(yè)面呈遞模塊472,以及與頁(yè)面呈遞模塊472接口連接的其它模塊——例如模塊452到464。鍵盤模塊472的重要方面是其啟動(dòng)瀏覽器的能力。通常,用戶輸入某個(gè)特定鍵或鍵序列(例如,CTRL-ALT-B或CTRL-ALT-HOME)來(lái)人工啟動(dòng)該自含瀏覽器,從而繞開個(gè)人計(jì)算機(jī)的正常操作模式。通常,特定鍵序列只在個(gè)人計(jì)算機(jī)啟動(dòng)時(shí)才激活。鍵盤模塊410還用于控制頁(yè)面滾動(dòng)和區(qū)域選擇,例如使用鍵盤上的方向鍵和/或TAB鍵。調(diào)試控制臺(tái)412用于調(diào)試的目的,包括該調(diào)試控制臺(tái)412的主要作用在于軟件調(diào)節(jié)。例如,由于設(shè)備驅(qū)動(dòng)程序?qū)υ诓煌挠?jì)算機(jī)上的芯片集和硬件設(shè)備而言是不同的,所以就可以使用調(diào)試控制臺(tái)412來(lái)監(jiān)控瀏覽器在一個(gè)或多個(gè)新硬件設(shè)備上運(yùn)行。調(diào)試控制臺(tái)412并不是該瀏覽器軟件的必須組件。調(diào)制解調(diào)器PPP模塊416被用于處理從公眾交換電話網(wǎng)(PSTN)上進(jìn)入的包數(shù)據(jù)。該模塊416的功能優(yōu)選遵循因特網(wǎng)RFC1616,并配置用于幫助調(diào)制解調(diào)器連接到因特網(wǎng)服務(wù)供應(yīng)商(ISP)或因特網(wǎng)訪問供應(yīng)商(IAP),并與一個(gè)或多個(gè)遠(yuǎn)程服務(wù)器建立虛擬連接。調(diào)制解調(diào)器PPP模塊416還包括用于調(diào)制解調(diào)器的設(shè)備驅(qū)動(dòng)程序。以太網(wǎng)ARP模塊420也被用于處理來(lái)自網(wǎng)絡(luò)的包數(shù)據(jù)。但是,該網(wǎng)絡(luò)可以是高速局域網(wǎng)(LAN),或高速?gòu)V域網(wǎng)WAN。模塊420包括一個(gè)或多個(gè)用于以太網(wǎng)卡(外圍設(shè)備)的設(shè)備驅(qū)動(dòng)程序。以太網(wǎng)ARP模塊420遵循因特網(wǎng)RFC826,因?yàn)樵撃K被配置用來(lái)在IP地址和以太網(wǎng)地址之間做轉(zhuǎn)換。IP/ICMP模塊424根據(jù)網(wǎng)絡(luò)連接情況從模塊416或420接收(數(shù)據(jù))包。IP/ICMP模塊424的IP部分處理分片、包轉(zhuǎn)發(fā)和IP包重組。ICMP是對(duì)IP的擴(kuò)展,它處理所產(chǎn)生的差錯(cuò)消息和其它與IP有關(guān)的信息。IP/ICMP模塊424的功能與因特網(wǎng)RFC791和792一致。TCP/UDP模塊428把IP包組裝到用于網(wǎng)絡(luò)應(yīng)用的報(bào)文(消息)中。TCP/UDP模塊428根據(jù)因特網(wǎng)RFC793(TCP)和因特網(wǎng)RFC768(用戶數(shù)據(jù)報(bào)協(xié)議,或UDP)操作。由于TCP/UDP模塊428與TCP和UDP兼容,因此它既可以支持面向連接的通信(TCP),也可以支持無(wú)連接的通信(UDP)。套接字應(yīng)用編程接口(API)模塊432提供了如圖3所示的網(wǎng)絡(luò)通信模塊308和網(wǎng)絡(luò)應(yīng)用模塊312之間的接口。當(dāng)網(wǎng)絡(luò)應(yīng)用在計(jì)算機(jī)300上執(zhí)行時(shí),網(wǎng)絡(luò)應(yīng)用調(diào)用子例行程序并發(fā)送和接收來(lái)自或到達(dá)網(wǎng)絡(luò)通信模塊308的數(shù)據(jù)/報(bào)文。為了達(dá)到該目的,套接字API432被用做分發(fā)器來(lái)創(chuàng)建或拆除與遠(yuǎn)程服務(wù)器的IP虛連接,或稱“套接字”。因?yàn)樵摓g覽器軟件同時(shí)支持TCP和UDP,因此該套接字可以是面向連接的也可以是無(wú)連接的。如上所述,模塊436到464可以被歸類為網(wǎng)絡(luò)應(yīng)用模塊。網(wǎng)絡(luò)應(yīng)用模塊通信連接到套接字API432和頁(yè)面呈遞模塊472中。DNS模塊460被用于映射(或解析)英文類型的URL(例如,http//www.elegent.com,其中”http//”表示網(wǎng)絡(luò)應(yīng)用協(xié)議而“www.elegent.com”表示URL)到IP地址(例如,206.171.12.20)。(如上所述,以太網(wǎng)ARP模塊420映射IP地址到以太網(wǎng)地址)DNS在因特網(wǎng)RFC1034中進(jìn)行說(shuō)明。DNS模塊460傳遞域名請(qǐng)求(查詢)到解析器或名稱服務(wù)器并根據(jù)RFC1034處理。HTTP模塊456被用于將HTML(超文本鏈接標(biāo)示語(yǔ)言)文件傳送到或來(lái)自某個(gè)遠(yuǎn)程服務(wù)器。大部分HTML文件最終通過頁(yè)面呈遞模塊472呈現(xiàn)給用戶。HTTP模塊456與因特網(wǎng)RFC2068兼容。SMPT模塊436,POP3模塊440和電子郵件模塊464都與處理電子郵件報(bào)文有關(guān)。SMTP模塊436包括根據(jù)因特網(wǎng)RFC821(其全部合并于此作為參考)處理所發(fā)送的電子郵件報(bào)文的軟件。SMTP模塊436通信連接到套接字API432和電子郵件客戶端(或電子郵件模塊)464(它是SMTP和POP3網(wǎng)絡(luò)應(yīng)用的用戶接口)。POP3模塊440包括處理從遠(yuǎn)程服務(wù)器所接收的電子郵件報(bào)文的軟件。與SMTP模塊436一樣,POP3模塊440也通信連接到套接字API432和電子郵件客戶端464。電子郵件模塊464優(yōu)選是一個(gè)基于HMTL的軟件接口,它由頁(yè)面呈遞模塊472解釋。盡管SMTP和POP3是用于本發(fā)明的兩個(gè)優(yōu)選協(xié)議,但是也可以采用其它電子郵件協(xié)議。例如,電子郵件報(bào)文在遠(yuǎn)程郵件服務(wù)器而不是在計(jì)算機(jī)300上操縱的協(xié)議。例如,模塊436和440可以被因特網(wǎng)報(bào)文訪問協(xié)議(IMAP)兼容的軟件代替。IMAP的一個(gè)較新的版本在因特網(wǎng)RFC2060中進(jìn)行說(shuō)明。FTP模塊444遵循因特網(wǎng)RFC959。FTP模塊444處理瀏覽器所駐留的計(jì)算機(jī)和遠(yuǎn)程服務(wù)器之間的文件傳輸。對(duì)本發(fā)明而言,F(xiàn)TP模塊444不是成功實(shí)現(xiàn)瀏覽器所必須具備的模塊。SSL模塊448和HTTPS模塊452管理該瀏覽器采用的補(bǔ)充安全協(xié)議。當(dāng)該自含式網(wǎng)絡(luò)瀏覽器和遠(yuǎn)程服務(wù)器之間需要進(jìn)行安全數(shù)據(jù)交換時(shí)就激活這些模塊。當(dāng)這些模塊被激活時(shí),瀏覽器和遠(yuǎn)程供應(yīng)商/服務(wù)器之間的專用端口(例如端口443)被用于傳遞IP包。瀏覽器和服務(wù)器建立話路標(biāo)志符并共享一個(gè)或多個(gè)密鑰。話路標(biāo)志符和密鑰用來(lái)驗(yàn)證所交換的信息的真實(shí)性,并保護(hù)所交換的信息免于被窺探者(未經(jīng)授權(quán)的試圖竊聽通信的用戶)窺探。對(duì)本發(fā)明而言,SSL模塊448和HTTPS模塊452都不是成功實(shí)現(xiàn)瀏覽器所必須具備的模塊。既然已經(jīng)說(shuō)明了網(wǎng)絡(luò)應(yīng)用模塊,那么就來(lái)說(shuō)明頁(yè)面呈遞模塊472。頁(yè)面呈遞模塊472與網(wǎng)絡(luò)應(yīng)用模塊312之間有雙向通信。頁(yè)面呈遞模塊472與網(wǎng)絡(luò)應(yīng)用模塊312之間交換的數(shù)據(jù)通常被緩存到頁(yè)面緩存器490中。頁(yè)面呈遞模塊472還將屏幕信息傳送到顯示器494,后者通常包括有用于位圖顯示的圖形加速器適配器。頁(yè)面呈遞模塊472還接收來(lái)自一個(gè)或多個(gè)輸入設(shè)備(例如鼠標(biāo)或鍵盤)的數(shù)據(jù)。頁(yè)面呈遞模塊472包括5個(gè)基本元件(部分)。一個(gè)元件是圖形呈遞元件474。圖形呈遞元件474解釋GIF,JPEG,MPEG類型的文件以展示到位圖顯示器。圖形呈遞元件474還處理圖形的縮放。頁(yè)面呈遞模塊472的另一個(gè)元件是字體引擎476。字體引擎476支持HTML文件所使用的各種字體。多語(yǔ)言元件478支持把HTML文件中的字符解釋成眾多語(yǔ)言中的一種,盡管瀏覽器只需支持一種語(yǔ)言。頁(yè)面分層元件480解釋HTML文件中的格式標(biāo)簽,例如<bold>、<center>、和<color>標(biāo)簽以及<table>和<frame>標(biāo)簽。頁(yè)面呈遞模塊472的窗口系統(tǒng)482為呈現(xiàn)給用戶的每個(gè)頁(yè)面或HTML文件的子框架提供窗口環(huán)境。窗口系統(tǒng)482處理顯示器494的窗口縮放,以及產(chǎn)生水平或垂直滾動(dòng)條,外圍設(shè)備能夠?qū)υ摑L動(dòng)條加以控制(通過光標(biāo)控制模塊408)。光標(biāo)控制模塊408所檢測(cè)到的光標(biāo)或手寫筆的運(yùn)動(dòng)情況直接傳送給頁(yè)面呈遞模塊472,具體而言是窗口系統(tǒng)482,來(lái)加以處理。瀏覽器軟件體系結(jié)構(gòu)返回圖2,如圖4所詳細(xì)描述的自含式瀏覽器軟件堆棧208,圖2是其功能方框圖。該圖對(duì)理解自含式網(wǎng)絡(luò)瀏覽器的整個(gè)體系結(jié)構(gòu)是有用的,該網(wǎng)絡(luò)瀏覽器優(yōu)選包括在只讀存儲(chǔ)器212中。實(shí)時(shí)內(nèi)核220(在圖4中沒有作為單獨(dú)的模塊示出)至少完成兩個(gè)基本任務(wù)。實(shí)時(shí)內(nèi)核220的基本任務(wù)包括(1)檢測(cè)和分發(fā)數(shù)據(jù)到或自外圍設(shè)備到適當(dāng)?shù)哪K(2)存儲(chǔ)管理。對(duì)于數(shù)據(jù)處理和分發(fā),實(shí)時(shí)內(nèi)核220主動(dòng)輪尋外圍設(shè)備404,試圖檢測(cè)該設(shè)備的狀態(tài)變化(例如,外圍設(shè)備是否共享一條公共總線),或者內(nèi)核220被動(dòng)接收外圍設(shè)備404發(fā)出的直接中斷請(qǐng)求。實(shí)時(shí)內(nèi)核220不同于傳統(tǒng)的操作系統(tǒng)之處在于它處理傳統(tǒng)操作系統(tǒng)所執(zhí)行的低層任務(wù),但是不處理更高層的任務(wù)。相反,更高層的任務(wù)保留由該瀏覽器208的特定模塊處理。實(shí)時(shí)內(nèi)核220的存儲(chǔ)管理方面包括在處理運(yùn)行過程中對(duì)頁(yè)面緩存490的管理,以及對(duì)其它易失性存儲(chǔ)器的管理。例如,實(shí)時(shí)內(nèi)核220執(zhí)行如下功能,例如對(duì)如圖4所示的每個(gè)模塊所使用的整個(gè)和/或局部存儲(chǔ)器區(qū)域的存儲(chǔ)分配和無(wú)用數(shù)據(jù)的收集。根據(jù)本發(fā)明的一個(gè)實(shí)施例,實(shí)時(shí)內(nèi)核220按三個(gè)邏輯存儲(chǔ)區(qū)域管理頁(yè)面緩存490(圖4)。請(qǐng)求隊(duì)列區(qū)域491存儲(chǔ)光標(biāo)控制408檢測(cè)到的請(qǐng)求并通過頁(yè)面呈遞模塊472傳遞到頁(yè)面緩存490。請(qǐng)求隊(duì)列區(qū)域491還存儲(chǔ)由頁(yè)面呈遞模塊472產(chǎn)生的請(qǐng)求。預(yù)處理數(shù)據(jù)區(qū)域492存儲(chǔ)還沒有被頁(yè)面呈遞模塊472解釋的數(shù)據(jù)。當(dāng)一個(gè)或多個(gè)網(wǎng)絡(luò)應(yīng)用預(yù)先獲取成批的HMTL文件時(shí),或當(dāng)沒有接收到用戶的顯式請(qǐng)求之前就請(qǐng)求多個(gè)HTML文件時(shí),預(yù)處理區(qū)域492特別有用。后處理數(shù)據(jù)區(qū)域493保存已經(jīng)被頁(yè)面呈遞模塊472解釋但還沒有發(fā)送到顯示器494的數(shù)據(jù)。存儲(chǔ)在后處理數(shù)據(jù)區(qū)域493中的數(shù)據(jù)從網(wǎng)絡(luò)應(yīng)用模塊傳遞到頁(yè)面呈遞模塊472,并從頁(yè)面呈遞模塊472傳遞到頁(yè)面緩存490。該數(shù)據(jù)再次通過頁(yè)面緩存490從頁(yè)面呈遞模塊472傳遞到顯示器494。實(shí)時(shí)內(nèi)核220處理硬件資源(例如內(nèi)部和外部設(shè)備/組件)和計(jì)算機(jī)300的軟件處理模塊之間的輸入和輸出。因此,實(shí)時(shí)內(nèi)核220與一個(gè)或多個(gè)設(shè)備驅(qū)動(dòng)程序216通信,后者與各個(gè)獨(dú)立的硬件組件有關(guān),來(lái)確保正確的通信處理和正確的硬件組件的初始化。根據(jù)一個(gè)實(shí)施例,實(shí)時(shí)內(nèi)核220通信連接到初始化模塊(未示出)上。初始化模塊檢測(cè)連接到計(jì)算機(jī)300上的每個(gè)外圍設(shè)備,用所需的初始化參數(shù)格式化外圍設(shè)備,并且,如果初始化沒有成功,該初始化模塊就觸發(fā)一個(gè)用于瀏覽器診斷處理模式。這樣,瀏覽器208可以被啟動(dòng)診斷處理模式的初始化模塊調(diào)用,或是被傳統(tǒng)操作系統(tǒng)或終端用戶的直接請(qǐng)求而調(diào)用。在一個(gè)實(shí)施例中,該初始化模塊被瀏覽器208和傳統(tǒng)操作系統(tǒng)所共享。瀏覽器208包括設(shè)備驅(qū)動(dòng)程序軟件216,后者與計(jì)算機(jī)的外圍設(shè)備通信或?qū)ζ溥M(jìn)行控制。設(shè)備驅(qū)動(dòng)程序軟件216包括初始化和測(cè)試軟件,來(lái)確保某個(gè)特定外圍設(shè)備能夠被操作(某些測(cè)試軟件能夠與瀏覽器208分離)。實(shí)時(shí)內(nèi)核220在設(shè)備驅(qū)動(dòng)程序軟件216上操作,并管理計(jì)算機(jī)系統(tǒng)資源,使用設(shè)備驅(qū)動(dòng)程序216與外圍設(shè)備通信。因特網(wǎng)協(xié)議軟件224堆疊在實(shí)時(shí)內(nèi)核220之上,被用于處理各種網(wǎng)絡(luò)通信,例如在圖4中所描述的。在因特網(wǎng)協(xié)議軟件224之上是圖形窗口軟件228。圖形窗口軟件228處理在顯示設(shè)備上展示給用戶的數(shù)據(jù)的幕后處理。例如,窗口定位,光標(biāo)和鍵盤輸入/控制,另外,圖形處理也部分地由圖形窗口軟件228處理。運(yùn)行在圖形窗口軟件228之上的如圖2所示的軟件組件更接近終端用戶應(yīng)用。例如,SSL軟件236處理安全信息過程。字體軟件支持顯示給終端用戶的各種不同的字體,圖象軟件232解釋圖形文件,該圖形文件也顯示給終端用戶。電子郵件軟件244是終端用戶客戶端,它允許終端用戶發(fā)送和接收電子郵件。HTML軟件248是一個(gè)終端用戶應(yīng)用程序,它解釋HTML文件,例如通過解析文件并把解析的部分傳遞到適當(dāng)?shù)哪K以做進(jìn)一步處理。瀏覽器啟動(dòng)和診斷功能根據(jù)本發(fā)明的一個(gè)實(shí)施例,圖5A的流程圖說(shuō)明了在個(gè)人計(jì)算機(jī)上調(diào)用(啟用)瀏覽器的步驟。在步驟504中,計(jì)算機(jī)系統(tǒng)硬件組件,包括外部和內(nèi)部設(shè)備,都被初始化。在步驟508中,執(zhí)行一個(gè)測(cè)試來(lái)確定瀏覽器命令或觸發(fā)器是否被設(shè)置。根據(jù)一個(gè)實(shí)施例,在個(gè)人計(jì)算機(jī)啟動(dòng)時(shí),調(diào)用瀏覽器命令以響應(yīng)在鍵盤上輸入的鍵或鍵序列。在另一個(gè)實(shí)施例中,設(shè)置物理或CMOS設(shè)置開關(guān)來(lái)觸發(fā)該自含式網(wǎng)絡(luò)瀏覽器。如果在步驟508沒有檢測(cè)到瀏覽器觸發(fā)器,那么個(gè)人計(jì)算機(jī)繼續(xù)到步驟512從而進(jìn)入正常操作模式。例如,傳統(tǒng)的操作系統(tǒng)引導(dǎo)以及通常目的應(yīng)用程序被執(zhí)行。類似于步驟508,在步驟516中,執(zhí)行一個(gè)測(cè)試來(lái)確定是否有瀏覽器觸發(fā)器被設(shè)置。應(yīng)該注意的是,該進(jìn)程可以被某個(gè)異常矢量或中斷例程所處理,或者它可以被某個(gè)特定的設(shè)備驅(qū)動(dòng)程序或傳統(tǒng)的操作系統(tǒng)處理。如果在步驟516檢測(cè)到瀏覽器觸發(fā)器,那么在步驟520操作系統(tǒng)關(guān)閉,而過程繼續(xù)轉(zhuǎn)到步驟524。在步驟508或520之后的步驟524,啟動(dòng)自含式瀏覽器。圖5B和圖5C特別說(shuō)明了該自含式瀏覽器一旦被啟用之后的有用的各種應(yīng)用(程序)。如圖5B和5C所示的步驟替換連接符“A”(元件528)。如圖5B所示的流程圖說(shuō)明使用該瀏覽器診斷和修復(fù)損壞的硬件組件。在步驟532,該瀏覽器連接到網(wǎng)絡(luò)或?qū)?yīng)某個(gè)特定供應(yīng)商的“遠(yuǎn)程”服務(wù)器。該供應(yīng)商可以是銷售該個(gè)人計(jì)算機(jī)的公司,或者是處理個(gè)人計(jì)算機(jī)的技術(shù)服務(wù)/維修的另一個(gè)服務(wù)提供商。在步驟536裝載診斷文件,例如存儲(chǔ)在ROM文件468中的文件以及從遠(yuǎn)程服務(wù)器下載的文件。這些診斷文件允許終端用戶報(bào)告問題類型,執(zhí)行系統(tǒng)配置檢測(cè),或診斷所選擇的硬件組件。診斷文件包括已解釋的軟件代碼,可執(zhí)行軟件代碼,或HTML接口例如表格。這樣,供應(yīng)商就能遠(yuǎn)程診斷該個(gè)人計(jì)算機(jī)面臨的問題。在診斷問題之前,供應(yīng)商可以發(fā)送命令告訴該瀏覽器啟動(dòng)一個(gè)特定診斷程序,或該供應(yīng)商可以發(fā)送特定的編譯或解釋的診斷程序到該瀏覽器。如果一個(gè)診斷程序被發(fā)送到瀏覽器,那么它是使用FTP、HTTP、HTTPS或SMTP協(xié)議發(fā)送的。如果使用公眾網(wǎng)絡(luò),例如因特網(wǎng)(與內(nèi)聯(lián)網(wǎng)對(duì)應(yīng)),就使用認(rèn)證(證書)來(lái)驗(yàn)證該診斷程序。例如,采用RSA數(shù)據(jù)加密,Inc.(集成網(wǎng)絡(luò)連接)或X.509兼容的認(rèn)證來(lái)驗(yàn)證診斷程序的真實(shí)性。在步驟540,診斷程序被執(zhí)行,無(wú)論該診斷程序是存儲(chǔ)在本地還是來(lái)自遠(yuǎn)程服務(wù)器。例如,診斷程序能確認(rèn)硬盤確實(shí)損壞了,或它能檢查對(duì)應(yīng)操作系統(tǒng)和其它硬件組件的錯(cuò)誤記錄的內(nèi)容。執(zhí)行該診斷程序還包括將結(jié)果加載到供應(yīng)商以便供應(yīng)商能采取糾正的行動(dòng)。在步驟544執(zhí)行一個(gè)測(cè)試來(lái)確定該問題是否能被修復(fù)。如果該問題能被修復(fù),那么就在步驟548修復(fù)它,可能還包括從供應(yīng)商下載附加的程序,如步驟540所述。但是,如果該問題不能被修復(fù),那么就在步驟552發(fā)送一個(gè)通知給用戶或供應(yīng)商(或兩者)說(shuō)明無(wú)法修復(fù)。如果供應(yīng)商在步驟552收到通知,那么該供應(yīng)商可以直接聯(lián)絡(luò)該個(gè)人計(jì)算機(jī)的終端用戶。在圖5C中,瀏覽器被用于瀏覽因特網(wǎng)或在因特網(wǎng)上沖浪,如步驟556所示。例如,個(gè)人計(jì)算機(jī)的用戶可以使用該自含式網(wǎng)絡(luò)瀏覽器連接到遠(yuǎn)程服務(wù)器并發(fā)送數(shù)據(jù),接收HTML文件。由于傳統(tǒng)操作系統(tǒng)的某些方面和該瀏覽器相重疊,就是說(shuō)每個(gè)都可以用一種或另一種形式分別(但是不需要同時(shí))管理計(jì)算機(jī)系統(tǒng)資源,所以每個(gè)都能相互獨(dú)立的執(zhí)行。因此,傳統(tǒng)操作系統(tǒng)或外圍設(shè)備尤其是硬盤的故障,不會(huì)必然影響該瀏覽器。硬件概覽圖6是描述在計(jì)算機(jī)系統(tǒng)600上執(zhí)行本發(fā)明的一個(gè)實(shí)施例的方框圖。計(jì)算機(jī)系統(tǒng)600包括總線602,或其它用于交流信息的通信機(jī)制,以及連接(耦合)到總線602上用于處理信息的處理器604。計(jì)算機(jī)系統(tǒng)600還包括主存儲(chǔ)器606,例如隨機(jī)訪問存儲(chǔ)器(RAM),或其它動(dòng)態(tài)(或易失性)存儲(chǔ)設(shè)備,連接到總線602。主存儲(chǔ)器606存儲(chǔ)處理器604在執(zhí)行過程中的信息和指令。主存儲(chǔ)器606還存儲(chǔ)臨時(shí)變量或其它在處理器606執(zhí)行指令過程中的臨時(shí)信息。計(jì)算機(jī)系統(tǒng)600還包括連接到總線602的只讀存儲(chǔ)器(ROM)608或其它靜態(tài)(或永久)存儲(chǔ)設(shè)備(例如,F(xiàn)LASH、PROM、EEPROM等)。ROM608存儲(chǔ)處理器604的靜態(tài)信息和指令,尤其是此處所描述的瀏覽器。值得注意的是ROM608可以由一個(gè)或多個(gè)存儲(chǔ)器(存儲(chǔ)單元)組成。存儲(chǔ)設(shè)備610(或硬盤),例如磁盤或光盤,被連接到總線602。存儲(chǔ)設(shè)備610存儲(chǔ)如數(shù)據(jù)結(jié)構(gòu)和指令那樣的信息,例如操作系統(tǒng)或使用該操作系統(tǒng)的應(yīng)用程序。計(jì)算機(jī)系統(tǒng)600優(yōu)選通過總線602連接到顯示器612,例如陰極射線管(CRT)或主動(dòng)距陣或被動(dòng)距陣顯示器。顯示器612提供圖象給終端用戶。輸入設(shè)備614,包括字母數(shù)字和其它鍵,被連接到總線602。輸入設(shè)備614與處理器604傳達(dá)信息和命令選擇。另一類型的用戶輸入設(shè)備是光標(biāo)控制616,例如鼠標(biāo),跟蹤球,或光標(biāo)定位鍵,它們與處理器604傳達(dá)定位信息和命令選擇,并在顯示器612上控制光標(biāo)移動(dòng)。該輸入設(shè)備614通常在兩個(gè)軸中有二維自由度,第一軸(例如X軸)和第二軸(例如Y軸),以允許設(shè)備指定在面板上的位置。本發(fā)明是一個(gè)永久存儲(chǔ)的自含式瀏覽器,其中該瀏覽器不是存儲(chǔ)在硬盤上,例如存儲(chǔ)設(shè)備610。本發(fā)明的一個(gè)應(yīng)用是診斷和修復(fù)計(jì)算機(jī)系統(tǒng)600。另一個(gè)應(yīng)用是作為無(wú)盤因特網(wǎng)設(shè)備。根據(jù)本發(fā)明的一個(gè)方面,計(jì)算機(jī)系統(tǒng)600中的處理器604執(zhí)行保存在主存儲(chǔ)器606中的一個(gè)或多個(gè)指令序列。這些指令從另一個(gè)計(jì)算機(jī)可讀的介質(zhì),例如存儲(chǔ)設(shè)備610或ROM608,讀取到主存儲(chǔ)器606。執(zhí)行包括在主存儲(chǔ)器606中的指令序列導(dǎo)致處理器604執(zhí)行瀏覽器或其它此處描述的過程。在可供選擇的實(shí)施例中,采用硬連線電路替代或結(jié)合軟件指令來(lái)實(shí)現(xiàn)本發(fā)明。因此,本發(fā)明的實(shí)施例并不限于任何特定的硬件電路和軟件的組合。這里使用的術(shù)語(yǔ)“計(jì)算機(jī)可讀介質(zhì)”指參與提供指令給處理器604執(zhí)行的任何介質(zhì)。這些介質(zhì)可以有許多形式,包括(但不限于)非易失性介質(zhì)、易失性介質(zhì)、以及傳輸介質(zhì)。非易失性介質(zhì)包括例如光盤、磁盤,如存儲(chǔ)設(shè)備610。易失性介質(zhì)包括動(dòng)態(tài)存儲(chǔ)器,例如主存606。傳輸介質(zhì)包括同軸電纜、銅線和光纖,包括組成總線602的線纜。傳輸介質(zhì)還可以是聲波或光波的形式,例如在無(wú)線電波和紅外數(shù)據(jù)通信中產(chǎn)生的波。計(jì)算機(jī)可讀介質(zhì)的常見形式包括軟盤、活動(dòng)盤、硬盤、磁帶、或任何其它磁介質(zhì)、CD-ROM、任何其它光介質(zhì)、穿孔紙片、紙帶、任何其它帶模式孔的物理介質(zhì)、RAM、ROM、FLASH、或任何其它內(nèi)存芯片或盒式磁盤、下文所述的載波、或任何其它能被計(jì)算機(jī)讀取的介質(zhì)。各種形式的計(jì)算機(jī)可讀介質(zhì)可以涉及將一個(gè)或多個(gè)指令序列送至處理器604加以執(zhí)行。例如,指令最初可能位于遠(yuǎn)程計(jì)算機(jī)的磁盤中。該遠(yuǎn)程計(jì)算機(jī)裝載該指令到其動(dòng)態(tài)內(nèi)存并通過接有調(diào)制解調(diào)器的電話線發(fā)送指令。計(jì)算機(jī)系統(tǒng)600本地的調(diào)制解調(diào)器可以接收電話線上的數(shù)據(jù)并使用紅外發(fā)射器轉(zhuǎn)換該數(shù)據(jù)為紅外信號(hào)。連接到總線602的紅外檢測(cè)器接收該紅外信號(hào)承載的數(shù)據(jù)并把該數(shù)據(jù)放置到總線602上??偩€602將該數(shù)據(jù)傳送到主存儲(chǔ)器606,處理器604從此處接收并執(zhí)行該指令。在被處理器604執(zhí)行之前或之后,被主存儲(chǔ)器606接收的指令還可以選擇性的存儲(chǔ)到存儲(chǔ)設(shè)備610。計(jì)算機(jī)系統(tǒng)600還包括連接到總線602的通信接口618。通信接口618提供雙路數(shù)據(jù)通信連接到網(wǎng)絡(luò)鏈路620,該網(wǎng)絡(luò)鏈路620連接到本地網(wǎng)絡(luò)622。例如,通信接口618可以是綜合服務(wù)數(shù)字網(wǎng)絡(luò)(ISDN)卡或調(diào)制解調(diào)器來(lái)提供數(shù)據(jù)通信連接到對(duì)應(yīng)類型的電話線。在另一個(gè)實(shí)施例中,通信接口618可以是局域網(wǎng)(LAN)卡來(lái)提供數(shù)據(jù)通信連接到兼容的LAN上。也可以采用無(wú)線鏈路。在任何實(shí)現(xiàn)形式中,通信接口618發(fā)送和接收電子的、電磁的或光信號(hào),它們承載代表各種類型的信息的數(shù)字?jǐn)?shù)據(jù)流。網(wǎng)絡(luò)鏈路620優(yōu)選通過一個(gè)或多個(gè)網(wǎng)絡(luò)向其它數(shù)據(jù)設(shè)備提供數(shù)據(jù)通信。例如,網(wǎng)絡(luò)鏈路620可以通過本地網(wǎng)絡(luò)622提供到主機(jī)624或到由因特網(wǎng)服務(wù)提供商(ISP)626操作的數(shù)據(jù)設(shè)備的連接。ISP626接著通過因特網(wǎng)628提供數(shù)據(jù)通信服務(wù),例如計(jì)算機(jī)診斷服務(wù)。本地網(wǎng)絡(luò)622和因特網(wǎng)628都使用承載數(shù)字?jǐn)?shù)據(jù)流的電子的、電磁的或光信號(hào)。通過各種網(wǎng)絡(luò)的信號(hào),以及在網(wǎng)絡(luò)鏈路620上和通過通信接口618的信號(hào)都是傳輸信息的載波的典型形式,它們承載來(lái)往于計(jì)算機(jī)系統(tǒng)600的數(shù)字?jǐn)?shù)據(jù)。計(jì)算機(jī)系統(tǒng)600可以通過網(wǎng)絡(luò)、網(wǎng)絡(luò)鏈路620以及通信接口618發(fā)送消息和接收數(shù)據(jù),包括程序代碼。在因特網(wǎng)的實(shí)施例中,服務(wù)器630可能為一個(gè)應(yīng)用程序發(fā)送所請(qǐng)求的代碼,通過因特網(wǎng)628,ISP626,本地網(wǎng)絡(luò)622以及通信接口618,例如使用FTP協(xié)議進(jìn)行。根據(jù)本發(fā)明,這種下載的應(yīng)用程序是可執(zhí)行軟件代碼或計(jì)算機(jī)配置參數(shù),用來(lái)進(jìn)一步診斷計(jì)算機(jī)的問題,或立即修復(fù)該問題。所接收的代碼在被接受時(shí)可以由處理器604執(zhí)行,并且/或存儲(chǔ)在主存儲(chǔ)器606、存儲(chǔ)設(shè)備610,或其它非易失性存儲(chǔ)器中以便后執(zhí)行。這樣,計(jì)算機(jī)系統(tǒng)600可以通過載波的形式獲得應(yīng)用代碼。參見圖3和圖6,應(yīng)該注意到輸入模塊304與輸入設(shè)備614和光標(biāo)控制616相互作用。網(wǎng)絡(luò)通信模塊308和網(wǎng)絡(luò)應(yīng)用模塊312與通信接口618相互作用。而頁(yè)面呈遞模塊316與顯示器612相互作用。在一個(gè)實(shí)施例中,所有的自含式網(wǎng)絡(luò)瀏覽器軟件代碼存儲(chǔ)在一個(gè)或多個(gè)ROM608中。但是當(dāng)執(zhí)行的時(shí)候,瀏覽器軟件代碼被拷貝到主存儲(chǔ)器606。在一個(gè)實(shí)施例中,頁(yè)面緩存490也是主存儲(chǔ)器606的一部分。本發(fā)明的優(yōu)點(diǎn)包括具有較小的覆蓋區(qū)、自含式瀏覽器體系結(jié)構(gòu),該結(jié)構(gòu)獨(dú)立且依從于傳統(tǒng)的操作系統(tǒng)。包括有該瀏覽器的計(jì)算機(jī)能夠在沒有硬盤的情況下工作。因此,用戶可以在硬盤損壞的情況下工作,或者用戶能夠操縱該瀏覽器軟件從而能夠快速而方便的訪問因特網(wǎng),而不需要等待導(dǎo)入操作系統(tǒng)或裝載其他的應(yīng)用軟件。在前述說(shuō)明中,本發(fā)明結(jié)合了特定的實(shí)施例加以描述。但是,很顯然,在不偏離本發(fā)明的精神的情況下可以作出各種修正和改變。例如,可以指定或多或少的頁(yè)面緩存區(qū)域,可以在網(wǎng)絡(luò)通訊模塊和網(wǎng)絡(luò)應(yīng)用模塊以及頁(yè)面呈遞模塊中包括或多或少的功能。另外,其他的實(shí)施例還可以包括虛擬機(jī)來(lái)解釋或執(zhí)行Java代碼或其他程序代碼。因此,上述說(shuō)明和附圖都是描述性的而不是限制性的。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。權(quán)利要求1.一種帶有硬件診斷功能的自含式網(wǎng)絡(luò)瀏覽器(208),所述的網(wǎng)絡(luò)瀏覽器(208)包括一計(jì)算機(jī)可讀存儲(chǔ)器(212)用來(lái)永久性的存儲(chǔ)可執(zhí)行軟件模塊,所述的軟件模塊包括一設(shè)備驅(qū)動(dòng)程序模塊(216),用以初始化和測(cè)試一個(gè)或多個(gè)外圍設(shè)備;一實(shí)時(shí)內(nèi)核模塊(220),用以檢測(cè)核分發(fā)來(lái)自和到達(dá)外圍設(shè)備的數(shù)據(jù),通過所述的設(shè)備驅(qū)動(dòng)程序模塊(216),包括處理對(duì)應(yīng)于所述的外圍設(shè)備的操作的診斷數(shù)據(jù),以及執(zhí)行存儲(chǔ)管理任務(wù);一因特網(wǎng)協(xié)議模塊(224),用以處理與遠(yuǎn)程設(shè)備的網(wǎng)絡(luò)通信;一圖形窗口模塊(228),用以處理可視顯示數(shù)據(jù)和控制;一超文本鏈接標(biāo)示語(yǔ)言模塊(248),用以解釋超文本鏈接標(biāo)示語(yǔ)言文檔并通過所述的圖形窗口模塊(228)來(lái)顯示。2.根據(jù)權(quán)利要求1所述的自含式網(wǎng)絡(luò)瀏覽器(208),其中當(dāng)對(duì)應(yīng)于所述外圍設(shè)備的操作的診斷數(shù)據(jù)指明有故障發(fā)生時(shí),所述的可執(zhí)行軟件模塊被配置調(diào)用功能以便利用所述的因特網(wǎng)協(xié)議模塊(224)連接到一遠(yuǎn)程服務(wù)器;裝載一個(gè)或多個(gè)診斷接口文件,包括永久存儲(chǔ)在所述的存儲(chǔ)器(212)中的診斷接口文件;與所述的遠(yuǎn)程服務(wù)器和所裝載的一個(gè)或多個(gè)接口文件交互診斷所述的故障;并修復(fù)所述的故障3.根據(jù)權(quán)利要求2所述的自含式網(wǎng)絡(luò)瀏覽器(208),其中,所述的可執(zhí)行軟件模塊進(jìn)一步被配置以調(diào)用功能來(lái)修復(fù)所述的故障,通過從所述的遠(yuǎn)程服務(wù)器使用網(wǎng)絡(luò)協(xié)議來(lái)下載可執(zhí)行修復(fù)代碼,所述網(wǎng)絡(luò)協(xié)議使用安全措施驗(yàn)證所述的可執(zhí)行修復(fù)代碼的真實(shí)性。4.根據(jù)權(quán)利要求2所述的自含式網(wǎng)絡(luò)瀏覽器(208),其中所述的可執(zhí)行軟件模塊進(jìn)一步被配置調(diào)用功能以便從遠(yuǎn)程服務(wù)器接收命令,所述命令被配置調(diào)用一個(gè)或多個(gè)用來(lái)幫助修復(fù)所述故障的存儲(chǔ)在所述的存儲(chǔ)器(212)中的功能。5.根據(jù)權(quán)利要求1所述的自含式網(wǎng)絡(luò)瀏覽器(208),其中在所述的實(shí)時(shí)內(nèi)核模塊(220)中的所述的存儲(chǔ)管理包括管理網(wǎng)絡(luò)瀏覽器頁(yè)面緩存(490),作為請(qǐng)求隊(duì)列區(qū)域(491),存儲(chǔ)還沒有被服務(wù)的數(shù)據(jù)和命令,預(yù)處理數(shù)據(jù)區(qū)域(492),存儲(chǔ)必須被解釋的要輸出到顯示設(shè)備的數(shù)據(jù),包括預(yù)先獲取的成批的超文本鏈接標(biāo)示語(yǔ)言文件,以及后處理區(qū)域(493),存儲(chǔ)已經(jīng)被解釋的要輸出到顯示設(shè)備但是還沒有被發(fā)送到所述的顯示設(shè)備的數(shù)據(jù)。6.一種用于訪問網(wǎng)絡(luò)的計(jì)算機(jī),所述計(jì)算機(jī)包括處理器(604),硬盤(610),永久存儲(chǔ)器(608),隨機(jī)訪問存儲(chǔ)器(606),以及通信接口(618),全部都通過總線(602)通信連接到所述的處理器(604),其中所述的永久存儲(chǔ)器(608)包括存儲(chǔ)在存儲(chǔ)區(qū)域(212)中的可執(zhí)行軟件模塊,所述可執(zhí)行軟件模塊包括一設(shè)備驅(qū)動(dòng)程序模塊(216),用以初始化所述的硬盤(610)并對(duì)其進(jìn)行故障測(cè)試;一實(shí)時(shí)內(nèi)核模塊(220),用來(lái)檢測(cè)和分發(fā)來(lái)自和到達(dá)外圍設(shè)備的數(shù)據(jù),通過所述的設(shè)備驅(qū)動(dòng)程序模塊(216),包括處理對(duì)應(yīng)于所述的硬盤(616)操作的診斷數(shù)據(jù),以及執(zhí)行有關(guān)主存儲(chǔ)器(606)的存儲(chǔ)管理任務(wù);一因特網(wǎng)協(xié)議模塊(224),用來(lái)處理與遠(yuǎn)程設(shè)備的網(wǎng)絡(luò)通信;一圖形窗口模塊(228),用來(lái)處理可視顯示數(shù)據(jù)和控制;一超文本鏈接標(biāo)示語(yǔ)言模塊(248)用來(lái)解釋超文本鏈接標(biāo)示語(yǔ)言文檔并通過所述的圖形窗口模塊(228)來(lái)顯示。7.根據(jù)權(quán)利要求6所述的計(jì)算機(jī),其中當(dāng)對(duì)應(yīng)于所述的硬盤(610)的操作的診斷數(shù)據(jù)指明有故障發(fā)生時(shí),所述的可執(zhí)行軟件模塊被配置來(lái)使所述的處理器利用所述的因特網(wǎng)協(xié)議模塊(224)連接到遠(yuǎn)程服務(wù)器(630);裝載一個(gè)或多個(gè)診斷接口文件,包括永久存儲(chǔ)在所述的存儲(chǔ)區(qū)域(212)中的診斷接口文件;使用所裝載的一個(gè)或多個(gè)接口文件與所述的遠(yuǎn)程服務(wù)器(630)交互診斷所述的故障;并修復(fù)所述的故障。8.根據(jù)權(quán)利要求7所述的計(jì)算機(jī),其中所述的可執(zhí)行軟件模塊進(jìn)一步被配置以使所述的處理器(604)來(lái)修復(fù)所述的故障,通過從所述的遠(yuǎn)程服務(wù)器(630)使用網(wǎng)絡(luò)協(xié)議來(lái)下載可執(zhí)行修復(fù)代碼,所述網(wǎng)絡(luò)協(xié)議使用安全措施驗(yàn)證所述的可執(zhí)行修復(fù)代碼的真實(shí)性。9.根據(jù)權(quán)利要求7所述的計(jì)算機(jī),其中所述的可執(zhí)行軟件模塊進(jìn)一步被配置以導(dǎo)致所述的處理器(604)從遠(yuǎn)程服務(wù)器接收命令,所配置的命令導(dǎo)致處理器(604)執(zhí)行一個(gè)或多個(gè)存儲(chǔ)在所述的存儲(chǔ)器(212)中的子例行程序來(lái)幫助修復(fù)所述的故障。10.根據(jù)權(quán)利要求6所述的計(jì)算機(jī),其中在所述的實(shí)時(shí)內(nèi)核模塊(220)中的所述的存儲(chǔ)管理包括管理網(wǎng)絡(luò)瀏覽器頁(yè)面緩存(490),作為請(qǐng)求隊(duì)列區(qū)域(491),存儲(chǔ)還沒有被服務(wù)的數(shù)據(jù)和命令,預(yù)處理數(shù)據(jù)區(qū)域(492),存儲(chǔ)必須被解釋的要輸出到顯示設(shè)備(612)的數(shù)據(jù),包括預(yù)先獲取的成批的超文本鏈接標(biāo)示語(yǔ)言文件,以及后處理區(qū)域(493),存儲(chǔ)已經(jīng)被解釋的要輸出到顯示設(shè)備(612)但是還沒有被發(fā)送到所述的顯示設(shè)備(612)的數(shù)據(jù)。11.一種使用自含式網(wǎng)絡(luò)瀏覽器(208)診斷和修復(fù)網(wǎng)絡(luò)計(jì)算機(jī)的方法,所述的網(wǎng)絡(luò)瀏覽器(208)存儲(chǔ)在PCBIOS中(212),所述方法包括由所述的網(wǎng)絡(luò)計(jì)算機(jī)執(zhí)行的一系列步驟,這些步驟包括初始化(504)交互連接到所述的網(wǎng)絡(luò)計(jì)算機(jī)的內(nèi)部和外部設(shè)備;本發(fā)明的特征有測(cè)試(508)以確定是否有瀏覽器觸發(fā)器被設(shè)置,所述的瀏覽器觸發(fā)器指出有故障發(fā)生;當(dāng)所述的瀏覽器觸發(fā)器被設(shè)置時(shí),則激活(524)所述的自含式網(wǎng)絡(luò)瀏覽器(208)而無(wú)須裝載全服務(wù)操作系統(tǒng);用所述的自含式網(wǎng)絡(luò)瀏覽器(208)連接(532)到遠(yuǎn)程服務(wù)器;裝載(536)一個(gè)或多個(gè)診斷接口文件;與所述的遠(yuǎn)程服務(wù)器交互來(lái)診斷(540)所述的故障;確定(544)是否能通過所述的遠(yuǎn)程服務(wù)器修復(fù)所述的故障;當(dāng)所述的故障是可修復(fù)的時(shí),修復(fù)(548)所述的故障;當(dāng)所述的故障不可修復(fù)時(shí),發(fā)送(552)通知以說(shuō)明所述的故障不可修復(fù)。12.根據(jù)權(quán)利要求11所述的方法,其中所述的修復(fù)(548)所述的故障的步驟包括通過網(wǎng)絡(luò)協(xié)議從所述的遠(yuǎn)程服務(wù)器下載可執(zhí)行代碼,所述網(wǎng)絡(luò)協(xié)議使用安全措施驗(yàn)證所述的可執(zhí)行修復(fù)代碼的真實(shí)性。全文摘要本發(fā)明提供一種帶有硬件診斷功能的自含式網(wǎng)絡(luò)瀏覽器,包括一計(jì)算機(jī)可讀存儲(chǔ)器用來(lái)永久性的存儲(chǔ)可執(zhí)行軟件模塊,所述的軟件模塊包括一設(shè)備驅(qū)動(dòng)程序模塊,用以初始化和測(cè)試一個(gè)或多個(gè)外圍設(shè)備;一實(shí)時(shí)內(nèi)核模塊,用以檢測(cè)核分發(fā)來(lái)自和到達(dá)外圍設(shè)備的數(shù)據(jù);一因特網(wǎng)協(xié)議模塊,用以處理與遠(yuǎn)程設(shè)備的網(wǎng)絡(luò)通信;一圖形窗口模塊,用以處理可視顯示數(shù)據(jù)和控制;一超文本鏈接標(biāo)示語(yǔ)言模塊,用以解釋超文本鏈接標(biāo)示語(yǔ)言文檔并通過所述的圖形窗口模塊來(lái)顯示。該網(wǎng)絡(luò)瀏覽器被用于修復(fù)連接在網(wǎng)絡(luò)上的計(jì)算機(jī)的外圍設(shè)備,從而避免迫使用戶人工診斷或解決故障。而且,該網(wǎng)絡(luò)瀏覽器在做診斷時(shí)消除了對(duì)傳統(tǒng)操作系統(tǒng)的嚴(yán)格依賴以及由此導(dǎo)致的對(duì)硬盤的依賴。文檔編號(hào)G06F11/22GK1538328SQ20041003733公開日2004年10月20日申請(qǐng)日期2000年6月20日優(yōu)先權(quán)日1999年11月24日發(fā)明者張榮文,約翰·K·李,榮·K·林,K李,ち申請(qǐng)人:雅勁科技公司