Операционная система MS DOS

       

Операционная система MS DOS

Предисловие авторов
Внутренняя организация MS-DOS
Основные компоненты операционной системы

Процесс загрузки операционной системы
Общая схема работы DOS
Файловая система.
Система управления памятью.
Система управления программами.
Система связи с драйверами устройств.
Система обработки ошибок.


Служба времени.
Ввод/вывод на консоль оператора.
Другие подсистемы DOS.

Обзор прерываний BIOS
INT11h - Получить список оборудования.
INT12h - Получить размер основной памяти.
Работа с дисплейным адаптером.
- Задание видеорежима.
- Установить характеристики курсора.
- Установить положение курсора.
- Получить положение курсора.
- Получить положение светового пера.

- Выбрать активную страницу дисплейной памяти.
, 07H - Прокрутка (скроллинг) окна вверх/вниз.
, 09H - Прочитать/записать символ и атрибут.
H - Записать символ.
H - Выбрать цветовую палитру.
H, 0Dh - Записать/прочитать графическую точку.
H - Запись символа на экран в стиле TTY.
H - Прочитать текущий видеорежим.
, 11H, 12h - Обслуживание адаптера EGA.
- Запись строки.

Обслуживание клавиатуры.
Обслуживание дисковой подсистемы.
- Сброс дисковой системы.
- Получить состояние дисковой системы.
/03H - Чтение/запись секторов.
- Проверка секторов.
Другие функции прерывания INT13h.
Вывод на принтер (параллельный порт).
Обслуживание последовательного порта связи
Работа с системными часами.

Перезагрузка операционной системы.
Системный сервис для машин класса AT.
Обзор прерываний DOS
Получение системной информации.
Символьный ввод/вывод.
Работа с файловой системой.
Управление программами.
Управление памятью.
Связь с драйверами устройств.
Другие функции.

Обработка ошибок
Векторная таблица связи MS-DOS
Таблица связи управляющих блоков MS-DOS

Блоки управления памятью в MS-DOS
Список управляющих блоков устройств
Таблица файлов MS-DOS
Список загружаемых драйверов устройств
Другие поля векторной таблицы связи
Форматы программных файлов

Процесс загрузки программ в память
Префикс программного сегмента
Запуск программ из программ

Завершение работы программы
Механизм прерываний
Таблица векторов прерываний
Маскирование прерываний
Изменение таблицы векторов прерываний

Особенности обработки аппаратных прерываний
Что такое резидентная программа?
Как программе стать резидентной?
Вызов резидентной программы
Особенности резидентных программ

Примеры резидентных программ
Драйверы
Интерфейс между программным обеспечением и аппаратурой
Структура загружаемого драйвера
Процесс загрузки драйверов
Связь драйвера с операционной системой

Функции загружаемого драйвера
# 0 - Инициализация драйвера
# 1 - Проверка замены носителя данных

# 2 - Построить блок BPB
- IOCTL запись, 16 - Вывод, пока не занято
# 5 - Неразрушающее чтение без ожидания
- Проверить состояние устройства вывода.
- Сброс буфера устройства вывода

- Закрыть устройство

Операционная система MS DOS

# 15 - Проверка сменяемости диска
# 19 - Функции управления вводом/выводом (IOCTL)
- Установить активное логическое устройство

Функции управления устройствами ввода/вывода IOCTL
# 00H Получить информацию об устройстве
# 01H Установить информацию об устройстве
# 02H/03h Чтение/запись управляющей информации для символьных устройств
# 04H/05h Чтение/запись управляющей информации для блочных устройств
# 06H/07h Получить состояние ввода/вывода
# 08H Проверить возможность замены носителя данных для блочного устройства
# 09H Получить информацию о том, является ли устройство локальным или удаленным (при работе в сети)
# 0Ah Проверить индекс на локальный/удаленный

# 0Bh Установка количества повторов при обращении к файлу
# 0Ch Переключение кодовых страниц
# 0Dh Общее управление вводом/выводом (GENERIC IOCTL)
# 0Dh Общее управление вводом/выводом (GENERIC IOCTL) - 2
# 0Eh Получение информации о логическом дисководе
# 0Fh Установка текущего логического дисковода
Драйвер системных часов CLOCK$
Особенности отладки драйверов

Пример драйвера символьного устройства
Драйвер символьного устройства

Работа с драйвером символьного устройства
Пример драйвера блочного устройства