65829

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

Лабораторная работа

Информатика, кибернетика и программирование

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

Русский

2014-08-06

325.06 KB

0 чел.

Министерство образования и науки Российской Федерации

Санкт-Петербургский государственный политехнический университет

Факультет технической кибернетики

Кафедра «Информационная безопасность компьютерных систем»

ОТЧЕТ

по лабораторной работе №1

«ПРИНЦИПЫ РАЗРАБОТКИ ОПЕРАЦИОННЫХ СИСТЕМ»

по курсу «Операционные системы»

Выполнил

студент гр. 2088/4    А.А.Чернышев

                           <подпись>

Руководитель     А.С. Коноплев

                           <подпись>

Санкт-Петербург

2012

  1.  Формулировка задания

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

системы.

2. Использованные теоретические сведения

Материалы из методического пособия 01.pdf, а также многочисленные интернет-ресурсы.

3. Результаты работы

3.1. Выполнение индивидуального задания

Сложность выполнения индивидуального задания, помимо написания загрузчика ядра, заключалась еще и в создании загрузочной дискете. Необходимо было “склеить” два образа (загрузчик и ядро, каждый из них имеет размер 512 байт) так, чтобы загрузчик оказался в загрузочном секторе. Проблема была решена следующим образом:
1) Был создан файл zero.img размером 2880*512-2*512=1473536 байт.

2) Затем я склеил 3 образа в один командой copy /b boot.img+kernel.img+zero.img floppy.ima и получил образ дискеты с загрузчиком и ядром в “одном флаконе”.

1) Разработать загрузчик, позволяющий загружать две ОС: ОС Unix (Windows), и собственную ОС.

[ORG 0x7c00]

start: cli

mov ax, cs

mov ds, ax

mov ss, ax

mov bx, 0000h

mov es, ax

mov sp, 7c00h

mov bx, 7c00h

mov si, 7c00h

mov di, 600h

mov cx, 200h

rep movsb

jmp 0000h:0623h

retf

sti

pusha

mov si, strtmsg

msg1:

lodsb

test al, al

jz waiti

mov ah, 0eh

int 10h

jmp msg1

waiti: popa

boot_menu:

mov ah, 00h

int 16h

cmp al, "1"

je windows_load

cmp al, "2"

je my_os_load

jmp boot_menu

windows_load:

mov dl, 80h

mov dh, 01h

mov ch, 00h

mov cl, 01h

mov al, 01h

mov ah, 02h

int 13h

jmp 0000h:7c00h

retf

my_os_load:

mov dl, 00h

mov dh, 00h

mov ch, 00h

mov cl, 02h

mov al, 02h

mov ah, 02h

int 13h

jmp 0000h:7c00h

retf

strtmsg db '============================Welcome to My_Loader============================',0ah,0dh,'Windows XP -- press "1" ',0ah,0dh,'My OS -- press "2"',0ah,0dh,0

times 510-($-$$) db 0

db 0x55, 0xaa

2) Разработать ядро ОС. После загрузки на экране должен появиться курсор рисующий фигуру.

[ORG 0x7c00]

start: cli     ;инициализация

mov ax, cs

mov ds, ax

mov ss, ax

mov sp, start

sti

mov ax,0012h     ;видео-режим

int 10h

mov BH, 0          ;видео страница

mov DX, 239   ;координата Y

mov CX, 319   ;координата X

mov ah, 0Ch   ;рисование точки

mov al, 014h  ;цвет точки

int 10h

wait_input:          ;ждем стрелочки

mov ah, 00h

int 16h

cmp ah,48h

jz up

cmp ah,50h

jz down

cmp ah,4bh

jz left

cmp ah,4dh

jz right

jmp wait_input

up:

mov ah, 0Ch

mov al, 014h

cmp DX, 0  ;условие "невыхода" за верхний край

je wait_input

sub DX, 1

int 10h

jmp wait_input

down:

mov ah, 0Ch

mov al, 014h

cmp DX, 479   ;условие "невыхода" за нижний край

je wait_input

add DX, 1

int 10h

jmp wait_input

left:

mov ah, 0Ch

mov al, 014h

cmp CX, 0  ;условие "невыхода" за левый край

je wait_input

sub CX, 1

int 10h

jmp wait_input

right:

mov ah, 0Ch

mov al, 014h

cmp CX, 639  ;условие "невыхода" за правый край

je wait_input

add CX, 1

int 10h

jmp wait_input

TIMES 510 - ($-$$) db 0

db 0xAA, 0x55

3.2. Ответы на контрольные вопросы

Каким образом осуществляется защита кода в архитектуре IA-32? Оцените, насколько такие меры способны защитить код от повреждения злоумышленником.

Защита кода в архитектуре IA-32 производится на уровне ядра при помощи механизма уровней привилегий (колец) — четыре уровня безопасности, считая с нуля(наиболее высокого уровня). Соответственно код с более высокого уровня имеет доступ ко всем более низким, но не наоборот. Механизмы переключения привилегий и системных вызовов обеспечивают возможные переходы по данным уровням. С точки зрения безопасности, данные меры являются довольно стойкими и  обеспечивают хорошую защиту.

Каким образом осуществляется взаимодействие ОС с дисковыми накопителями в процессе загрузки?

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

Какие схожие процедуры выполняются в процессе загрузки ОС Linux и Windows?

Схожие процедуры в ходе загрузки Windows и Linux:

  1.  определение оборудования при помощи BIOS
  2.  управление передачи ядру со всеми данными об аппаратном обеспечении
  3.  использование страничной адресации

Какова роль BIOS в функционировании ОС?

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

Какова последовательность действий при возникновении прерывания? Чем она отличается от процедуры обработки исключений?

При возникновении прерываний  последовательность действий такова:

  1.  получение номера прерывания;
  2.  получение информации о нем из таблицы прерываний;
  3.  переход на функцию-обработчик прерывания.

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

4. Выводы

В данной работе были исследованы основные особенности работы операционных систем. Также были проанализированы процессы загрузки ОС и принципы построения функциональных ядер ОС.


 

А также другие работы, которые могут Вас заинтересовать

20482. Совокупное предложение и кривая 94 KB
  Совокупное предложение базируется на производственных возможностях национальной экономики. Оно является функцией экономики от доступных на текущий момент факторов производства, технологии и уровня цен. В процессе анализа совокупного предложения важно различать совокупное предложение в краткосрочном и долгосрочном периодах.
20483. Діаграми “сутність-зв’язок”. Основні означення та терміни. Нотація Чена 55.5 KB
  Модель сутністьзв'язок ERмодель англ. Entityrelationship model або entityrelationship diagram модель даних яка дозволяє описувати концептуальні схеми за допомогою узагальнених конструкцій блоків. ERмодель це метамодель даних тобто засіб опису моделей даних. ERмодель зручна при проектуванні інформаційних систем баз даних архітектур комп'ютерних застосунків та інших систем моделей.
20484. Діаграми атрибутів. Категоризація сутностей 38 KB
  Діаграми випадків використання описують взаємозв’язки і залежності між групою випадків використання і акторами що беруть участь у процесі. Важливо зауважити що діаграми випадків використання не призначено для показу компонування вони не можуть описати внутрішню структуру системи. Діаграми випадків використання призначено для полегшення обміну інформацією між майбутніми користувачами системи і замовником вони особливо корисні для визначення переліку можливостей які повинна мати система. За діаграмами випадків використання можна...
20485. Діаграми потоків даних. Основні означення та символи 29 KB
  Діаграма потоків даних англ. Data Flow Diagram графічне представлення потоків даних в інформаційній системі. Діаграма потоків даних також може використовуватись для представлення обробки даних структурна розробка.
20486. Закони булевої алгебри 28 KB
  Кон’юнкцією висловлень А і В називаємо висловлення А^В буде істинним тоді і тільки тоді коли обидва висловлення істинні. Диз’юнкцією – висловлень А і В називаються висловлення АvВ в якій буде істина тоді і лише тоді коли істинне хоча б одне із висловлень. Імплікацією висловлень А і В називається таке висловлення АВ яке буде хибне тоді і лише тоді коли А істинне В – хибне. Заперечення висловлення А називається складне висловлення А яке буде істинне тоді і лише тоді коли А – хибне і хибним тоді коли а – істинне.
20487. Запити, типи запитів, обчислення в запитах 32 KB
  Запити дозволяють обраховувати підсумкові значення і виводити їх у компактному форматі а також виконувати обчислення над групами записів. Запити можна створювати самостійно і за допомогою майстра. Майстри запитів автоматично виконують основні дії залежно від відповідей користувача на поставлені питання.
20488. Засоби структурного аналізу та їх взаємовідносини 36 KB
  принципова схема технологічного процесу на складі; транспортнотехнологічна схема переробки вантажів на складі; технологічна карта роботи складу; технологічний графік роботи складу; опис стандартних процедур складського процесу; мережеві моделі складських процесів а також ряд інших засобів моделювання процесів; технологічні планування складів; карти організації праці окремих категорій працівників складу. Правильно організований технологічний процес роботи складу повинен забезпечувати: чітке і своєчасне проведення кількісного...
20489. Зведення системи лінійних рівнянь до зручного для ітерацій вигляду 78 KB
  Ітераційними називають такі методи які дають змогу знайти наближений розв'язок системи із заздалегідь указаною точністю шляхом виконання скінченої кількості арифметичних операцій хоч самі обчислення можуть проводитись і без округлень а коефіцієнти і вільні члени системи бути точними числами. Точний розв'язок системи за допомогою ітераційних методів можна знайти тільки теоретично як границю збіжного нескінченного процесу. Розв'язуючи системи рівнянь ітераційними методами крім похибок округлення треба враховувати також похибку методу....
20490. Обчислення в звітах 17.31 KB
  Щоб додати номер сторінки використовують властивості звіту Page і Pages містять номер поточної сторінки і загальна кількість сторінок у звіті. Для того щоб додати в колонтитул номер поточної сторінки введіть у текстове поле вираження= Сторінка [Page] з [Pages]Зазначимо що при створення звіту в режимі майстра це вираз додається автоматично.Так для того щоб провести будьякі обчислення в рядках таблиці звіту необхідно посилатися безпосередньо на поля цього звіту не таблиці або запиту. Щоб порахувати різницю між максимальним і...