Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Разработка и реализация ОС.doc
Скачиваний:
81
Добавлен:
24.11.2018
Размер:
3.09 Mб
Скачать

Государственное образовательное учреждение

Высшего профессионального образования

«Вологодский государственный технический университет»

Кафедра автоматики и вычислительной техники

РЕФЕРАТ

Дисциплина: Введение в профессию

РАЗРАБОТКА И РЕАЛИЗАЦИЯ

ОПЕРАЦИОННЫХ СИСТЕМ

Выполнил студент группы ЭМ-11: Свириденко Валерий Олегович

Проверил заведующий кафедры АВТ: Сердюков Николай Алексеевич

18 ноября 2011 г.

Вологда

2011

Содержание

Введение……………………………………………………………………………………………..3

1. Понятие операционной системы………………………………………………………………...4

1.1. Составляющие операционной системы……………………………………………….4

1.1.1. Загрузчик……………………………………………………………………...4

1.1.2. Ядро……………………………………………………………………………4

1.1.3. Базовая система ввода-вывода……………………………………………….4

1.1.4. Командный интерпретатор…………………………………………………..4

1.1.5. Сервисные программы……………………………………………………….4

1.2. Разновидности операционных систем………………………………………………...5

2. Загрузчик операционной системы………………………………………………………………6

2.1. Пример реализации загрузчика для моей операционной системы………………….6

3. Ядро. Типы ядер. Достоинства и недостатки…………………………………………………..8

3.1. Разновидности типов ядер………………………………………………………………8

3.1.1. Монолитное ядро…………………………………………………………......8

3.1.2. Микроядро………………………………………………………………….....8

3.1.3. Экзоядро………………………………………………………………………8

3.1.4. Наноядро………………………………………………………………………9

3.1.5. Гибридное ядро……………………………………………………………….9

3.2. Пример реализации главного модуля моей операционной системы………………..9

4. Файловая система……………………………………………………………………………….11

4.1. Функции файловой системы………………………………………………………….11

4.2. Классификация файловых систем……………………………………………………11

4.3. Пример реализации файловой системы для моей ОС. ……………………………..12

5. Система ввода-вывода…………………………………………………………………………..13

5.1. Основные концепции системы ввода–вывода……………………………………….13

5.1.1.1. Контроллер………………………………………………………...13

5.1.1.2. Прерывания………………………………………………………...14

5.1.1.3. Прямой доступ к памяти…………………………………………..14

5.1.2.1. Программная составляющая ввода-вывода……………………...15

5.1.2.2. Обработчики прерываний………………………………………...15

5.1.2.3. Драйверы устройств……………………………………………….16

5.1.2.4. Независимое от устройств программное обеспечение В/В…….16

5.1.2.5. Пользовательские программы (верхний уровень) ……………...17

6. Командный интерпретатор……………………………………………………………………..19

6.1. Командный интерпретатор с текстовым интерфейсом……………………………..19

6.1.1. Функции командного интерпретатора типа командная строка. …………19

6.2.1. Функции графической оболочки. ………………………………………….19

6.2. Графическая оболочка……………………………………………….........................19

7. Программное обеспечение……………………………………………………………………...20

7.1. Классификация программного обеспечения………………………………………...20

7.1.1. Системное программное обеспечение……………………………………..20

7.1.2. Прикладное программное обеспечение……………………………………20

7.1.3. Инструментальное программное обеспечение……………………………21

Заключение…………………………………………………………………………………………22

Список литературы………………………………………………………………………………...23

Введение

Современные компьютеры, становятся все сложней, быстрей и надежнее, они взаимодействуют с большим количеством внешней аппаратуры, они соединяются в сети и т.д., но чтобы управлять этими ресурсами одного желания не достаточно, нужен еще рычаг, который сможет предоставить нам всё необходимое для простого решения поставленных задач. Задачи могут быть самые разные от программ развлекательного характера до управление аппаратами ресурсами и(или) программными ресурсами крупного предприятия. Этим рычагом является операционная система, которая абстрагирует нас от действительности и предлагает нам простой и понятный интерфейс управления.

Для демонстрации примеров решений, реализации отдельных компонентов операционный системы я мог выбрать любую операционную систему, но я решил использовать для наглядной демонстрации простенькую однозадачную ОС реального режима, которую написал сам. Это наиболее правильное решение, так как я хорошо знаю, как реализованы её компоненты и как она работает.

1. Понятие операционной системы

Операционная система - это с одной стороны виртуальная машина, которая предоставляет пользователю необходимый набор функций для абстрактной работы с устройствами, а с другой стороны она может выступать, как менеджер ресурсов, то есть операционная система распределяет взаимодействие пользователей и программ (процессов) с аппаратными ресурсами персонального компьютера.

1.1. Составляющие операционной системы

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

- загрузчика,

- ядра,

- системы ввода-вывода,

- файловой системы,

- командного интерпретатора,

- программного обеспечения.

1.1.1. Загрузчик

Загрузчик операционной системы — системное программное обеспечение, обеспечивающее загрузку операционной системы непосредственно после включения компьютера.

1.1.2. Ядро

Ядро операционной системы – часть ОС, выполняющаяся при максимальном уровне привилегий. Как правило, в ядро помещаются процедуры, выполняющие манипуляции с основными ресурсам системы и уровнями привилегий процессов, а также критичные процедуры.

1.1.3. Базовая система ввода-вывода

Базовая система ввода-вывода – набор программных средств, обеспечивающих взаимодействие ОС и приложений с аппаратными средствами. Обычно базовая система ввода-вывода представляет собой набор – драйверов.

1.1.4. Командный интерпретатор

Командный интерпретатор – необязательная, но присутствующая в большинстве операционных систем часть, которая обеспечивает управление системой посредством ввода текстовых команд.

1.1.5. Сервисные программы

Сервисное программное обеспечение – пакет приложений, включённый в состав операционной системы, реализующий множество полезных функций.

1.2. Разновидности операционных систем

Операционные системы делятся по количеству одновременно выполняющихся действий:

- однозадачные,

- псевдомногозадачные,

- истинно многозадачные.

Также операционные системы могут делится по признаку:

- однопользовательские,

- многопользовательские.

2. Загрузчик операционной системы

Загрузчик операционной системы:

- обеспечивает необходимые средства для диалога с пользователем компьютера (например, загрузчик позволяет выбрать операционную систему для загрузки);

- приводит аппаратуру компьютера в состояние, необходимое для старта ядра операционной системы (например, на не-x86 архитектурах перед запуском ядра загрузчик должен правильно настроить виртуальную память);

- загружает ядро операционной системы в ОЗУ. Загрузка ядра операционной системы не обязательно происходит с жесткого диска. Загрузчик может получать ядро по сети. Ядро может храниться в ПЗУ или загружаться через последовательные интерфейсы (это может пригодиться на ранней стадии отладки создаваемой компьютерной системы);

- формирует параметры, передаваемые ядру операционной системы (например, ядру Linux передаются параметры, указывающие способ подключения корневой файловой системы);

- передаёт управление ядру операционной системы.

На компьютерах архитектуры IBM PC запуск загрузчика осуществляется программным обеспечением BIOS, записанной в ПЗУ компьютера, после успешного окончания процедуры POST. Опишем процедуру, с помощью которой происходит загрузка с НЖМД IBM PC: BIOS производит чтение 512 байт первого сектора НЖМД (MBR) в ОЗУ по адресу 0x00007C00 (0x07C0:0x0000 в формате реального режима), затем прочитанному коду передаётся управление. Этот код читает и анализирует таблицу разделов жёсткого диска, а затем, в зависимости от вида загрузчика, либо передаёт управление загрузочному коду активного раздела жёсткого диска, либо самостоятельно загружает ядро с диска в оперативную память и передаёт ему управление. Первоначально загрузчик работает в режиме реальной адресации при отключенной адресной линии A20, что создает определенные трудности при написании загрузчиков.

2.1. Пример реализации загрузчика для моей операционной системы

Загрузка происходит с гибкого диска.

1) В память по адресу 0000h:07c00h считывается нулевой сектор.

2) Управление передается на адрес 0000h:07c00h. В этот момент регистры DS, SS, EX получают значение CS равного 0000h, а указатель стека устанавливается в значение 0FFFFh, попутно проходит инициализация других необходимых регистров.

3) Функция чтения сектора считывает код операционной системы в память по адресу 1000h:0000h, попутно выводит надпись, о том, что идет загрузка. Считывание начинается с 35 сектора и продолжается до 45 сектора включительно.

4) После этого происходит передача управления на адрес 1000h:0000h. С этого момента начинает работу ядро моей операционной системы.

Исходный код загрузчика. Компилятор masm 6.

;информация о диске

s2:

mov ax,cs

mov ds,ax

mov ss,ax

mov sp,0ffffh

lea dx,mesboot

call print_string ;вывод сообщения о загрузке

mov ax,1000h

mov ds,ax

mov ss,ax

mov es,ax

mov bx,0h

mov di,bx

mov cx,10

mov dx,35

ns:

call read_sector;чтение сектора (абсолютный адрес)

add bx,512

inc dx

loop ns

jmp dword ptr pm ;передача управления на код ОС

pm:

dw 0000h

dw 1000h

;код процедур