1. <tt id="5hhch"><source id="5hhch"></source></tt>
    1. <xmp id="5hhch"></xmp>

  2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

    <rp id="5hhch"></rp>
        <dfn id="5hhch"></dfn>

      1. 組件機(jī)制與操作系統(tǒng)的實(shí)現(xiàn)

        時間:2024-08-20 14:05:38 計算機(jī)畢業(yè)論文 我要投稿
        • 相關(guān)推薦

        組件機(jī)制與操作系統(tǒng)的實(shí)現(xiàn)

        摘要 本文介紹了一個操作系統(tǒng)開發(fā)平臺-OSKit,它提供了一套用于架構(gòu)操作系統(tǒng)內(nèi)核的庫函數(shù)和一些組件。它的設(shè)計目標(biāo)是降低進(jìn)入操作系統(tǒng)研究與開發(fā)領(lǐng)域的門檻。OSKit在設(shè)計時借用了COM的思想,把操作系統(tǒng)的各個部分設(shè)計成盡量獨(dú)立的組件,使開發(fā)者可以很方便地使用或替換這些組件來構(gòu)造自己的操作系統(tǒng)。

        關(guān)鍵字 組件 重用 操作系統(tǒng) OSKit

        1 引言
        當(dāng)前,操作系統(tǒng)的功能不斷擴(kuò)展,操作系統(tǒng)的類型呈現(xiàn)出多樣化的趨勢。一個小規(guī)模的開發(fā)小組已經(jīng)不可能完全從頭開始實(shí)現(xiàn)一個實(shí)用的操作系統(tǒng),而一般情況下,研究人員只對操作系統(tǒng)的一些特定領(lǐng)域感興趣,而對于另外一些元素,如啟動加載代碼、核心啟動代碼、設(shè)備驅(qū)動程序和內(nèi)存分配代碼等往往不感興趣,但是一個可運(yùn)行的原型系統(tǒng)又必須包含這些內(nèi)容。編寫這些基礎(chǔ)結(jié)構(gòu)延緩了操作系統(tǒng)研究項(xiàng)目的進(jìn)度,同時也增加了進(jìn)行操作系統(tǒng)研究的代價。為了解決這一問題,猶他大學(xué)的FLUX研究小組開發(fā)了OSKit,它提供了一個框架和一組模塊化的、具有簡單接口的庫以及一組清晰的、可重用的OS組件。OSKit可以用來構(gòu)建操作系統(tǒng)內(nèi)核、外層服務(wù)和其他核心OS功能模塊。OSKit提供了各種功能模塊,諸如簡單自舉,一個可用于內(nèi)核的最小化POSIX環(huán)境、與物理內(nèi)存和其約束一致的內(nèi)存管理、廣泛的調(diào)試支持,以及高層子系統(tǒng)如協(xié)議棧和文件系統(tǒng)。開發(fā)者可以根據(jù)自己的研究興趣或所要考慮的性能來使用這些模塊,或用他們自己的模塊來替代標(biāo)準(zhǔn)的OSKit模塊。
        OSKit公開了它內(nèi)部的實(shí)現(xiàn)細(xì)節(jié),允許用戶從成熟的操作系統(tǒng)中不加修改地提取代碼,然后通過一小部分經(jīng)過仔細(xì)設(shè)計的粘接代碼將它們合并到一起,隔離它們的依賴性,并輸出良好定義的接口。OSKit使用這一技術(shù)整合了許多穩(wěn)定而成熟的源代碼,包括設(shè)備驅(qū)動、文件系統(tǒng)、網(wǎng)絡(luò)協(xié)議等等。實(shí)踐表明,使用組件軟件架構(gòu)和重用技術(shù)會給操作系統(tǒng)實(shí)現(xiàn)領(lǐng)域帶來大的影響。
        2 組件技術(shù)簡介
        組件技術(shù)是一種較新的軟件開發(fā)技術(shù)。到目前為止,還難以確定組件技術(shù)的明確定義。比如,對組件技術(shù)的常見說法有以下這些:“二進(jìn)制軟件單元”、“任意場合可部署的軟件”、“特別適合第三方開發(fā)”和“規(guī)范定義的接口”等等。大致上可以這樣理解:所謂組件,其實(shí)就是一種可部署軟件的代碼包,其中包括某些可執(zhí)行模塊。組件單獨(dú)開發(fā)并作為軟件單元使用,它具有明確的接口,軟件就是通過這些接口調(diào)用組件所能提供的服務(wù),多種組件可以聯(lián)合起來構(gòu)成更大型的組件乃至直接建立整個系統(tǒng)。組件的實(shí)現(xiàn)必須支持一種或者多種其用戶所希望獲得的接口。實(shí)現(xiàn)組件并不一定需要采用面向?qū)ο笳Z言。為了構(gòu)造新應(yīng)用程序,軟件開發(fā)人員找出適當(dāng)?shù)慕M件,將這些組件加入到正在開發(fā)中的應(yīng)用程序,同時對應(yīng)用程序進(jìn)行測試并保證應(yīng)用程序的組裝工作按照預(yù)定的規(guī)劃正常進(jìn)行。采用組件技術(shù)能降低開發(fā)、測試和維護(hù)成本,提高可靠性和穩(wěn)定性。
        3 Oskit組件綜述
        OSKIT的組件庫提供了一般情況下更高層的功能,它通常只對外開放一些相關(guān)的公用調(diào)用接口。目標(biāo)系統(tǒng)通過OSKit的面向?qū)ο蟮腃OM接口來與這些組件進(jìn)行交互。以下幾節(jié)概述了OSKit所提供的組件。
        3. 1 引導(dǎo)程序
        大多數(shù)操作系統(tǒng)多有自身的啟動加載機(jī)制,彼此互不兼容。這種加載機(jī)制的多樣性并不是由于每個OS所要求的自舉服務(wù)不同而引起,而是由于構(gòu)建啟動加載器的特定方式造成的。因?yàn)閺牟僮飨到y(tǒng)研究的立場來看,啟動加載器是一個令人不敢興趣的領(lǐng)域,因此OS開發(fā)者通常進(jìn)行一個最小化、快捷的設(shè)計。由于設(shè)計理念和要求的輕微差別,每個啟動加載器都不適用于下一個OS。為了解決這個問題,OSKit直接支持多啟動標(biāo)準(zhǔn),這一標(biāo)準(zhǔn)是由幾個OS項(xiàng)目的成員共同設(shè)計的,它的目的是提供一個簡單而通用的啟動加載器與OS內(nèi)核間的接口,從而允許一個啟動加載器加載任何兼容的OS。
        在進(jìn)行操作系統(tǒng)研究時,多啟動標(biāo)準(zhǔn)非常有用,這其中的主要原因是啟動加載器在加載內(nèi)核自身的同時還具有加載附加文件或者啟動模塊的能力。這里的一個啟動模塊只是一個普通文件,啟動加載器不以任何方式解釋它,而僅僅把它隨同內(nèi)核映像一起加載到保留物理內(nèi)存塊中。在啟動內(nèi)核時,啟動加載器提供給內(nèi)核以下內(nèi)容:物理地址的列表、所有已加載的啟動模塊的大小,以及與每個模塊相聯(lián)系的由用戶定義的字符串。這些啟動模塊和與它們相聯(lián)系的用戶定義的字符串由內(nèi)核解釋。這樣做的目的是為了通過提供內(nèi)核啟動時需要的數(shù)據(jù),諸如初始化程序、設(shè)備驅(qū)動和文件系統(tǒng)服務(wù)器,來減輕內(nèi)核啟動的負(fù)擔(dān)。
        3.2核心支持庫
        OSKit核心支持庫的主要用途是讓客戶OS更容易訪問硬件設(shè)施。它包含了一個較大的實(shí)用函數(shù)和符號定義的集合,該集合對于管理模式代碼是非常具體的。與此相對應(yīng),OSKit的大多數(shù)其他庫在用戶模式代碼中通常很有用。和OSKit的其余部分所不同的是,多數(shù)核心支持代碼必須是針對特定系統(tǒng)結(jié)構(gòu)的,而這些特定機(jī)器的細(xì)節(jié)對客戶OS也是有用的。例如,在x86機(jī)器上,核心支持庫包含一些函數(shù),用來創(chuàng)建和操縱x86頁表和段寄存器。其他OSKit組件通常提供建立在這些低層機(jī)制上的與體系結(jié)構(gòu)無關(guān)的設(shè)施,但是為了提供最大的靈活性,與特定結(jié)構(gòu)相關(guān)的接口始終可以被訪問。
        OSKit核心支持庫在x86體系結(jié)構(gòu)上尤為重要,因?yàn)樵擉w系結(jié)構(gòu)的OS級編程環(huán)境特別復(fù)雜和模糊。核心支持庫仔細(xì)地設(shè)置了一個基本的32位執(zhí)行環(huán)境(為了與MS-DOS兼容,x86處理器通常以16位模式開始),初始化段和頁轉(zhuǎn)換表,安裝一個中斷向量表,并提供缺省的陷阱和中斷處理程序。當(dāng)然,客戶OS能夠修改或重載這些行為。然而,在缺省情況下,核心支持庫自動地做所有必要的工作,以便使處理器進(jìn)入一個方便的執(zhí)行環(huán)境,此時中斷、陷阱、調(diào)試以及其他標(biāo)準(zhǔn)設(shè)施已經(jīng)如預(yù)期的那樣開始工作。該庫在缺省情況下自動地定位所有隨內(nèi)核加載的啟動模塊,并保留它們所在的物理內(nèi)存。接下來,應(yīng)用程序可以很容易使用它們?蛻鬙S只需以標(biāo)準(zhǔn)C語言風(fēng)格提供一個main()函數(shù)。一切都設(shè)置好以后,內(nèi)核支持庫將用所有參數(shù)和由啟動加載器傳遞過來的環(huán)境變量來調(diào)用它。
        3.3內(nèi)存管理庫
        如同在一個標(biāo)準(zhǔn)C語言庫中實(shí)現(xiàn)的malloc()一樣,內(nèi)存管理代碼典型地用于用戶空間。通常并不適用于內(nèi)核。設(shè)備驅(qū)動常常需要分配特定類型的內(nèi)存,并伴隨具體的調(diào)整屬性。例如,對于內(nèi)建的DMA控制器只能訪問最初的16M物理內(nèi)存。為解決這些內(nèi)存管理問題,OSKit包含了兩個簡單而靈活的內(nèi)存管理庫:(1)基于隊(duì)列的內(nèi)存管理器(或稱LMM

        【組件機(jī)制與操作系統(tǒng)的實(shí)現(xiàn)】相關(guān)文章:

        基于COM技術(shù)的公式計算組件的開發(fā)與實(shí)現(xiàn)11-23

        TinyOS消息通訊機(jī)制以及TOSBase無線-串口通訊組件分析03-07

        試論思想道德建設(shè)的實(shí)現(xiàn)機(jī)制03-07

        在Windows系統(tǒng)中用VC 實(shí)現(xiàn)鉤子機(jī)制03-18

        基于μC/OS-II操作系統(tǒng)的任務(wù)調(diào)度機(jī)制03-04

        基于Vxworks實(shí)時操作系統(tǒng)的串口通信程序設(shè)計與實(shí)現(xiàn)03-18

        硬件密碼組件與軟件密碼組件的比較研究03-18

        基于LINUX操作系統(tǒng) 的防火墻技巧及其具體實(shí)現(xiàn)03-23

        分時操作系統(tǒng)思想在單片機(jī)編程中的實(shí)現(xiàn)03-19

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码

        1. <tt id="5hhch"><source id="5hhch"></source></tt>
          1. <xmp id="5hhch"></xmp>

        2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

          <rp id="5hhch"></rp>
              <dfn id="5hhch"></dfn>