написано в слегка измененной версии 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
эмулятор, написанный доктором. Стивен Муррелл
(Исходный код: http://rabbit.eng.miami.edu/class/een521/een521.zip)
Внутри этого репот:
- start.b: виртуальная память (для 80846. 4 ГБ памяти = 512 страниц * 2048 слов на страницу. Word = 32 бит)
Справочник страниц с таблицами страниц для шести отдельных регионов
виртуального адресного пространства (пользовательский и системный код, куча и стек) - OS.B: обработчик разломов страницы для выращивания кучи и стека
Возможность читать и выполнять пользовательские программы
EXIT () Системный вызов для восстановления System FP, SP и ПК, установить флаги ЦП и перерабатывать страницы пользовательского процесса
Система ввода клавиатуры на основе прерываний
Командная строка оболочка
(в процессе) очередь запускаемых процессов - NewVec.B: распределение и переработка кучи с NewVec и FreeVec
- file_system.b: базовая файловая система (Mkdir, CD, Rmdir, Fcreate, Fdelete, Fopen, Fclose, Fwrite, Fread)
- sys_lib.b: базовый API системного вызова для пользовательских процессов
- Пользовательские процессы XB, YB: для тестирования
На данный момент записи каталога ограничены по одному блоку каждый (128 слов = 512 байтов),
что означает, что каталоги ограничены 16 детьми и каталогами. Этот ребенок
каталоги также ограничены 16 записями и т. Д.
Каждый каталог содержит:
- 512 байтов
- до 16 структур 28 байтов, каждый из которых описывает дочерний файл или каталог
- 6 байтов для имени каталогов
- 4 байта на местоположение на диске его родительского каталога
Файлы также служат держателем места, и включают в себя один блок заголовка с
28 слов описательной информации: имя, разрешения, созданное время и т. Д.
и 100 указателей на содержимое файла.
100 указателей * 512 байтов на блок = максимальный размер файла 50 КБ
- Каталоги требуют одного диска для открытия
- Файлы возьмите одно диск, чтобы открыть блок заголовка
плюс один диск читает для доступа к каждому из 100 блоков содержимого
Цель состояла в том, чтобы иметь базовую файловую систему (поддержка файлов и каталогов)
Чтобы проверить базовую операционную систему и уловить любые проблемы
Перед оптимизацией. Тестируемые функции
- Виртуальная память, каталог страниц с таблицами страниц для шести отдельных регионов
виртуального адресного пространства (пользовательский и системный код, куча и стек) - обработчик разломов страницы для выращивания кучи и стека
- Возможность читать и выполнять пользовательские программы
- Exit () Системный вызов для восстановления системы FP, SP и ПК
Установите флаги процессора, переработка страниц процесса пользователя - Система ввода клавиатуры на основе прерываний
- распределение и переработка кучи с помощью NewVec и FreeVec
В ходе выполнения
- очередь пользовательских процессов, которые по очереди запускаются
- тестирование Fread и fwrite
Далее
- B+ Дерево, чтобы приспособиться к большим файлам с минимальными считываниями диска