用略微修改的BCPL編寫
(http://rabbit.eng.miami.edu/class/een521/bcpl-2.pdf)
對於Intel 80486模擬器
- http://rabbit.eng.miami.edu/class/een521/hardware-1.pdf
- http://rabbit.eng.miami.edu/class/een521/hardware-2a.pdf
- http://rabbit.eng.miami.edu/class/een521/intel486vm.pdf
Dr.撰寫的仿真器。斯蒂芬·默雷爾(Stephen Murrell)
(源代碼:http://rabbit.eng.miami.edu/class/een521/een521.zip)
在此記錄中:
- start.b:虛擬內存(對於80846。4GB內存= 512頁 * 2048單詞每頁。字= 32位)
頁面目錄帶有六個單獨區域的頁面表
虛擬地址空間(用戶和系統代碼,堆和堆棧) - OS.B:頁面故障處理程序生長堆和堆棧
能夠閱讀和執行用戶程序
exit()系統調用恢復系統FP,SP和PC,設置CPU標誌並回收用戶進程頁面
基於中斷的鍵盤輸入系統
命令行殼
(在過程中)可運行過程的隊列 - newvec.b:用newvec和freevec分配和回收堆
- File_System.B:基本文件系統(MKDIR,CD,RMDIR,FCREATE,FDELETE,FOPEN,FOPEN,FCLOSE,FWRITE,FREAD)
- sys_lib.b:基本系統調用用戶流程的API
- 用戶流程XB,YB:用於測試
目前,目錄條目僅限於一個塊(128個單詞= 512個字節),
這意味著目錄僅限於16個兒童文件和目錄。這些孩子
目錄也僅限於16個條目,等等。
每個目錄包含:
- 512字節
- 最多16個結構為28個字節,每個字節都描述子文件或目錄
- 目錄名稱的6個字節
- 4個字節用於光盤上的位置的位置
文件也用作地點持有人,並包括一個帶有一個標頭塊
28個描述性信息的單詞:名稱,權限,創建的時間等
和100個指示文件的內容。
100個指針 * 512字節每塊=最大文件大小50kb
- 目錄需要一個光盤讀取才能打開
- 文件用一張光盤讀取以打開標題塊
再加上一張光盤讀取以訪問最多100個內容的每一個
目標是擁有一個基本文件系統(支持文件和目錄)
測試基礎操作系統並發現任何問題
優化之前。正在測試的功能是
- 虛擬內存,帶有六個單獨區域的頁面表的頁面目錄
虛擬地址空間(用戶和系統代碼,堆和堆棧) - 頁故障處理程序生長堆和堆棧
- 能夠閱讀和執行用戶程序
- exit()系統呼叫恢復系統FP,SP和PC
設置CPU標誌,回收用戶進程頁面 - 基於中斷的鍵盤輸入系統
進行中
接下來