用略微修改的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标志,回收用户进程页面 - 基于中断的键盘输入系统
进行中
接下来