minix2 0核心組織結構與公用標頭檔案說明

2021-09-23 21:47:59 字數 2369 閱讀 8161

include/目錄包含了作業系統所有的標頭檔案(即.**件)

src/目錄下包含了作業系統所有的原始檔(.c或.s檔案)

include/目錄下為posix標準標頭檔案;

include/sys/目錄下為額外的posix標準標頭檔案;

include/minix/目錄下為minix作業系統定義的標頭檔案

src/kernel/目錄存放著minix作業系統第一層(程序管理)和第二層(裝置管理)的源**;

src/mm/目錄存放著minix作業系統第三層中記憶體管理子系統的源**;

src/fs目錄下存放著minix作業系統第三層中檔案管理系統的源**;

src/lib目錄下存放著minix作業系統使用的庫例程源**(e.g. open,read);

src/tools目錄下存放著init源程式,用於啟動minix;

src/boot目錄下存放著啟動和安裝minix作業系統的源**

minix os的主體是以c語言編寫的,在minix2.0的源**中,以「.c」結尾的檔案均為c語言源程式

minix的核心源**少部分是用組合語言編寫的,其中大部分是關於中斷與異常處理的底層程式。在minix2.0源**中,以「.s」結尾的檔案均為組合語言源程式

src/commands/ :包含公用程式(e.g. cat, cp, date, ls, pwd)的源**

src/test/: 包含有一些被設計用來對新編譯好的minix系統進行完整測試的工具(由於minix是乙個用於教學的作業系統,這意味著對它常常要作修改)

src/inet/: 包含了重新編譯minix以使之支援網路的源** 

minix的內部結構:

minix被組織成4層,每一層執行一套定義得很完整的功能,這4層如下圖所示:

第1、2層的**位於src/kernel/下。第一層是minix核心的最底層,該層包括完成以下的功能函式:系統的初始化、中斷、訊息傳遞以及程序排程。

以下標頭檔案均在目錄include/下:

ansi.h: 用來檢測編譯器是否遵循標準c,如果是的話,_ansi就被定義為31415,如果不是的,則_ansi未定義。通過這個巨集來診測。

limits.h: 定義語言型別(如整型)和作業系統(如字)的基本尺寸,提高了可移植性

errno.h: 定義了minix作業系統程式執行時可能出現的各種錯誤號

unistd.h: 包含了大量的重要常數和系統呼叫函式原型。

string.h: 包含了用於字元處理的函式原型

signal.h: 定義了所有的ansi和posix通用訊號,minix支援所有的posix訊號

fcntl.h: 定義了open()和fcntl()系統呼叫所需的各種引數和標誌, 注意:create()已經過時。但是為了保持向後相容性,而提供。

stdlib.h: 定義了一些共用的巨集、型別和函式原型

termious.h: 被controlling終端型別的使用

a.out.h: 描述了可執行檔案的格式

sys/types.h: 包含重要的型別定義

sys/ioctl.h: 宣告裝置的控制操作

sys/sigcontext.h: 定義了sigreturn(2)系統呼叫的所需的sigcontext結構

sys/sigptrace.h: 包含ptrace(2)系統呼叫所需的巨集定義

sys/stat.h: 定義了stat()和fstat()系統呼叫所需的結構和巨集

sys/dir.h:給出目錄結構的布局

sys/wait.h: 包含wait()系統呼叫所需的巨集定義

minix/config.h: 設定了minix核心、記憶體管理子系統、檔案管理子系統的配置引數

minix/const.h: 定義了minix作業系統各部分共用的常量(巨集定義)

minix/type.h: 定義了minix作業系統各部分公用的結構

minix/syslib.h: 宣告了系統庫函式的函式原型

minix/callnr.h: 定義了允許的系統呼叫號

minix/com.h: 包含記憶體管理子系統、檔案管理子系統和i/o任務所需的一些巨集定義以及i/o任務號

minix/boot.h: 包含檔案系統所需的裝置巨集定義以及boot程式傳遞給minix作業系統的引數

詳細分析  minix訊息機制的核心:

保護模式分析:

含了一些debug下的dump機制:

驅動相關**分析:

winchester

task 分析:

時鐘分析:

終端任務分析:

鍵盤任務分析:

控制台分析:

fs與kernel的介面以及mm與kernel介面sys_task

在Bochs使用Minix 2 0的網路功能

ricky zhang rickycheung 21 2005 02 11 一 修改bochs的設定。修改bochsrc x hd.bxrc的配置檔案。找到以下這項 預設你正使用win32 ne2k ioaddr 0x300,irq 3,mac b0 c4 20 00 00 00,ethmod wi...

地理資料結構與組織

1 什麼是要素類?答 1 具有相同空間製圖表達 如點 線或面 2 一組同類要素的集合 3 點 線 面和註記是最常用的四個要素類 2 什麼是要素資料集?2 具有某種關係的多個要素類的集合 3 什麼是shapefile資料模型?答 1 shapefile 是一種用於儲存地理要素的 幾何位置 和屬性資訊 ...

(3 1)程序與執行緒 核心中的組織

2.linux 程序控制塊 task struct 3.程序在核心中的組織形式 pid t pid 程序process id uid t uid,euid 程序屬性 使用者id,有效使用者id gid t gid,egid volatile long state 程序狀態 int exit stat...