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. 簡(jiǎn)析組件機(jī)制和操作系統(tǒng)的實(shí)現(xiàn)

        時(shí)間:2022-11-17 11:23:43 計(jì)算機(jī) 我要投稿
        • 相關(guān)推薦

        簡(jiǎn)析組件機(jī)制和操作系統(tǒng)的實(shí)現(xiàn)

          組件技術(shù)是一種較新的軟件開發(fā)技術(shù),那么,怎樣淺析組件機(jī)制和操作系統(tǒng)的實(shí)現(xiàn)?

          1 引言

          當(dāng)前,操作系統(tǒng)的功能不斷擴(kuò)展,操作系統(tǒng)的類型呈現(xiàn)出多樣化的趨向。一個(gè)小規(guī)模的開發(fā)小組已經(jīng)不可能完全從頭開始實(shí)現(xiàn)一個(gè)實(shí)用的操作系統(tǒng),而一般情況下,探究人員只對(duì)操作系統(tǒng)的一些特定領(lǐng)域感喜好,而對(duì)于另外一些元素,如啟動(dòng)加載代碼、核心啟動(dòng)代碼、設(shè)備驅(qū)動(dòng)程序和內(nèi)存分配代碼等往往不感喜好,但是一個(gè)可運(yùn)行的原型系統(tǒng)又必須包含這些內(nèi)容。編寫這些基礎(chǔ)結(jié)構(gòu)延緩了操作系統(tǒng)探究項(xiàng)目的進(jìn)度,同時(shí)也增加了進(jìn)行操作系統(tǒng)探究的代價(jià)。為了解決這一新問題,猶他大學(xué)的flux探究小組開發(fā)了oskit,它提供了一個(gè)框架和一組模塊化的、具有簡(jiǎn)單接口的庫以及一組清楚的、可重用的os組件。oskit可以用來構(gòu)建操作系統(tǒng)內(nèi)核、外層服務(wù)和其他核心os功能模塊。oskit提供了各種功能模塊,諸如簡(jiǎn)單自舉,一個(gè)可用于內(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é),答應(yīng)用戶從成熟的操作系統(tǒng)中不加修改地提取代碼,然后通過一小部分經(jīng)過仔細(xì)設(shè)計(jì)的粘接代碼將它們合并到一起,隔離它們的依靠性,并輸出良好定義的接口。oskit使用這一技術(shù)整合了許多穩(wěn)定而成熟的源代碼,包括設(shè)備驅(qū)動(dòng)、文件系統(tǒng)、網(wǎng)絡(luò)協(xié)議等等。實(shí)踐表明,使用組件軟件架構(gòu)和重用技術(shù)會(huì)給操作系統(tǒng)實(shí)現(xiàn)領(lǐng)域帶來大的影響。

          2 組件技術(shù)簡(jiǎn)介

          組件技術(shù)是一種較新的軟件開發(fā)技術(shù)。到目前為止,還難以確定組件技術(shù)的明確定義。比如,對(duì)組件技術(shù)的常見說法有以下這些摘要:“二進(jìn)制軟件單元”、“任意場(chǎng)合可部署的軟件”、“非凡適合第三方開發(fā)”和“規(guī)范定義的接口”等等。大致上可以這樣理解摘要:所謂組件,其實(shí)就是一種可部署軟件的代碼包,其中包括某些可執(zhí)行模塊。組件單獨(dú)開發(fā)并作為軟件單元使用,它具有明確的接口,軟件就是通過這些接口調(diào)用組件所能提供的服務(wù),多種組件可以聯(lián)合起來構(gòu)成更大型的組件乃至直接建立整個(gè)系統(tǒng)。組件的實(shí)現(xiàn)必須支持一種或者多種其用戶所希望獲得的接口。實(shí)現(xiàn)組件并不一定需要采用面向?qū)ο笳Z言。為了構(gòu)造新應(yīng)用程序,軟件開發(fā)人員找出適當(dāng)?shù)慕M件,將這些組件加入到正在開發(fā)中的應(yīng)用程序,同時(shí)對(duì)應(yīng)用程序進(jìn)行測(cè)試并保證應(yīng)用程序的組裝工作按照預(yù)定的規(guī)劃正常進(jìn)行。采用組件技術(shù)能降低開發(fā)、測(cè)試和維護(hù)成本,提高可靠性和穩(wěn)定性。

          3 oskit組件綜述

          oskit的組件庫提供了一般情況下更高層的功能,它通常只對(duì)外開放一些相關(guān)的公用調(diào)用接口。目標(biāo)系統(tǒng)通過oskit的面向?qū)ο蟮腸om接口來和這些組件進(jìn)行交互。以下幾節(jié)概述了oskit所提供的組件。

          3. 1 引導(dǎo)程序

          大多數(shù)操作系統(tǒng)多有自身的啟動(dòng)加載機(jī)制,彼此互不兼容。這種加載機(jī)制的多樣性并不是由于每個(gè)os所要求的自舉服務(wù)不同而引起,而是由于構(gòu)建啟動(dòng)加載器的特定方式造成的。因?yàn)閺牟僮飨到y(tǒng)探究的立場(chǎng)來看,啟動(dòng)加載器是一個(gè)令人不敢喜好的領(lǐng)域,因此os開發(fā)者通常進(jìn)行一個(gè)最小化、快捷的設(shè)計(jì)。由于設(shè)計(jì)理念和要求的稍微差別,每個(gè)啟動(dòng)加載器都不適用于下一個(gè)os。為了解決這個(gè)新問題,oskit直接支持多啟動(dòng)標(biāo)準(zhǔn),這一標(biāo)準(zhǔn)是由幾個(gè)os項(xiàng)目的成員共同設(shè)計(jì)的,它的目的是提供一個(gè)簡(jiǎn)單而通用的啟動(dòng)加載器和os內(nèi)核間的接口,從而答應(yīng)一個(gè)啟動(dòng)加載器加載任何兼容的os。

          在進(jìn)行操作系統(tǒng)探究時(shí),多啟動(dòng)標(biāo)準(zhǔn)非常有用,這其中的主要原因是啟動(dòng)加載器在加載內(nèi)核自身的同時(shí)還具有加載附加文件或者啟動(dòng)模塊的能力。這里的一個(gè)啟動(dòng)模塊只是一個(gè)普通文件,啟動(dòng)加載器不以任何方式解釋它,而僅僅把它隨同內(nèi)核映像一起加載到保留物理內(nèi)存塊中。在啟動(dòng)內(nèi)核時(shí),啟動(dòng)加載器提供給內(nèi)核以下內(nèi)容摘要:物理地址的列表、所有已加載的啟動(dòng)模塊的大小,以及和每個(gè)模塊相聯(lián)系的由用戶定義的字符串。這些啟動(dòng)模塊和和它們相聯(lián)系的用戶定義的字符串由內(nèi)核解釋。這樣做的目的是為了通過提供內(nèi)核啟動(dòng)時(shí)需要的數(shù)據(jù),諸如初始化程序、設(shè)備驅(qū)動(dòng)和文件系統(tǒng)服務(wù)器,來減輕內(nèi)核啟動(dòng)的負(fù)擔(dān)。

          3.2核心支持庫

          oskit核心支持庫的主要用途是讓客戶os更輕易訪問硬件設(shè)施。它包含了一個(gè)較大的實(shí)用函數(shù)和符號(hào)定義的集合,該集合對(duì)于管理模式代碼是非常具體的。和此相對(duì)應(yīng),oskit的大多數(shù)其他庫在用戶模式代碼中通常很有用。和oskit的其余部分所不同的是,多數(shù)核心支持代碼必須是針對(duì)特定系統(tǒng)結(jié)構(gòu)的,而這些特定機(jī)器的細(xì)節(jié)對(duì)客戶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級(jí)編程環(huán)境非凡復(fù)雜和模糊。核心支持庫仔細(xì)地設(shè)置了一個(gè)基本的32位執(zhí)行環(huán)境(為了和ms-dos兼容,x86處理器通常以16位模式開始),初始化段和頁轉(zhuǎn)換表,安裝一個(gè)中斷向量表,并提供缺省的陷阱和中斷處理程序。當(dāng)然,客戶os能夠修改或重載這些行為。然而,在缺省情況下,核心支持庫自動(dòng)地做所有必要的工作,以便使處理器進(jìn)入一個(gè)方便的執(zhí)行環(huán)境,此時(shí)中斷、陷阱、調(diào)試以及其他標(biāo)準(zhǔn)設(shè)施已經(jīng)如預(yù)期的那樣開始工作。該庫在缺省情況下自動(dòng)地定位所有隨內(nèi)核加載的啟動(dòng)模塊,并保留它們所在的物理內(nèi)存。接下來,應(yīng)用程序可以很輕易使用它們。客戶os只需以標(biāo)準(zhǔn)c語言風(fēng)格提供一個(gè)main()函數(shù)。一切都設(shè)置好以后,內(nèi)核支持庫將用所有參數(shù)和由啟動(dòng)加載器傳遞過來的環(huán)境變量來調(diào)用它。

          3.3內(nèi)存管理庫

          如同在一個(gè)標(biāo)準(zhǔn)c語言庫中實(shí)現(xiàn)的malloc()一樣,內(nèi)存管理代碼典型地用于用戶空間。通常并不適用于內(nèi)核。設(shè)備驅(qū)動(dòng)經(jīng)常需要分配特定類型的內(nèi)存,并伴隨具體的調(diào)整屬性。例如,對(duì)于內(nèi)建的dma控制器只能訪問最初的16m物理內(nèi)存。為解決這些內(nèi)存管理新問題,oskit包含了兩個(gè)簡(jiǎn)單而靈活的內(nèi)存管理庫摘要:(1)基于隊(duì)列的內(nèi)存管理器(或稱lmm),它提供了功能強(qiáng)大且高效的原語來進(jìn)行分配管理,并支持在一個(gè)池中管理多種類型的內(nèi)存。(2)地址映射管理器(或稱amm)被設(shè)計(jì)用來管理不必直接映射到物理內(nèi)存或虛擬內(nèi)存的地址空間,它對(duì)os的其他方面提供了類似的支持,諸如進(jìn)程地址空間、分頁、空閑塊或ipc名字空間的管理。盡管這些庫可以很輕易地應(yīng)用在用戶空間,但實(shí)際上它們是被非凡設(shè)計(jì)用來滿足os內(nèi)核的需求。

          3.4 最小c語言庫

          成熟的os內(nèi)核一般都包含著相當(dāng)數(shù)量的僅僅用來重新實(shí)現(xiàn)基本的c語言庫函數(shù)如printf()和malloc()的代碼。和此形成對(duì)比的是,oskit提供了一個(gè)最小化c語言函數(shù)庫,它圍繞著最小化依靠性而不是最大化函數(shù)性和性能的原則來設(shè)計(jì)。

          3.5調(diào)試支持

          oskit的一個(gè)最實(shí)用的好處是摘要:給定一個(gè)適當(dāng)?shù)挠布O(shè)置,它馬上就能提供給os開發(fā)者一個(gè)完全源代碼級(jí)的內(nèi)核調(diào)試環(huán)境。oskit內(nèi)核支持庫包括一個(gè)可用于gnu調(diào)試器(gdb)的串行存根模塊,它在客戶os環(huán)境中處理陷阱,并使用gdb的標(biāo)準(zhǔn)遠(yuǎn)程調(diào)試協(xié)議通過一個(gè)串行程序和運(yùn)行在另一臺(tái)機(jī)器上的gdb通信。甚至當(dāng)客戶機(jī)os執(zhí)行自己的陷阱處理時(shí),oskit的gdb存根模塊也是可用的。假如客戶os提供適當(dāng)?shù)你^子,它甚至支持多線程調(diào)試。除了基本的調(diào)試器支持,oskit也提供了一個(gè)內(nèi)存分配調(diào)試庫,它可以跟蹤內(nèi)存分配并檢測(cè)一般的錯(cuò)誤,如緩沖區(qū)溢出和釋放已釋放的內(nèi)存。這個(gè)庫提供了和許多普通應(yīng)用程序調(diào)試器相似的功能性,所不同的是它運(yùn)行在由oskit提供的最小內(nèi)核環(huán)境中

          3.6 設(shè)備驅(qū)動(dòng)支持

          在os開發(fā)和維護(hù)中最艱巨的一個(gè)任務(wù)是支持多種多樣的i/o硬件。這些復(fù)雜的設(shè)備常會(huì)含有潛在的錯(cuò)誤,而新硬件的發(fā)布又經(jīng)常伴隨著不兼容的軟件接口。由于這些原因,oskit采用了為現(xiàn)有內(nèi)核開發(fā)的穩(wěn)定的、經(jīng)過充分測(cè)試的驅(qū)動(dòng)程序。oskit使用了一種封裝技術(shù),將現(xiàn)有的驅(qū)動(dòng)程序代碼基本上未加修改地合并到oskit中。這些現(xiàn)有的驅(qū)動(dòng)程序被一個(gè)oskit粘結(jié)代碼層所包裝,從而使得這些驅(qū)動(dòng)程序可以在和開發(fā)它們的環(huán)境完全不同的環(huán)境中工作。目前,來自linux的大多數(shù)以太網(wǎng)卡、scsi和ide磁盤的設(shè)備驅(qū)動(dòng)程序被包括進(jìn)來,總數(shù)超過了五十種。用同樣的方式,來自freebsd的八個(gè)字符設(shè)備驅(qū)動(dòng)程序也被包含了進(jìn)來,它們支持標(biāo)準(zhǔn)pc控制臺(tái)和串口及不同的多串口板。由于oskit把這些驅(qū)動(dòng)仔細(xì)地進(jìn)行了包裝,freebsd驅(qū)動(dòng)程序可以和linux驅(qū)動(dòng)程序一起工作。

          3.7 協(xié)議棧

          oskit提供了一個(gè)完整的tcp/ip網(wǎng)絡(luò)協(xié)議棧。如同驅(qū)動(dòng)程序一樣,有關(guān)網(wǎng)絡(luò)的代碼也可以通過封裝機(jī)制被合并進(jìn)來。oskit當(dāng)前可以從linux中獲取網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序,它們是pc平臺(tái)可獲得的最大的免費(fèi)資源。oskit的網(wǎng)絡(luò)組件繼續(xù)于freebsd4.4,它通常被認(rèn)為具有更多成熟的網(wǎng)絡(luò)協(xié)議。這顯示了使用封裝機(jī)制將現(xiàn)有軟件包裝成靈活的組件的第二個(gè)優(yōu)點(diǎn)摘要:即從不同的資源中獲取最好的組件,并讓它們一起被使用。

          3.8文件系統(tǒng)

          通過使用封裝技術(shù),oskit吸收了netbsd的基于磁盤的文件系統(tǒng)代碼。netbsd之所以被選擇為首要資源庫,是因?yàn)樵诳捎玫南到y(tǒng)中,它的文件系統(tǒng)代碼被最清楚地分離了出來,而freebsd和linux的文件系統(tǒng)和它們的虛擬內(nèi)存系統(tǒng)結(jié)合的更緊密。當(dāng)前,oskit也把linux文件系統(tǒng)合并了進(jìn)來,以便能夠支持多種類型的文件系統(tǒng)格式,如windows95、os/2和system v的文件系統(tǒng)格式等等。

          oskit文件系統(tǒng)輸出的com接口類似于許多unix文件系統(tǒng)所使用的內(nèi)部vfs接口。這些接口具有很好的粒度,使我們可以不必接觸oskit文件系統(tǒng)的內(nèi)部。例如,oskit接口只接受簡(jiǎn)單的路徑名組件,答應(yīng)平安封裝的代碼執(zhí)行適當(dāng)?shù)脑L問許可檢查。

          4 oskit的目前狀況

          自從在1996年6月發(fā)布了oskit的第一個(gè)公開發(fā)行版以來,oskit已經(jīng)更新了多次,每次更新都增加了一些算法,并修正了一些錯(cuò)誤。最新的發(fā)行版是2002年3月的版本。由此可見,oskit一直處于操作系統(tǒng)開發(fā)平臺(tái)的前沿,其自身也在不斷完善和發(fā)展。

          5 結(jié)論

          作為一個(gè)操作系統(tǒng)探究和開發(fā)的平臺(tái),oskit大大減輕了操作系統(tǒng)探究和開發(fā)者的負(fù)擔(dān)。它可以讓開發(fā)人員避開復(fù)雜的底層,而把喜好集中和他們所感喜好的領(lǐng)域。開發(fā)者可以用自己編寫的組件來取代oskit中的部分組件,以滿足自己特定的需要,從而豐富了操作系統(tǒng)的應(yīng)用層。總之,oskit滿足了實(shí)際客戶系統(tǒng)的需求,有助于操作系統(tǒng)的探究和開發(fā)。

          參考文獻(xiàn)

          (1) 湯海京 基于面向?qū)ο蟛僮飨到y(tǒng)開發(fā)平臺(tái)(oskit)的分析和程序設(shè)計(jì)

          (2) michael hohmuth using the oskit as a base for l4 applications

          (3) bryan ford kevin van maren jay lepreau stephen clawson bart robinson jeff turne _ the flux os toolkit摘要: reusable components for os implementation

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

        簡(jiǎn)析連帶責(zé)任08-15

        簡(jiǎn)析白居易的諷喻詩04-25

        蘇軾詞成就簡(jiǎn)析05-21

        簡(jiǎn)析蘇軾詞的思想內(nèi)容和藝術(shù)特色論文04-29

        簡(jiǎn)析高校設(shè)備維修經(jīng)費(fèi)預(yù)算08-21

        簡(jiǎn)析優(yōu)秀大學(xué)生的學(xué)習(xí)之道08-07

        簡(jiǎn)析盾構(gòu)機(jī)激光導(dǎo)向系統(tǒng)原理08-03

        簡(jiǎn)析創(chuàng)新型高職英語教學(xué)08-12

        簡(jiǎn)析法律談判的基本原則及價(jià)值04-29

        簡(jiǎn)析職業(yè)教育中化學(xué)實(shí)驗(yàn)的作用08-23

        国产高潮无套免费视频_久久九九兔免费精品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>