核心開發文檔—-概述

來源:互聯網
上載者:User
        核心開發文檔一 概述    此實驗核心採用微核心方式,核心做最小化處理,進程間協同工作靠IPC完成.核心僅僅進行訊息的傳遞和部分必要的硬體維護,如中斷,分頁.    整個核心是一個Kernel結構.核心任務就是對這個結構進行維護.其餘模組都才有微核心經典設計,交由使用者進程來維護.該實驗進程不對進程進行區分,所有進程同等對待,沒有服務進程,客戶進程之分.進程之間的區別只有許可權區別,優先順序區別.IPC使用類IP協議方式傳遞訊息.IPC是一套協議,而非實現機制.二 核心簡要工作過程    核心不自己實現引導過程,而是遵循多重開機協議,有第三方引導程式來載入核心.使核心開發過程簡化,得到一個統一的運行環境.    首先,多重開機程式載入核心運行環境設定模組,setup和env到記憶體3MB處,setup是組譯工具,負責必須的硬體初始化工作,設定GDT,臨時棧,初始化8259A.然後調用env模組,env模組之後經由C語言完成,env模組負責完成setup未完成的任務,給核心提供一個統一的運行環境.該統一的環境是,一個線性記憶體空間,預設的中斷處理常式.env完成環境初始化工作後調用核心main,核心正式開始運行.main得到控制權,對起Kernel結構進行初始化,設定die進程,然後人工初始化進程管理器pm,記憶體管理器mm.核心工作完成.    環境模組setup,env,核心主模組main,進程管理器pm,記憶體管理器mm為了編程方便,和核心對他們的依賴性,被編譯在同一可執行檔vmgmL中.三  核心資料結構Kernel    Kernel在include/kernel.h中定義.其結構如下    typdef  struct kernel{        Proc ready;     //就緒進程隊列,可以被調度        Proc block;     //阻塞進程隊列,缺乏資源而被阻塞不能被調度    }Kernel;    Proc在include/proc.h中定義,其結構如下    typedef struct proc *Proc;    struct proc{        pid_t    pid;        /* 進程ID */        unsigned long  core;    /* 進程記憶體空間 */        unsigned long  stack;    /* 進程調度出去的棧,儲存了進程的恢複資料 */        Message  massage;       /* 發送給進程的訊息佇列 */        Proc    next;           /* 下一個進程 */    };四 核心API    核心向對外只提供3個API,        int send(pid_t pid,void *massage,int length); /* 該API像pid進程發送大小為length位元組的訊息,訊息內容由massage指出. 返回成功發送的位元組數 */        void *recv(int *length);    /* 該API返回訊息佇列中第一條訊息,*length儲存了訊息的大小 */        void *recvForm(pid_t pid,int *length); /* 該API接收來至pid的訊息,*length儲存了訊息的大小 */

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.