Главная страница
Навигация по странице:

  • Загрузочный образ

  • Образ ОС

  • Сектор диска

  • 3. 5Исследование готовых файлов 5


    Скачать 438.97 Kb.
    Название3. 5Исследование готовых файлов 5
    Дата12.09.2018
    Размер438.97 Kb.
    Формат файлаdocx
    Имя файла1. MiniOS doc.docx
    ТипДокументы
    #50456
    страница1 из 6
      1   2   3   4   5   6

    Документация Mini OS

    1.Оглавление


    1.Оглавление 1

    2.Определения 2

    3.Рабочая среда 3

    3.1Используемые компоненты 3

    3.2Подготовка рабочего окружения 3

    3.3Команды окружения 3

    3.3.1Утилита автоматизации сборки Make 3

    3.3.2Вспомогательные bash скрипты 3

    3.4Основные инструменты 4

    3.4.1Виртуальная машина Qemu 4

    1.1.1Отладчик GDB 5

    3.5Исследование готовых файлов 5

    4.Файлы проекта 6

    4.1Список файлов 6

    4.1.1Папка grub/ 6

    4.1.2Папка src/ 6

    4.2Файлы для сборки 8

    4.2.1Скрипт компоновщика 8

    4.2.2Make файлы автоматизации сборки 9

    4.2.3Компиляция исходных кодов ядра 9

    4.2.4Сборка загрузочного образа (hdd.img) 11

    4.3Исходные коды ядра ОС 12

    4.3.1boot.s 12

    4.3.2main.c 12

    5.Проектирование исходного кода ядра ОС 13

    5.1Таблицы IDT и GDT 13

    5.1.1Инициализация таблицы дескрипторов сегментов GDT 15

    5.1.2Инициализация таблицы прерываний IDT 17

    5.1.3Обработка прерывания 21

    5.1.4Установка своих обработчиков прерываний 27

    6.Диаграммы 28

    7.Результаты исследований 40

    7.1Исполняемый файл ОС 40

    8.Приложения 43

    8.1Архитектура компьютера 43

    8.2Режимы работы процессора 43

    8.2.1Реальный режим (Real Mode) 43

    8.2.2Защищенный режим (Protected Mode) 43

    8.3Ассемблер 43

    8.3.1Команды работы с флагами 44

    8.3.2Дерективы Nasm 44

    8.4Взаимодействие кода на ассемблере и кода на Си 45

    8.5Ассемблерные вставки в код на Си 45

    8.5.1Особенности 45

    8.5.2Общая структура вставки 45

    8.5.3Синтаксис команд 46

    8.5.4Ключевое слово volatile 46

    8.5.5Пример вставки 46

    8.6Процесс работы загрузчика 46

    8.7Карта расположения загрузчика в памяти 47

    8.8Состояние машины при старте ОС 48

    9.Ссылки 50


    2.Определения


    Загрузочный образ (Boot image) - тип образа диска (файл, содержащий в себе полную копию содержания и структуры файловой системы и данных, находящихся на диске), с которого возможна загрузка из BIOS.

    Образ ОС - бинарный файл, который загрузчик загружает в память и которому передает управление для старта ОС. Содержит ядро ОС.

    Загрузчик - Программа или набор программ, которые загружают образ операционной системы. ЗАГРУЗЧИК может состоять из нескольких стадий, но это является деталью имплементации, не описываемой в данной спецификации. Только финальная стадия ЗАГРУЗЧИКА - стадия на которой управление передается операционной системе - должна соответствовать требованиям, описываемым в данном документе.

    Сектор диска — минимальная адресуемая единица хранения информации на дисковых запоминающих устройствах. У большинства устройств размер сектора составляет 512 байт.

    3.Рабочая среда


    Используется операционная система Linux Debian 8.2

    3.1Используемые компоненты


    • Компилятор ассемблерного кода nasm

    • Компилятор кода на Си gcc

    • Утилита make для автоматизации сборки

    • Виртуальная машина qemu

    • Отладчик cgdb

    • Загрузчик GRUB

    3.2Подготовка рабочего окружения


    1. Устанавливаем дистрибутив Linux Debian 8.2 32 bit

    2. Устанавливаем пакеты: nasm, qemu, cgdb, make, gcc
      sudo apt-get install nasm qemu cgdb make gcc

    3. Для загрузки файла конфигурации отладчика GDB в папке проекта необходимо создать файл “ .gdbinit” с содержанием “ set auto-load safe-path /”

    3.3Команды окружения

    3.3.1Утилита автоматизации сборки Make


    • sudo make compile - компиляция ядра
      описан в Компиляция исходных кодов ядра

    • sudo make image - полное создание образа (с обновлением загрузочной области)
      описан в Сборка загрузочного образа (hdd.img)

    • sudo make - компиляция ядра и обновление его в образе (без обновления загрузочной области ядра)

    • sudo clean - очистка файлов компиляции ядра

    • sudo make umount -i - высвобождение занятых ресурсов (запускать, если какая-то команда не была завершена из-за ошибок)

    3.3.2Вспомогательные bash скрипты


    • bash run_qemu.sh - запуск образа в виртуальной машине QEMU

    • bash run_qemu_dbg.sh - запуск образа в qemu c подключением отладчика CGDB

    • bash to_flash.sh - запись образа на USB flash.
      1   2   3   4   5   6


    написать администратору сайта