OS Java CORBA COM+ Middleware XML&WebService Patterns ONE&NET P2P Development Database Download Doc操作系統理論的探索(之一)
(來(lái)源:http://www-900.ibm.com/developerWorks)
內容:
傳統定義操作協(xié)議等價(jià)定義進(jìn)一步分析新含義小結關(guān)于作者操作系統的定義 操作系統的定義是什么,它是否引起過(guò)你的注意,在此,將以全新的角度來(lái)分析這個(gè)古老而簡(jiǎn)單的定義,為你展示一個(gè)新的思維空間。通過(guò)引入操作協(xié)議的概念來(lái)分析操作系統的定義,并進(jìn)一步按用戶(hù)角度分析操作系統的需求,推導新的操作系統含義。作為整個(gè)系列的第一篇,本文從簡(jiǎn)單的操作系統定義入手進(jìn)行討論,所有的觀(guān)點(diǎn)都是一家之言,希望能激發(fā)大家對操作系統理論的興趣。
序言
隨著(zhù)開(kāi)發(fā)源代碼運動(dòng)的持續,越來(lái)越多的人都加入了操作系統代碼分析的大浪中,我也曾經(jīng)下海,被代碼中有很多妙的技巧吸引,不過(guò)在看過(guò)一段時(shí)間后,感覺(jué)如果只是一味地看代碼,最終的結果是即使開(kāi)發(fā)出新的操作系統仍舊是老模式的一個(gè)翻版。
源代碼的出現,對于我們這些計算機技術(shù)落后地區的程序員來(lái)講,提供了進(jìn)行操作系統設計的一個(gè)必要條件,設計的門(mén)檻降低了,使得多數程序員自己開(kāi)發(fā)一個(gè)簡(jiǎn)單的操作系統成為可能,但它僅是個(gè)必要條件,不是充分條件。它的出現本身不能改變我們的技術(shù)落后地位,最多是讓我們追趕上源代碼所達到的水平,想要超越,只能老老實(shí)實(shí)地進(jìn)行理論上的探索,源代碼是一個(gè)我們迅速縮短差距的工具。
因此我將重心轉移到了理論探索上,希望能夠分析出操作系統的發(fā)展方向,找到超越的突破口,然后再投入到現有代碼的分析中,目的是設計下一代操作系統的模型,現在尚處于理論的探索中。
由于水平有限,感覺(jué)難度很大,期望能得到更多的幫助,因此借這個(gè)系列的方式,描述我這段時(shí)間的思考,與大家交流。所寫(xiě)的觀(guān)點(diǎn)都是一家之言,肯定存在不少偏頗之處,懇請各位的指教。
計算機軟件分為系統軟件和應用軟件兩大類(lèi)
系統軟件用于管理計算機本身和應用程序
應用軟件是為滿(mǎn)足用戶(hù)特定需求而設計的軟件
操作系統是最基本的系統軟件,它和系統工具軟件構成了系統軟件
但給操作系統下定義是困難的,至今沒(méi)有一個(gè)能公認的統一說(shuō)法
以下列舉了現今操作系統教材中常見(jiàn)的幾種觀(guān)察操作系統的角度
自頂向下的角度,操作系統是對裸機的第一層軟件,是對機器的第一次擴展,為用戶(hù)提供了一臺與實(shí)際硬件等價(jià)的虛擬機 自底向上的角度,操作系統是資源管理,在相互競爭的程序之間有序地控制對處理器、存儲器以及其他I/O接口設備的分配 從軟件分類(lèi)角度看,操作系統是最基本的系統軟件,它控制著(zhù)計算機所有的資源并提供應用程序開(kāi)發(fā)的接口 從系統管理員角度看,操作系統合理地組織管理了計算機系統的工作流程,使之能為多個(gè)用戶(hù)提供安全高效的計算機資源共享 從程序員角度看(即從操作系統產(chǎn)生的角度),操作系統是將程序員從復雜的硬件控制中解脫出來(lái),并為軟件開(kāi)發(fā)者提供了一個(gè)虛擬機,從而能更方便的進(jìn)行程序設計 從一般用戶(hù)角度看,操作系統為他們提供了一個(gè)良好的交互界面,使得他們不必了解有關(guān)硬件和系統軟件的細節,就能方便地使用計算機 從硬件設計者看,操作系統為計算機系統功能擴展提供了支撐平臺,使硬件系統與應用軟件產(chǎn)生了相對獨立性,可以在一定范圍內對硬件模塊進(jìn)行升級和添加新硬件,而不會(huì )影響原先應用軟件
總的來(lái)講,傳統的操作系統定義如下:
操作系統是控制和管理計算機系統內各種硬件和軟件資源、合理有效地組織計算機系統的工作,為用戶(hù)提供一個(gè)使用方便可擴展的工作環(huán)境,從而起到連接計算機和用戶(hù)的接口作用
此定義是以操作系統的具體功能為基礎的定義方式
可以按如下示意圖來(lái)描述操作系統的在計算機系統中的位置
接口示意圖
按層次模型看是
在傳統定義方式中,操作系統和用戶(hù)的關(guān)系是被動(dòng)和主動(dòng)的關(guān)系,即用戶(hù)將自己對計算機的需求以過(guò)交互操作的方式命令操作系統完成,而操作系統是根據完成任務(wù)的需要分配資源,它僅有的主動(dòng)權就是在于如何分配與何時(shí)分配。
在此將這種對操作系統定義方式稱(chēng)為被動(dòng)式定義,從理論上認為操作系統是完全按用戶(hù)的要求來(lái)完成自己的工作。
操作協(xié)議的定義
為了進(jìn)一步分析操作系統的含義,引入一個(gè)新概念--操作協(xié)議
產(chǎn)品展現給使用者的是其操作接口,如同遙控器和軟件的用戶(hù)界面
為了讓用戶(hù)更方便使用產(chǎn)品,它會(huì )有一個(gè)使用說(shuō)明,這個(gè)說(shuō)明首先說(shuō)明了產(chǎn)品的各種操作接口的含義,然后說(shuō)明各種操作接口的限制,而用戶(hù)使用產(chǎn)品時(shí)必須遵守這種說(shuō)明,不然就不能正常使用該產(chǎn)品,甚至導致該產(chǎn)品的損壞或損壞了其他相關(guān)產(chǎn)品
這種說(shuō)明就是要求產(chǎn)品使用者遵守的操作協(xié)議,因此定義如下
操作協(xié)議的定義:
一種產(chǎn)品說(shuō)明,描述產(chǎn)品操作接口及其約束,并且要求產(chǎn)品使用者遵照說(shuō)明使用產(chǎn)品,而且只有按說(shuō)明進(jìn)行操作才能得到正確的結果,否則導致操作無(wú)效。
操作接口是產(chǎn)品的第一說(shuō)明,它描述了產(chǎn)品的基本功能,考慮的是單個(gè)接口使用參數的描述與操作結果的描述。
而操作協(xié)議是建立在操作接口之上的二次說(shuō)明,從產(chǎn)品的整體特性考慮的具體說(shuō)明,包含操作接口的說(shuō)明和使用操作接口之間的約束說(shuō)明。
操作協(xié)議的特點(diǎn)
操作協(xié)議只考慮產(chǎn)品的使用方式是否正確,不關(guān)心產(chǎn)品內部的實(shí)現細節,使用者只需根據操作協(xié)議使用產(chǎn)品得到需要的結果,不必考慮產(chǎn)品完成操作具體的過(guò)程,只對產(chǎn)品操作負責 產(chǎn)品使用者只能按照操作協(xié)議的說(shuō)明才能正確使用產(chǎn)品 對使用者違反操作協(xié)議的要求進(jìn)行操作導致的結果不負責,由使用者自己承擔
在分析操作系統中引入操作協(xié)議概念的基本原因是:
硬件接口說(shuō)明與軟件接口說(shuō)明都是一種操作協(xié)議,相對操作系統而言的,通過(guò)操作協(xié)議的概念可以將軟件和硬件兩種資源合并成一種概念
操作協(xié)議分類(lèi)
操作協(xié)議從定制者角度劃分可以分為單方定制和多方定制
單方的含義 -- 制造單個(gè)產(chǎn)品的個(gè)人或團體,即單個(gè)制造者
制造相同產(chǎn)品的生產(chǎn)群體,他們是相互競爭的產(chǎn)品生產(chǎn)者,可以是個(gè)人、小團體和企業(yè),這樣的生產(chǎn)者為以獨立制造者身份出現時(shí)是單方定制者,屬于單方范疇
單個(gè)產(chǎn)品的制造者有兩種含義:
單純的單個(gè)制造者 為在同類(lèi)產(chǎn)品競爭中生存,而由原來(lái)的競爭者組合成為單個(gè)同類(lèi)產(chǎn)品的制造者
單方定制是單個(gè)定制者以自身經(jīng)驗為基礎進(jìn)行的分析,而使用方在獲得實(shí)體并后只能按定制方定義的操作協(xié)議使用該實(shí)體。
通常這樣的操作協(xié)議是從相應產(chǎn)品獨立使用的角度出發(fā)的使用說(shuō)明,是引發(fā)市場(chǎng)競爭的最小單位,產(chǎn)品的市場(chǎng)競爭初期是以各種單方定制的操作協(xié)議競爭為主題的,而且技術(shù)的發(fā)展,是各種新單方定制的操作協(xié)議不斷涌現出現的動(dòng)力。
多方的含義 -- 是以合作為基礎的單方集合概念,這里的單方是指非同類(lèi)產(chǎn)品制造者,而是以生產(chǎn)鏈為聯(lián)系基礎的相關(guān)產(chǎn)品制造者構成的群體,他們各自的產(chǎn)品形成互補或為上下應用鏈的關(guān)系,是實(shí)質(zhì)上的合作群體而非競爭關(guān)系。
多方定制是多方協(xié)商后形成的一種合作方內部標準,按這樣的標準生產(chǎn)各自的產(chǎn)品,而這些產(chǎn)品組合使用是以這個(gè)多方定制的操作協(xié)議作為組合的標準。
通常這些多方定制的操作協(xié)議是以一種標準的名義出現,是市場(chǎng)長(cháng)期競爭導致的合作產(chǎn)物,總是有明確的產(chǎn)品鏈應用范疇,是一種產(chǎn)品之間的協(xié)議,隨著(zhù)市場(chǎng)的改變而同步變化。
單方定制的操作協(xié)議和多方定制的操作協(xié)議存在形式上的差異
單方定制的操作協(xié)議,考慮的是單個(gè)產(chǎn)品的范疇,操作協(xié)議說(shuō)明中只有一個(gè)主體就是產(chǎn)品本身 多方定制的操作協(xié)議,考慮的是產(chǎn)品鏈上所有產(chǎn)品的范疇,從設計一開(kāi)始就考慮上下游產(chǎn)品的接口組合問(wèn)題,因此操作協(xié)議說(shuō)明中的主體是整個(gè)產(chǎn)品鏈,或者以直接上下游關(guān)系的關(guān)聯(lián)產(chǎn)品為主體,即多個(gè)主體
一種操作協(xié)議既可以是單方定制協(xié)議,也可以是多方定制協(xié)議,差別在于考察的角度不同。
如JAVA語(yǔ)言,從其設計的出發(fā)點(diǎn)看是一種多方定制的操作協(xié)議,是一種行業(yè)標準,而從語(yǔ)言角度看,它就是一種單方定制的操作協(xié)議,因為它只是眾多計算機語(yǔ)言中的一種。
對于一件以市場(chǎng)交易為目的而制作的產(chǎn)品,即商品,它的操作協(xié)議,從其產(chǎn)生的那天開(kāi)始就是以成為行業(yè)標準作為其發(fā)展的目標(不管定制者自己是否意識到)。
在產(chǎn)品初期,沒(méi)有產(chǎn)生行業(yè)標準前,是以單方定制的操作協(xié)議競爭為主流,并在競爭中不斷完善各自的操作協(xié)議,或推出新的操作協(xié)議。
隨著(zhù)產(chǎn)品的競爭,操作協(xié)議的定制從無(wú)序開(kāi)始向有序轉變,即出現一個(gè)或幾個(gè)操作協(xié)議由于符合市場(chǎng)需求,逐漸成為業(yè)內的標準,使得整個(gè)產(chǎn)品鏈都進(jìn)入規范設計,即按某個(gè)標準進(jìn)行設計,這時(shí)的單方定制的操作協(xié)議業(yè)會(huì )因其遵守了某個(gè)標準,而成為事實(shí)上的多方定制的操作協(xié)議。
因此,當標準出現后,單方和多方的界限開(kāi)始模糊,因為在相同標準下定制的操作協(xié)議具有相容性。
隨著(zhù)技術(shù)的發(fā)展,標準會(huì )因技術(shù)的變化而被淘汰,這迫使操作協(xié)議不斷發(fā)展自己,或者徹底拋棄,制作全新的操作協(xié)議。
因此操作協(xié)議是一個(gè)動(dòng)態(tài)發(fā)展競爭的概念,操作協(xié)議是動(dòng)態(tài)協(xié)議,由市場(chǎng)機制來(lái)決定所制訂的操作協(xié)議是否合理,并通過(guò)市場(chǎng)反饋信息來(lái)修改完善操作協(xié)議。
操作系統是通過(guò)協(xié)調各種硬件調用和軟件調用來(lái)完成資源管理,自身也提供一個(gè)龐大的應用接口,因此使用操作協(xié)議來(lái)描述是可行的,而操作系統是一種不斷發(fā)展的系統軟件,所以引入操作協(xié)議概念可以更好地描述操作系統的發(fā)展過(guò)程
和使用者的關(guān)系
現在簡(jiǎn)要分析一下各種產(chǎn)品使用者和產(chǎn)品操作協(xié)議之間的關(guān)系
面對一種產(chǎn)品,用戶(hù)可分為三種:
產(chǎn)品制造者、參與操作協(xié)議定制的非產(chǎn)品制造方、一般用戶(hù)
分類(lèi)討論如下:
產(chǎn)品制造者與操作協(xié)議的關(guān)系
無(wú)論是單方定制還是多方定制的產(chǎn)品,對產(chǎn)品制造者來(lái)說(shuō),其對產(chǎn)品的內在結構和其操作方式形成的原理,有著(zhù)是最全面的了解,而且在實(shí)際情況中在操作協(xié)議中說(shuō)明只是公開(kāi)的操作形式,還有部分未公開(kāi)的操作協(xié)議,
如圖:
在這里存在一個(gè)產(chǎn)品制造者的技術(shù)程度,是產(chǎn)品制造人員的總體水平,這決定了產(chǎn)品與操作協(xié)議(包括公開(kāi)和隱含)之間的緊密度,以及產(chǎn)品與產(chǎn)品設計目標的緊密度,水平越低,緊密度越低,各個(gè)層次之間的信息存在的差異就越大,相對的制造者對產(chǎn)品的理解也就越有局限性。
即操作協(xié)議(包括公開(kāi)和隱含)的性能(對產(chǎn)品而言的使用性能)可按在制造者的總體水平衡量。
參與協(xié)議定制的非產(chǎn)品制作方的用戶(hù)和操作協(xié)議的關(guān)系
顯然,這里指的操作協(xié)議是多方定制的操作協(xié)議,這樣的用戶(hù)是該產(chǎn)品的上游或下游產(chǎn)品鏈上的產(chǎn)品制造者,他們參與了操作協(xié)議制定,而這樣的操作協(xié)議是兩者產(chǎn)品的組合操作協(xié)議,因此他們對操作協(xié)議有深入的了解,拿到產(chǎn)品后目的是為了與自己手中的其他相關(guān)產(chǎn)品進(jìn)行組合,這種組合是按照共同定制的操作協(xié)議來(lái)完成。
因此這樣的用戶(hù)對操作協(xié)議(產(chǎn)品公開(kāi)的部分)的理解是完全的,對產(chǎn)品的使用是完全按照操作協(xié)議(產(chǎn)品公開(kāi)的部分)進(jìn)行的,如圖:
這樣的操作協(xié)議的性能高低取決于多方定制中達成的一致性的程度,即多方的磨合度。
而這種用戶(hù)在面對單方定制的操作協(xié)議時(shí)和第三種用戶(hù)的待遇相同。
一般用戶(hù)和操作協(xié)議的關(guān)系
對于一般用戶(hù)來(lái)講,因為沒(méi)有參與制造或者協(xié)議的定制,在面對單方定制的操作協(xié)議和多方定制的操作協(xié)議時(shí),情況是等同的,他們對產(chǎn)品的了解是建立在對產(chǎn)品操作協(xié)議的理解程度。
即一般用戶(hù)得到產(chǎn)品和操作協(xié)議時(shí),首先做的事是理解操作協(xié)議,然后使用產(chǎn)品,對于沒(méi)有操作協(xié)議說(shuō)明的產(chǎn)品,用戶(hù)通過(guò)產(chǎn)品的外在表現來(lái)理解其操作,從實(shí)踐角度勾勒出操作協(xié)議的原貌。
這種理解在多數情況下是單向的理解(社會(huì )分工導致的結果),即使用產(chǎn)品的一方?jīng)]有機會(huì )和開(kāi)發(fā)產(chǎn)品者進(jìn)行深入交流,使得產(chǎn)品使用者徹底理解操作協(xié)議的內容。
作為產(chǎn)品制作者,總是把產(chǎn)品的操作協(xié)議詳細描述,而描述方式多數情況下是按自己的行業(yè)思考模式進(jìn)行的,因為產(chǎn)品就是這種思考模式的設計產(chǎn)物而使用者是從自己的思考模式入手進(jìn)行的分析,得出一個(gè)需要外部產(chǎn)品功能的需求,進(jìn)而找到了該類(lèi)產(chǎn)品的操作協(xié)議,進(jìn)行理解,但理解范圍總是在自己需要的那部分范圍中,即是產(chǎn)品操作協(xié)議的一個(gè)子集。
因此理解總是不完全的,而最先理解的部分必定是使用者最需要獲得的功能。
兩者之間的關(guān)系如圖:
(從上面的三種情況可以看出,每個(gè)層次或多或少都存在一定的信息丟失,這種情況將在《信息傳遞模型》中針對計算機的軟件結構中信息傳遞進(jìn)行詳細討論,在此就省略了,因為和操作系統定義的主題無(wú)直接關(guān)系)
對于操作協(xié)議中的隱含部分,在現實(shí)中很多,如介紹操作系統中未公開(kāi)的API和未公開(kāi)的CPU細節,這樣導致了不少內幕書(shū)籍的誕生。
但隱含部分在本文中無(wú)討論的意義,因此文中后面所指的操作協(xié)議均為公開(kāi)的部分。
由上面三種情況的分析可以得出操作協(xié)議的基本特性。
單方定制的操作協(xié)議是一種由用戶(hù)單方面理解的操作協(xié)議。
多方操作協(xié)議是所有參與定制方的共同理解,但對一般用戶(hù)來(lái)說(shuō)仍舊是單方定制的特性。
操作系統的等價(jià)定義
操作系統的本質(zhì)是管理,對硬件、應用軟件和用戶(hù)的操作的管理。
而硬件、軟件和用戶(hù)的相同點(diǎn)是"遵守操作協(xié)議方式",并且這些操作協(xié)議是以可程序化的協(xié)議說(shuō)明。
硬件的操作協(xié)議是硬件開(kāi)發(fā)者制定的。
操作系統的應用接口分為兩部分,一是將硬件協(xié)議轉化為軟件操作協(xié)議,二是操作系統為自身需要定制的操作協(xié)議。
應用軟件的操作協(xié)議,以操作系統的操作協(xié)議(系統接口)為基礎,實(shí)現特定應用功能,并以自定義的操作協(xié)議的方式將軟件使用方法展現。
用戶(hù)的操作是計算機系統中所有操作協(xié)議的綜合體現,因為他的每次操作都通過(guò)操作協(xié)議的層層處理達到各種相關(guān)資源,再將結果通過(guò)層層操作協(xié)議展現給用戶(hù)(注意:上述兩條操作協(xié)議運行線(xiàn)路通常是不同的)。
而操作系統的一個(gè)任務(wù)是有效地組織多道程序運行,這決定了,操作系統是所有操作協(xié)議的管理者。
由此可以給操作系統等同于傳統定義的等價(jià)定義:
操作系統是一組相關(guān)操作協(xié)議集合的管理器,管理的范疇包含自身定義的操作協(xié)議。
將資源進(jìn)行了等價(jià)變換,把處理的實(shí)際接口凸現。
按層次模型分析
操作系統通過(guò)對硬件操作協(xié)議的理解并作出相應軟件形式上的擴展 操作系統以自定義的操作協(xié)議形式提供各類(lèi)軟硬件資源的使用服務(wù) 用戶(hù)與應用程序通過(guò)使用操作系統定義的操作協(xié)議完成所需功能 操作系統通過(guò)要求用戶(hù)與應用程序遵守其操作協(xié)議的方式管理兩者 應用軟件定義的操作協(xié)議只對用戶(hù)與使用該操作協(xié)議的其他應用軟件具有約束力 每個(gè)層次(包括硬件)都具有自己的容錯機制(或多或少),用于解決其自定義的操作協(xié)議與被其使用的操作協(xié)議之間的可能誤差
操作系統的操作協(xié)議分析
現在按這個(gè)新的定義重新考察操作系統在計算機系統的位置。
由于操作協(xié)議存在單方定制和多方定制的差別,所以考察也得分兩個(gè)方向。
從單方定制操作協(xié)議角度分析,
如圖
由單方定制操作協(xié)議在計算機軟件系統中的特性:
操作協(xié)議的使用者,總是理解并使用操作協(xié)議的一部分,其使用目的是完成某種特定任務(wù),即以所使用的操作協(xié)議為基礎,整體上是進(jìn)行了一次邏輯擴展,如同操作系統對硬件層進(jìn)行擴展一樣,同樣是生成了一個(gè)虛擬機,只是此虛擬機的范疇只限于它的設計范圍,如果它的設計范圍和操作系統一樣的話(huà),它就自動(dòng)轉化為操作系統概念了。
所以在計算機層次模型中每增加一層軟件,就存在一次信息縮減和一次信息擴張,而且這樣的縮減和擴張屬于兩個(gè)不同的范疇,不能進(jìn)行信息互補,不能互補并不說(shuō)明信息丟失,因為每個(gè)層次都有它自身的任務(wù),信息丟失的概念應該是針對此任務(wù)而言的,如果是任務(wù)相關(guān)的信息在經(jīng)過(guò)這樣的一次縮減和一次擴張后丟失了,才算信息丟失。
而作為最終用戶(hù)是這種信息變化的最后承受者,計算機整體性能操作性能等同于用戶(hù)操作中感覺(jué)到的性能。
他每次操作后所能接受到的信息中的有效部分取決最接近他的那層軟件的信息丟失率,注意這是指他能接受到的全部信息,而對用戶(hù)來(lái)說(shuō),他需要的可能僅是一小部分,而這部分恰好未丟失,則對用戶(hù)來(lái)說(shuō)這次操作就是成功的,如果需要的是屬于丟失的,則按信息缺省率來(lái)計算這次操作對用戶(hù)的信息丟失率(具體的分析在《信息傳遞模型》中進(jìn)行)。
圖中的應用軟件雖然是一個(gè)整體,但中間仍舊可以分層次,層次之間的關(guān)系是產(chǎn)品組的關(guān)系,即上層產(chǎn)品是在對多個(gè)應用軟件的操作協(xié)議的理解之后,進(jìn)行功能擴展。
下面以一個(gè)簡(jiǎn)單的軟件應用結構分析,應用軟件D以應用軟件A、B、C為基礎,進(jìn)行開(kāi)發(fā)設計。
如圖所示:
這是個(gè)簡(jiǎn)單的應用軟件層次分析,其中下層的應用操作協(xié)議可以是操作系統提供的應用軟件的操作協(xié)議與用戶(hù)界面的操作協(xié)議。
現今操作系統用戶(hù)界面的操作協(xié)議是一種可編程的操作協(xié)議,允許應用軟件內部使用,因此圖中的應用軟件A、B、C可以為是操作系統的應用軟件接口或者用戶(hù)系統操作界面的子集。
從多方定制操作協(xié)議角度分析
多方定制操作協(xié)議的特性就是對組合的雙方是無(wú)信息丟失,因為所有模塊是按照標準連接的,如造成信息丟失,那唯一原因就是操作協(xié)議本身,而對最終用戶(hù)就如同單方定制的操作協(xié)議。
如圖所示:
基本和單方定制的操作協(xié)議相同,差別在于理解誤差的消除,正是這種理解范圍上的差異可以解釋現在各種軟件標準不斷出現的原因,它們能盡可能的降低信息傳遞中的理解誤差,多方定制的操作協(xié)議在硬件中的表現就是總線(xiàn)方式,軟件上就是"軟件總線(xiàn)",即各種標準(如組件概念的出現),這是經(jīng)歷長(cháng)期發(fā)展得到的現狀,是市場(chǎng)競爭的產(chǎn)物。
而對于一般用戶(hù),多方定制和單方定制沒(méi)有差別,唯一優(yōu)點(diǎn)是在于,用戶(hù)對各種上下游產(chǎn)品組裝中,有了很大的方便,因為很多的操作協(xié)議是一致的。
最終用戶(hù)和應用軟件之間也可以存在多方定制的操作協(xié)議,即軟件開(kāi)發(fā)商和用戶(hù)一起開(kāi)發(fā),但這樣的用戶(hù)是少數,絕大多數的用戶(hù)是單純的使用者。
同樣,對于應用軟件層,也可以按多方定制的操作協(xié)議進(jìn)行細分,其結構和單方定制的操作協(xié)議基本相同。
等價(jià)定義的特點(diǎn)
雖然是等價(jià)的定義,但基礎的概念不同,產(chǎn)生的結果也存在一定差異,操作協(xié)議的定義操作系統的方式,有如下特定:
體現操作系統的核心任務(wù)和本質(zhì)。
核心任務(wù)是管理。
本質(zhì)是對操作協(xié)議的管理。
屏蔽軟硬件的細節。
原有定義,將視線(xiàn)集中在具體細節上,使用操作協(xié)議的概念統一了軟件和硬件的差別,并提供了更清晰的接口關(guān)系。
直觀(guān)地表現了各層次虛擬機的產(chǎn)生。
在層次模型中,上層產(chǎn)品和下層產(chǎn)品的關(guān)系是建立在對操作協(xié)議的理解。
上層產(chǎn)品是通過(guò)對操作協(xié)議的部分或全部的使用來(lái)完成對下層產(chǎn)品功能的擴展。
明確了操作系統管理的資源。
傳統的定義方式,只是籠統的說(shuō)對資源的管理,雖然可以具體到處理器、存儲器以及I/O設備上,但沒(méi)有統一的描述形式。
按操作協(xié)議的概念,操作系統對軟件資源的管理就是其自定義的應用軟件使用的操作協(xié)議與用戶(hù)界面的操作協(xié)議。
而應用軟件和用戶(hù)是通過(guò)這些操作協(xié)議來(lái)接受操作系統的管理。
凸現用戶(hù)的感受。
用戶(hù)是整個(gè)計算機系統方案的最終承受者。
整個(gè)系統的性能好壞體現在用戶(hù)接觸到的最后一層應用軟件的操作協(xié)議和由操作系統提供的用戶(hù)界面的操作協(xié)議。
這就說(shuō)明軟件界面和操作系統界面對一般用戶(hù)的重要性,它們的好用與否,關(guān)系到用戶(hù)是否能接受這個(gè)整個(gè)系統,因此在現代操作系統設計中,系統界面的重要性越來(lái)越突出,直接關(guān)系到該操作系統的市場(chǎng),只通過(guò)應用軟件來(lái)滿(mǎn)足用戶(hù)需求已經(jīng)不夠,這點(diǎn)在現在的操作系統界面向圖形化發(fā)展的趨勢中逐步驗證。
前面的分析中最終用戶(hù)和操作系統的接觸是僅僅局限于操作系統提供的用戶(hù)界面上,這僅是一個(gè)方面,這段分析的重點(diǎn)是操作系統在資源管理中對用戶(hù)的重要性,但討論不涉及操作系統的內部細節,是概念討論。
是誰(shuí)的操作接口
在傳統定義中,操作系統的一個(gè)特點(diǎn)是為用戶(hù)提供一個(gè)操作更方便的計算機接口,這個(gè)定義方式中的用戶(hù)定義存在問(wèn)題。
計算機的用戶(hù)可以簡(jiǎn)單的分為三種:
計算機專(zhuān)家 :軟件的開(kāi)發(fā)人員
有基本技能的用戶(hù) :僅用于日常辦公打字、娛樂(lè )的用戶(hù)
根本不懂的用戶(hù) :希望使用電腦象看電視那樣簡(jiǎn)單的用戶(hù)
在這樣的劃分中能符合操作系統定義中用戶(hù)概念的只有計算機專(zhuān)家,即程序員,而其他用戶(hù)了解的僅是幾個(gè)最常辦公用軟件、操作口令或者是鼠標點(diǎn)擊的順序,對于操作系統的了解只是認識一個(gè)新名詞而已,直觀(guān)的感覺(jué)是眼花繚亂的圖案以及老是蹦出來(lái)嚇人的錯誤警告,僅此而已。
也就是說(shuō)現有操作系統的操作協(xié)議對一般用戶(hù)來(lái)講是一種難以理解和使用的說(shuō)明。
形成這種現象本質(zhì)就在于操作系統從一開(kāi)始就定位在程序員的使用范圍,而沒(méi)有考慮最一般的用戶(hù),而現在隨著(zhù)市場(chǎng)的壓力,使用計算機的多數是對計算機了解甚少的人,操作系統才不得不向一般使用者低頭,但這個(gè)低頭的速度慢得驚人。
如果用定義中"方便用戶(hù)使用的接口"還是能勉強搪塞過(guò)去,但從消息傳遞的角度看,操作系統的問(wèn)題就更大了。
一個(gè)簡(jiǎn)單的例子
舉如下一個(gè)事例進(jìn)行分析,它就來(lái)自于我們的日常生活,可體現使用者在現有計算機系統面前的弱勢地位。
假設有三個(gè)用戶(hù):計算機專(zhuān)家、有基本技能的用戶(hù)以及不懂電腦的用戶(hù)。
為他們提供一樣的工作環(huán)境,每人一臺正處于上網(wǎng)狀態(tài)的微機,電腦軟硬件配置相同,操作系統是圖形界面,帶鼠標,運行著(zhù)版本最新的殺毒軟件。
他們都從網(wǎng)上下載了一個(gè)小的應用軟件(對于專(zhuān)家和有基本技能的兩個(gè)人,是按興趣自己找的,而那位不懂電腦的人可在別人的幫助下進(jìn)行下載操作)
然后他們都點(diǎn)擊鼠標運行了那個(gè)軟件,按運行結果討論。
屏幕上一點(diǎn)反應都沒(méi)有,也沒(méi)有任何機器速度變慢的跡象。
除了專(zhuān)家,另兩個(gè)用戶(hù)的第一反應是,剛才的鼠標點(diǎn)擊動(dòng)作可能操作不規范,于是又重新點(diǎn)擊了一遍,還是同樣的結果,沒(méi)反應。這時(shí)不懂電腦的用戶(hù)就會(huì )放棄對它的興趣,而去進(jìn)行其他操作。對于有一定基本技能的用戶(hù),就會(huì )動(dòng)一下腦子,認為這是沒(méi)道理的,然后看看那個(gè)殺病毒的標志在合適位置上,就放心了,它沒(méi)報警就沒(méi)問(wèn)題,于是他也轉向其他地方,放棄對這個(gè)怪文件的操作或者刪除。而對于專(zhuān)家,會(huì )馬上意識到問(wèn)題的嚴重性,雖然殺毒軟件沒(méi)有報警,但它可能是個(gè)最新病毒,然后想想這臺電腦上有無(wú)重要的數據,想到這個(gè)程序可能會(huì )建立一個(gè)遠程連接竊取自己的數據,因為電腦在網(wǎng)上。因此,專(zhuān)家就會(huì )運行系統工具來(lái)逐個(gè)查找問(wèn)題的所在(當然現在最好將網(wǎng)線(xiàn)掐掉),最后發(fā)現沒(méi)有任何不正常的跡象,于是放心了一半,但幾天內還是會(huì )不安心,為自己這個(gè)不小心的運行暗自后悔(嚴重點(diǎn)就會(huì )對該軟件進(jìn)行解剖,進(jìn)行逆向工程),如果一直正常的話(huà),也會(huì )慢慢淡忘 ,把它當作一種惡作劇或設計有誤的程序。
屏幕上出現了預料中的畫(huà)面
這時(shí)只要殺毒軟件不報警,多數情況下連專(zhuān)家都會(huì )被麻痹,僅在專(zhuān)家是個(gè)高度敏感的人時(shí),才會(huì )懷疑這是否是個(gè)美麗的陷阱(這樣的專(zhuān)家活得肯定很累)。 屏幕上出現類(lèi)似病毒發(fā)作的癥狀
這時(shí)所有人都知道它是個(gè)惡意程序了。
這個(gè)例子說(shuō)明的就是一個(gè)問(wèn)題,從多數情況來(lái)看我們是很難從運行的外在表現來(lái)判斷出一個(gè)陌生程序是惡意的還是善意的,即使是專(zhuān)家,也最多是安裝上更多的安全軟件來(lái)防,即靠應用軟防止惡意程序的破壞,是否能防住專(zhuān)家自己也心里沒(méi)底。
原因就是用戶(hù)在電腦面前是處于信息觀(guān)察的弱勢地位。
而操作系統處于信息觀(guān)察的強勢地位,它很清楚它進(jìn)行了哪些和實(shí)際資源有關(guān)的操作,比如感染了其他文件,建立了一個(gè)遠程連接等,但現有的操作系統自身還不能區別正常操作與惡意操作的差別,這使得最有用的信息被操作系統浪費了
這是典型的信息不對稱(chēng)
消息不對稱(chēng)
引用經(jīng)濟學(xué)領(lǐng)域的消息不對稱(chēng)原理來(lái)解釋這種現象,分析用戶(hù)和操作系統之間的弱勢和強勢的關(guān)系,以及產(chǎn)生原因。
消息不對稱(chēng)的起因是控制所有重要資源的操作系統沒(méi)有提供完整的信息透明機制,而僅僅提供一些應用接口,希望應用程序通過(guò)這些接口將信息展現給用戶(hù),而應用程序對操作系統進(jìn)行監視又是困難的,因為它不知到操作系統內部的工作信息,所以信息的展現是局部的,不徹底的,由此導致用戶(hù)接受到的信息是片面的。
這個(gè)問(wèn)題從操作系統的定義中就能清楚的看到這個(gè)缺憾,一直以來(lái)都認為操作系統不必為這種安全問(wèn)題負責。
信息運行的主體操作系統只是在局部資源安全性(如互斥、死鎖)上進(jìn)行了保護,沒(méi)有對用戶(hù)這個(gè)最終用戶(hù)起到安全防范的作用,導致了現在防止病毒入侵的方式還停留在被動(dòng)反應的階段。
而作為一般用戶(hù),面對的屏幕時(shí),能得到的信息,是無(wú)法作出正確判斷的,但深入檢查又是這些用戶(hù)能力之外的工作。專(zhuān)家的技能在這方面也是同樣的受限制,因為基本是事后處理,有針對的及時(shí)信息總是非常的有限。對于進(jìn)行安全維護的應用軟件,它們能防住一般的惡意軟件,但如果是操作系統本身的后門(mén)導致的問(wèn)題,它們也沒(méi)辦法,因為控制權在操作系統中所以從獲取消息的方式來(lái)看,用戶(hù)是弱勢群體。
所有的信息都是由操作系統來(lái)掌握的,雖然它自身并不理解這些信息的重要性,但所有的資源都是它管理,這導致了操作系統的強勢地位,而實(shí)際這種強勢地位是操作系統設計者們強勢地位的體現。
但即使是操作系統設計者在一個(gè)正式版本面前同樣也是處于弱勢地位,因為他在設計的時(shí)候沒(méi)有使用這種強勢地位為最終用戶(hù)認真地考慮。
說(shuō)的嚴重點(diǎn)是一種設計失職,但不能怪他們,他們遵守了傳統的操作系統定義,強調的是操作系統為用戶(hù)提供一個(gè)方便使用的擴展平臺,它的職責是保證資源安全分配,而不必考慮申請資源的對象是否有惡意。
從資源角度講,用戶(hù)是這樣的一種資源,他們通過(guò)接受輸出消息、輸入操作而成為一種受計算機系統約束的一種資源,也就是被操作系統管理的一種特殊資源。
如圖:
在此圖中,對操作系統而言,用戶(hù)是一種具有輸入與反饋的智能外設,是一種受自己管理的資源,而且僅是一種不嚴格的管理,未進(jìn)行合法操作和非法操作(包括合法用戶(hù)的誤操作)的區分,這樣的結果使得一般用戶(hù)的弱勢地位得到進(jìn)一步的加強。
從操作協(xié)議的角度分析就是,現在的操作系統管理體制僅從操作協(xié)議的角度將所有申請資源操作的程序都一視同仁,即使它是在用戶(hù)未知的情況下進(jìn)行了重要文件的刪除,理由是不能區分,其實(shí)質(zhì)是操作系統自定義的操作協(xié)議不完善,對自己提供的API 沒(méi)有進(jìn)行完善地約束管理。
這預示著(zhù)操作協(xié)議的一個(gè)發(fā)展方向,也是現代操作系統一直努力的方向,從操作系統層開(kāi)始建立整個(gè)軟件體系的安全體制,往此方向發(fā)展的動(dòng)力是信息透明的需要,是用戶(hù)改變弱勢地位的壓力。
改變信息不對稱(chēng)的現狀是操作系統設計者進(jìn)行安全體制設計中必須解決的課題
如何才能改變用戶(hù)的弱勢地位呢?
人,不具有計算機那樣高速機械性的精確運算能力,也沒(méi)有計算機那樣強大的存儲功能,唯一的優(yōu)勢是善于使用工具和邏輯思維。
使用計算機的用戶(hù)處于不同的分工,思維方式不同,強求他們都具有分析計算機軟件的邏輯思維能力是不現實(shí)的。
而工具的使用,尤其是計算機中系統工具的使用,要求掌握較高的計算機領(lǐng)域知識,并非一般用戶(hù)所希望去承受的,也不應當由他們來(lái)承受(操作系統+安全防御工具是現在的常用模式)。
唯一應該承受的團體是操作系統設計者,他們由于操作系統具有的強勢地位,而自動(dòng)具備了設計上的強勢地位,關(guān)鍵是設計者在設計中是從用戶(hù)角度考慮還是單純的從操作系統自身的技術(shù)角度考慮。
從操作系統自身角度看,穩定是最重要的,然后是速度,重點(diǎn)是控制資源,以及被人控制,能被設計者從外部控制,但能控制它的是專(zhuān)業(yè)人員。
從一般用戶(hù)角度,安全、穩定、速度一個(gè)都不能缺,無(wú)需自己動(dòng)手控制,要做的是享受安全穩定快速的操作系統,而不是費力的設置操作系統(也沒(méi)有能力控制),只需關(guān)心自己需要完成的那些和自己業(yè)務(wù)相關(guān)的工作(多數是基于軟件形式的傳業(yè)務(wù))。
要改變用戶(hù)的弱勢地位,就應當在設計中更多的從用戶(hù)角度考慮問(wèn)題
由此,對于操作系統應添加新的含義
提供自動(dòng)保護的功能 構成一個(gè)自封閉系統 僅對用戶(hù)負責
從操作協(xié)議的角度觀(guān)察,就是要求操作系統自定義的應用接口以一種封閉結構為基礎的系統出口,且是一種自約束接口。
為用戶(hù)提供了一個(gè)便于使用的計算機是不夠的,應當加上,為用戶(hù)提供自動(dòng)的保護,才算完整。
這種保護,并不是指現有的用戶(hù)口令保護方式,或者是建立在操作系統之上的外部保護層,而是一個(gè)智能化的自動(dòng)保護機制,因為口令并不是必要的,如手機內操作系統的安全問(wèn)題并不是口令問(wèn)題能解決的,而建立在外部的保護軟件無(wú)法抵擋內部惡性程序的攻擊,真正有效的保護應當是在資源分配和處理階段的保護。
把操作系統設計成一個(gè)自封閉的系統并不是說(shuō)它不再接受外部的應用軟件,而是主動(dòng)識別應用軟件的安全性。以及在系統升級時(shí),判斷出為其增加的功能代碼中是否有陷阱,原因是今后網(wǎng)上升級是一個(gè)趨勢,作為操作系統有理由懷疑一切外來(lái)的將改變它自身的代碼(一種懷疑主義的風(fēng)格)。
僅對用戶(hù)負責,是指合法用戶(hù)對其資源的完全控制權利,這種負責主要是針對個(gè)人電腦的用戶(hù),而他們多數并非是計算機專(zhuān)家,因此首先得保證操作系統中不應有設計者留下的后門(mén),要達到這個(gè)目標,設計必須以公開(kāi)源碼的形式完成,因為在公開(kāi)的代碼中沒(méi)有人愿意留下把柄讓眾人檢查,然后就是前面的兩點(diǎn),自動(dòng)保護功能和自封閉形式,來(lái)幫助用戶(hù)完成任務(wù),并能配合有能力的用戶(hù)控制資源。
此三種新含義將操作系統從原先的被動(dòng)地位提升至主動(dòng)位置,把用戶(hù)作為一種需要保護的資源,這樣似乎進(jìn)一步加深了計算機對用戶(hù)的控制,實(shí)則是進(jìn)一步解放了用戶(hù),使其安心完成自己的工作,而不必象如今那樣,備受各種超出他們知識范圍的錯誤所產(chǎn)生的折磨
因此添加新含義后的操作系統定義可稱(chēng)為主動(dòng)式定義
此時(shí)操作系統的層次模型將變化為
顯然,它已經(jīng)不在是一個(gè)簡(jiǎn)單的層次結構了,它的中心是將用戶(hù)作為一種可管理的資源,加以保護,模型強調的是主動(dòng)保護形式,而不是傳統層次結構中的被動(dòng)調用方式。
對于操作系統設計來(lái)說(shuō),要達到這些目標,進(jìn)行操作系統智能化的分析是一個(gè)關(guān)鍵步驟,而智能化是本系列的核心問(wèn)題。
通過(guò)對操作系統定義的討論,分析傳統定義中的不足,以及操作系統在整個(gè)計算機系統中的地位,使用操作協(xié)議的概念來(lái)展現操作系統和其他軟硬件模塊之間的連接關(guān)系 ,強調了從用戶(hù)使用角度分析操作系統的重要性,并引入析操作系統的新含義,展現今后操作系統的發(fā)展方向。
操作系統是一個(gè)不斷發(fā)展的概念,希望能通過(guò)簡(jiǎn)單的定義分析,打開(kāi)一條探索之路。
系統智能化是未來(lái)發(fā)展中一個(gè)很重要的過(guò)程,也是本系列討論的核心--如何智能化操作系統
后續系列的分析步驟是:
從操作系統的發(fā)展來(lái)說(shuō)明智能化的必然性
為操作系統智能化進(jìn)行的模型結構上的探索
智能化的前期準備--參數化
智能化的原型--操作系統的數學(xué)模型
分析現有硬件結構的不足,構造整體的智能化結構--"一體化"系統
我將自己定位于一個(gè)都市的隱居者,現在主要的考察范圍是操作系統的理論,極其相關(guān)理論(如開(kāi)發(fā)工具設計的理論),在此獻上這幾年的思考心得,與大家分享,希望能結交各路高手,共同探討。武漢GNU/Linux自由軟件協(xié)會(huì )的論壇是我常去的地方(
http://www.wuhan.clinux.org),那里有我很多的最原始想法,可以和大家深入討論各種問(wèn)題,另外我的郵箱是:
needdream@sina.com 。真心的期待郵箱中總是有新的信件。
© 2006 Huihoo