Домашняя задания по проектированию операционной системы Уханского университета: воспроизведение ядра операционной системы
Ссылка: 30-дневная домашняя операционная система
Все процессы этого эксперимента и проблемы, столкнувшиеся в середине, принципы и решения записываются здесь. Задачи и кодовое содержание каждого дня обновляются в соответствующей папке. Соответствующий каталог - это только окончательный файл кода, который был завершен в день.
Каждое содержание папки может быть запущено непосредственно без дополнительной установки, и запускается под операционной системой Windows
Запустите программу в день {день}
make -C day{DAY}Например, беги на 10 -й день
make -C day10Очистить сгенерированный файл
make -C day{DAY} cleanQEMU будет иметь ошибки в некотором моделировании состояния операционной системы на моем компьютере, и в день и день времени будет прерывание исключения в Day10 и Day11.
Ввод клавиатуры Day7 застрял, и ввод букв повторяется и не может быть прерван в будущем. Это связано с методом ввода Китая. Переход на метод ввода английского языка, когда вход может его решить, но эта ситуация не возникает на компьютере моего соседа по комнате и одноклассникам. Он не появляется в операционной системе Win10 моей виртуальной машины VMware, поэтому эта ошибка не может быть воспроизведена. Если вы столкнетесь с этой ошибкой, вы можете скомпилировать файл изображения IMG Floppy Disk и импортировать виртуальную машину VMware. Смотрите блог Day1 для связанных методов использования.
Пожалуйста, переключитесь на метод ввода английского языка при входе на клавиатуру, в противном случае возникнут ненормальные ситуации.
День 1
Основная зона запуска
день 10
Входной и выходной буфер, IDT GDT, обработка прерываний, управление памятью, графический чертеж, вход мыши, обработка наложения
День20
Оптимизация окна, таймер, оптимизация обработки прерываний, планирование процессов с несколькими задачами, окно командной строки, оптимизация ввода клавиатуры, выполнение приложения, API
Поддержка Dir Mem Type CLS Hello Directive
День 30
Базовое использование
Команды, связанные с командной строкой
DIR: Просмотр файла каталогов
MEM: Просмотреть память и остаться
CLS: четкое содержание консоли
NCST: используйте NCST + следующую команду для запуска программы, не влияя на вход текущей консоли
Star1: нарисуйте немного (звезда)
Звезды: нарисуйте кучу точек
Прогулка: переместите курсор (вверх, вниз, влево и вправо)
Color, Color2: два цветных диска
notrec: окно без перехода
Барбал: круг, проведенный линией
Invader: приложение для инопланетной мастурбации
Langmode + {Mode}: Переключение режима языка, Langmode 0 - это режим английского языка, 1 японский режим, а 2 - японский режим EUC
Type + {filename}: просмотреть содержимое файла (обратите внимание, что Langmode, Langmode появится в искаженном коде, если оно неверно, и не пытайтесь просматривать какие -то странные картинки формата)
TVIEW + {FILENAME}: Создайте новое текстовое поле для просмотра содержимого файла
mmmlplay + {filename}: откройте музыкальный проигрыватель
mmlplay daigo.mmlgview + {filename}: предварительно просмотреть изображение
gview night.bmp
gview fujisan.jpgCalc + {Format}: калькулятор
Мой собственный ввод клавиатуры кажется немного проблемой, немного странно
Следующий рисунок - некоторая демонстрация функции
Информация об эксперименте по эксперименту